| BPDU Guard |
BPDU Guard は、PortFast が設定されたポートに誤ってスイッチなどのネットワーク機器が接続された場合に、自動的にそのポートを遮断する(error disableする)機能です。
Contents
動作の仕組み
- PortFast ポートは本来、PCやプリンタなどのエンドデバイスが接続されることを想定しています。
誤って別のスイッチを接続すると、STP の制御メッセージ(BPDU)が送られてきます。 - その瞬間、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 Guard | BPDU検知で遮断 | error-disable化 | 高い | PortFastと併用 |
| BPDU Filter (global) | 一時的BPDU抑制 | BPDU受信で自動解除 | 中〜高 | PortFastと併用 |
| BPDU Filter (interface) | 完全遮断 | BPDU送受信無視 | 低い | 管理者用途のみ |