1 err-disableを戻してみよう
err-disableになったポートはCisco,Catalystを再起動したところで直りません。Ciscoは意地悪なので、この絶対的に必要なやり方をCCNAでは教えてくれません。
これはひどい。
是非CCNAの試験として混ぜてもらいたいです。CUIコマンドにて
interface f0/1 (該当するinterfaceを選択) shutdown no shotdown
とするだけなのですが、知らないとなかなか思いつかないものです。
2 ログを見てみる。show errdisable recovery、show log
障害があったらまずlogを見ます。Show log を叩くとerr-disableに関する情報が記載されています。
%SPANTREE-SP-2-BLOCK_BPDUGUARD: Received BPDU on port FastEthernet0/3 with BPDU Guard enabled. Disabling port.
またshow interface status コマンドはどのポートがerr-disableになっているか即座に確認できるし、定番のコマンドですね。後述の”errdisable recovery cause”を設定すれば、show errdisable recovery というコマンドでも状況がわかります。
3 err-disableから自動復帰させる方法
世の中は攻撃や障害から全自動で防御、復旧できる機器がトレンドですね。自己防衛ネットワーク的な。って今回の機能とはちょっと視点が違うか。。(;・∀・)
err-disableになった場合、自動的にポートを復旧させる機能があります。
show errdisable recovery
まず上記コマンドを叩きます。すると下記のようなステータスが表示されます。
ErrDisable Reason Timer Status ----------------- -------------- udld Disabled bpduguard Disabled security-violatio Disabled channel-misconfig Disabled pagp-flap Disabled dtp-flap Disabled link-flap Disabled l2ptguard Disabled psecure-violation Disabled gbic-invalid Disabled dhcp-rate-limit Disabled mac-limit Disabled unicast-flood Disabled arp-inspection Disabled Timer interval: 300 seconds Interfaces that will be enabled at the next timeout:
一番左に表示されているのはerr-disableのトリガーとなる各機能です。これらの不具合が発生した際、ポートはerr-disableとなります。デフォルトでは自動復旧はしないので、err-disableになったポートはshut/no shutで回復させる必要があります。
ここからミソです。
例えばbpduguardによってerr-disableとなったポートを自動復帰させたい場合には下記を入力しします。
errdisable recovery cause bpduguard
causeの後には上記一覧で表示されるトリガーを指定できます。allとすることも可能。
#show errdisable recovery ErrDisable Reason Timer Status ----------------- -------------- udld Disabled bpduguard Enabled
enableになりました。これでクロスケーブルによりループ接続をしてみます。
bpduguardによりerr-disableとなりリンクのLEDが消灯します。
直後に再度show errdisable recoveryを見てみます。
#show errdisable recovery ErrDisable Reason Timer Status ----------------- -------------- udld Disabled bpduguard Enabled ~省略~ Timer interval: 300 seconds Interfaces that will be enabled at the next timeout: Interface Errdisable reason Time left(sec) --------- --------------------- -------------- Fa0/3 bpduguard 290
timerが活動し始め290という数値になりました。デフォルトだと300秒後に自動復帰します。自動復帰も障害が解決していない場合は再度bpduguardによりerr-disableとなり繰り返されます。自動復帰のtimer値は下記コマンドで変更可能です。各トリガー毎にtimer値を変えることはできません。
errdisable recovery interval 30
このようにerr-disableを自動復帰させることで障害解決後、err-disableの解除を忘れるといったことはありません。
しかしながら便利な機能だと思いますが、ループが回ってせっかくerr-disableにしてくれたのにまた勝手にリンクアップされたりするので使う時にはお客さんと要調整ということで。
■参考
公式ページ
Cisco IOS プラットフォームでの errdisable ポート状態からの復旧