UDLDは、UniDirectional Link Detection(単方向Link検出)。
これは、片側通信状態を検知するCisco独自のL2 Protocolです。
対向装置間でLinkの状態が異なる場合はままあります。
例えば、100BASE-FXのFEFI(Far End Falut Indication)機能(特別意識して使ったことねーや)や、10/100BASE-TX、GbEの自動認識機能ではL1 LevelでのLinkDown検知は可能ですが、PortStackやMediaConverterを介した相互接続構成における MediaConverter間障害などL2 Levelの異常には対応出来ません。
そこでUDLDを使用することでL1 LevelのLinkDown検知メカニズムに加えてL2 Levelでの検知機能を提供することが出来ます。
以下の図を例として単方向通信状態の具体例を挙げます。
例えば以下の構成でSpanning Tree ProtocolにてLoop回避をしている状況があるとします。
何らかの理由でSwitchBのTx Portが物理的に故障してしまったとします。
SwitchCではSwitchBからのBPDUを受信出来ない状態が続いたためSwitchB向けのPortをBlockingStateからForwardingStateに移行してしまいます。
結果、SwitchA、SwitchB、SwitchC間でBPDUのLoop障害が発生します。
このLOOP状態に陥ることを防いでくれるのがUDLDです。
UDLDでは'
'自身のDeviceID(MAC Address)、Port番号と隣接装置のDeviceID(MAC Address)、Port番号''が含まれた制御Packetを持ちます。
対向装置間でUDLDがEnableとなるとNegotiationが開始され異常が無ければStateがBidirectionalとなります。
UDLDは対向装置間でEnableとなっていないと動作しません。
Bidirectional Stateでは対向装置と自身の両方の情報を持ったUDLD Packetをお互いに定期的に送信します。
Bidirectional StateではUDLD Packetを送信する間隔はDefaultで
15secです。なお、
送信間隔は7sec~90secの間で設定変更が可能(IOS15.からはもしかしたら違うかも)です。
定常状態に至るまでのNegotiationや異常かどうかの判断時(Detection状態)では装置間でやりとりされるUDLD Packetや送信間隔が異なります。
具体的にはEcho/Reply方式を採用しており、動作としては自身の情報のみを持ったUDLD Packetを送信して対向装置からのUDLD Packetを受信するまで待機します。
対向装置から対向装置の情報を持ったUDLD Packetを受信すると受信したUDLD Packetに自身の情報を付加して対向装置に送信します。
こうして対向装置と自身の両方の情報を持ったUDLD Packetを互いにやりとりして最終的にBidirectional Stateへと収束します。
異常かどうかの判断時(Detection状態)で
''正常性が確認出来なかった場合はPortをerrdisable Stateとしてshutdownします''。なお、どういった場合にshutdownを行うかはUDLDの2つのモード(通常モード /Aggressiveモード)で異なります。
PR