【図解】Cisco STP (PVSTP+) の Loop Guard 機能, UDLDとの違い

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 : バックアップポート") となります。

このあたりの説明がしっくりこない方は、下記ページをまずは参照下さい。

【図解】STP(スパニングツリー)の実はシンプルな本質とアルゴリズム
【図解】STP(スパニングツリー)の実はシンプルな本質とアルゴリズム
スパニングツリーとは STPとは、Spanning Tree Protocol...

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 GuardUDLD
障害検知方法BPDU を受信しなくなる独自フレームを受信しなくなる
障害検知箇所BPDU を送信している1芯のみ2芯両方
検知時の反応Loop Inconsistent 状態にし、
BPDU 以外の全ての通信をブロック
Err-disable 状態にし、全ての
通信をブロック
復旧方法BPDUを受信することで自動復旧手動(shut->no shut)もしくは
自動(errdisable recovery)

Loop Guard の設定

Loop Guard は以下の Global 設定により全インタフェースに有効化することが可能です。

SW1(config)# spanning-tree loopguard default

もしくは以下のようにインタフェース単位でも可能です。

SW1(config-if)# spanning-tree guard loop

シェアする

  • このエントリーをはてなブックマークに追加

フォローする