Inleiding
In dit document wordt beschreven hoe het UDLD-protocol (Unidirectional Link Detection) kan helpen om lussen en verkeersafwijkingen in geschakelde netwerken te voorkomen.
Voorwaarden
Vereisten
Er zijn geen specifieke vereisten van toepassing op dit document.
Gebruikte componenten
Dit document is niet beperkt tot specifieke software- en hardware-versies.
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.
Conventies
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
probleemdefinitie
Spanning-Tree Protocol (STP) lost redundante fysieke topologie op in een lus-vrije, 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 haar werking op de ontvangst en overdracht van de Bridge Protocol Data Units (BPDU's).
Als het STP-proces dat op de switch wordt uitgevoerd met een poort in de blokkerende staat geen BPDU's ontvangt van de upstream (aangewezen) switch, veroudert STP uiteindelijk de STP-informatie voor de poort en verplaatst deze naar de staat van doorsturen.
Dit kan een STP-lus maken waarbij pakketten voor onbepaalde tijd langs het luspad beginnen te fietsen en meer en meer bandbreedte en bronnen verbruiken. Dit leidt tot een mogelijke netwerkstoring.
Hoe is het mogelijk dat de switch geen BPDU's ontvangt terwijl de poort open is? De reden hiervoor is een eenrichtingsverkeer.
Een link wordt beschouwd als eenrichtingsverkeer wanneer dit gebeurt:
-
De link is aan beide zijden van de verbinding.
-
De lokale zijde ontvangt de pakketten die door de externe zijde worden verzonden niet, terwijl de externe zijde pakketten ontvangt die door de lokale zijde worden verzonden.
Overweeg dit scenario. De pijlen geven de stroom van STP-BPDU's aan.

Bij normaal gebruik is brug B een aangewezen poort op de verbinding B-C. Bridge B stuurt BPDU's naar C, waardoor de poort wordt geblokkeerd. De poort is geblokkeerd terwijl C BPDU's van B op die link ziet.
Overweeg nu wat er gebeurt als de link B-C faalt in de richting van C. C stopt met het ontvangen van verkeer van B, maar B ontvangt nog steeds verkeer van C.
omhoog
C ontvangt geen BPDU's op de koppeling B-C en veroudert de informatie die is ontvangen bij de laatste BPDU. Dit duurt maximaal 20 seconden, wat afhankelijk is van de maxAge STP-timer.
Zodra de STP-informatie op de poort is verouderd, gaat die poort over van de blokkerende staat naar de luister- en leerstatus en uiteindelijk naar de doorstuurstaat STP.
Dit creëert een lus, omdat er geen geblokkeerde poort in de driehoek A-B-C is. Pakketten fietsen langs het pad (B ontvangt nog steeds pakketten van C) die extra bandbreedte verbruikt totdat de links volledig zijn gevuld.
Dit scenario kan het netwerk naar beneden halen. Een ander mogelijk probleem dat kan worden veroorzaakt door een unidirectionele link is een verkeerszwarte gat.

Hoe werkt het Unidirectional Link Detection Protocol
UDLD is een Layer 2 (L2) protocol dat werkt met de Layer 1 (L1) mechanismen om de fysieke status van een link te bepalen.
Bij Layer 1 zorgt automatisch onderhandelen voor fysieke signalering en foutdetectie. UDLD voert taken uit die automatische onderhandeling niet kan uitvoeren, zoals het detecteren van de identiteit van buren en het afsluiten van niet-verbonden poorten.
Wanneer u zowel automatisch onderhandelen als UDLD inschakelt, 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 via de uitwisseling van protocolpakketten tussen de naburige apparaten. Om UDLD te laten werken, moeten beide apparaten op de koppeling UDLD ondersteunen en hebben ingeschakeld op de respectieve poorten.
Elke switch-poort die voor UDLD is geconfigureerd, verzendt UDLD-protocolpakketten die de ID van het poortapparaat/de poort bevatten en de ID's van het buur-apparaat/de poort die door UDLD op die poort worden gezien.
Naburige poorten zien hun eigen apparaat / poort-ID (echo) in de pakketten die van de andere kant zijn ontvangen. Als de poort zijn eigen apparaat-/poort-ID gedurende een bepaalde tijd niet in de inkomende UDLD-pakketten ziet, wordt de koppeling als eenrichtingsverkeer beschouwd.
Dit echo-algoritme maakt detectie van deze problemen mogelijk:
-
Link is aan beide zijden, maar pakketten worden slechts door één kant ontvangen.
-
Verbindingsfouten (draadfouten) bij het ontvangen en verzenden van vezels zijn niet verbonden met dezelfde poort aan de externe zijde.
Zodra de unidirectionele link wordt gedetecteerd door UDLD, wordt de betreffende poort uitgeschakeld en wordt dit bericht afgedrukt op de console:
UDLD-3-DISABLE: Unidirectional link detected on port 1/2. Port disabled
Poortsluiting door UDLD blijft uitgeschakeld totdat deze handmatig is ingeschakeld of totdat untilerdisable timeout verloopt (indien geconfigureerd).
UDLD-werkingsmodi
UDLD kan in twee modi werken: normaal en agressief.
- In de normale modus wordt er door UDLD geen actie ondernomen als de verbindingsstatus van de poort bi-directioneel is en de UDLD-informatie time-out heeft. De havenstaat voor UDLD is gemarkeerd als onbepaald . De haven gedraagt zich in overeenstemming met zijn STP-status.
- In de agressieve modus, als de verbindingsstatus van de poort wordt bepaald als bi-directioneel en de UDLD-informatie is uitgeschakeld terwijl de koppeling op de poort nog actief is, probeert UDLD de status van de poort te herstellen. Als dit niet lukt, wordt de poort in de uitschakelbare toestand gezet.
Leeftijd van UDLD-informatie vindt plaats wanneer de poort waarop UDLD wordt uitgevoerd geen UDLD-pakketten ontvangt van de buurpoort voor de duur van de wachttijd.
De wachttijd voor de poort wordt bepaald door de externe poort en is afhankelijk van het berichteninterval aan de externe zijde. Hoe korter het berichteninterval, hoe korter de wachttijd en hoe sneller de detectie.
Recente implementaties van UDLD maken configuratie van het berichteninterval mogelijk. UDLD-informatie kan verouderen vanwege het hoge foutenpercentage op de poort veroorzaakt door een fysiek probleem of een duplex-mismatch.
Een dergelijke pakketdrop betekent niet dat de link unidirectioneel is en UDLD in de normale modus deze link niet uitschakelt.
Het is belangrijk om het juiste berichteninterval te kunnen kiezen om een goede detectietijd te garanderen. Het berichteninterval moet snel genoeg zijn om de unidirectionele link te detecteren voordat de voorwaartse lus wordt gemaakt, maar het mag de switch-CPU niet overbelasten. Het standaard berichteninterval is 15 seconden en is snel genoeg om de unidirectionele link te detecteren voordat de voorwaartse lus wordt gemaakt met standaard STP-timers. De detectietijd is ongeveer gelijk aan drie keer het berichteninterval.
Bijvoorbeeld: Tdetection~ message_interval x3
Dit is 45 seconden voor het standaardberichtinterval van 15 seconden.
Het duurt Treconvergentie=max_age + 2x forward_delay voor de STP om te reconvergeren in geval van unidirectionele link falen. Met de standaardtimers duurt het 20 + 2x15 = 50 seconden.
Het wordt aanbevolen om Tdetection< Treconvergence te behouden en een geschikt berichtinterval te kiezen.
In de agressieve modus probeert UDLD, zodra de informatie is verouderd, de linkstatus opnieuw in te stellen en pakketten elke seconde gedurende acht seconden te verzenden. Als de status van de koppeling nog steeds niet is bepaald, is de koppeling uitgeschakeld.
Agressieve modus voegt extra detectie van deze situaties toe:
-
De poort zit vast (aan de ene kant verzendt noch ontvangt de poort, maar de link is aan beide zijden omhoog).
-
De link is aan de ene kant omhoog en aan de andere kant omlaag. Dit probleem is te zien op glasvezelpoorten wanneer de transmissievezel wordt losgekoppeld van de lokale poort, de link blijft omhoog aan de lokale kant. Het is echter down< /tt>aan de externe kant.
Onlangs hebben FastEthernet-hardware-implementaties van glasvezel functies voor Far End Fault Indication (FEFI) om de koppeling in deze situaties aan beide zijden omlaag te brengen.
Op Gigabit Ethernet wordt een vergelijkbare functie geleverd door linkonderhandeling. Koperpoorten zijn normaal gesproken niet gevoelig voor dit soort problemen, omdat ze Ethernet-linkpulsen gebruiken om de koppeling te bewaken.
Het is belangrijk om te vermelden dat in beide gevallen geen voorwaartse lus optreedt omdat er geen connectiviteit tussen de poorten is. Als de link echter aan de ene kant omhoog staat en aan de andere kant naar beneden, kan het zwarte gat in het verkeer optreden.
Agressieve UDLD is ontworpen om dit te voorkomen.
Beschikbaarheid
UDLD is beschikbaar in de normale en agressieve modus van Cisco IOS® Software Release 12 en hoger.
Configuratie en bewaking
Voer de opdracht show udld uit om te controleren of UDLD is ingeschakeld op de interfaces:
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
Agressieve UDLD kan worden geconfigureerd op de interface met udld port aggressive
de opdracht:
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#
Geef de opdrachtshow udld
en show udld neighbors
opdracht op om te controleren of UDLD is ingeschakeld of uitgeschakeld op de poort en wat de link- en buurtstatus is:
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
Gebruik de udld message time
opdracht om het berichteninterval te wijzigen:
Switch(config)#udld message time 10
UDLD message interval set to 10 seconds
Het interval kan variëren van 1 tot 90 seconden, met de standaard van 15 seconden.
Gerelateerde informatie