BPDUガードの動作検証、自動復旧確認まで

BPDUガードの動作検証、自動復旧確認まで

STPの拡張機能である、BPDUガードの動作検証をしてみたい。
BPDUカードとは、portfastが設定されているスイッチポートでBPDUを受信したときにポートをerr-disabledにする機能である。
単純な構成で検証しよう。

Switch1、Switch2ともに特にコンフィグは投入していない、かつ結線をしていない。
ここでSwitch1のインターフェイスにBPDUガードの設定をしてみよう。

BPDUガード設定コンフィグ
グローバルコンフィギュレーションモード、インターフェイスコンフィギュレーションモードどちらでも設定が可能。
違いは以下の通り

グローバルコンフィギュレーションモード:portfastが設定されているインターフェイス全てにBPDUガードの設定が可能
インターフェイスコンフィギュレーションモード:インターフェイス単位でBPDUガードの設定が可能

(config)#spanning-tree portfast bpduguard default
(config-if)#spanning-tree bpduguard enable

それでは、Switch1のEthernet 0/0にBPDUガードの設定を投入する。

Switch1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Switch1(config)#int e 0/0
Switch1(config-if)#spanning-tree bpduguard enable
Switch1(config-if)#

投入ができたのでSwitch2のEthernet 0/0と結線をしてみる。


するとSwitch1のコンソールに下記出力が確認できる。

*Sep 10 20:46:05.801: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Et0/0 with BPDU Guard enabled. Disabling port.
Switch1(config-if)#
*Sep 10 20:46:05.801: %PM-4-ERR_DISABLE: bpduguard error detected on Et0/0, putting Et0/0 in err-disable state
*Sep 10 20:46:06.808: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down
Switch1(config-if)#
*Sep 10 20:46:07.810: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down
Switch1(config-if)#

1行目に、BPDUガードが有効なEt0/0でBPDUを受け取ったと出力されている。
2~3行目でEt0/0がerr-disableとなりインターフェイスがダウンしていることが分かる。
showコマンドで確認してみよう。

Switch1#show ip interface ethernet 0/0
Ethernet0/0 is down, line protocol is down
  Inbound  access list is not set
  Outgoing access list is not set

メッセージの通りインターフェイスがダウンしていた。
正常にBPDUガードが働いているようだ。

次はインターフェイスを復旧させよう。
その前に、BPDUガードをdisableにする。

Switch1(config-if)#no spanning-tree bpduguard enable

err-disableとなったポートはno shutdownでは復旧せず、一度shutdownコマンドを打ってからno shutdownコマンドを打つのだった。
せっかくなのでno shutdownコマンドのみ投入し、インターフェイス状態を確認してみる。

Switch1(config)#interface ethernet 0/0
Switch1(config-if)#no shutdown
Switch1(config-if)#end
*Sep 10 20:54:31.515: %SYS-5-CONFIG_I: Configured from console by console
Switch1#show ip interface ethernet 0/0
Ethernet0/0 is down, line protocol is down
  Inbound  access list is not set
  Outgoing access list is not set

想定通り、復旧しない。
次は正しい方法で復旧を試みる。

Switch1(config)#interface ethernet 0/0
Switch1(config-if)#shutdown
Switch1(config-if)#no shutdown
Switch1(config-if)#
*Sep 10 20:58:14.299: %LINK-5-CHANGED: Interface Ethernet0/0, changed state to administratively down
Switch1(config-if)#
*Sep 10 20:58:16.527: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to up
*Sep 10 20:58:17.532: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to up
Switch1(config-if)#end
*Sep 10 20:58:23.988: %SYS-5-CONFIG_I: Configured from console by console
Switch1#show ip interface ethernet 0/0
Ethernet0/0 is up, line protocol is up
  Inbound  access list is not set
  Outgoing access list is not set

shutdown→no shutdownの流れで復旧することが確認できた。
また、この他に自動復旧する方法もあるので試すことにする。
show errdisableコマンドで現在の状態を確認してみる。
このコマンドは対象のエラーが発生しerr-disableとなったポートを自動復旧させるかどうかの設定値を確認することが可能。

Switch1#show errdisable recovery
ErrDisable Reason            Timer Status
—————–            ————–
arp-inspection               Disabled
bpduguard                    Disabled
channel-misconfig (STP)      Disabled
dhcp-rate-limit              Disabled
dtp-flap                     Disabled
gbic-invalid                 Disabled
inline-power                 Disabled
l2ptguard                    Disabled
link-flap                    Disabled
mac-limit                    Disabled
link-monitor-failure         Disabled
loopback                     Disabled
oam-remote-failure           Disabled
pagp-flap                    Disabled
port-mode-failure            Disabled
pppoe-ia-rate-limit          Disabled
psecure-violation            Disabled
security-violation           Disabled
sfp-config-mismatch          Disabled
storm-control                Disabled
udld                         Disabled
unicast-flood                Disabled
vmps                         Disabled
psp                          Disabled
dual-active-recovery         Disabled
Timer interval: 300 seconds
Interfaces that will be enabled at the next timeout:

設定値を見ると、bpduguardがdisabledとなっている。つまり自動復旧しないということだ。
これをenableにしてあげよう。

Switch1(config)#errdisable recovery cause bpduguard
Switch1(config)#end
*Sep 10 21:06:26.780: %SYS-5-CONFIG_I: Configured from console by console
Switch1#show errdisable recovery
ErrDisable Reason            Timer Status
—————–            ————–
arp-inspection               Disabled
bpduguard                    Enabled

1行目、causeの後ろにエラーの原因を指定することで対象のエラーの自動復旧をenableにすることができる。
デフォルトで自動復旧時間が300秒なので60秒に変えよう。

Switch1(config)#errdisable recovery interval 60
Switch1(config)#end
*Sep 10 21:08:38.046: %SYS-5-CONFIG_I: Configured from console by console
Switch1#show errdisable recovery
ErrDisable Reason            Timer Status
—————–            ————–
arp-inspection               Disabled
bpduguard                    Enabled
channel-misconfig (STP)      Disabled
dhcp-rate-limit              Disabled
~~~~~
~~~~~
Timer interval: 60 seconds
Interfaces that will be enabled at the next timeout:

対象ポートがerr-disableとなれば60秒後に復旧するはずだ。試してみよう。

Switch1#
*Sep 10 21:16:21.117: %SYS-5-CONFIG_I: Configured from console by console
Switch1#
*Sep 10 21:16:30.103: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Et0/0 with BPDU Guard enabled. Disabling port.
Switch1#
*Sep 10 21:16:30.103: %PM-4-ERR_DISABLE: bpduguard error detected on Et0/0, putting Et0/0 in err-disable state
*Sep 10 21:16:31.105: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0,changed state to down
Switch1#
*Sep 10 21:16:32.114: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down

=====================================================

*Sep 10 21:17:30.108: %PM-4-ERR_RECOVER: Attempting to recover from bpduguard err-disable state on Et0/0
Switch1#
*Sep 10 21:17:32.112: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to up
*Sep 10 21:17:33.118: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to up

21:16:30にerr-disableとなってから60秒後の21:17:30にstateが変わり、自動復旧していることが確認できる。

以上です。

CCNPカテゴリの最新記事

%d人のブロガーが「いいね」をつけました。
TOP