BPDU Guardの動作テスト
はじめに
結果
下記事項について問題なく機能していることを確認した。
- BPDU Guard をグローバルコンフィグで有効にした場合、PortFastが設定されているポートで BPDU Guard の機能が有効になる。
- 特定のインタフェースについて有効にした場合、PortFast が設定されていなくても BPDU Guard が有効になる。
- ネットワークループを検知した後、当該ポートのステータスが errdisable になる。
- errdisable の自動復旧時間を設定できる。
BPDU Guardとは
BPDU Guard は、PortFast の設定されているポートもしくは指定したインタフェースにおいて BPDU を受信した時、そのポートを error-disable にする機能である。
PortFast に設定されているポートでは、PCやサーバなどが接続されることが前提であり、BPDU の受信は、不正なデバイスやネットワークループが発生した可能性が高いことを意味する。また、error-disable ステータスに遷移した場合、当該ポートの自動復旧時間を設定することも可能である。
設定方法
BPDU Guard の設定はグローバルコンフィグ上(1)またはインターフェース上(2)で有効にすることができる。
(1) BPDU Guardをグローバルコンフィグで有効にした場合、PortFastが設定されているポートでBPDUガードの機能が有効になる。
localhost(config)#spanning-tree portfast bpduguard default
localhost(config-if-Et7)#spanning-tree portfast
(2) 特定インタフェースで有効にした場合、PortFastが設定そのポートに設定されていなくてもBPDUガードが有効になる。
localhost(config-if-Et7)#spanning-tree bpduguard enable
localhost(config)#errdisable recovery cause bpduguard
localhost(config)#errdisable recovery interval <time>
<30-86400> Recovery time in seconds
検証方法
以下の設定を行い、BPDU Guardとerrdisable機能の基本動作を確認した。ポート7 でネットワークループをシミュレーションし、ポートのステータスがerrdisableに遷移することを期待する。結果、以下のように自分が発行した BPDU パケットをポート 7 自身で受信した直後、ポートステータスが errdisable(※1)に変化しディスエーブルされたことを確認できた。また、設定した復旧時間後(※2)にステータスがフォワーディングに戻ることも確認できた。
設定内容
localhost(config)#spanning-tree portfast bpduguard default
localhost(config-if-Et7)#spanning-tree portfast
localhost(config-if-Et7)#exit
localhost(config)#errdisable recovery cause bpduguard
localhost(config)#errdisable recovery interval 30
動作確認:通常時
localhost(config)# show errdisable recovery
Errdisable Reason Timer Status
----------------- ------------
bpduguard Enabled
portsec Disabled
xcvr-unsupported Disabled
Timer Interval: 30 seconds <---※2 自動復旧時間
Interfaces that will be enabled at the next timeout:
動作確認:ポート7エラー時(自動復旧時間30秒に設定)
localhost(config)# show errdisable recovery
Errdisable Reason Timer Status
----------------- ------------
bpduguard Enabled
portsec Disabled
xcvr-unsupported Disabled
Timer Interval: 30 seconds
Interfaces that will be enabled at the next timeout:
Interface Errdisable reason Time left(sec)
--------- ----------------- --------------
Ethernet7 bpduguard 27 <---※1 BPDU受信後、errdisableに変化。