Ce document décrit les fonctionnalités du protocole Spanning Tree qui sont destinées à améliorer la stabilité du réseau de couche 2.
Ce document suppose que le lecteur est familiarisé avec le fonctionnement de base du protocole STP (Spanning Tree Protocol).
Référez-vous à Comprendre et configurer le protocole Spanning Tree (STP) sur les commutateurs Catalyst pour plus d'informations.
Ce document est basé sur des commutateurs Catalyst exécutant Cisco IOS, cependant, la disponibilité des fonctionnalités décrites peut dépendre de la version logicielle utilisée.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Reportez-vous aux conventions des conseils techniques Cisco pour plus d’information sur les conventions utilisées dans ce document.
Le protocole STP (Spanning Tree Protocol) résout les topologies physiquement redondantes en topologies sans boucle de type arborescence. Un problème avec le protocole STP est que les défaillances matérielles peuvent provoquer des dysfonctionnements, conduisant à des boucles de transfert (boucles STP). Ces boucles peuvent provoquer des pannes de réseau importantes.
Ce document décrit la fonctionnalité de protection contre les boucles STP qui est destinée à améliorer la stabilité des réseaux de couche 2. Il décrit également la détection de distorsion BPDU (Bridge Protocol Data Unit). La détection de la distorsion des BPDU est une fonctionnalité de diagnostic qui génère des messages syslog lorsque les BPDU ne sont pas reçus à temps.
La fonction de protection contre les boucles STP a été introduite dans le logiciel Cisco IOS® version 12.1(12c) EW pour les commutateurs Catalyst 4500 et dans le logiciel Cisco IOS version 12.1(11b) EX pour Catalyst 6500.
En interne, le protocole STP attribue à chaque port de pont (ou de commutateur) un rôle basé sur la configuration, la topologie, la position relative du port dans la topologie et d’autres considérations.
Le rôle du port définit le comportement du port du point de vue STP. En fonction du rôle du port, le port envoie ou reçoit des BPDU STP et transfère ou bloque le trafic de données.
Cette liste fournit un bref résumé de chaque rôle de port STP :
Designated - Un port désigné est sélectionné par liaison (segment). Le port désigné est le port le plus proche du pont racine. Ce port envoie des BPDU sur la liaison (segment) et transfère le trafic vers le pont racine. Dans un réseau convergent STP, chaque port désigné est dans l'état de transmission STP.
Root - Le pont ne peut avoir qu'un seul port racine. Le port racine est le port qui mène au pont racine. Dans un réseau convergent STP, le port racine est à l'état de transmission STP.
Alternate - Les ports alternatifs conduisent au pont racine mais ne sont pas des ports racine. Les ports alternatifs conservent l'état de blocage STP.
Sauvegarde - Il s'agit d'un cas particulier lorsque deux ports ou plus entre les mêmes commutateurs sont connectés ensemble, directement ou via des supports partagés. Dans ce cas, un port est désigné et les autres ports sont bloqués. Le rôle de ce port est backup.
La fonctionnalité STP loop guard offre une protection supplémentaire contre les boucles de transfert de couche 2 (boucles STP). Une boucle STP est créée lorsqu'un port de blocage STP dans une topologie redondante passe par erreur à l'état de transmission. Cela se produit généralement parce que l'un des ports d'une topologie physiquement redondante (pas nécessairement le port de blocage STP) ne reçoit plus de BPDU STP. Dans son fonctionnement, le protocole STP repose sur la réception ou la transmission continue de BPDU en fonction du rôle du port. Le port désigné transmet les BPDU et le port non désigné reçoit les BPDU.
Lorsque l’un des ports d’une topologie physiquement redondante ne reçoit plus de BPDU, le protocole STP considère que la topologie est sans boucle. Finalement, le port de blocage du port alternatif ou de secours devient désigné et passe à un état de transmission (cette situation crée une boucle).
La fonction de protection contre les boucles crée des vérifications supplémentaires. Si les BPDU ne sont pas reçues sur un port non désigné, et que la protection contre les boucles est activée, ce port est déplacé dans l'état de blocage incohérent de boucle STP, au lieu de l'état d'écoute / d'apprentissage / de transmission. Sans la fonction de protection contre les boucles, le port assume le rôle de port désigné. Le port passe à l'état de transmission STP et crée une boucle.
Lorsque le dispositif de protection contre les boucles bloque un port incohérent, ce message est consigné :
%SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/24 on VLAN0050.
Une fois que la trame BPDU est reçue sur un port dans un état STP incohérent en boucle, le port passe à un autre état STP. Pour la trame BPDU reçue, cela signifie que la récupération est automatique et qu'aucune intervention n'est nécessaire. Après la récupération, ce message est consigné :
%SPANTREE-2-LOOPGUARD_UNBLOCK: Loop guard unblocking port FastEthernet0/24 on VLAN0050.
Considérez cet exemple pour illustrer ce comportement :
Le commutateur A est le commutateur racine. Le commutateur C ne reçoit pas de BPDU du commutateur B en raison d’une défaillance de liaison unidirectionnelle sur la liaison entre le commutateur B et le commutateur C.
Échec de liaison unidirectionnelle
Sans protection contre les boucles, le port de blocage STP sur le commutateur C passe à l'état d'écoute STP lorsque le minuteur max_age expire, puis passe à l'état de transmission deux fois le délai forward_delay. Cette situation crée une boucle.
La boucle est créée
Lorsque le dispositif de protection contre les boucles est activé, le port de blocage du commutateur C passe à l’état d’incohérence de boucle STP lorsque le minuteur max_age expire. Un port dans l'état d'incohérence de boucle STP ne transmet pas le trafic utilisateur, donc une boucle n'est pas créée. L'état d'incohérence de boucle est effectivement égal à un état de blocage.
Loop Guard Enabled empêche les boucles
La fonction de protection contre les boucles est activée sur chaque port. Cependant, tant qu'il bloque le port au niveau STP, le dispositif de protection contre les boucles bloque les ports incohérents par VLAN (en raison du STP par VLAN).
Autrement dit, si les BPDU ne sont pas reçues sur le port trunk pour un seul VLAN particulier, seul ce VLAN est bloqué (déplacé vers l'état STP incohérent de boucle). Pour la même raison, s'il est activé sur une interface EtherChannel, le canal entier est bloqué pour un VLAN particulier, et pas seulement une liaison (parce qu'EtherChannel est considéré comme un port logique du point de vue STP).
Sur quels ports le dispositif de protection contre les boucles est-il activé ? La réponse la plus évidente concerne les ports de blocage. Cependant, ce n'est pas 100% correct. Le dispositif de protection contre les boucles doit être activé sur les ports non désignés (plus précisément, sur les ports racine et secondaires) pour toutes les combinaisons possibles de topologies actives. Tant que la protection contre les boucles n'est pas une fonctionnalité par VLAN, le même port (trunk) peut être désigné pour un VLAN et non désigné pour l'autre.
Les scénarios de basculement possibles doivent également être pris en compte.
Exemple
Ports avec Loop Guard activé
Par défaut, la protection contre les boucles est désactivée et cette commande est utilisée pour activer la protection contre les boucles au niveau de l'interface spécifiée :
Router(config)#interface gigabitEthernet 1/1 Router(config-if)#spanning-tree guard loop
La protection contre les boucles peut être activée sur toutes les liaisons point à point. La liaison point à point est détectée par l’état duplex de la liaison. Si le mode bidirectionnel est plein, la liaison est considérée comme point à point. Il est toujours possible de configurer ou de remplacer les paramètres globaux par port.
Émettez cette commande pour activer globalement la protection contre les boucles :
Router(config)#spanning-tree loopguard default
Émettez cette commande pour désactiver la protection contre les boucles sur une base par interface :
Router(config-if)#no spanning-tree guard loop
Émettez cette commande pour désactiver globalement la protection contre les boucles :
Router(config)#no spanning-tree loopguard default
Émettez cette commande pour vérifier l'état de la protection contre les boucles :
Router#show spanning-tree summary Switch is in pvst mode Root bridge for: none EtherChannel misconfig guard is enabled Extended system ID is disabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is enabled UplinkFast is disabled BackboneFast is disabled Pathcost method used is short Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- Total 0 0 0 0 0
La protection contre les boucles et la fonctionnalité de détection de liaison unidirectionnelle (UDLD) se chevauchent, en partie dans le sens où les deux protègent contre les défaillances STP causées par les liaisons unidirectionnelles. Cependant, ces deux fonctionnalités diffèrent par leur fonctionnalité et leur approche du problème.
Ce tableau décrit le dispositif de protection contre les boucles et la fonctionnalité UDLD :
| Fonctionnalité | Protection De Boucle | UDLD |
|---|---|---|
| Configuration | Par port | Par port |
| Granularité de l'action | Par VLAN | Par port |
| Récupération automatique | Oui | Oui, avec la fonction err-disable timeout |
| Protection contre les pannes STP causées par des liaisons unidirectionnelles | Oui, lorsque cette option est activée sur tous les ports racine et secondaires de la topologie redondante | Oui, lorsque cette option est activée sur toutes les liaisons de la topologie redondante |
| Protection contre les pannes STP causées par des problèmes dans le logiciel (le commutateur désigné n’envoie pas de BPDU) | Oui | Non |
| Protection contre un câblage incorrect. | Non | Oui |
En fonction des différentes considérations de conception, vous pouvez choisir UDLD ou la fonction de protection contre les boucles. En ce qui concerne le STP, la différence la plus notable entre les deux fonctionnalités est l'absence de protection dans UDLD contre les défaillances du STP causées par des problèmes logiciels.
Par conséquent, le commutateur désigné n’envoie pas de BPDU. Cependant, ce type de défaillance est (par ordre de grandeur) plus rare que les défaillances provoquées par des liaisons unidirectionnelles. En retour, UDLD peut être plus flexible dans le cas de liaisons unidirectionnelles sur EtherChannel. Dans ce cas, UDLD désactive uniquement les liaisons défaillantes, et le canal peut rester fonctionnel avec les liaisons qui restent. Dans une telle défaillance, le dispositif de protection contre les boucles le met dans un état d'incohérence de boucle pour bloquer l'ensemble du canal.
En outre, le dispositif de protection contre les boucles ne fonctionne pas sur les liaisons partagées ou dans les situations où la liaison a été unidirectionnelle depuis la liaison active. Dans le dernier cas, le port ne reçoit jamais de BPDU et devient désigné. Comme ce comportement peut être normal, ce cas particulier n'est pas couvert par le dispositif de protection contre les boucles. UDLD fournit une protection contre un tel scénario. Comme décrit ci-dessus, le niveau de protection le plus élevé est fourni lorsque vous activez UDLD et le dispositif de protection contre les boucles.
Root Guard
La protection de racine s'exclut mutuellement avec la protection contre les boucles. La protection de racine est utilisée sur les ports désignés et elle ne permet pas au port de devenir non désigné. Le dispositif de protection contre les boucles fonctionne sur des ports non désignés et ne permet pas au port d'être désigné jusqu'à l'expiration de max_age. La protection de la racine ne peut pas être activée sur le même port que la protection contre les boucles. Lorsque le dispositif de protection contre les boucles est configuré sur le port, il désactive le dispositif de protection contre la racine configuré sur le même port.
Liaison ascendante rapide et Backbone rapide
Les liaisons ascendantes rapides et les liaisons fédératrices rapides sont transparentes au dispositif de protection contre les boucles. Lorsque max_age est ignoré par backbone fast au moment de la reconvergence, il ne déclenche pas le dispositif de protection contre les boucles. Pour plus d'informations sur uplink fast et backbone fast, reportez-vous à :
Compréhension et configuration de la fonctionnalité Cisco Uplink Fast
Comprendre et configurer Backbone Fast sur les commutateurs Catalyst
Protection PortFast et BPDU et VLAN dynamique
La protection contre les boucles ne peut pas être activée sur les ports où portfast est activé. Puisque la protection BPDU fonctionne sur les ports activés par portfast, certaines restrictions s'appliquent à la protection BPDU. La protection contre les boucles ne peut pas être activée sur les ports VLAN dynamiques, car portfast est activé sur ces ports.
Liens partagés
La protection contre les boucles ne doit pas être activée sur les liaisons partagées. Si vous activez le dispositif de protection contre les boucles sur les liaisons partagées, le trafic provenant des hôtes connectés aux segments partagés peut être bloqué.
Multiple Spanning Tree (MST)
La protection contre les boucles fonctionne correctement dans l'environnement MST.
| Révision | Date de publication | Commentaires |
|---|---|---|
3.0 |
01-Jun-2026
|
Mise à jour de l'orthographe, de la grammaire, de la structure des phrases, des espacements, etc. |
2.0 |
18-Dec-2023
|
Recertification |
1.0 |
14-Oct-2022
|
Première publication |