Cisco err-disableを戻す&自動回復させてみよう の巻


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 ポート状態からの復旧

Leave a comment

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください