現在位置: ホーム Documents BPDU Guardの動作テスト

BPDU Guardの動作テスト

BPDU Guardとerrdisable機能によるネットワークループの回避が正しく動作することを確認した。

はじめに

ネットワークループによるブロードキャストストームが発生すると、その影響はネットワーク全体に波及する場合がある。EOSでは、BPDU Guard機能が搭載されており、errdisable機能と併用することで効率よくネットワークループの対策が実現できる。今回のテストではネットワークループをシミュレートし、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 
自動復旧させるには、Errdisable機能のrecoverを有効にする必要がある。(デフォルトで無効)
localhost(config)#errdisable recovery cause bpduguard 
自動復旧時間を調整することも可能。(デフォルトで300秒)
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に変化。
タグ: