Thursday, August 20, 2009

UDLD Behaviour


This is a discussion over a condition where in we have one way traffic between two switches. This is possible when either Rx or Tx goes bad. Either due to cable connector or transceiver malfunction. Now, indeed this is more relevant in context to fibre as compared to copper, which "usually" has two strands carrying Rx and Tx if cable type is the only consideration.

Now lets See how failure of or a condition of unidirectional communication can lead to loop.


Refer to the figure attached to the document where in STP has converged and the blocked port is SW3's e0/0."lost election to SW2 on the basis of BID - SW2 < SW3".


Now lets assume that the Rx of SW3 towards sw1 has failed - please be considerate of the fact that sw3 is still sending data to SW1 through its Tx.


Action:
Now under the above stated condition, if a host connected to sw2 or SW1 or SW3 generates an APR, lets assume a host on SW3, SW3 forwards it out e0/0 and e0/1. Just follow this frame and you will find that it loops forever.
WHY:
Because, the moment Rx of SW3 on e0/1 went bad, SW3 stopped receiving BPDU from root sw1 it transitions it's blocked(e0/0) port to RP and as it is not receiving any BPDU on e0/1 , it will assume that its host/edge port.

Henceforth UDLD is the protocol which ensures that if a unidirectional link is formed the interface be put to inconsistent state. I am not sure how this is achieved as this is prop to cisco I missed it somewhere but meeting this goal isn't that tough. It would be something similar on the lines of PPP magic number. Needless to mention that you need to enable UDLD on both the ends. One send the value and expects the same on its Rx in the absence of the same, the port is transitioned to inconsistent state.

No comments:

Post a Comment