UDLD
○ UDLD (Uni-Directional Link Detection)
UDLDなんて、聞いたことあるくらいだったのですが、
業務で登場してきたので、ちょっとまとめ。
最後の考察で書きますが、最近のネットワークデザインでは使うことはないかも。
プロトコルの詳細な内容は以下がすごくまとまっているので、確認してください。
UDLDまとめ
□ UDLDとは UDLD (Uni-Directional Link Detection)は、Ethernetの単一リンク(片Link)障害 をL2で検出するためのプロトコルです。 Auto-Negtiationで片リンク障害(RemoteFault)検出ができますが、あくまでも、PHYレベルでの検出です。 UDLDはL2Frameを送受信して検出するので、Linkがあがってるけど、送受信できない=サイレント故障 を検出できます。 □ UDLDの基本動作 LinkUpすると、UDLD PDUの送受信して、ネイバーを検出を検出します。 ネイバーが確立されると、Helloパケット(プローブ)を送信して、隣接状態を、確認しあいます。 Helloが受信できなくなると、障害とみなして、err-disableとなり、対向スイッチのLinkがDownします。 □ UDLDの設定 by cisco* デフォルトではdisable # グローバルconfigで設定 (config)# udld [ enable | agressive ] (config)# udld messeage time "秒" # interface modeで設定 (config-if)# udld port [ agressive ] * normal-modeでは 対向が、受信できていない情報が入ったPDUを受信すると、err-disable * agressive-modeでは、対向からのPDUが受信できないのみの条件でerr-disable # UDLDのdisable化 (config)# no udld [ enable | agressive ] (config-if)# no udld port [ agressive ] * noコマンドでdisableした際に、flashのnotifyを投げて、ネイバーに隣接関係の解除させます。 なので、noコマンドでdisableをしたから、隣接がerr-disableに落ちることはありません。
□ UDLD フレーム UDLDはL2フレームフォーマットです。 Ciscoだと、Dst-MacにCDPと同じMAC"01-00-0c-cc-cc-cc"を使用しています。 L2Frameに直接Dataをのせるため、LLCにSNAPヘッダをつけて、L3フレームを模擬します。 通過する機器は、あくまでもL2フレームで、forwadingされます。 Dataで付与されるパラメータは以下です。 Device ID TLV・・・・・・・自身の機器ID Port ID TLV・・・・・・・・自身の送信port Echo TLV・・・・・・・・・ネイバーのDatabase Message Interval TLV・・・送信間隔 Timeout Interval TLV・・・ディクションウインドウの長さ Device Name TLV・・・・・host name Sequence Number TLV・・・シーケンス番号# show udld neighbor
でこのあたりの情報が確認できます。 □ UDLDはいつ使うのか ここからが本題。 サイレント障害で、該当Linkを落としたい場合は、 迂回路があるので、Linkダウンさせて経路迂回させたい時かと。 考えられる迂回路は? ○L2 ・LinkAggregation → LACPでサイレント障害回避 ○L3 ・OSPF → keepaliveしてる ・BGP → keepaliveしてる です。 OSPF,BGPはそもそも上位Layer(L3)で動作しているので、 わざわざUDLDしなくてもいいように思う(というか無駄)。 (コンバージェンスに関してもそのプロトコルにあわせてtimerなどを調整するべきかと。) 別vlanにstaticで2経路みたいな構成だと、(間にスイッチかんでたりとか?)意味あるかも。 でもそれって、デザインが悪いじゃないかと思います。 □ UDLDの注意 UDLDは対向機器同士で設定するものですが、フレームのとおり、L2で透過してしまいます。# R1 1/1 routed-port/udld aggresive/vrrp # R2 1/1 routed-port/udld aggresive/vrrp # L2 設定なし(native vlan) +------+ +------+ | R1 |-------| R2 | +------+ +------+ (1/1) (1/1) | | +------+ +------+ | L2 |-------| L2 | +------+ +------+ * こんなことすると、1/1 同士で、UDLD neigbhorがはれてしまいます。 R1/R2の1/1どちらかが落ちると、UDLDで対向もdownして、 VRRPの両系がおちるという悲惨な事故になるじゃないかと(検証してませんが)
(追記) 以降出会うことがないかもしれない。UDLD。貴重でした。 妄想ですが、あんまり運用されてない・枯れてない 異種ベンダ間で使用する場合は、検証MUSTのような気がします。
Categorised as: Ethernet