In questo documento vengono descritte le funzioni del protocollo Spanning Tree Protocol allo scopo di migliorare la stabilità della rete di layer 2.
in questo documento si presume che il lettore abbia familiarità con le operazioni di base dello Spanning Tree Protocol (STP).
per ulteriori informazioni, fare riferimento a Comprensione e configurazione dello Spanning Tree Protocol (STP) sugli switch Catalyst.
Questo documento è basato sugli switch Catalyst con Cisco IOS, ma la disponibilità delle funzionalità descritte può dipendere dalla versione software in uso.
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.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Il protocollo STP (Spanning Tree Protocol) risolve le topologie fisicamente ridondanti in topologie senza loop e di tipo albero. Un problema con STP è che i guasti hardware possono causare malfunzionamenti, portando a loop di inoltro (loop STP). Questi loop possono causare interruzioni significative della rete.
Questo documento descrive la funzione di protezione loop STP che ha lo scopo di migliorare la stabilità delle reti di layer 2. Descrive inoltre il rilevamento di distorsione della BDPU (Bridge Protocol Data Unit). Il rilevamento dello skew della BPDU è una funzione diagnostica che genera messaggi syslog quando i BPDU non vengono ricevuti in tempo.
La funzione STP loop guard è stata introdotta nel software Cisco IOS® versione 12.1(12c) EW per gli switch Catalyst 4500 e nel software Cisco IOS versione 12.1(11b) EX per Catalyst 6500.
Internamente, STP assegna a ciascuna porta bridge (o switch) un ruolo basato su configurazione, topologia, posizione relativa della porta nella topologia e altre considerazioni.
Il ruolo porta definisce il comportamento della porta dal punto di vista STP. In base al ruolo della porta, la porta invia o riceve BPDU STP e inoltra o blocca il traffico di dati.
Di seguito viene riportato un breve riepilogo di ciascun ruolo della porta STP:
Designata: viene selezionata una porta designata per collegamento (segmento). La porta designata è la porta più vicina al bridge radice. Questa porta invia pacchetti BPDU sul collegamento (segmento) e inoltra il traffico verso il bridge radice. In una rete convergente STP, ciascuna porta designata si trova nello stato di inoltro STP.
Radice: il bridge può avere una sola porta radice. La porta radice è la porta che conduce al bridge radice. In una rete convergente STP, la porta radice si trova nello stato di inoltro STP.
Alternativo: le porte alternative conducono al bridge radice ma non sono porte radice. Le porte alternative mantengono lo stato di blocco STP.
Backup: questo è un caso speciale quando due o più porte tra gli stessi switch sono collegate tra loro, direttamente o tramite supporti condivisi. In questo caso, viene designata una porta e le altre porte vengono bloccate. Il ruolo per questa porta è backup.
La funzionalità STP Loop Guard fornisce una protezione aggiuntiva dai loop di inoltro di layer 2 (loop STP). Un loop STP si crea quando una porta di blocco STP in una topologia ridondante passa erroneamente allo stato di inoltro. Ciò si verifica in genere perché una delle porte di una topologia con ridondanza fisica (non necessariamente la porta di blocco STP) non riceve più le BPDU del protocollo. STP basa il suo funzionamento sulla ricezione o la trasmissione continua di BPDU in base al ruolo della porta. Le BPDU vengono trasmesse sulla porta designata e ricevute dalla porta non designata.
Quando una delle porte in una topologia con ridondanza fisica non riceve più BPDU, il protocollo STP ritiene che la topologia sia priva di loop. Alla fine, la porta che blocca la porta alternativa o di backup diventa designata e passa a uno stato di inoltro (questa situazione crea un loop).
La feature di protezione del loop crea controlli aggiuntivi. Se i BPDU non vengono ricevuti su una porta non designata e il controllo del loop è abilitato, tale porta viene spostata nello stato di blocco incoerente del loop STP, anziché nello stato di ascolto, apprendimento o inoltro. Senza la funzionalità Loop Guard, la porta assume il ruolo di porta designata. La porta passa allo stato di inoltro STP e crea un loop.
Quando il controllo loop blocca una porta incoerente, viene registrato questo messaggio:
%SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/24 on VLAN0050.
Dopo aver ricevuto la BPDU su una porta in uno stato STP con loop incoerente, la porta passa a un altro stato STP. Per la BPDU ricevuta, ciò significa che il ripristino è automatico e che non è necessario alcun intervento. Dopo il ripristino, viene registrato questo messaggio:
%SPANTREE-2-LOOPGUARD_UNBLOCK: Loop guard unblocking port FastEthernet0/24 on VLAN0050.
Considerare questo esempio per illustrare questo comportamento:
Lo switch A è lo switch radice. Lo switch C non riceve le BPDU dallo switch B a causa di un errore di collegamento unidirezionale sul collegamento tra lo switch B e lo switch C.
Errore di collegamento unidirezionale
Senza protezione loop, la porta di blocco STP sullo switch C passa allo stato di ascolto STP alla scadenza del timer max_age, quindi passa allo stato di inoltro due volte il tempo forward_delay. Questa situazione si ripete ciclicamente.
Ciclo creato
Con la protezione loop abilitata, la porta di blocco sullo switch C passa allo stato di incoerenza del loop STP quando il timer max_age scade. Una porta in stato di loop incoerente STP non passa il traffico dell'utente, quindi non viene creato un loop. Lo stato di incoerenza del ciclo è in effetti uguale a uno stato di blocco.
Protezione loop abilitata impedisce il loop
La funzione di protezione del loop è abilitata per ciascuna porta. Tuttavia, finché blocca la porta a livello STP, il controllo loop blocca le porte incoerenti per singola VLAN (a causa del protocollo STP per VLAN).
In altri termini, se i BPDU non vengono ricevuti sulla porta trunk per una sola VLAN specifica, solo la VLAN viene bloccata (spostata in stato STP non coerente nel loop). Per lo stesso motivo, se abilitato su un'interfaccia EtherChannel, l'intero canale viene bloccato per una VLAN specifica, non solo per un collegamento (perché EtherChannel è considerato come una porta logica dal punto di vista STP).
Su quali porte è abilitato il controllo loop? La risposta più ovvia è data dal blocco delle porte. Tuttavia, non è corretto al 100%. Il controllo loop deve essere abilitato sulle porte non designate (più precisamente, sulle porte radice e alternative) per tutte le possibili combinazioni di topologie attive. Finché il controllo del loop non è una funzione per VLAN, la stessa porta (trunk) può essere designata per una VLAN e non per l'altra.
Devono essere presi in considerazione anche i possibili scenari di failover.
Esempio
Porte con Loop Guard abilitato
Per impostazione predefinita, il controllo loop è disabilitato e questo comando viene utilizzato per abilitare il controllo loop nell'interfaccia specificata:
Router(config)#interface gigabitEthernet 1/1 Router(config-if)#spanning-tree guard loop
È possibile attivare la protezione loop su tutti i collegamenti point-to-point. Il collegamento point-to-point viene rilevato dallo stato duplex del collegamento. Se il duplex è pieno, il collegamento viene considerato point-to-point. È ancora possibile configurare o ignorare le impostazioni globali per ciascuna porta.
Utilizzare questo comando per abilitare la protezione loop a livello globale:
Router(config)#spanning-tree loopguard default
Utilizzare questo comando per disabilitare la protezione loop per ciascuna interfaccia:
Router(config-if)#no spanning-tree guard loop
Utilizzare questo comando per disabilitare globalmente la protezione loop:
Router(config)#no spanning-tree loopguard default
Utilizzare questo comando per verificare lo stato di protezione del loop:
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 funzionalità Loop Guard e UDLD (Unidirectional Link Detection) si sovrappongono, in parte nel senso che entrambe proteggono dagli errori STP causati dai collegamenti unidirezionali. Tuttavia, queste due caratteristiche differiscono per funzionalità e per il modo in cui affrontano il problema.
Nella tabella seguente vengono descritte le funzionalità di protezione loop e UDLD:
| Funzionalità | Loop Guard | UDLD |
|---|---|---|
| Configurazione | Per porta | Per porta |
| Granularità azione | Per VLAN | Per porta |
| Ripristino automatico | Sì | Sì, con la funzione di timeout di errr-disable |
| Protezione da errori STP causati da collegamenti unidirezionali | Sì, se abilitata su tutte le porte principali e alternative nella topologia ridondante | Sì, se abilitato su tutti i collegamenti nella topologia ridondante |
| Protezione da errori STP causati da problemi software (lo switch designato non invia BPDU) | Sì | No |
| Protezione contro cavi non corretti. | No | Sì |
In base alle diverse considerazioni di progettazione, è possibile scegliere il protocollo UDLD o la funzione di protezione del loop. Per quanto riguarda l'STP, la differenza più evidente tra le due funzionalità è l'assenza di protezione in UDLD dagli errori STP causati da problemi nel software.
Di conseguenza, lo switch designato non invia pacchetti BPDU. Tuttavia, questo tipo di errore è (in ordine di grandezza) più raro rispetto a quello causato dai collegamenti unidirezionali. In cambio, il protocollo UDLD può essere più flessibile in caso di collegamenti unidirezionali su EtherChannel. In questo caso, UDLD disabilita solo i collegamenti non riusciti e il canale può continuare a funzionare con i collegamenti rimanenti. In questo caso, la protezione del loop lo mette in uno stato incoerente per bloccare l'intero canale.
Inoltre, la protezione loop non funziona sui collegamenti condivisi o nelle situazioni in cui il collegamento è stato unidirezionale dopo l'attivazione del collegamento. Nell'ultimo caso, la porta non riceve mai BPDU e viene designata. Poiché questo comportamento potrebbe essere normale, questo caso particolare non è coperto da protezione in loop. Il protocollo UDLD offre protezione contro questo scenario. Come descritto, il livello di protezione più alto viene fornito quando si abilita il protocollo UDLD e la protezione loop.
Root Guard
La protezione root si esclude a vicenda con la protezione loop. La protezione root viene utilizzata sulle porte designate e non consente alla porta di diventare non designata. Il controllo loop funziona su porte non designate e non consente che la porta venga designata fino alla scadenza di max_age. Impossibile abilitare la protezione radice sulla stessa porta della protezione del loop. Quando il controllo loop è configurato sulla porta, disabilita il controllo radice configurato sulla stessa porta.
Uplink Fast e Backbone Fast
Sia uplink fast che backbone fast sono trasparenti alla protezione del loop. Quando max_age viene saltato dalla backbone in modo rapido al momento della riconvergenza, non attiva la protezione in loop. Per ulteriori informazioni su uplink fast e backbone fast, fare riferimento a:
Descrizione e configurazione della funzionalità Cisco Uplink Fast
Comprensione e configurazione di Backbone Fast sugli switch Catalyst
PortFast e BPDU Guard e VLAN dinamica
Non è possibile abilitare la funzione Loop Guard sulle porte con portfast abilitata. Poiché BPDU Guard funziona sulle porte abilitate portfast, alcune restrizioni si applicano a BPDU Guard. Non è possibile abilitare la funzione di protezione in loop sulle porte VLAN dinamiche perché per queste porte è abilitata la funzione portfast.
Collegamenti condivisi
La protezione del ciclo non deve essere abilitata nei collegamenti condivisi. Se si abilita la protezione loop sui collegamenti condivisi, il traffico proveniente dagli host connessi ai segmenti condivisi può essere bloccato.
MST (Multiple Spanning Tree)
La protezione in loop funziona correttamente nell'ambiente MST.
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
3.0 |
01-Jun-2026
|
Ortografia, grammatica, struttura della frase, spaziatura e così via aggiornati. |
2.0 |
18-Dec-2023
|
Certificazione |
1.0 |
14-Oct-2022
|
Versione iniziale |