Loop Guard 理解のための前提知識
STP はルートブリッジを最上流とし、下位スイッチに対して BPDU を送信します。
BPDU を送信するポートは下位スイッチに繋がるので "Down Link(ダウンリンク)"、BPDUを受信するポートは上位スイッチに繋がるので "Up Link(アップリンク)" と呼びます。
Up Link のうち、ルートブリッジに一番近い 1 ポートは "Root Port : ルートポート" として開放し、その他のポートは Block Port : ブロックポート (RSTP で言う "Alternate Port : 代替ポート") になります。
Donw Link は基本的に全て "Designated Port : 指定ポート" として開放します。例外的に、自分のスイッチ内でループするときは 1 ポートが Block Port (RSTP で言う "Backup Port : バックアップポート") となります。
このあたりの説明がしっくりこない方は、下記ページをまずは参照下さい。
Loop Guard とは
Cisco の Loop Guard 機能は、Loop Detection のようなループを検知するソリューションではありません。「1000Base-SX のような 2 芯の光ケーブル上で STP を動作させる場合において、BPDU が送信されている 1 芯だけに障害が起きたときに発生する L2 ループを未然に防止する」ソリューションです。
Up Link の Block Port (="Alternate Port: 代替ポート") は本来、障害発生時には Up Link の "Root Port: ルートポート" に切り替わることが期待されるポートです。しかし BPDU が送信されている単一方向リンク障害の際には、Down Link (Designated Port) に切り替わり、その結果ループが発生します。
Loop Guard ではこの「Up Link の Block Port (代替ポート) ⇒ Designated Port」への状態変化が発生する際に、実際には "Designated Port" ではなく "Loop-Inconsistent" という状態に変更し、そのリンクをブロック状態にします。
復旧には手動操作は不要で、再度 BPDU を受信し始めることによって自動復旧します。
UDLD との違い、比較
UDLD (Uni-Directional Link Detection) は独自フレームを使って2芯どちらの単一方向リンク障害も検知できます。検知時にはそのポートを err-disable 状態にするので、手動でインタフェースを shut -> no shut で直すか、errdisable recovery コマンドで自動リカバリ設定をします。
以下の表に Loop Guard と UDLD の比較を示します。
Loog Guard | UDLD | |
障害検知方法 | BPDU を受信しなくなる | 独自フレームを受信しなくなる |
障害検知箇所 | BPDU を送信している1芯のみ | 2芯両方 |
検知時の反応 | Loop Inconsistent 状態にし、 BPDU 以外の全ての通信をブロック | Err-disable 状態にし、全ての 通信をブロック |
復旧方法 | BPDUを受信することで自動復旧 | 手動(shut->no shut)もしくは 自動(errdisable recovery) |
Loop Guard の設定
Loop Guard は以下の Global 設定により全インタフェースに有効化することが可能です。
もしくは以下のようにインタフェース単位でも可能です。
コメント