La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene descritto come identificare e risolvere i problemi relativi ai loop di livello 2 nelle reti, inclusi gli switch Catalyst serie 9000.
Si consiglia di comprendere i concetti del protocollo spanning-tree.
Quanto riportato in questo documento non è limitato a versioni software o hardware specifiche.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
I loop di livello 2 causano problemi in una rete locale. Il conseguente "broadcast storm" interferisce con la comunicazione all'interno delle VLAN (Virtual Lan) interessate e blocca gli endpoint e i dispositivi di rete. Il problema diventa più rapido nel tempo perché il traffico di layer 2 non dispone di alcun meccanismo, ad esempio la durata (TTL), che alla fine determina il consumo di un pacchetto sulla rete. Il traffico con loop, ad esempio il traffico ARP (Address Resolution Protocol) o DHCP (Dynamic Host Configuration Protocol), esegue invece un loop infinito finché il loop non viene interrotto. Una persona incaricata di investigare su un loop attivo si trova in una posizione stressante.
Fortunatamente esistono metodi sperimentati e affidabili per analizzare e risolvere i problemi dei loop di livello 2. Questo documento illustra la metodologia utilizzata da generazioni di tecnici TAC.
Spanning-Tree: come impedisce i loop?
Questa topologia semplice mostra il protocollo spanning-tree in azione. Per questa topologia sono validi i seguenti punti:
In questa topologia lo Spanning-Tree è convergente, pertanto i loop vengono impediti. Le frecce verdi rappresentano la modalità di inoltro di un pacchetto broadcast trasmesso da un PC client sugli switch interconnessi. La porta di blocco sul BBB impedisce che la trasmissione trasmessa dal client continui a circolare all'infinito tra i dispositivi.
Come si formano le tempeste di trasmissione di livello 2?
Ci sono molti scenari in cui la prevenzione del loop offerta da spanning-tree non previene una tempesta broadcast.
I problemi fisici (di livello 1) sulla rete possono causare collegamenti unidirezionali, impedendo agli altoparlanti dello spanning-tree di scambiare in modo affidabile le BPDU. La ricezione o la consegna non affidabile di BPDU causa una convergenza indesiderata e imprevista nello spanning-tree.
Esempio 1:
In questo scenario, BB interrompe la ricezione di BPDU dal bridge radice sulla relativa porta radice. BBB converge in risposta a questa perdita di BPDU. La porta radice non è più un percorso valido per la porta radice in quanto non riceve più BPDU e diventa una porta designata. La porta bloccante continua a ricevere BPDU da AAAA e diventa la porta radice. Nessuna delle due interfacce viene bloccata, quindi ne deriva un loop.
Esempio 2:
Le interruzioni della rete possono verificarsi anche quando lo spanning-tree viene convertito come previsto. Alcuni dispositivi collegati alla rete possono essere vettori di loop. Un hub o un dispositivo simile connesso in modo imprevisto alla rete può causare tempeste di trasmissione.
I network engineer tendono in molti modi ad avvicinarsi ai loop di livello 2 e alle tempeste di trasmissione. In questa sezione viene descritto un metodo valido e collaudato che è stato testato in innumerevoli casi di TAC e interruzioni catastrofiche.
Questo metodo sfrutta i comandi di base e archivia i punti dati come le notifiche di modifica della topologia (TCN) del protocollo Spanning Tree Protocol (STP) che possono essere caotici da inseguire. I TCN in una topologia RSTP (Rapid STP) si verificano quando le porte non edge passano da BLOCKING a FORWARDING. Il loop stesso può appesantire gli altoparlanti STP al punto che non possono prevedibilmente partecipare alla convergenza. Le interfacce sugli switch vittimizzati si spostano su FORWARDING se non sono in grado di elaborare correttamente le BPDU in entrata a causa del control-plane congestionato. I TCN sono spesso sintomi che rivelano dispositivi vittimizzati, ma non necessariamente alla fonte del loop.
Anziché TCN STP, un punto dati più valido e lineare da considerare sono le velocità di input dell'interfaccia. Le interfacce che partecipano al loop mostrano velocità di input molto più elevate del previsto. I tassi di produzione non destano altrettanta preoccupazione in quanto questi dispositivi a valle sono essi stessi probabilmente vittime. Si può anche osservare un'alta velocità di trasmissione e multicast sulle interfacce interessate e notare che le dimensioni medie del pacchetto salgono a un valore inferiore a quello previsto.
Con questi soli comandi, un tecnico di rete è in grado di isolare la maggior parte, se non tutti, i loop di livello 2 in modo semplice:
show interfaces | include è attivo|frequenza di input
Il comando "show interfaces | include is up|input rate" con pipe e arguments fornisce un frammento di output rapidamente digeribile. Ci mostra tutte le interfacce che al momento sono "attive" così come le loro velocità di input. Per i nostri scopi, ci preoccupiamo solo dei tassi di input. Le interfacce con velocità di input inaspettatamente elevate possono essere vittime del loop. Il dispositivo collegato a un'interfaccia con una frequenza di input inaspettatamente elevata è probabilmente più vicino all'origine del loop. Le interfacce con tassi di output inaspettatamente elevati probabilmente ci portano lontano dalla fonte del loop.
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
Utilizzare questo comando per verificare il modo in cui lo switch locale ritiene che lo spanning-tree sia convergente. Tenete a mente le differenze nei vari sapori di Spanning-Tree. Gli switch Catalyst eseguono rapid-PVST per impostazione predefinita, ma supportano PVST e 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
Questo metodo semplice e diretto evita le acquisizioni dei pacchetti, che richiedono molto tempo, elimina la necessità di focalizzare l'attenzione sui TCN dello spanning tree e mantiene il problema in primo piano nell'indagine. Elimina inoltre la possibilità di "indovinare e controllare" la risoluzione dei problemi.
Si consideri il seguente diagramma della topologia:
Lo Spanning-Tree blocca più porte in questa topologia a causa delle interconnessioni ridondanti tra gli switch. In questo esempio, l'immagine X gialla rappresenta le porte di blocco. Le porte di inoltro sono tutte designate o root, a seconda della posizione dello switch locale rispetto al bridge radice. Le frecce verdi rappresentano il normale flusso previsto del traffico di trasmissione che un client di esempio invierebbe in questa rete.
Anche se non molto complessa, questa rete offre molte opportunità di formazione di loop a causa dei molti collegamenti ridondanti.
Questo frammento della topologia più ampia si concentra sui ruoli e gli stati dello spanning-tree dello switch di accesso a cui il server si connette.
Valutare se esiste un collegamento unidirezionale che impedisce allo switch di accesso a valle di ricevere BPDU sulla porta radice. Lo Spanning-Tree si riconverge in risposta e ne consegue un loop di livello 2.
La porta radice precedente su ACCESS-C non riceve più BPDU da DISTRO-B. Lo switch non lo riconosce più come percorso valido alla radice, quindi la porta con priorità più alta che blocca il traffico diventa ROOT/FORWARDING. La porta principale precedente passa a DESIGNATED/FORWARDING. Questa riconversione genera un loop di inoltro.
Il diagramma mostra l'impatto del loop sul traffico di broadcast inviato dal nostro client. A meno che il loop non venga interrotto, il traffico continua a loop in modo indefinito e potenzialmente in entrata e in uscita da uno switch con impatto su più interfacce. È possibile visualizzare più frecce rosse che rappresentano la direzione del traffico con loop.
Il problema continua a crescere con l'aumento del traffico a ciclo continuo. Per impostazione predefinita, la famiglia di switch Catalyst 9000 sfrutta un robusto meccanismo CoPP (Control-Plane Policing), a differenza di alcuni prodotti. Sugli switch con un'interfaccia virtuale dello switch locale (SVI) in una VLAN con loop, il traffico di broadcast all'interno della VLAN viene indirizzato alla CPU. Senza CoPP, il traffico indirizzato può interrompere la CPU dello switch. Questa situazione tende a peggiorare, in quanto gli switch vittime non sono in grado di partecipare allo Spanning-Tree come previsto.
Una delle sfide iniziali che dobbiamo affrontare per risolvere questo tipo di problemi è stabilire da dove iniziare. Alla fine, la posizione in cui iniziamo non è molto importante. Tutti i dispositivi interessati dal loop vengono infine tracciati fino all'origine del loop.
Nell'esempio, si inizia dallo switch a cui il client interessato si connette.
Punto di partenza - ACCESS-A - Connessione diretta al client
Questo metodo rende irrilevante il punto iniziale. Tutte le interfacce interessate puntano verso l'origine del problema. Ovunque si cominci, seguendo questo processo si arriva all'origine del loop/riflessione. In questo scenario, il client interessato si connette allo switch ACCESS-A. Ecco da dove cominciamo. La prima fase di questo processo consiste nel considerare le velocità di input su tutte le interfacce attive.
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
Le dimensioni medie dei pacchetti vengono calcolate dividendo i byte al secondo per i pacchetti al secondo. Nell'esempio, le dimensioni medie del pacchetto sono di circa 132 byte. Ciò suggerisce un elevato volume di piccoli pacchetti che distorce la media. Un volume elevato di ARP, ad esempio, può causare la stessa distorsione rispetto alle dimensioni medie dei pacchetti previste in una rete di produzione e suggerisce che la porta sia vittimizzata dalla trasmissione.
Nessuno dei collegamenti a valle mostra una velocità di input anomala. L'unica porta potenzialmente interessata è la porta radice, ovvero l'uplink verso il livello di distribuzione. Prima di passare al dispositivo successivo, considerare prima lo spanning-tree per lo switch.
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>
In questo caso, è utile conoscere la rete e il modo in cui si prevede che spanning-tree converga. Te1/1/1 è la porta radice prevista. Twe1/1/2 si connette anche a uno switch e a uno switch in avanti, ma la sua velocità di input è di 0 pacchetti/sec in modo che si sappia che l'altra estremità del collegamento viene bloccata correttamente. Tutto sembra a posto per quanto riguarda Spanning-Tree. A questo punto, viene confermato il peer di collegamento sulla porta interessata.
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
Switch Next-Hop - DISTRO-A
Il passaggio successivo è la ripetizione dell'attività precedente sullo switch che si connette all'interfaccia sospetta. Esegui "show interfaces | include is up|input rate" per identificare le interfacce con velocità di ingresso sospette.
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.
Su DISTRO-A, abbiamo trovato due interfacce con velocità di input superiori alle aspettative. La natura dei cicli indica che in genere esistono più percorsi all'origine. Entrambe le interfacce sono note, ma prima controlliamo Spanning-Tree per trovare qualcosa che non sia normale.
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>
Se si controlla la posizione di DISTRO-A nella rete, si osserverà che tutte le porte di questo switch devono essere inoltrate. Ha una porta radice (Twe1/1/1) che la connette direttamente al bridge radice. Tutti gli downlink e le interconnessioni con altri switch sono progettati e inoltrati. Questa opzione consente di tenere traccia dell'output dello Spanning-Tree.
Ora, controlliamo i peer sulle nostre interfacce sospette e decidiamo dove andare dopo. Entrambe le direzioni determinano il nostro arrivo all'origine del loop.
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
Prima si esegue il check-out di CORE, ma in questo scenario sarebbe ugualmente valido il passaggio ad ACCESS-B.
Switch Next-Hop - 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
Poiché questo switch è il root bridge, ci si aspetterebbe che tutte le sue interfacce avanzino. Confermare rapidamente con "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
Non ci sono percorsi imprevisti di entrata per la trasmissione. In base alle informazioni a nostra disposizione, il loop si trova a valle del core. Ora controlliamo i nostri colleghi sui nostri downlink.
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
Siamo appena arrivati da DISTRO-A. Potremmo rivedere DISTRO-A e controllare l'altra interfaccia/peer su quello switch che era contrassegnato come sospetto, oppure possiamo andare su DISTRO-B. Poi controlliamo DISTRO-B.
Switch Next-Hop - 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
Diamo un'occhiata veloce a spanning-tree per assicurarci che le cose appaiano come previsto.
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
Lo Spanning-Tree di questo switch corrisponde a quello che ci si aspetta da una rete stabile. Possiamo vedere la nostra porta radice convergere come previsto e che la nostra interconnessione a DISTRO-B (Twe1/1/4) blocchi. Le nostre interfacce di accesso sono progettate per l'inoltro.
Ora investighiamo i nostri colleghi sulle interfacce sospette.
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
Siamo appena arrivati dal CORE e abbiamo già visitato DISTRO-A. In base ai risultati ottenuti finora, la logica ci invia ad ACCESS-C.
ACCESS-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.
Questo interruttore è ovviamente influenzato dal loop. Due interfacce mostrano segni di vittimizzazione. Esiste anche un uplink al livello di distribuzione che è inaspettatamente silenzioso. Prendiamo nota di queste osservazioni e controlliamo Spanning-tree accanto per vedere se qualcosa spicca.
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
Ancora una volta, è utile conoscere le operazioni Spanning-Tree e le aspettative della rete. In base al diagramma precedente che mostra la convergenza prevista dello Spanning-Tree, è previsto che ACCESS-C abbia due porte bloccanti. Nell'output di show spanning-tree è elencata un'unica porta di blocco, un enorme flag rosso. Questo potrebbe non essere evidente durante la risoluzione dei problemi, quindi vediamo che cosa altro spicca su questo switch è fuori dalla norma.
Gli switch di accesso in una rete a livelli in genere dispongono di una porta radice e di una o più porte alternative alla porta radice. I downlink lontani dal bridge radice sono in genere "designati" e "inoltranti". Twe1/1/1 è indicato come porta designata, il che significa che ritiene di essere più vicina al ponte principale che al partner di collegamento. Nel diagramma non sono elencati i numeri di porta, quindi è necessario verificare quali dispositivi si connettono a quali porte del dispositivo sospetto.
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
Nell'interfaccia Twe1/1/1 non è elencato alcun router adiacente. Ciò indica che il frame CDP inviato dal peer non arriva (o arriva e non può essere elaborato) e suggerisce un collegamento unidirezionale in questo contesto. A questo punto, vi sono prove sufficienti per esaminare ulteriormente il collegamento tra DISTRO-B e ACCESS-C.
Velocità di input pari a zero su questa interfaccia, mentre ci si aspetta che l'altra estremità venga inoltrata in base all'output dello spanning-tree e alla velocità di output dell'interfaccia. In combinazione con la convergenza STP inattesa in cui ciascuna estremità del collegamento dichiara di essere stata designata e la mancanza di informazioni CDP, questo collegamento è unidirezionale.
Il modo più rapido per interrompere il loop in questa situazione sarebbe quello di chiudere Twe1/1/1 su ACCESS-A. Una volta chiuso Twe1/1/1, il loop si interrompe fisicamente. Una volta che il loop è fisicamente interrotto, la tempesta delle trasmissioni inizia immediatamente a sprofondare.
Si è trattato di uno scenario semplificato, ma ne illustra il concetto. Tracciare le interfacce interessate fino all'origine del loop.
Riepilogo
In questo scenario è stata illustrata la metodologia di base per la risoluzione rapida e accurata dei problemi dei loop di livello 2. Il metodo può essere riassunto nei passi seguenti:
ACCESS-C#show interfaces | in is up|input rate
2. Determinare i dispositivi peer che si connettono alle interfacce sospette. Il loop si trova a valle di una di queste interfacce. Più percorsi puntano verso il loop, ma tutti i percorsi conducono alla sorgente.
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/1
3. Alcune reti dispongono di dispositivi con percorsi di inoltro multipli. Controllare lo spanning-tree per verificare che la topologia converga come previsto. Verificare il blocco delle interfacce di blocco.
ACCESS-C#show spanning-tree
È possibile integrare questi passaggi e creare una topologia man mano che si passa da un dispositivo all'altro. Alla fine si arriva all'origine del loop.
Il loop può verificarsi quando alcuni fattori impediscono allo spanning-tree di convergere come previsto. In questo scenario, un collegamento unidirezionale ha causato l'inoltro di uno switch di accesso su un collegamento che si prevede venga bloccato.
Le tempeste di trasmissione si verificano anche quando dispositivi anomali o sospetti ricollegano o riflettono il traffico nella rete.
La metodologia descritta in questo documento consente ai professionisti della rete di individuare rapidamente l'origine di qualsiasi loop di livello 2 o scenario di riflessione del traffico.
Infine, perché non i cittadini di paesi terzi?
Una pratica comune nel campo è quella di concentrarsi e inseguire i TCN Spanning-Tree durante la risoluzione dei problemi dei loop. Raccomandiamo di opporvisi a favore dei tassi di input. La famiglia di switch Catalyst 9000 include una robusta policy CoPP (Control-Plane Policing) per prevenire interruzioni del percorso punt dovute al volume del traffico puntato. Tuttavia, il protocollo CoPP sugli switch Catalyst 9000 esegue la polizia sulle BPDU se il volume supera il valore del policer di piattaforma. Pertanto, anche se non si rileva un elevato utilizzo della CPU, lo spanning-tree su un Catalyst 9000 è vittima di questa condizione. Altre piattaforme di switch, inclusi i Catalyst legacy come le linee 2960, 3560, 3750 e 4k, non utilizzano il protocollo CoPP e possono essere facilmente sopraffatte da un loop. Qualsiasi dispositivo è potenzialmente vittima del loop, il che rende spanning-tree competitivo con i milioni di broadcast errate sul percorso punt della CPU. Di conseguenza, i TCN generati sono spesso falsi positivi e conducono un ingegnere nel percorso sbagliato.
Sugli switch Catalyst sono disponibili funzionalità opzionali che si rafforzano sui loop di layer 2. Queste funzionalità e le procedure ottimali mirano a prevenire i loop prima che si verifichino e a ridurne l'impatto nel caso in cui si verifichino.
Caratteristiche
RootGuard: Root Guard impedisce che le interfacce diventino porte radice. Se viene ricevuta una BPDU superiore, l'interfaccia viene messa in uno stato di incoerenza radice. Ciò è particolarmente utile se la rete contiene connessioni a dispositivi gestiti da altre organizzazioni. In genere, questo viene applicato ai downlink del livello di distribuzione che si trovano di fronte al livello di accesso. Non si prevede che le BPDU di qualità superiore arrivino mai dal basso in una rete stabile.
LoopGuard: in genere, in STP, le porte radice e le porte alternative ricevono i BPDU mentre le porte designate li trasmettono. Questa relazione può impedire a spanning-tree di rispondere ai collegamenti unidirezionali. La funzione Loop Guard impedisce che vengano designate porte alternative o radice. La funzione Loop Guard porta l'interfaccia nello stato err-disabled se i BPDU non vengono ricevuti ed elaborati regolarmente dall'interfaccia.
BPDU Guard: questa funzione funziona quando si pone un'interfaccia in stato err-disabled se si riceve una BPDU su una porta configurata. Configurarlo sulle porte perimetrali dove non è previsto che un altro dispositivo di rete si connetta. Questa funzione viene spesso utilizzata in combinazione con Portfast.
PortFast: Portfast viene utilizzata su porte edge, per lo più per l'accesso ma anche per i trunk in alcuni scenari. Consente a una porta edge di abbandonare le normali fasi di spanning-tree e passare direttamente all'inoltro. In questo modo si risparmia tempo dalla prospettiva dell'endpoint e si impedisce a una porta sul bordo instabile di trasmettere i TCN. Portfast deve essere sempre utilizzato con BPDUuard per evitare di indurre un loop in caso di connessione accidentale di un dispositivo di rete.
Ulteriori procedure ottimali
Scoping VLAN: consente di usare solo le VLAN necessarie sui trunk. Ciò limita l'ambito dei loop e impedisce che un problema localizzato si trasformi in un'interruzione a livello di rete.
Uso di VLAN non operative come native: la best practice è usare una VLAN non operativa per i trunk. Molte reti utilizzano la VLAN nativa predefinita (1), che si estende sull'intera rete. Utilizzare una VLAN non operativa come porta nativa per limitare ulteriormente l'ambito potenziale di un loop.
Use Uniform Path Cost Calculation Method: per impostazione predefinita, sugli switch Catalyst serie 9000 viene eseguito il metodo di calcolo del costo del percorso lungo con IOS XE 17.6. Per impostazione predefinita, le versioni precedenti potrebbero essere brevi. Per impostazione predefinita, la maggior parte degli switch Catalyst legacy funziona a corto raggio. Gli ambienti in cui vengono utilizzati metodi di costo dei percorsi misti hanno problemi a rispondere ai cambiamenti e ai disturbi della topologia. Assicurarsi che tutti gli switch eseguano lo stesso metodo. Per ulteriori informazioni, consultare la guida alla configurazione della piattaforma per spanning-tree.
Utilizzare il comando "spanning-tree path-method <long/short>" per modificare il metodo di costo del percorso. Per confermare il metodo in uso, viene usato il comando "Show spanning-tree summary".
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>
Configurazione dello Spanning Tree Protocol - Switch Catalyst 9300
Configurazione delle funzionalità opzionali dello Spanning-Tree - Switch Catalyst 9300
Configurazione delle funzionalità opzionali dello Spanning-Tree - Switch Catalyst 9600
Configurazione del protocollo UDLD (Unidirectional Link Detection) - Switch Catalyst 9300
Risoluzione dei problemi relativi alle operazioni del Control Plane sugli switch Catalyst 9000
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
14-Nov-2023 |
Versione iniziale |