In questo documento viene descritto come il protocollo Unidirectional Link Detection (UDLD) può aiutare a prevenire i loop e le anomalie del traffico nelle reti commutate.
Nessun requisito specifico previsto per questo documento.
In questo documento viene descritto il funzionamento generale del protocollo UDLD. Gli esempi di configurazione e verifica riportati in questo documento sono stati convalidati sugli switch Cisco Catalyst serie 9300 con Cisco IOS XE versione 17.X.
Nota: La sintassi dei comandi, i valori predefiniti, gli intervalli dei timer e l'output possono variare a seconda della piattaforma e della versione del software.
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 la topologia fisica ridondante in una topologia ad albero senza loop. A tale scopo, blocca una o più porte. Se una o più porte sono bloccate, non vi sono loop nella topologia di inoltro. A tal fine, il protocollo STP trasmette e riceve unità BPDU (Bridge Protocol Data Unit). Se una porta in stato STP bloccante o in stato di eliminazione smette di ricevere BPDU dal bridge designato, STP alla fine esaurisce le informazioni associate a tale porta e le sposta in uno stato di inoltro.
Questo può creare un loop STP in cui i pacchetti iniziano a circolare a tempo indefinito lungo il percorso con loop e consumano più larghezza di banda e risorse. Ciò può causare l'interruzione della rete.
Come è possibile che lo switch non riceva i BPDU quando la porta è attiva? Ciò è dovuto a un collegamento unidirezionale.
Un collegamento viene considerato unidirezionale quando:
Il collegamento è attivo su entrambi i lati del collegamento.
Il dispositivo locale non riceve i pacchetti inviati dal dispositivo remoto, mentre il dispositivo remoto riceve i pacchetti inviati dal dispositivo locale.
Nello scenario successivo, le frecce indicano il flusso delle BPDU STP:
Topologia stato porta STP
Durante le condizioni mostrate in questa topologia, l'interfaccia sullo switch B verso lo switch C è la porta designata per il segmento B-C e trasmette i BPDU verso lo switch C. L'interfaccia sullo switch C verso lo switch B è una porta non designata nel classico IEEE 802.1D STP. o una porta alternativa in RSTP e rimane nello stato blocking/scartamento mentre riceve ed elabora BPDU dallo switch B. Anche se l'interfaccia sullo switch C è nello stato blocking o scartamento, la porta continua a ricevere ed elaborare BPDU; questi stati impediscono alla porta di inoltrare i frame di dati, ma non di ricevere BPDU.
Considerate cosa succede se il collegamento B-C diventa unidirezionale e la direzione B → C fallisce. Lo switch C non può più ricevere BPDU dallo switch B, mentre lo switch B può ricevere BPDU trasmessi dallo switch C. Lo switch C conserva le informazioni acquisite con l'ultima BPDU finché non scadono. Con il classico IEEE 802.1D STP e l'età massima predefinita di 20 secondi, questa operazione può richiedere fino a 20 secondi. Una volta scadute le informazioni del parametro STP, lo switch C non considera più lo switch B superiore su quel segmento e la porta può passare da blocco ad ascolto, apprendimento ed eventualmente inoltro.
In questo modo viene creato un loop di inoltro di livello 2 perché nel triangolo A-B-C non è più presente una porta bloccata. I frame broadcast, unicast sconosciuto e multicast possono circolare ripetutamente all'interno del loop, occupando larghezza di banda, CPU e potenzialmente causando un'ondata di broadcast.
Questo scenario può compromettere la rete, il che è un altro possibile problema causato da un collegamento unidirezionale come un buco nero del traffico.
Flusso BPDU STP
UDLD è un protocollo di layer 2 che integra i meccanismi di rilevamento dei collegamenti di layer 1 identificando le comunicazioni unidirezionali e le incoerenze specifiche dei cavi tra dispositivi connessi direttamente.
Al layer 1, la negoziazione automatica risolve la segnalazione fisica e il rilevamento degli errori. UDLD esegue attività che la negoziazione automatica non è in grado di eseguire, ad esempio il rilevamento delle identità dei nodi adiacenti e l'arresto delle porte con connessione errata. Quando si abilita sia la negoziazione automatica che il protocollo UDLD; I rilevamenti di livello 1 e livello 2 interagiscono per impedire connessioni unidirezionali fisiche e logiche e il malfunzionamento di altri protocolli.
il protocollo UDLD si basa sullo scambio di pacchetti tra dispositivi adiacenti. Per stabilire una relazione bidirezionale tra dispositivi adiacenti UDLD, i dispositivi connessi direttamente devono supportare entrambi il protocollo UDLD e averlo abilitato sulle interfacce connesse. Verificare lo stato bidirezionale su entrambi i dispositivi.
Ogni porta dello switch configurata con il protocollo UDLD invia pacchetti UDLD contenenti l'ID della porta/dispositivo e gli ID delle porte/dispositivi adiacenti rilevati da UDLD su questa porta.
Le porte adiacenti vedono il proprio ID porta/dispositivo (eco) nei pacchetti provenienti dall'altro lato del collegamento. Se la porta non legge il proprio ID porta/dispositivo nei pacchetti UDLD in arrivo per un determinato periodo di tempo, il collegamento viene considerato unidirezionale.
Questo algoritmo echo consente di rilevare i seguenti problemi:
Il collegamento è attivo su entrambi i lati; tuttavia, i pacchetti vengono ricevuti solo da un lato.
Errori di connessione (cavo) quando le fibre di ricezione e trasmissione non sono collegate alla stessa porta sul lato remoto.
Quando il protocollo UDLD rileva una condizione unidirezionale, l'interfaccia locale di rilevamento viene messa nello stato err-disabled. Lo stato dell'interfaccia remota dipende dal rilevamento UDLD remoto e dal comportamento del collegamento fisico. Sulla console viene visualizzato un messaggio simile al seguente:
UDLD-3-DISABLE: Unidirectional link detected on port 1/2. Port disabled
Un'interfaccia disabilitata da UDLD rimane nello stato err-disabled finché non viene ripristinata manualmente o finché non scade un timer di ripristino abilitato per la funzione errdisable. Correggere gli errori di fibra, ricetrasmettitore, cablaggio o interfaccia remota prima del ripristino. Utilizzare shutdown e no shutdown per il ripristino manuale. Sulle piattaforme che lo supportano, il comando udld reset ripristina le interfacce disabilitate/arrestate da UDLD. Dopo il ripristino, eseguire il comando show interfaces status err-disabled, show udld <id-interfaccia> e show udld neighbors per verificare che l'interfaccia sia operativa e che la relazione UDLD sia bidirezionale. Esaminare i registri di sistema per verificare che l'errore non si ripeta.
Il protocollo UDLD può operare in due modalità: Normale e aggressivo:
Quando il protocollo UDLD è abilitato su un'interfaccia supportata, la modalità normale è la modalità operativa predefinita, a meno che la modalità aggressiva non sia configurata esplicitamente. UDLD funziona con i meccanismi di layer 1, ad esempio la negoziazione automatica, per convalidare un collegamento. I meccanismi di layer 1 rilevano i segnali fisici e i problemi di collegamento, mentre UDLD identifica i dispositivi adiacenti e verifica i cavi in fibra che si connettono alle porte corrette.
In modalità normale, UDLD rileva una condizione unidirezionale quando i fili di fibra sono collegati in modo errato tra le porte e i meccanismi di layer 1 non rilevano l'errore di cablaggio. Se i fili di fibra si connettono alle porte corrette ma il traffico fluisce in una sola direzione, la modalità normale UDLD contrassegna il collegamento logico come non determinato e non disabilita la porta. Questo comportamento si basa sui meccanismi di layer 1 per rilevare il guasto fisico. Se un filamento in fibra è disconnesso e la negoziazione automatica rileva il guasto fisico, il collegamento non rimane attivo. Il protocollo UDLD non esegue alcuna azione di arresto del sistema perché il layer 1 ha già rilevato il problema e lo stato del collegamento logico UDLD è indeterminato.
La modalità aggressiva include le funzionalità di rilevamento della modalità normale e fornisce una protezione aggiuntiva per i collegamenti in fibra ottica point-to-point e a doppino intrecciato. Rileva i cavi in fibra non connessi e le condizioni in cui un endpoint non può inviare o ricevere traffico, una porta rimane attiva mentre l'altra è inattiva o un cavo in fibra viene disconnesso.
I pacchetti hello UDLD fungono da heartbeat per il collegamento point-to-point. Se il protocollo UDLD smette di ricevere questi pacchetti dopo che il collegamento è stato stabilito come bidirezionale, la modalità aggressiva tenta di ristabilire la relazione bidirezionale. Se UDLD non è in grado di ripristinare la relazione, la porta locale interessata viene disabilitata per impedire l'utilizzo continuato di un collegamento di cui non è possibile verificare il funzionamento bidirezionale.
Quando entrambi i trefoli di fibra risultano operativi sul layer 1, il protocollo UDLD controlla che si connettano alle porte adiacenti corrette e che il traffico scorra bidirezionalmente tra i router adiacenti previsti. La negoziazione automatica non può eseguire la convalida dell'identità della porta e del router adiacente perché funziona al livello 1.
Le informazioni UDLD scadono quando una porta con protocollo UDLD non riceve pacchetti UDLD dalla porta adiacente per l'intera durata del tempo di attesa. i timer si applicano alla manutenzione delle informazioni sugli elementi adiacenti UDLD sia in modalità normale che aggressiva; l'azione da eseguire dopo la scadenza dipende dalla modalità configurata e dalla condizione rilevata. Il tempo di attesa della porta è determinato dalla porta remota e dipende dall'intervallo tra i messaggi sul lato remoto. Più breve è l'intervallo tra i messaggi, più breve sarà il tempo di attesa e più veloce sarà il rilevamento. Le recenti implementazioni del protocollo UDLD consentono di configurare gli intervalli tra i messaggi. Le informazioni UDLD possono scadere a causa dell'elevato tasso di errori sulla porta causato da un problema fisico o da una mancata corrispondenza duplex. Questa perdita di pacchetto non indica che il collegamento è unidirezionale e che il protocollo UDLD in modalità normale non disabilita il collegamento.
È importante scegliere l'intervallo di messaggi appropriato per garantire il momento corretto per il rilevamento. L'intervallo tra i messaggi deve essere sufficientemente veloce da rilevare il collegamento unidirezionale prima della creazione del loop di inoltro; tuttavia, non deve sovraccaricare la CPU dello switch. In questo esempio, l'intervallo predefinito per i messaggi è 15 secondi. Per il classico scenario del timer STP IEEE 802.1D descritto, il tempo stimato di scadenza delle informazioni UDLD è inferiore al tempo stimato necessario affinché la porta bloccata raggiunga lo stato di inoltro.
Questo confronto non garantisce che il protocollo UDLD aggressivo ponga l'interfaccia nello stato err-disabled prima che il protocollo STP modifichi la topologia di inoltro. La scadenza approssimativa delle informazioni sui router adiacenti UDLD è tre volte superiore all'intervallo tra i messaggi. Ad esempio:
Texpiration ≈ message_interval × 3
Con l'intervallo predefinito dei messaggi Texpiration ≈ 15 × 3 = 45 secondi. Per il funzionamento classico di IEEE 802.1D STP, il tempo approssimativo per cui una porta bloccata può esaurire le informazioni STP memorizzate e passare attraverso gli stati di ascolto e apprendimento allo stato di inoltro è:
Tforward = max_age + (2 × forward_delay)
Con i timer STP predefiniti: Tforward = 20 + (2 × 15) = 50 secondi - Quando si confronta la scadenza delle informazioni sui router adiacenti UDLD con la transizione della porta STP, selezionare un intervallo di messaggi che consenta di mantenere: Texpiration < Avanti
In modalità aggressiva, dopo la scadenza delle informazioni sui router adiacenti UDLD, UDLD tenta di ristabilire la relazione bidirezionale inviando un messaggio al secondo per otto secondi. Se non è possibile ristabilire lo stato bidirezionale, UDLD disabilita la porta locale.
Nota: Questi calcoli sono approssimativi e si applicano al comportamento UDLD e allo scenario classico del timer STP IEEE 802.1D descritto in questo documento. La piattaforma distribuita, la versione del software, la modalità STP, i timer configurati e l'ora in cui si è verificato l'errore possono influire sull'intervallo effettivo.
Nota: Il calcolo classico di STP Treconvergence = max_age + (2 × forward_delay) non si applica alla normale convergenza rapida RSTP. Le informazioni del protocollo RSTP possono scadere quando i BPDU non vengono ricevuti per tre intervalli Hello consecutivi o quando viene raggiunta la condizione di validità massima applicabile. Una porta alternativa idonea può quindi passare rapidamente allo stato di inoltro. Il tempo totale di transizione dipende dalla topologia, dai ruoli delle porte, dal tipo di collegamento, dal processo di sincronizzazione e dalla condizione di errore. Pertanto, un calcolo del timer fisso non può garantire che UDLD rilevi o disabiliti un collegamento unidirezionale prima che RSTP modifichi la topologia di inoltro. Convalidare l'interazione tra UDLD e RSTP sulla piattaforma distribuita, sulla versione del software, sulla topologia e sulla configurazione del timer.
Esempi di condizioni aggiuntive rilevate dalla modalità aggressiva includono:
Alcune implementazioni di Ethernet PHY forniscono meccanismi di segnalazione degli errori remoti o di negoziazione dei collegamenti che possono causare la transizione di uno o entrambi gli endpoint del collegamento verso il basso dopo specifici errori fisici. Il comportamento varia a seconda della piattaforma, del tipo di interfaccia, del ricetrasmettitore, del supporto e della modalità di negoziazione. UDLD fornisce la convalida di layer 2 per le condizioni unidirezionali che la segnalazione a livello fisico non rileva. Quando un endpoint non può trasmettere/ricevere o quando un endpoint è attivo mentre l'altro è inattivo, il collegamento non riuscito non fornisce un percorso di inoltro completo e non forma un loop di inoltro. Tuttavia, se l'interfaccia rimane attiva, il traffico può continuare a essere inoltrato su un percorso non funzionante, creando un black hole. Il protocollo UDLD aggressivo rileva la perdita di comunicazione bidirezionale e disabilita la porta locale interessata se non è possibile ristabilire la relazione UDLD.
Abilitare il protocollo UDLD su entrambe le interfacce connesse. Configurare la stessa modalità UDLD su entrambi gli endpoint per garantire un rilevamento locale coerente degli errori e il comportamento della funzione err-disabled:
9300-1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
9300-1(config)#interface TenGigabitEthernet1/1/6
9300-1(config-if)#udld port
9300-1(config-if)#end
9300-2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
9300-2(config)#interface TenGigabitEthernet1/1/6
9300-2(config-if)#udld port
9300-2(config-if)#end
Nota: I comandi UDLD globali e il relativo ambito di interfaccia variano a seconda della piattaforma in uso. verificare il riferimento al comando della piattaforma di destinazione prima di utilizzare un comando globale.
Eseguire i comandi show udld <id-interfaccia> e show udld neighbors su entrambi gli endpoint del collegamento. Verificare che ciascuna interfaccia sia abilitata a livello operativo, che lo stato corrente sia Bidirezionale e che vengano visualizzati gli identificatori di porta e di dispositivo adiacente previsti:
9300-1#show udld TenGigabitEthernet1/1/6
Interface Te1/1/6
---
Port enable administrative configuration setting: Enabled
Port enable operational state: Enabled
Current bidirectional state: Bidirectional
Current operational state: Advertisement - Single neighbor detected
Message interval: 15000 ms
Time out interval: 5000 ms
Port fast-hello configuration setting: Disabled
Port fast-hello interval: 0 ms
Port fast-hello operational state: Disabled
Neighbor fast-hello configuration setting: Disabled
Neighbor fast-hello interval: Unknown
Entry 1
---
Expiration time: 37500 ms
Cache Device index: 1
Current neighbor state: Bidirectional
Device ID: F87A41A8CA00
Port ID: Te1/1/6
Neighbor echo 1 device: F87A41A8C180
Neighbor echo 1 port: Te1/1/6
TLV Message interval: 15 sec
No TLV fast-hello interval
TLV Time out interval: 5
TLV CDP Device name: 9300-2
9300-1#show udld neighbors
Port Device Name Device ID Port ID Neighbor State
---- ----------- --------- ------- --------------
Te1/1/6 F87A41A8CA00 1 Te1/1/6 Bidirectional
Total number of bidirectional entries displayed: 1
9300-2#show udld TenGigabitEthernet1/1/6
Interface Te1/1/6
---
Port enable administrative configuration setting: Enabled
Port enable operational state: Enabled
Current bidirectional state: Bidirectional
Current operational state: Advertisement - Single neighbor detected
Message interval: 15000 ms
Time out interval: 5000 ms
Port fast-hello configuration setting: Disabled
Port fast-hello interval: 0 ms
Port fast-hello operational state: Disabled
Neighbor fast-hello configuration setting: Disabled
Neighbor fast-hello interval: Unknown
Entry 1
---
Expiration time: 32500 ms
Cache Device index: 1
Current neighbor state: Bidirectional
Device ID: F87A41A8C180
Port ID: Te1/1/6
Neighbor echo 1 device: F87A41A8CA00
Neighbor echo 1 port: Te1/1/6
TLV Message interval: 15 sec
No TLV fast-hello interval
TLV Time out interval: 5
TLV CDP Device name: 9300-1
9300-2#show udld neighbors
Port Device Name Device ID Port ID Neighbor State
---- ----------- --------- ------- --------------
Te1/1/6 F87A41A8C180 1 Te1/1/6 Bidirectional
Total number of bidirectional entries displayed: 1
Il protocollo UDLD aggressivo può essere configurato sull'interfaccia con il comando udld port aggressive:
9300-1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
9300-1(config)#interface TenGigabitEthernet1/1/6
9300-1(config-if)#udld port aggressive
9300-1(config-if)#end
9300-2#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
9300-2(config)#interface TenGigabitEthernet1/1/6
9300-2(config-if)#udld port aggressive
9300-2(config-if)#end
Eseguire il comando show udld <id-interfaccia> su entrambi gli endpoint per verificare che la modalità aggressiva sia abilitata a livello operativo:
9300-1#show udld TenGigabitEthernet1/1/6
Interface Te1/1/6
---
Port enable administrative configuration setting: Enabled / in aggressive mode
Port enable operational state: Enabled / in aggressive mode
Current bidirectional state: Bidirectional
Current operational state: Advertisement - Single neighbor detected
Message interval: 15000 ms
Time out interval: 5000 ms
Port fast-hello configuration setting: Disabled
Port fast-hello interval: 0 ms
Port fast-hello operational state: Disabled
Neighbor fast-hello configuration setting: Disabled
Neighbor fast-hello interval: Unknown
Entry 1
---
Expiration time: 31200 ms
Cache Device index: 1
Current neighbor state: Bidirectional
Device ID: F87A41A8CA00
Port ID: Te1/1/6
Neighbor echo 1 device: F87A41A8C180
Neighbor echo 1 port: Te1/1/6
TLV Message interval: 15 sec
No TLV fast-hello interval
TLV Time out interval: 5
TLV CDP Device name: 9300-2
9300-2#show udld TenGigabitEthernet1/1/6
Interface Te1/1/6
---
Port enable administrative configuration setting: Enabled / in aggressive mode
Port enable operational state: Enabled / in aggressive mode
Current bidirectional state: Bidirectional
Current operational state: Advertisement - Single neighbor detected
Message interval: 15000 ms
Time out interval: 5000 ms
Port fast-hello configuration setting: Disabled
Port fast-hello interval: 0 ms
Port fast-hello operational state: Disabled
Neighbor fast-hello configuration setting: Disabled
Neighbor fast-hello interval: Unknown
Entry 1
---
Expiration time: 38600 ms
Cache Device index: 1
Current neighbor state: Bidirectional
Device ID: F87A41A8C180
Port ID: Te1/1/6
Neighbor echo 1 device: F87A41A8CA00
Neighbor echo 1 port: Te1/1/6
TLV Message interval: 15 sec
No TLV fast-hello interval
TLV Time out interval: 5
TLV CDP Device name: 9300-1
Eseguire il comando udld message time per modificare l'intervallo dei messaggi:
9300-1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
9300-1(config)#udld message time ?
<1-90> Time in seconds between sending of messages in steady state
Sugli switch Cisco Catalyst serie 3000 e 9000, il valore predefinito del tempo dei messaggi udld è compreso tra 1 e 90 secondi. Il valore predefinito è 15 secondi. Per verificare l'intervallo accettato e i valori predefiniti sugli altri sistemi, consultare le guide di riferimento dei comandi.
Per gli switch Catalyst 3560, fare riferimento alla configurazione del protocollo UDLD
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
2.0 |
18-Aug-2026
|
Controllo ortografico e grammaticale aggiornato, inserimento di righe orizzontali per separare le sezioni ai fini della leggibilità. |
1.0 |
09-Jul-2007
|
Versione iniziale |