Errdisable recovery

errdisable の機能

ポートがイネーブルに設定されていても、スイッチのソフトウェアがポートのエラー状態を検出した場合は、ソフトウェアがそのポートをシャットダウンします。つまり、ポートでエラー状態が発生することにより、スイッチのオペレーティング システム ソフトウェアが自動的にポートをディセーブルにします。

ポートがエラー ディセーブルになると、効果的にシャットダウンされ、このポートでトラフィックの送受信は行われなくなります。ポートのLEDがオレンジ色になり、show interfacesコマンドを発行すると、ポートのステータスがerr-disabledと表示されます。

エラー ディセーブル機能は、次の 2 つの目的を果たします。

  • ポートの問題がいつどこで発生しているかを管理者に知らせます。
  • モジュール上の他のポート(またはモジュール全体)が、このポートが原因で故障する可能性を軽減します。

errdisable の原因

この機能が最初に実装されたのは、スイッチの 1 つのポートで過剰コリジョンやレイト コリジョンが検出されるような、特殊なコリジョン状態を処理するためでした。連続 16 回のコリジョンがスイッチで発生し、フレームが廃棄されると、過剰コリジョンが発生します。レイトコリジョンが発生するのは、回線上のすべてのデバイスが、回線が使用中であることを認識しなかったためです。

一般的に、これらのエラーの原因には、次のようなものがあります。

  • 仕様に従っていないケーブル(長すぎる、タイプが間違っている、または不良)
  • Network Interface Card(NIC; ネットワーク インターフェイス カード)の不良(物理的な問題またはドライバの問題)
  • ポートのデュプレックスの設定ミス

インターフェイスが errdisable 状態になる理由はさまざまです。次のような理由が考えられます。

  • 二重モードの不一致
  • ポート チャネルの設定ミス
  • BPDU Guard 違反
  • UniDirectional Link Detection(UDLD; 単方向リンク検出)条件
  • レイト コリジョンの検出
  • リンクフラップの検出
  • セキュリティ違反
  • ポート集約プロトコル(PAgP)フラップ
  • レイヤ 2 トンネリング プロトコル(L2TP)ガード
  • DHCP スヌーピングのレート制限
  • 不適切な GBIC/Small Form Factor Pluggable(SFP; 着脱可能小型フォーム ファクタ)モジュールまたはケーブル
  • アドレス解決プロトコル(ARP)の検査
  • インライン パワー

errdisabled 状態の理由

show interfaces コマンドを発行すれば、ポートがエラー ディセーブルになっているかどうかを判断できます。

show logコマンドを発行してsyslogに表示することで理由を判断できます。

errdisable recovery を有効にしている場合は、show errdisable recovery コマンドを発行すると、errdisable 状態の理由を特定できます。

errdisabled 状態からのポートの復旧

errdisable 状態からポートを復旧するためには、まず根本的な問題を特定して修正し、次にポートを再びイネーブルにします。根本的な問題を修正する前にポートを再びイネーブルにすると、ポートは再びエラー ディセーブル状態になります。

例えば、EtherChannelの設定誤りや二重モードの不一致、ポートセキュリティの違反等があります。原因を解消してからイネーブルにしましょう。

errdisable recovery cause

errdisable recovery コマンドを使用すれば、指定した時間が経過した後に、ポートを自動的に再度有効にするエラーの種類を選択できます。

例えばBPDU ガードの errdisable 復旧条件をイネーブルにするには次のコマンドになります

Switch(Config)# errdisable recovery cause bpduguard

エラーの種類は以下のようなものがあります。

allすべてのエラー原因から回復するタイマーを有効にする
arp-inspectionarp 検査エラー無効状態から回復するタイマーを有効にする
bpduguardBPDU Guard エラーからの復帰タイマーを有効にする
channel-misconfigEtherChannel 設定ミスコンフィグエラーから復帰するタイマーを有効にする(STP)
dhcp-rate-limitdhcp-rate-limit エラーからの復旧タイマーの有効化
dtp-flapdtp-flap エラーからの復帰タイマーの有効化
gbic-invalid無効なGBICエラーから回復するタイマーを有効にする
inline-powerインラインパワーエラーからの復帰タイマーの有効化
l2ptguardl2protocol-tunnel エラーからの復旧タイマーの有効化
link-flapリンクフラップエラーからの復帰タイマー
link-monitor-failureリンク監視障害復旧タイマ
loopbackループバックエラーからの復帰タイマーの設定
mac-limitmac制限無効状態からの復帰タイマーの設定
oam-remote-failureOAM検出リモート障害からの復帰タイマーの設定
pagp-flapページフラップエラーからの復帰タイマーの設定
port-mode-failureポートモードチェンジの失敗から復旧するタイマーの設定
pppoe-ia-rate-limitPPPoE IA レートリミットエラーからの復旧タイマーの設定
psecure-violationpsecure violationエラーからの復旧タイマーの設定
psppsp からの復旧タイマーの有効化
security-violation802.1x違反エラーからの復帰タイマーの有効化
sfp-config-mismatchSFP コンフィグ不一致エラーからの復帰タイマーの有効化
storm-controlストームコントロールエラーからの復帰タイマー
udldudldエラーからの復帰タイマーの有効化
unicast-floodユニキャストフラッドエラーからの復帰タイマーの有効化
vmpsvmpsシャットダウンエラーからの復帰タイマーの有効化

errdisable recovery のいずれかの条件がイネーブルになっている場合は、この条件を満たすポートが 300 秒後に再びイネーブルになります。次のコマンドを発行すれば、この 300 秒というデフォルトも変更できます。

Switch(Config# errdisable recovery interval timer_interval_in_seconds

timer_interval_in_seconds秒数を指定します。範囲は30秒 ~ 86400秒です。

参考文献

Recover Errdisable Port State on Cisco IOS Platforms