In dit document wordt beschreven hoe het Unidirectional Link Detection (UDLD)-protocol kan helpen lussen en verkeersafwijkingen in geschakelde netwerken te voorkomen.
Er zijn geen specifieke vereisten van toepassing op dit document.
In dit document wordt de algemene UDLD-bewerking beschreven. De configuratie- en verificatievoorbeelden in dit document zijn gevalideerd op Switches uit de Cisco Catalyst 9300-reeks met de Cisco IOS XE 17.X-versie.
Opmerking: de opdrachtsyntaxis, standaardinstellingen, timerbereiken en uitvoer kunnen per platform en softwarerelease verschillen.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Spanning-Tree Protocol (STP) lost redundante fysieke topologie op in een lusvrije, boomachtige voorwaartse topologie. Om dit te doen, blokkeert het een of meer poorten. Als een of meer poorten zijn geblokkeerd, zijn er geen lussen in de voorwaartse topologie. STP vertrouwt in zijn werking op de ontvangst en verzending van de Bridge Protocol Data Units (BPDU's). Als een poort in de STP-blokkerings- of wegwerpstatus stopt met het ontvangen van BPDU's van de aangewezen brug, veroudert STP uiteindelijk de informatie die aan die poort is gekoppeld en verplaatst deze naar een doorstuurstatus.
Dit kan een STP-lus creëren waarbij pakketten voor onbepaalde tijd langs het lus-pad beginnen te fietsen en meer bandbreedte en middelen verbruiken. Dit leidt tot een mogelijke netwerkstoring.
Hoe is het mogelijk dat de switch geen BPDU's ontvangt terwijl de poort open is? Dit komt door een unidirectionele link.
Een link wordt als unidirectioneel beschouwd wanneer:
De link staat aan beide kanten van de verbinding.
De lokale zijde ontvangt geen pakketten die door de externe zijde worden verzonden, terwijl de externe zijde pakketten ontvangt die door de lokale zijde worden verzonden.
Overweeg het volgende scenario, de pijlen geven de stroom van STV-BPDU's aan:
STP-poortstatustopologie
Tijdens de toestand die in deze topologie wordt getoond, is de interface op switch B naar switch C de aangewezen poort voor het B-C-segment en zendt BPDU's naar switch C. De interface op switch C naar switch B is een niet-aangewezen poort in de klassieke IEEE 802.1D STP. Of een alternatieve poort in RSTP en blijft in de blokkerings-/verwijderingsstatus terwijl deze BPDU's van switch B ontvangt en verwerkt. Hoewel de switch C-interface zich in de blokkerings- of verwijderingsstatus bevindt, blijft de poort BPDU's ontvangen en verwerken; deze toestanden voorkomen dat de poort gegevensframes doorstuurt, maar voorkomen niet dat deze BPDU's ontvangt.
Overweeg wat er gebeurt als de B-C-link unidirectioneel wordt en de B → C-richting faalt. Switch C kan geen BPDU's meer ontvangen van switch B, terwijl switch B BPDU's kan ontvangen die worden verzonden door switch C. Switch C bewaart de informatie die is geleerd van de laatste BPDU totdat die informatie veroudert. Met de klassieke IEEE 802.1D STP en de standaard Max Age van 20 seconden kan dit tot 20 seconden duren. Zodra de STP-informatie veroudert, beschouwt switch C switch B niet langer als superieur op dat segment en kan de poort overgaan van blokkeren naar luisteren, vervolgens leren en uiteindelijk doorsturen.
Hierdoor ontstaat een Layer 2 forwarding loop omdat er geen geblokkeerde poort meer is in de A-B-C driehoek. Uitgezonden, onbekende unicast- en multicast-frames kunnen herhaaldelijk rond de lus circuleren, waarbij bandbreedte, CPU en mogelijk resulterend in een uitzendstorm worden verbruikt.
Dit scenario kan het netwerk naar beneden halen, wat een ander mogelijk probleem is dat wordt veroorzaakt door een unidirectionele link zoals een zwart gat in het verkeer.
STP-BPDU-stroom
UDLD is een Layer 2-protocol dat Layer 1-verbindingsdetectiemechanismen aanvult door unidirectionele communicatie en specifieke kabelinconsistenties tussen direct verbonden apparaten te identificeren.
Bij Layer 1 lost automatisch onderhandelen fysieke signalering en foutdetectie op. UDLD voert taken uit die automatisch onderhandelen niet kan uitvoeren, zoals het detecteren van naburige identiteiten en het afsluiten van niet-verbonden poorten. Bij het inschakelen van zowel automatische onderhandeling als UDLD werken Layer 1- en Layer 2-detecties samen om fysieke en logische unidirectionele verbindingen en het slecht functioneren van andere protocollen te voorkomen.
UDLD werkt door de uitwisseling van protocolpakketten tussen de aangrenzende apparaten. Om een bidirectionele UDLD-buurrelatie tot stand te brengen, moeten beide direct verbonden apparaten UDLD ondersteunen en deze op de aangesloten interfaces hebben ingeschakeld. Controleer de bidirectionele status op beide apparaten.
Elke switch-poort die is geconfigureerd voor UDLD, verzendt UDLD-protocolpakketten die de poort/apparaat-ID en de naburige apparaat-/poort-ID's bevatten die door UDLD op die poort worden gezien.
Omliggende poorten zien hun eigen apparaat / poort-ID (echo) in de pakketten die van de andere kant zijn ontvangen. Als de poort gedurende een bepaalde tijd geen eigen apparaat/poort-ID in de binnenkomende UDLD-pakketten ziet, wordt de koppeling als unidirectioneel beschouwd.
Met dit echo-algoritme kunnen deze problemen worden opgespoord:
Link is aan beide kanten, maar pakketten worden slechts aan één kant ontvangen.
Verbindingsfouten (draadfouten) bij het ontvangen en verzenden van vezels die niet zijn aangesloten op dezelfde poort aan de externe kant.
Zodra UDLD een unidirectionele aandoening detecteert, plaatst het de detecterende lokale interface in de staat err-disable. De status van de externe interface is afhankelijk van externe UDLD-detectie en fysiek koppelingsgedrag. Een soortgelijk bericht wordt afgedrukt op de console:
UDLD-3-DISABLE: Unidirectional link detected on port 1/2. Port disabled
Een interface die door UDLD is uitgeschakeld, blijft in de foutuitschakelstatus totdat deze handmatig wordt hersteld of een ingeschakelde hersteltimer verloopt. Corrigeer de storing in de glasvezel, transceiver, bekabeling of externe interface vóór herstel. Gebruik shutdown en geen shutdown voor handmatig herstel. Op platforms die het ondersteunen, UDLD reset resets interfaces uitgeschakeld / afsluiten door UDLD. Voer na herstel de statusfout van de show-interfaces uit, toon udld <interface-id>, en toon opdrachten voor udld-buren om te bevestigen dat de interface operationeel is en dat de UDLD-relatie bidirectioneel is. Controleer de systeemlogboeken om te bevestigen dat de fout niet opnieuw optreedt.
UDLD kan in twee modi werken: Normaal en Agressief:
Wanneer UDLD is ingeschakeld op een ondersteunde interface, is de normale modus de standaardmodus, tenzij de agressieve modus expliciet is geconfigureerd. UDLD werkt met Layer 1-mechanismen, zoals automatische onderhandeling, om een koppeling te valideren. Layer 1-mechanismen detecteren fysieke signalering en koppelingsfouten, terwijl UDLD aangrenzende apparaten identificeert en vezelstrengen verifieert die verbinding maken met de juiste poorten.
In de normale modus detecteert UDLD een unidirectionele toestand wanneer vezelstrengen niet goed zijn aangesloten tussen poorten en Layer 1-mechanismen de bekabelingsfout niet detecteren. Als de vezelstrengen verbinding maken met de juiste poorten, maar het verkeer slechts in één richting stroomt, markeert de UDLD-modus de logische koppeling als onbepaald en schakelt de poort niet uit. Dit gedrag is gebaseerd op Layer 1-mechanismen om de fysieke storing te detecteren. Als een vezelstreng is losgekoppeld en automatisch onderhandelen de fysieke fout detecteert, blijft de koppeling niet open. UDLD onderneemt geen afsluitactie omdat Layer 1 het probleem al heeft gedetecteerd en de logische verbindingsstatus van UDLD niet is bepaald.
Agressieve modus omvat de detectiemogelijkheden van de normale modus en biedt extra bescherming voor point-to-point glasvezel en twisted-pair links. Het detecteert niet-verbonden glasvezelstrengen en omstandigheden waarin het ene eindpunt geen verkeer kan verzenden of ontvangen, de ene poort omhoog blijft terwijl de andere is uitgeschakeld of de ene glasvezelstreng wordt losgekoppeld.
UDLD hallo pakketten fungeren als een hartslag voor de point-to-point link. Als UDLD stopt met het ontvangen van deze pakketten nadat de link is vastgesteld als bidirectioneel, probeert de agressieve modus de bidirectionele relatie te herstellen. Als UDLD de relatie niet kan herstellen, wordt de betreffende lokale poort uitgeschakeld om te voorkomen dat een koppeling waarvan de bidirectionele werking niet kan worden geverifieerd, wordt gebruikt.
Wanneer beide glasvezelstrengen operationeel lijken voor Layer 1, verifieert agressieve UDLD dat ze verbinding maken met de juiste aangrenzende poorten en dat het verkeer bidirectioneel tussen de verwachte buren stroomt. Automatische onderhandeling kan deze aangrenzende en poort-identiteitsvalidatie niet uitvoeren omdat deze in Layer 1 werkt.
UDLD-informatie veroudert wanneer een poort waarop UDLD wordt uitgevoerd gedurende de wachttijd geen UDLD-pakketten ontvangt van de naburige poort. Deze timers zijn van toepassing op UDLD-buurtinformatieonderhoud in zowel normale als agressieve modi; de actie na het verlopen is afhankelijk van de geconfigureerde modus en de gedetecteerde toestand. De wachttijd voor de poort wordt bepaald door de externe poort en is afhankelijk van het berichtinterval aan de externe zijde. Hoe korter het berichteninterval, hoe korter de wachttijd en hoe sneller de detectie. Recente implementaties van UDLD maken configuratie van berichtintervallen mogelijk. UDLD-informatie kan verouderen vanwege het hoge foutenpercentage op de poort dat wordt veroorzaakt door een fysiek probleem of duplexmismatch. Een dergelijke pakketval betekent niet dat de koppeling unidirectioneel is en dat UDLD in de normale modus de koppeling niet uitschakelt.
Het is belangrijk om het juiste berichteninterval te kiezen om de juiste detectietijd te garanderen. Het berichteninterval moet snel genoeg zijn om de unidirectionele link te detecteren voordat de forwarding loop wordt gemaakt, maar het mag de switch-CPU niet overbelasten. Het standaard berichtinterval in dit voorbeeld is 15 seconden. Voor het beschreven klassieke IEEE 802.1D STP-timer scenario is de geschatte UDLD-informatie-vervaltijd minder dan de geschatte tijd voor de geblokkeerde poort om de doorzendstatus te bereiken.
Deze vergelijking garandeert niet dat de agressieve UDLD de interface in de fout-uitschakeltoestand plaatst voordat STP de doorstuurtopologie wijzigt. De geschatte tijd voor het verlopen van de UDLD-gegevens van de buren is driemaal het berichteninterval. Voorbeeld:
Texpiration ≈ message_interval × 3
Met het standaard berichteninterval Texpiration ≈ 15 × 3 = 45 seconden. Voor de klassieke IEEE 802.1D STP-bewerking is de geschatte tijd voor een geblokkeerde poort om de opgeslagen STP-informatie te verouderen en door de luister- en leerstatus naar de doorzendstatus te gaan:
Tforward = max_age + (2 × forward_delay)
Met de standaard STP-timers: Tforward = 20 + (2 × 15) = 50 seconden -Bij het vergelijken van de UDLD-buurtinformatie-expiratie met de STP-poortovergang, selecteert u een berichteninterval dat het volgende handhaaft: Texpiration < Tforward
In de agressieve modus probeert UDLD, nadat de UDLD-buurinformatie is verlopen, de bidirectionele relatie te herstellen door gedurende acht seconden één bericht per seconde te verzenden. Als de bidirectionele status niet opnieuw kan worden ingesteld, schakelt UDLD de lokale poort uit.
Opmerking: Deze berekeningen zijn bij benadering en zijn van toepassing op het UDLD-gedrag en het klassieke IEEE 802.1D STP-timerscenario dat in dit document wordt beschreven. Het geïmplementeerde platform, de softwarerelease, de STP-modus, de geconfigureerde timers en het tijdstip waarop de storing optreedt, kunnen van invloed zijn op de werkelijke timing.
Opmerking: De klassieke STP-berekening Treconvergence = max_age + (2 × forward_delay) is niet van toepassing op normale RSTP-snelle convergentie. RSTP-protocolgegevens kunnen verlopen wanneer BPDU's niet gedurende drie opeenvolgende Hello-intervallen worden ontvangen of wanneer de toepasselijke Max Age-voorwaarde is bereikt. Een in aanmerking komende alternatieve haven kan dan snel overgaan naar de expeditiestaat. De totale overgangstijd is afhankelijk van de topologie, poortrollen, verbindingstype, synchronisatieproces en storingsconditie. Daarom kan een berekening met een vaste timer niet garanderen dat UDLD een unidirectionele koppeling detecteert of uitschakelt voordat RSTP de doorstuurtopologie wijzigt. Valideer de interactie tussen UDLD en RSTP op het geïmplementeerde platform, de softwarerelease, de topologie en de timerconfiguratie.
Voorbeelden van extra omstandigheden die worden gedetecteerd door de agressieve modus zijn:
Sommige Ethernet PHY-implementaties bieden externe foutsignalering of koppelingsonderhandelingsmechanismen die ervoor kunnen zorgen dat een of beide verbindingseindpunten naar beneden gaan na specifieke fysieke storingen. Gedrag varieert per platform, interfacetype, transceiver, media en onderhandelingsmodus. UDLD biedt Layer 2-validatie voor unidirectionele omstandigheden die niet worden gedetecteerd door fysieke laagsignalering. Wanneer het ene eindpunt niet kan verzenden/ontvangen, of wanneer het ene eindpunt omhoog is terwijl het andere naar beneden is, biedt de mislukte koppeling zelf geen volledig doorstuurpad en vormt deze geen doorstuurlus. Een interface die blijft bestaan, kan echter doorgaan met het doorsturen van verkeer naar een niet-functioneel pad, wat resulteert in een zwart gat in het verkeer. Agressieve UDLD detecteert het verlies van bidirectionele communicatie en schakelt de getroffen lokale poort uit als deze de UDLD-relatie niet kan herstellen.
Schakel UDLD in op beide verbonden interfaces. Configureer dezelfde UDLD-modus op beide eindpunten om consistente lokale foutdetectie en foutuitschakelingsgedrag te bieden:
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
Opmerking: Globale UDLD-opdrachten en hun interfacebereik verschillen per platform; controleer de opdrachtreferentie van het doelplatform voordat u een globale opdracht gebruikt.
Voer show udld <interface-id> uit en toon udld buren opdrachten op beide link eindpunten. Bevestig dat elke interface operationeel is ingeschakeld, dat de huidige status bidirectioneel is en dat de verwachte aangrenzende apparaat- en poortidentificatiecodes worden weergegeven:
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
Agressieve UDLD kan worden geconfigureerd op de interface met de agressieve opdracht van de UDLD-poort:
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
Voer de opdracht show udld <interface-id> op beide eindpunten uit om te controleren of de agressieve modus operationeel is ingeschakeld:
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
Voer de opdracht udld message time uit om het berichteninterval te wijzigen:
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
Op Switches uit de Cisco Catalyst 3000- en 9000-reeks varieert de waarde van de udld-berichttijd van 1 tot 90 seconden en is de standaardwaarde 15 seconden. Raadpleeg de opdrachtreferentiehulplijnen om het geaccepteerde bereik en de standaardinstelling op andere systemen te controleren.
Raadpleeg UDLD configureren voor switches van Catalyst 3560
| Revisie | Publicatiedatum | Opmerkingen |
|---|---|---|
2.0 |
18-Aug-2026
|
Bijgewerkte spelling, grammatica, ingevoegde horizontale lijnen naar afzonderlijke secties voor leesbaarheid. |
1.0 |
09-Jul-2007
|
Eerste vrijgave |