The fifth post in this serie about CCIE EI. CCIE+Enterprise+Infrastructure+(v1.0+RevA)+Exam+Topics.pdf (cisco.com)
Mostly of the time features are being developed in order to solve a problem. This is also the case for UDLD.
What happens if in a triangle topology with three switches interconnected by a fiber cable one of the forwarding ports stop sending BPDUs to its neighbor? Well, the answer is pretty simple the switch that stop receiving information will eventually goes from blocking to forwarding causing an inintentionally loop.
Unidirectional Link Detection (or UDLD) is a layer-2 protocol that help us to prevent undesired unidirectional communication over a link. The way this protocol works is simple, it sends probes to a wellknown MAC-Address (01:00:0C:CC:CC:CC), for discovery purposes, across Tx link, containing it own device information and port-id, and waits for an echo on the Rx link. Is this the case, then the switch suspect that something is wrong with this link. A prequisite for this feature is that both end of the media shared supports UDLD functionallity.
Two modes
Normal mode
If an unidirectional condition is being detected while running UDLD in normal mode the port will be marked as „undertermined“ but it is not being shut down. This action does not prevent a loop free network, however once a STP detect such a condition, we can check the console for further information.
Aggressive mode
Once the switch loose the connection to the opposite site it will send every second eight times trying to get an answer from the other switch. If the opposite switch does not answer after eight seconds the port goes inmediatly into errdisabled state.
There are two ways how the port can be reenabled. The first is by manually shutting and unshutting it and the second is by using the errdisable recovery feature mentioned in a few post before.
Configure UDLD
Normal mode Switch(config)#interface GigabitEthernet 0/3 Switch(config-if)#udld port Aggressive mode Switch(config)#int GigabitEthernet 0/3 Switch(config-if)#udld port aggressive
Verification
In order to verify UDLD functionallity just issue ’show udld‘ in the CLI to see where is it activated and where not and what is the current state of the link.
Switch#show udld
Interface Et0/0
---
Port enable administrative configuration setting: Disabled
Port enable operational state: Disabled
Current bidirectional state: Unknown
Interface Et0/1
---
Port enable administrative configuration setting: Enabled / in aggressive mode
Port enable operational state: Enabled / in aggressive mode
Current bidirectional state: Unknown
Current operational state: Link up
Message interval: 7000 ms
Time out interval: 5000 ms
Design considerations
Since UDLD is a great feature to reinforce STP functionality and stability we have to take in consideration STP timers to avoid that UDLD is slower than STP.
The formula is the following
UDLD timeout < STP MaxAge + 2 times ForwardDelay
Conclusion
Having a closer look at the actions taken by UDLD we can compare it with BPDU- or Loopguard. Anyway they are some differences besides that UDLD works also on physical layer, which STP Features do not.
So therefore all this features need to work together in oder to improved STP functionallity.
Regarding the mode, I would personally recommend working with aggressive mode.