Introduzione
In questo documento viene descritto come il protocollo UDLD (Unidirectional Link Detection) possa aiutare a prevenire loop e anomalie del traffico nelle reti commutate.
Prerequisiti
Requisiti
Nessun requisito specifico previsto per questo documento.
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware.
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.
Convenzioni
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Descrizione del problema
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 il processo STP che viene eseguito sullo switch con una porta in stato di blocco non riceve BPDU dallo switch a monte (designato), STP alla fine esaurisce le informazioni STP per la porta e le sposta nello 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 sempre 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? Il motivo è un collegamento unidirezionale.
Un collegamento è considerato unidirezionale quando si verifica quanto segue:
-
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.
Considerare questo scenario. Le frecce indicano il flusso di BPDU del protocollo STP.
Durante il normale funzionamento, il ponte B è una porta designata sul collegamento B-C. Il bridge B invia le BPDU alla porta C, che blocca la porta. La porta è bloccata mentre C vede le BPDU provenienti da B su quel collegamento.
Ora, considera cosa succede se il collegamento B-C fallisce in direzione C. C cessa di ricevere traffico da B, tuttavia, B riceve ancora traffico da C.
verso l'alto
C non riceve le BPDU sul collegamento B-C e analizza le informazioni ricevute con l'ultima BPDU. Questa operazione può richiedere fino a 20 secondi, a seconda del timer STP maxAge. Quando le informazioni STP scadono, le transizioni sulla porta passano dallo stato blocco allo stato ascolto e apprendimento, quindi infine allo STP inoltro. In questo modo si crea un loop, poiché nel triangolo A-B-C non sono presenti porte bloccate. I pacchetti scorrono lungo il percorso (B riceve ancora i pacchetti da C) che consuma ulteriore larghezza di banda fino a quando i collegamenti non sono completamente riempiti.
Questo scenario può compromettere la rete. Un altro possibile problema che può essere causato da un collegamento unidirezionale è un blackhole del traffico.
Come funziona il protocollo ULDP
UDLD è un protocollo di Layer 2 (L2) che funziona con i meccanismi di Layer 1 (L1) per determinare lo stato fisico di un collegamento. Sul Layer 1, la negoziazione automatica si occupa della segnalazione fisica e del rilevamento degli errori. UDLD esegue attività che la negoziazione automatica non è in grado di eseguire, ad esempio il rilevamento dell'identità delle porte adiacenti e la chiusura di porte con connessione errata. Quando si abilita la negoziazione automatica e il protocollo UDLD, i rilevamenti di Layer 1 e di Layer 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 il corretto funzionamento del protocollo UDLD, i dispositivi collegati devono supportare entrambi il protocollo UDLD e averlo abilitato sulle rispettive porte.
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.
Dopo che il collegamento unidirezionale è stato rilevato dal protocollo UDLD, la rispettiva porta viene disabilitata e sulla console viene visualizzato questo messaggio:
UDLD-3-DISABLE: Unidirectional link detected on port 1/2. Port disabled
La porta disabilitata dal protocollo UDLD rimane disabilitata finché non viene abilitata manualmente o finché non scade (se configurato).
Modalità di funzionamento del protocollo ULDP
Il protocollo UDLD può funzionare in due modalità, normale e aggressiva.
- In modalità normale, se lo stato del collegamento della porta era impostato su bidirezionale e le informazioni UDLD scadono, il protocollo UDLD non prende alcuna iniziativa. Lo stato della porta del protocollo UDLD è contrassegnato come undetermined (non determinato). Il comportamento della porta è conforme allo stato STP.
- In modalità aggressiva, se lo stato del collegamento della porta è impostato su bidirezionale e le informazioni UDLD scadono mentre il collegamento sulla porta è ancora attivo, il protocollo UDLD cerca di ristabilire lo stato della porta. In caso contrario, la porta viene messa nello stato errdisable.
Le informazioni UDLD scadute si verificano quando la porta con protocollo UDLD non riceve pacchetti UDLD dalla porta adiacente per l'intera durata del tempo di attesa. 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. Nelle implementazioni più recenti del protocollo UDLD, è possibile configurare l'intervallo 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. Il packet drop non significa che il collegamento sia unidirezionale e il protocollo UDLD in modalità normale non disabilita tale collegamento.
Per garantire un tempo di rilevamento adeguato, è importante essere in grado di scegliere l'intervallo tra i messaggi corretto. L'intervallo dei 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. L'intervallo predefinito per i messaggi è di 15 secondi ed è sufficientemente veloce da rilevare il collegamento unidirezionale prima che il loop di inoltro venga creato con timer STP predefiniti. Il tempo di rilevamento è approssimativamente uguale a tre volte l'intervallo tra i messaggi.
Ad esempio: Tdetection~ intervallo_messaggi x3
Se l'intervallo tra i messaggi è 15 secondi, il tempo di rilevamento è quindi 45 secondi.
Per riconvergere in caso di collegamento unidirezionale, il protocollo STP impiega un tempo calcolabile con la seguente formula: Triconvergenza=durata_max + 2x ritardo_inoltro. Con i timer predefiniti, sono necessari 20+2x15 = 50 secondi.
Si consiglia di mantenere Tdetection< Treconvergence e scegliere un intervallo di messaggi appropriato.
In modalità aggressiva, una volta che le informazioni sono scadute, UDLD cerca di ristabilire lo stato del collegamento e invia i pacchetti ogni secondo per otto secondi. Se lo stato del collegamento non è stato ancora determinato, il collegamento è disabilitato.
La modalità aggressiva aggiunge il rilevamento di queste situazioni:
-
La porta è bloccata (su un lato della porta i dati non vengono né trasmessi né ricevuti, anche se il collegamento è attivo sui due lati).
-
Il collegamento è attivo su un lato e inattivo sull'altro. Il problema è visibile sulle porte in fibra quando la fibra di trasmissione è scollegata sulla porta locale, il collegamento rimane attivo sul lato locale. Tuttavia, è inattivo< /tt>sul lato remoto.
Recentemente, le implementazioni di dispositivi con fibra FastEthernet hanno funzionalità FEFI (Far End Fault Indication) per rendere il collegamento inattivo su entrambi i lati in situazioni simili. Su Gigabit Ethernet, una funzione simile viene fornita dalla negoziazione dei collegamenti. In genere, le porte in rame non sono soggette a questo tipo di problema, in quanto utilizzano impulsi di collegamento Ethernet per monitorare il collegamento. È importante notare che in entrambi i casi non si verifica alcun loop in avanti perché non è presente alcuna connettività tra le porte. Tuttavia, se il collegamento è su un lato e giù sull'altro, può verificarsi un blackhole del traffico. La modalità aggressiva del protocollo UDLD è progettata proprio per evitarlo.
Disponibilità
Il protocollo UDLD è disponibile in modalità normale e aggressiva dal software Cisco IOS® versione 12 e successive.
Configurazione e monitoraggio
Eseguire il comando show udld per verificare se il protocollo UDLD è abilitato sulle interfacce:
Switch#show udld
Interface Gi1/0/1
---
Port enable administrative configuration setting: Disabled
Port enable operational state: Disabled
Current bidirectional state: Unknown
Interface Gi1/0/2
---
Port enable administrative configuration setting: Disabled
Port enable operational state: Disabled
Current bidirectional state: Unknown
Interface Gi1/0/3
---
Port enable administrative configuration setting: Disabled
Port enable operational state: Disabled
Current bidirectional state: Unknown
Il protocollo UDLD aggressivo può essere configurato sull'interfaccia con il udld port aggressive
comando:
Switch#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interface gigabitEthernet1/0/1
Switch(config-if)#udld port aggressive
Switch(config-if)#end
Switch#
Utilizzare il comandoshow udld
e show udld neighbors
per verificare se il protocollo UDLD è abilitato o disabilitato sulla porta e lo stato del collegamento e del router adiacente:
Switch#show udld GigabitEthernet1/0/1
Interface Gi1/0/1
---
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: 31600 ms
Cache Device index: 1
Current neighbor state: Bidirectional
Device ID: 346288238580
Port ID: Gi4/0/1
Neighbor echo 1 device: 70B4F35F080
Neighbor echo 1 port: Gi1/0/1
TLV Message interval: 15 sec
No TLV fast-hello interval
TLV Time out interval: 5
TLV CDP Device name: MXC.TAC.M.02-3850-01
Switch#show udld neighbors
Port Device Name Device ID Port ID Neighbor State
---- ----------- --------- ------- --------------
Gi1/0/1 346288238580 1 Gi4/0/1 Bidirectional
Total number of bidirectional entries displayed: 1
Utilizzare il udld message time
per modificare l'intervallo dei messaggi:
Switch(config)#udld message time 10
UDLD message interval set to 10 seconds
L'intervallo può variare da 1 a 90 secondi, con l'impostazione predefinita di 15 secondi.
Informazioni correlate