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

コメントを残す