Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment identifier et dépanner les boucles de couche 2 dans les réseaux, y compris les commutateurs de la gamme Catalyst 9000.
Il est recommandé de comprendre les concepts du protocole Spanning Tree.
Ce document n'est pas limité à des versions de matériel ou de logiciel spécifiques.
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.
Les boucles de couche 2 provoquent des perturbations sur un réseau local. La « tempête de diffusion » qui en résulte interfère avec la communication au sein des LAN virtuels (VLAN) affectés et bloque les terminaux et les périphériques réseau. Le problème s’aggrave avec le temps, car le trafic de couche 2 ne dispose d’aucun mécanisme, tel que la durée de vie (TTL), qui finisse par entraîner la consommation d’un paquet sur le réseau. Le trafic en boucle, tel que le trafic ARP (Address Resolution Protocol) ou DHCP (Dynamic Host Configuration Protocol), effectue une boucle infinie jusqu’à ce que la boucle soit rompue. Un individu chargé de l'investigation d'une boucle active se trouve dans une position stressante.
Heureusement, il existe des méthodes éprouvées et réelles pour étudier et dépanner les boucles de couche 2. Ce document décrit la méthodologie utilisée par des générations d'ingénieurs du TAC.
Spanning-Tree : comment empêche-t-il les boucles ?
Cette topologie simple montre le protocole Spanning Tree en action. Ces points sont vrais pour cette topologie :
Le Spanning Tree a convergé dans cette topologie afin d’éviter les boucles. Les flèches vertes représentent la manière dont un paquet de diffusion transmis par un PC client est transmis sur les commutateurs interconnectés. Le port de blocage sur BBB empêche la diffusion transmise par le client de boucler indéfiniment entre les périphériques.
Comment se forment les tempêtes de diffusion de couche 2 ?
Il existe de nombreux scénarios dans lesquels la prévention de boucle offerte par le Spanning Tree n’empêche pas une tempête de diffusion.
Les problèmes physiques (couche 1) sur le réseau peuvent entraîner des liaisons unidirectionnelles, empêchant les haut-parleurs Spanning Tree d’échanger de manière fiable des unités BPDU. Une réception ou une livraison non fiable des BPDU entraîne une convergence Spanning Tree non souhaitée et inattendue.
Exemple 1 :
Dans ce scénario, BBB arrête de recevoir des BPDU du pont racine sur son port racine. BBBB converge en réponse à cette perte de BPDU. Son port racine n'est plus un chemin viable vers la racine puisqu'il ne reçoit plus de BPDU et devient un port désigné. Son port de blocage continue à recevoir des BPDU de AAAA et devient le port racine. Aucune des interfaces ne bloque et une boucle s’ensuit.
Exemple 2 :
Des interruptions de réseau peuvent également se produire lorsque le Spanning Tree est convergé comme prévu. Certains périphériques connectés au réseau peuvent être des vecteurs de boucles. Un concentrateur ou un périphérique similaire connecté de manière inattendue au réseau peut provoquer des tempêtes de diffusion.
Les ingénieurs réseau ont tendance à aborder les boucles de couche 2 et les tempêtes de broadcast de plusieurs façons. Cette section décrit une méthode éprouvée qui a été testée dans d'innombrables cas de TAC et d'interruptions catastrophiques.
Cette méthode utilise des commandes très basiques et évite les points de données tels que les notifications de modification de topologie (TCN) STP (Spanning Tree Protocol), qui peuvent être chaotiques à poursuivre. Les TCN dans une topologie RSTP (Rapid STP) se produisent lorsque des ports non périphériques passent de BLOCKING à FORWARDING. La boucle elle-même peut charger les haut-parleurs STP au point où ils ne peuvent pas participer à la convergence de manière prévisible. Les interfaces des commutateurs victimes passent en mode FORWARDING si elles ne sont pas en mesure de traiter correctement les BPDU entrantes en raison de leur plan de contrôle encombré. Les TCN sont souvent des symptômes qui révèlent les périphériques victimes, mais pas nécessairement à la source de la boucle.
Au lieu des TCN STP, un point de données plus valide et linéaire à considérer sont les débits d'entrée d'interface. Les interfaces qui participent à la boucle affichent des débits d’entrée beaucoup plus élevés que prévu. Les taux de sortie ne sont pas aussi préoccupants, car ces périphériques en aval sont probablement eux-mêmes victimes. Vous pouvez également observer un taux élevé de diffusion et de multidiffusion sur les interfaces affectées et noter que la taille moyenne des paquets est décalée vers une valeur inférieure à celle attendue.
Avec ces seules commandes, un ingénieur réseau peut isoler la plupart sinon toutes les boucles de couche 2 de manière simple :
show interfaces | include is up|taux d'entrée
La commande « show interfaces | include is up|input rate" avec le tube et les arguments nous fournit un extrait de sortie rapidement digestible. Il nous montre toutes nos interfaces qui sont actuellement « up » ainsi que leurs débits d'entrée. Pour nos besoins, nous ne nous soucions que des taux d'entrée. Les interfaces présentant des débits d’entrée étonnamment élevés sont susceptibles d’être victimes de la boucle. Le dispositif connecté à une interface avec un débit d'entrée étonnamment élevé est probablement plus proche de la source de la boucle. Les interfaces avec des débits de sortie étonnamment élevés nous éloignent probablement de la source de la boucle.
ACCESS-SWITCH1#show interfaces | in is up|input rate <snip>
GigabitEthernet1/0/1 is up, line protocol is up (connected) <----- Typical endpoint with a low input rate. This would not raise suspiscion. 5 minute input rate 33000 bits/sec, 21 packets/sec GigabitEthernet1/0/2 is up, line protocol is up (connected) 5 minute input rate 24000 bits/sec, 11 packets/sec <snip> 5 minute input rate 0 bits/sec, 0 packets/sec <----- This output represents interfaces that are down. 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) <----- Twe1/1/1 in this scenario is high-bandwith uplink interface. We would expect uplinks to have a fair amount of traffic on input. 5 minute input rate 2816922000 bits/sec, 2072252 packets/sec. If we were troubleshooting a loop, pay special attention to this interface given the input rate. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 2926942401 bits/sec, 3043467 packets/sec <-- The same logic goes for this port. The input rate is relatively high but that is possibly function of its position in the network. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <snip>
ACCESS-SWITCH1#show cdp neighbor twe1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-SWITCH2 Twe 1/1/1 142 S I C9300-48P Twe 1/1/4 <--- We confirm that the expected neighbor is attached to this interface. Total cdp entries displayed : 1
show spanning-tree
Utilisez cette commande pour comprendre comment le commutateur local pense que le Spanning Tree est convergent. Gardez à l'esprit les différences dans les différentes saveurs du Spanning Tree. Les commutateurs Catalyst exécutent rapid-PVST par défaut, mais prennent en charge PVST et MST.
ACCESS-SWITCH1#show spanning-tree VLAN0001 <----- Keep in mind that in per-vlan spanning-tree, each VLAN represents a unique instance of spanning-tree Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/0/3) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.1 P2p Gig1/0/2 Desg FWD 20000 128.2 P2p <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Alt BLK 800 128.35 P2p <---- This output corresponds with expectation. This step helps to populate STP information in your topology as you move from device to device
Cette méthode simple et simple permet d’éviter les captures de paquets fastidieuses, de ne pas se concentrer sur les TCN Spanning Tree et de maintenir le problème réel au premier plan de l’enquête. Elle élimine également le dépannage par « devinette et vérification ».
Considérez ce schéma de topologie :
Le Spanning Tree bloque plusieurs ports dans cette topologie en raison des interconnexions redondantes entre les commutateurs. Dans cet exemple, le graphique X jaune représente les ports bloquants. Les ports de transfert sont tous désignés ou racine, selon l'emplacement du commutateur local par rapport au pont racine. Les flèches vertes représentent le flux normal et attendu du trafic de diffusion qu’un client exemplaire enverrait sur ce réseau.
Bien que pas très complexe, ce réseau offre de nombreuses possibilités de formation de boucles en raison des nombreuses liaisons redondantes.
Cet extrait de la topologie de niveau supérieur se concentre sur les rôles/états Spanning Tree du commutateur d'accès auquel le serveur se connecte.
Déterminez si nous avons une liaison unidirectionnelle qui empêche le commutateur d'accès en aval de recevoir des BPDU sur son port racine. Le Spanning Tree reconverge en réponse et une boucle de couche 2 s’ensuit.
L'ancien port racine d'ACCESS-C cesse de recevoir des unités BPDU de DISTRO-B. Le commutateur ne le reconnaît plus comme un chemin viable vers la racine, de sorte que le port de blocage de priorité la plus élevée devient ROOT/FORWARDING. Le port racine précédent passe à DESIGNATED/FORWARDING. Cette reconvergence entraîne une boucle de transfert.
Ce schéma montre comment la boucle affecte le trafic de diffusion envoyé par notre client. À moins que la boucle ne soit rompue, le trafic en boucle continue de tourner en boucle indéfiniment et peut potentiellement entrer/sortir d'un commutateur affecté sur plusieurs interfaces. Vous pouvez voir plusieurs flèches rouges qui représentent la direction du trafic en boucle.
Le problème continue de prendre de l'ampleur, car de plus en plus de trafic est indéfiniment bouclé. La gamme de commutateurs Catalyst 9000 utilise un mécanisme CoPP (Control-Plane Policing) robuste par défaut, mais pas tous les produits. Les commutateurs avec une interface virtuelle de commutateur locale (SVI) dans un VLAN en boucle ont une copie du trafic de diffusion dans ce VLAN pointée vers le processeur. Sans CoPP, tout ce trafic pointé peut interrompre le processeur du commutateur. Cela a tendance à aggraver une mauvaise situation, car les commutateurs victimes ne peuvent pas participer au Spanning Tree comme prévu.
L'un des premiers défis que nous devons relever pour résoudre ce type de problème est de déterminer par où commencer. En fin de compte, la position dans laquelle nous commençons n'est pas terriblement importante. Tous les périphériques affectés par la boucle finissent par suivre la source de la boucle.
Dans cet exemple, nous commençons par le commutateur auquel le client affecté se connecte.
Point de départ - ACCESS-A - Connexion directe au client
Cette méthode rend le point de départ initial non pertinent. Toutes les interfaces affectées pointent vers la source du problème. Où que vous commenciez, si ce processus est suivi, vous arrivez à la source de la boucle/réflexion. Dans ce scénario, le client affecté se connecte au commutateur ACCESS-A. C'est par là que nous commençons. La première étape de ce processus consiste à prendre en compte les débits d’entrée sur toutes les interfaces actives.
ACCESS-A#show interfaces | in is up|input rate GigabitEthernet1/0/1 is up, line protocol is up (connected) 5 minute input rate 33000 bits/sec, 21 packets/sec <--- This access port (downlink) has a small volume of traffic inbound. This does not raise suspiscion. <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 2816922000 bits/sec, 2672252 packets/sec <--- This port is an uplink. There is a fair amount of traffic inbound on this port, but also keep in mind that the uplink is expected to be busier. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) <--- This is our other uplink on this switch. The input rate is zero, suggesting the other end of this link is not transmitting. This implies that the other end of the link successfully blocks. 5 minute input rate 0 bits/sec, 0 packets/sec
La taille moyenne des paquets est calculée en divisant les octets par seconde par les paquets par seconde. Dans cet exemple, la taille moyenne des paquets est d'environ 132 octets. Cela suggère un volume élevé de petits paquets qui fausse la moyenne. Un volume élevé de protocole ARP, par exemple, peut entraîner la même distorsion par rapport à la taille moyenne de paquet attendue dans un réseau de production et suggère que le port est victime de la tempête de diffusion.
Aucune des liaisons descendantes ne présente de taux d'entrée anormaux. Le seul port potentiellement affecté est le port racine : la liaison ascendante vers la couche de distribution. Avant de passer au périphérique suivant, examinons d’abord le protocole Spanning Tree pour le commutateur.
ACCESS-A#show spanning-tree <--- Without an argument, this command gives spanning-tree information for all VLANs with an active STP instance running. For this example, we assume VLAN 1 is consistent with all VLANs on the trunk. VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.1 P2p Gig1/0/2 Desg FWD 20000 128.2 P2p <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p
<snip>
Voici où il est intéressant de connaître votre réseau et comment le Spanning Tree devrait converger. Le port 1/1/1 est le port racine attendu. Twe1/1/2 se connecte également à un commutateur et effectue des transferts, mais son débit d'entrée est de 0 paquet/s, de sorte que nous savons que l'autre extrémité de la liaison bloque correctement. Tout semble bien en ce qui concerne le Spanning Tree. Maintenant, nous confirmons l'homologue de liaison sur le port affecté.
ACCESS-A#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/1 137 S I C9300-48P Twe 1/0/3
Commutateur de tronçon suivant - DISTRO-A
L’étape suivante est une répétition de l’exercice précédent sur le commutateur qui se connecte à l’interface suspecte. Exécutez « show interfaces | include is up|input rate" pour identifier les interfaces avec des débits d'entrée suspectés élevés.
DISTRO-A#show interfaces | in is up|input rate 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 4846092202 bits/sec, 4572251 packets/sec <-- In this scenario, this input rate raises red flags. This is another situation where understanding normal baselines is helpful. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <-- The other end of this link is likely blocking. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 146192134 bits/sec, 171252 packets/sec <-- Fair amount of usage, though exponentially smaller that our 'suspect' link. Again, knowing expected baselines is helpful to identify when deviations occur. This is a downlink towards an access switch in this scenario, and does not raise red flags. TwentyFiveGigE1/1/4 is up, line protocol is up (connected) 5 minute input rate 4938392202 bits/sec, 4723294 packets/sec <-- This is along the same magnitude of input as Twe1/1/1. Often, interfaces impacted by the same broadcast storm shows similar activity. In our scenario, this interface raises red flags. TwentyFiveGigE1/1/5 is up, line protocol is up (connected) 5 minute input rate 032182156 bits/sec, 104263 packets/sec <-- Similar to Twe1/1/3, this interface is active but not at a suspicious level.
Sur DISTRO-A, nous avons trouvé deux interfaces avec des débits d'entrée supérieurs aux attentes. La nature des boucles signifie qu’il existe généralement plusieurs chemins vers la source. Nous notons les deux interfaces, mais nous vérifions d'abord si le protocole Spanning Tree ne présente aucun problème.
DISTRO-A#show spanning-tree
VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address c18b.a18d.5b76 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Desg FWD 800 128.35 P2p Twe1/1/4 Desg FWD 800 128.36 P2p Twe1/1/5 Desg FWD 800 128.37 P2p
<snip>
Si vous regardez la position de DISTRO-A dans le réseau, vous pouvez voir que tous les ports sur ce commutateur sont censés transférer. Il a un port racine (Twe1/1/1) qui le connecte directement au pont racine. Toutes ses liaisons descendantes et interconnexions vers d’autres commutateurs sont désignées et acheminées. Ceci suit avec notre sortie Spanning Tree.
Maintenant, nous vérifions les homologues sur nos interfaces suspectes et décidons où aller ensuite. Chaque direction entraîne notre arrivée à la source de la boucle.
DISTRO-A#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID CORE Twe 1/1/1 137 S I C9500-48Y4C Twe 1/0/1 DISTRO-A#show cdp neighbors twentyFiveGigE 1/1/4 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-B Twe 1/1/4 137 S I C9300-48P Twe 1/1/1
Nous vérifions d'abord CORE, mais il serait également valide dans ce scénario le passage à ACCESS-B.
Commutateur de tronçon suivant - CORE
CORE#show interfaces | in is up|input rate TwentyFiveGigE1/0/1 is up, line protocol is up (connected) <--- Both active downlinks have comparably high input rates. It is not unexpected for core devices to have high interface activity. 5 minute input rate 4946092202 bits/sec, 4671352 packets/sec TwentyFiveGigE1/0/2 is up, line protocol is up (connected) 5 minute input rate 4936092202 bits/sec, 4474252 packets/sec <--- It appears that both Twe1/0/1 and Twe1/0/2 are victimized. These are the only active downlinks, so this makes sense. <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec
Puisque ce commutateur est le pont racine, nous nous attendons à ce que toutes ses interfaces transmettent. Confirmez rapidement avec « show spanning-tree ».
CORE#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 1 (priority 0 sys-id-ext 1) Address 380e.4d77.4800 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Twe1/0/1 Desg FWD 800 128.25 P2p Twe1/0/2 Desg FWD 800 128.26 P2p
Il n'existe aucun chemin d'entrée inattendu pour la tempête de diffusion. D'après les informations dont nous disposons, la boucle est en aval du coeur. Maintenant, nous vérifions nos pairs sur nos liens descendants.
CORE#show cdp neighbors twentyFiveGigE 1/0/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/0/1 144 S I C9300-48P Twe 1/1/1 CORE#show cdp neighbors twentyFiveGigE 1/0/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-B Twe 1/0/2 139 S I C9300-48P Twe 1/1/1
Nous venons de venir de DISTRO-A. Nous pourrions revoir DISTRO-A et vérifier notre autre interface/homologue sur ce commutateur qui a été marqué comme suspect, ou nous pouvons nous diriger vers DISTRO-B. Ensuite, nous vérifions DISTRO-B.
Commutateur de tronçon suivant - DISTRO-B
DISTRO-B#show interfaces | in is up|input rate <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 4446192309 bits/sec, 4673252 packets/sec <--- Suspicious TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 4457101202 bits/sec, 4571365 packets/sec <--- Suspicious TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 136192034 bits/sec, 170261 packets/sec TwentyFiveGigE1/1/4 is up, line protocol is up (connected) 5 minute input rate 4936092202 bits/sec, 4474252 packets/sec <--- Suspicious
Maintenant, nous allons examiner le protocole Spanning Tree pour nous assurer que les choses apparaissent comme prévu.
DISTRO-B#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 800 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Desg FWD 800 128.33 P2p
Twe1/1/3 Desg FWD 800 128.33 P2p Twe1/1/5 Alt BLK 800 128.34 P2p
Le Spanning Tree sur ce commutateur correspond à ce que nous attendons d'un réseau stable. Nous pouvons voir que notre port racine est convergé comme prévu et que notre interconnexion à DISTRO-B (Twe1/1/4) bloque. Nos interfaces d'accès direct sont désignées/de transfert.
Maintenant, nous enquêtons sur nos pairs sur les interfaces suspectes.
DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID CORE Twe 1/1/1 144 S I C9500-48Y4C Twe 1/0/1 DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-C Twe 1/1/2 139 S I C9300-48P Twe 1/1/1 DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/5 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/5 132 S I C9300-48P Twe 1/1/2
Nous venons de venir de CORE et nous avons déjà visité DISTRO-A. Sur la base de nos conclusions à ce jour, la logique nous envoie à ACCESS-C.
ACCÈS-C
ACCESS-C#show interfaces | in is up|input rate GigabitEthernet1/0/1 is up, line protocol is up (connected) 5 minute input rate 43012 bits/sec, 34 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec
<snip> TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <-- This interface has zero packets inbound. Normally this means the interface on the other end of the link is blocking. In this scenario we need to take a closer look since the upstream switch is a distribution switch. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 4834056103 bits/sec, 4461235 packets/sec <-- This interface has a suspicious input rate. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 4456091109 bits/sec, 4573242 packets/sec <-- This interface also has a suspicious input rate.
Ce commutateur est évidemment impacté par la boucle. Deux interfaces montrent des preuves de victimisation. Il existe également une liaison ascendante vers la couche de distribution qui est étonnamment silencieuse. Nous prenons note de ces observations et vérifions le spanning tree à côté pour voir si quelque chose se détache.
ACCESS-C#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 1600 Port 4 (TwentyFiveGigE1/1/2) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.01 P2P <snip> Twe1/1/1 Desg FWD 800 128.33 P2p Twe1/1/2 Root FWD 800 128.34 P2p Twe1/1/3 Alt BLK 800 128.33 P2p
Encore une fois, il est utile de comprendre le fonctionnement du Spanning Tree et ce qui est attendu de votre réseau. Selon le schéma précédent montrant la convergence Spanning Tree attendue, ACCESS-C devrait avoir deux ports de blocage. Il n'y a qu'un seul port de blocage répertorié dans la sortie de show spanning-tree qui est un énorme drapeau rouge. Cela n'apparaît pas clairement lors du dépannage. Voyons donc ce qui se démarque de la norme sur ce commutateur.
Les commutateurs d’accès d’un réseau hiérarchisé possèdent généralement un port racine et un ou plusieurs ports alternatifs à la racine. Les liaisons descendantes en dehors du pont racine sont généralement « désignées » et « acheminées ». Twe1/1/1 apparaît comme un port désigné, ce qui signifie qu’il croit être plus proche du pont racine que son partenaire de liaison. Notre schéma ne répertorie pas les numéros de port. Nous allons donc vérifier quels périphériques se connectent à quels ports sur notre périphérique suspect.
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID. <--- There is no neighbor information listed for this interface. Very suspiscious. ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-B Twe 1/1/2 144 S I C9300-48P Twe 1/1/3
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/3 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/3 137 S I C9300-48P Twe 1/1/2
L’interface Twe1/1/1 n’a pas de voisin répertorié. Cela indique que la trame CDP envoyée par l’homologue n’arrive pas (ou arrive et ne peut pas être traitée) et suggère une liaison unidirectionnelle dans ce contexte. À ce stade, il existe suffisamment de preuves pour examiner plus en détail le lien entre DISTRO-B et ACCESS-C.
Débit d'entrée de zéro au niveau de cette interface, tandis que nous nous attendons à ce que l'autre extrémité transfère en fonction de sa sortie Spanning Tree et du débit de sortie de l'interface. Combinée à la convergence STP inattendue où chaque extrémité de la liaison revendique la désignation et au manque d'informations CDP, cette liaison est unidirectionnelle.
Le moyen le plus rapide de rompre la boucle dans cette situation serait d'arrêter Twe1/1/1 sur ACCESS-A. Une fois Twe1/1/1 fermé, la boucle se rompt physiquement. Une fois la boucle physiquement interrompue, la tempête de diffusion commence immédiatement à se calmer.
Il s'agissait d'un scénario simplifié, mais qui illustre le concept. Suivez les interfaces affectées jusqu'à la source de la boucle.
Résumé
Ce scénario a démontré la méthodologie de base pour le dépannage rapide et précis des boucles de couche 2. La méthode peut être résumée en ces étapes :
ACCESS-C#show interfaces | in is up|input rate
2. Déterminez les périphériques homologues se connectant aux interfaces suspectes. La boucle est en aval de l'une de ces interfaces. Plusieurs chemins pointent vers la boucle, mais tous les chemins mènent finalement à la source.
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/1
3. Certains réseaux ont des périphériques avec plusieurs chemins de transfert. Vérifiez le protocole Spanning Tree pour vous assurer que la topologie converge comme prévu. Vérifiez que les interfaces bloquantes bloquent.
ACCESS-C#show spanning-tree
Intégrez ces étapes et construisez une topologie à mesure que vous passez d'un périphérique à l'autre. Vous arrivez finalement à la source de la boucle.
La boucle peut se produire lorsque certains facteurs empêchent le Spanning Tree de converger comme prévu. Dans ce scénario, une liaison unidirectionnelle entraînait le transfert d’un commutateur d’accès sur une liaison censée être bloquée.
Les tempêtes de diffusion se produisent également lorsque des périphériques non autorisés ou suspects reviennent en boucle ou reflètent le trafic sur le réseau.
La méthodologie décrite dans ce document aide les professionnels du réseau à localiser rapidement la source de n'importe quel scénario de boucle de couche 2 ou de réflexion de trafic.
Enfin, pourquoi pas les TCN ?
Une pratique courante sur le terrain consiste à se concentrer sur les TCN Spanning Tree et à les poursuivre lors du dépannage des boucles. Nous recommandons contre cela en faveur des taux d'entrée. Les commutateurs de la gamme Catalyst 9000 intègrent une politique de contrôle du plan de contrôle (CoPP) robuste pour empêcher les interruptions du chemin de pontage dues au volume du trafic ponté. Toutefois, le protocole CoPP sur les commutateurs Catalyst 9000 contrôle les unités BPDU si le volume dépasse la valeur du régulateur de plate-forme, de sorte que même si une utilisation élevée du CPU n'est pas observée, le Spanning Tree sur un Catalyst 9000 est victime. D'autres plates-formes de commutation, y compris les anciens Catalyst tels que les gammes 2960, 3560, 3750 et 4k, n'utilisent pas le CoPP et peuvent facilement être submergées pendant une boucle. Tout périphérique est potentiellement victime de la boucle, ce qui rend le Spanning Tree en concurrence avec les millions de diffusions erronées sur le chemin punt du processeur. Par conséquent, les TCN générés sont souvent des faux positifs et mènent un ingénieur sur le mauvais chemin.
Il existe des fonctionnalités facultatives disponibles sur les commutateurs Catalyst qui durcissent contre les boucles de couche 2. Ces fonctionnalités et les meilleures pratiques visent à prévenir les boucles avant qu'elles ne se produisent et à réduire leur impact au cas où elles se produisent.
Caractéristiques
RootGuard - La protection de la racine empêche les interfaces de devenir des ports racine. La fonctionnalité place l'interface dans un état Root-Inconsistent si une unité BPDU supérieure est reçue. Cela est particulièrement utile si le réseau contient des connexions à des périphériques gérés par d'autres organisations. En général, cette option est appliquée aux liaisons descendantes de la couche distribution qui font face à la couche d’accès. Les unités BPDU supérieures ne sont jamais censées arriver d’aval dans un réseau stable.
LoopGuard - En général, dans le protocole STP, les ports racine et les ports alternatifs reçoivent des BPDU tandis que les ports désignés les transmettent. Cette relation peut empêcher le Spanning Tree de répondre aux liaisons unidirectionnelles. Le dispositif de protection contre les boucles empêche les ports alternatifs ou racine d'être désignés. Le dispositif de protection contre les boucles met l'interface dans l'état err-disabled si les BPDU ne sont pas régulièrement reçus et traités par l'interface.
BPDUGuard - Cette fonctionnalité opère en plaçant une interface dans l'état err-disable si une BPDU est reçue sur un port configuré. Configurez cette option sur les ports de périphérie où la connexion d'un autre périphérique réseau n'est pas attendue. Cette fonctionnalité est souvent utilisée en association avec Portfast.
PortFast - Portfast est utilisé sur les ports de périphérie - principalement l'accès mais aussi les trunks dans certains scénarios. Il permet à un port de périphérie de renoncer aux étapes normales du Spanning Tree et de passer directement à la transmission. Cela permet de gagner du temps du point de vue du terminal et empêche également un port de périphérie instable de transmettre des TCN. Portfast doit toujours être utilisé avec BPDUGuard pour éviter d'induire une boucle si un périphérique réseau est accidentellement connecté.
Meilleures pratiques supplémentaires
Étendue VLAN - Autoriser uniquement les VLAN nécessaires sur les agrégations. Cela limite l’étendue des boucles et empêche qu’un problème localisé ne devienne une panne à l’échelle du réseau.
Utiliser des VLAN non opérationnels comme natifs - La meilleure pratique consiste à utiliser un VLAN non opérationnel pour les agrégations. De nombreux réseaux utilisent le VLAN natif par défaut (1), qui couvre l’ensemble du réseau. Utilisez un VLAN non opérationnel comme VLAN natif pour limiter davantage l'étendue potentielle d'une boucle.
Use Uniform Path Cost Calculation Method - La gamme de commutateurs Catalyst 9000 exécute tous la méthode de coût de chemin long par défaut depuis IOS XE 17.6. Par défaut, les versions précédentes peuvent être courtes. Par défaut, la plupart des commutateurs Catalyst existants fonctionnent à court terme. Les environnements utilisant des méthodes de coût de chemin mixte ont des problèmes de réponse aux modifications et aux perturbations de la topologie. Assurez-vous que tous les commutateurs exécutent la même méthode. Pour plus d'informations, reportez-vous au guide de configuration de la plate-forme Spanning Tree.
Utilisez la commande "spanning-tree pathcost method <long/short>" pour manipuler la méthode de coût de chemin. La commande « Show spanning-tree summary » permet de confirmer la méthode utilisée.
ACCESS-A(config)#spanning-tree pathcost method ? long Use 32 bit based values for default port path costs short Use 16 bit based values for default port path costs ACCESS-A(config)#spanning-tree pathcost method long <snip>
ACCESS-A#show spanning-tree summary Switch is in rapid-pvst mode Root bridge for: VLAN0001 Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled EtherChannel misconfig guard is enabled UplinkFast is disabled BackboneFast is disabled Configured Pathcost method used is long <--- Displays the configured pathcost method.
<snip>
Configuration du protocole Spanning Tree - Commutateurs Catalyst 9300
Configuration des fonctionnalités Spanning Tree facultatives - Commutateurs Catalyst 9300
Configuration des fonctionnalités Spanning Tree facultatives - Commutateurs Catalyst 9600
Configuration de la détection de liaison unidirectionnelle (UDLD) - Commutateurs Catalyst 9300
dépannage des opérations du plan de contrôle sur les commutateurs Catalyst 9000
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
14-Nov-2023 |
Première publication |