ループガード
ループガードは、障害による単方向リンクの発生時に、代替ポートやルートポートが指定ポートになるのを防ぎます。この機能は、スイッチネットワーク全体で有効にすると最も効果的です。
- 動作モード:
- PVST+ または Rapid-PVST+ モード: 代替ポートとルートポートが指定ポートになるのを防ぎ、これらのポートでBPDUを送信しません。
- MST モード: 非境界ポートでは、すべてのMSTインスタンスでループガードによってインターフェイスがブロックされている場合にのみBPDUを送信しません。境界ポートでは、ループガードによってすべてのMSTインスタンスでインターフェイスがブロックされます。
ループガードは、スパニングツリーの安定性を保ち、ネットワークの信頼性を向上させます。
ループガードの設定
ループ ガードを有効にします。デフォルトでは、ループ ガードは無効になっています。
グローバルでの有効化
Switch(config)#spanning-tree loopguard default
インターフェイスでの有効化
Switch(config-if)# spanning-tree guard root
設定例

Switch3でループガードを有効にします。
Switch3(config)#spanning-tree loopguard default
Switch1のGi0/3でBPDFフィルターを有効化にしてBPDUを送信しないようにします。
Switch1(config)#int g0/3
Switch1(config-if)#spanning-tree bpdufilter enable
Switch3のGi0/1でBPDUを受信しなくなったため、ループガードによってブロックされた旨のログが出力されました。
Switch3#
*Sep 1 07:41:06.058: %SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port GigabitEthernet0/1 on VLAN0010.
Switch1のGi0/3でBPDFフィルターを無効にします。
Switch1(config)#int g0/3
Switch1(config-if)#no spanning-tree bpdufilter en
Switch3のGi0/1でBPDUを受信するようになったためループガードによってブロッキング状態が解消されたことを示すログが出力されました。
Switch3#
*Sep 1 07:42:52.853: %SPANTREE-2-LOOPGUARD_UNBLOCK: Loop guard unblocking port GigabitEthernet0/1 on VLAN0010.
ルートガード
ルートガード(Root Guard) は、スパニングツリープロトコル(STP)において、特定のポートがルートブリッジとして選定されることを防ぐためのセキュリティ機能です。ネットワークの安定性を確保し、意図しないスイッチがルートブリッジとなるのを防ぐために使用されます。これにより、ネットワークトポロジーの意図しない変更を防ぎ、予期しない動作や障害を回避することができます。
ルートガードの動作
- ルートガードが有効なポート: ルートガードを有効にしたポートは、通常のSTPの役割(例えば、指定ポートまたはルートポート)を果たしますが、ルートブリッジとして選定されることはできません。
- BPDUの監視: ルートガードは、受信するBPDUを監視します。もし、ルートガードが有効なポートで、他のスイッチから自分よりも優先度の高い(より低いブリッジIDを持つ)BPDUが受信されると、そのポートをルートインコンシステント(Root Inconsistent)状態に設定します。
- ルートインコンシステント状態: ポートがルートインコンシステント状態になると、そのポートはディスカード(Discarding)状態に移行し、データフレームの転送を停止します。この状態は、BPDUがそのポートから受信されなくなるまで続きます。BPDUの受信が止まると、ポートは自動的にフォワーディング(Forwarding)状態に戻ります。
- MSTモードでの動作: マルチスパニングツリー(MST)モードでは、ルートガードがインターフェイスを強制的に指定ポートにし、境界ポートが内部スパニングツリー(IST)インスタンスでブロックされると、すべてのMSTインスタンスでもブロックされます。
- 適用範囲: ルートガードは、有効にしたインターフェイスに属するすべてのVLANに適用され、VLANはグループ化してMSTインスタンスにマッピングできます。
ルートガードの設定
ルートガードの有効化
設定するインターフェイスを指定し、インターフェイス コンフィギュレーション モードに入ります。
Switch(config)#interface interface-id
インターフェイス上でルート ガードを有効にします。デフォルトでは、ルート ガードはすべてのインターフェイスで無効になっています。
Switch(config-if)#spanning-tree guard root
設定例
下記のように、想定されていないPriority0のSwitch0が接続されるケースを想定します。

Switch3のGi0/0にルートガードを設定します。
Switch3(config)#int gi0/0
Switch3(config-if)#spanning-tree guard root
Switch0を接続します。
Switch0(config)#int g0/3
Switch0(config-if)#no shutdown
Switch3のGi0/0でBPDUを受信したため、ルートガードの機能によってブロックされたことを示すログが出力されました。
Switch3(config-if)#
*Sep 1 07:57:51.833: %SPANTREE-2-ROOTGUARD_CONFIG_CHANGE: Root guard enabled on port GigabitEthernet0/0.
ブリッジアシュアランス
Bridge Assuranceは、単方向リンクや隣接スイッチの故障によるループ状態を防ぐための機能です。これは、トラフィックは継続するがSTPを実行できなくなったスイッチを対象としています。
- 動作原理: すべての動作中のネットワークポートでBPDUが各hello期間に送信されます。ポートが指定された期間内にBPDUを受信しない場合、そのポートはブロック状態になります。BPDUの受信が再開されると、ポートは通常のスパニングツリー操作を再開します。
- 有効化の条件:
- グローバルにのみ有効化または無効化可能。
- Rapid PVST+およびMSTスパニングツリープロトコルでサポート。
- ポイントツーポイントリンクの両端で有効にする必要がある。
- BPDUフィルタリングとBPDUガードを無効にする必要がある。
- ループガードやRoot Guardと組み合わせて使用可能。
Bridge Assuranceをネットワーク全体で有効にすることが推奨され、これによりネットワークの安定性と信頼性が向上します。
ブリッジアシュアランスの設定
スイッチ上のすべてのネットワーク ポートでブリッジ保証を有効にします。Bridge Assurance はデフォルトで有効になっています。
Switch(config)#spanning-tree bridge assurance