STP拡張技術(BPDU Guard, BPDU Filtering)


BPDU Guard

BPDU Guard は、PortFast が設定されたポートに誤ってスイッチなどのネットワーク機器が接続された場合に、自動的にそのポートを遮断する(error disableする)機能です。

動作の仕組み
  1. PortFast ポートは本来、PCやプリンタなどのエンドデバイスが接続されることを想定しています。
    誤って別のスイッチを接続すると、STP の制御メッセージ(BPDU)が送られてきます。
  2. その瞬間、BPDU Guard が「異常なBPDUを検出」 して、
    ポートを「error-disabled(エラー無効)」状態にして通信を止めます。

これにより、ループを防ぎます。

設定例

個別ポートに設定:

Switch(config)# interface FastEthernet0/1
Switch(config-if)# spanning-tree portfast
Switch(config-if)# spanning-tree bpduguard enable

全PortFastポートで自動有効にするグローバル設定:

Switch(config)# spanning-tree portfast default
Switch(config)# spanning-tree portfast bpduguard default

ポートが遮断された場合

BPDUを受信すると、そのポートは「error-disabled」になります。

確認コマンド:

Switch# show interfaces status err-disabled

復旧するには:

Switch(config)# interface FastEthernet0/1
Switch(config-if)# shutdown
Switch(config-if)# no shutdown

または自動復旧を設定する:30secで復旧する場合

Switch(config)# errdisable recovery cause bpduguard
Switch(config)# errdisable recovery interval 30
BPDUフィルタリング

BPDUフィルタリングは、STP において、BPDUフレームの送受信を制御する機能
有効化すると、そのポートでは BPDU の送受信が行われなくなるか、特定条件で無効化されるようになります。

設定モードの違い

■グローバル設定モード

Switch(config)# spanning-tree portfast bpdufilter default

この設定を行うと、

  • PortFast が有効なポートに適用される。
  • リンクアップ時に一度だけBPDUを送信する。
  • その後、BPDUを受信した場合は PortFast を無効化し、通常のSTPポートに戻る。

🟢 安全で推奨される使い方で、
  PortFastポートに誤ってスイッチが接続されても自動防御できる

■インターフェイス設定モード

Switch(config-if)# spanning-tree bpdufilter enable

この設定は強制的にBPDU送受信を遮断します。
つまり、

  • BPDUを一切送らない
  • BPDUを受け取っても無視する

🔴 誤ってスイッチ間リンクに設定すると、STPが機能せずループが発生する。

■具体的な利用シーン

  • グローバル設定版
    • PortFastを使う全ポートで、BPDU Guardを使わずに軽い保護をしたい場合。
    • 例:サーバやPCが接続されるアクセス層スイッチ。
  • インターフェイス設定版
    • 試験・検証環境など、意図的にBPDUを遮断したい場合。
    • 例:STPのない独立セグメントに接続するポート。

      ⚠️ 注意点
    • インターフェイスモードは、ループ発生リスクが非常に高い
    • グローバルモードは、BPDU Guardより緩やかだが安全

■その他の拡張機能との比較

機能目的動作内容安全性推奨設定
PortFast即Forwarding化STP遷移スキップ高いホストポート
BPDU GuardBPDU検知で遮断error-disable化高いPortFastと併用
BPDU Filter (global)一時的BPDU抑制BPDU受信で自動解除中〜高PortFastと併用
BPDU Filter (interface)完全遮断BPDU送受信無視低い管理者用途のみ