err-disabledは、スイッチが自分でポートを停止した状態です。ケーブル抜けやリンクダウンとは違い、ソフトウェアが「このポートは危険」と判断して落としているため、ケーブルを挿し直しても戻りません。
解除そのものは、対象インターフェースで shutdown → no shutdown を実行するだけです。ただし原因を直さずに解除すると、多くの場合は数秒から数分で同じ状態に戻ります。この記事では、解除の手順と、その前に確認すべきことを順番に扱います。
このページはネットワークエンジニア転職ガイドの各論です。担当工程の全体像を先に確認する場合はそちらへ。
err-disabledとリンクダウンは何が違う?
| 状態 | 誰が落としたか | ケーブル差し直しで戻るか | 復旧に必要なこと |
|---|---|---|---|
| down / down | 物理的に信号が来ていない | 戻る | ケーブル・対向機器・モジュールの確認 |
| administratively down | 人が shutdown した |
戻らない | no shutdown |
| err-disabled | スイッチのソフトウェアが保護機能で落とした | 戻らない | 原因の解消 + 手動解除または自動復旧 |
err-disabledは障害ではなく、保護機能が意図どおり動いた結果です。ループやセキュリティ違反を検知して、ネットワーク全体への波及を止めています。したがって最初にやることは解除ではなく、何を検知したのかの特定です。
止まっているポートと理由を確認する
解除の前に、次の2つを取得します。この2つで「どのポートが」「なぜ」止まったかが分かります。
Switch# show interfaces status err-disabled
Switch# show errdisable recovery
show interfaces status err-disabled は、err-disabledになっているポートと、その理由(Reason列)を一覧で出します。理由の文字列がそのまま原因の名前です。
show errdisable recovery は、原因ごとに自動復旧が有効か無効か、復旧までのタイマー、そして次回の復旧対象になっているインターフェースを表示します。自動復旧が無効なら、そのポートは人が解除するまで止まったままです。
どの原因を検知対象にしているかを確認するときは、次を使います。
Switch# show errdisable detect
ログにも理由が残ります。show logging で、err-disableに落ちた時刻とポート番号を控えておくと、対向機器のログと突き合わせられます。
出典:Recover Errdisable Port State on Cisco IOS Platforms(Cisco)(2026年8月確認)
解除前に記録する3点
show interfaces status err-disabledで対象ポートを特定するshow loggingとshow errdisable recoveryで発生原因・時刻・自動復旧設定を確認する- BPDU Guard、port-security、UDLDなど原因別の保護機能を確認し、対向と設定を直してから復旧する
shutdown→no shutdownは原因を解消しません。復旧直後に再びerr-disabledへ戻る場合は、同じ操作を繰り返さず原因調査を続けます。コマンドは機種・IOS/IOS XEの版で差があるため、適用環境で確認してください。Cisco公式の復旧手順
手動で解除する
Switch# configure terminal
Switch(config)# interface GigabitEthernet1/0/24
Switch(config-if)# shutdown
Switch(config-if)# no shutdown
Switch(config-if)# end
no shutdown だけでは戻りません。一度 shutdown を入れて状態をクリアしてから、no shutdown で上げます。
ここで気をつけることが2つあります。
- 原因を直していなければ、すぐ同じ状態に戻る。ループが残っていれば数秒で再度落ちます
- 解除は「検知した理由を潰した後」に行う。順序を逆にすると、何回落ちたかの記録だけが増えます
本番環境では、解除の前後で show interfaces status を取得し、変更前後の状態を残しておきます。
自動復旧を設定する
原因ごとに自動復旧を有効化できます。一定時間が経過すると、スイッチが自分でポートを上げ直します。
Switch(config)# errdisable recovery cause link-flap
Switch(config)# errdisable recovery interval 300
errdisable recovery cause は原因ごとに個別に指定します。errdisable recovery interval は復旧までの秒数で、既定値は300秒です。設定した内容と、次に復旧されるインターフェースは show errdisable recovery で確認できます。
自動復旧は便利ですが、原因を消すわけではありません。ループが続いていれば「300秒ごとに上がって、また落ちる」を繰り返します。ログが同じ内容で埋まるため、根本原因が見えにくくなることもあります。
原因別に、どこを直すか
Reason列に出る代表的な原因と、直す場所です。
| 原因(Reason) | スイッチが検知したこと | 直す場所 |
|---|---|---|
| bpduguard | BPDU Guardを有効にしたアクセスポートでBPDUを受信した | その先にスイッチやハブが接続されていないか。意図した接続なら、ポートの役割設定を見直す |
| psecure-violation | Port Securityで許可していないMACアドレスを検知した | 接続端末の入れ替え有無、許可MACの上限値、sticky設定の内容 |
| link-flap | 短時間にリンクのup/downが規定回数を超えた | ケーブル、光モジュール、対向ポートのオートネゴシエーション設定 |
| udld | UDLDが片方向通信を検知した | 光ファイバの送受のペア、モジュールの故障、パッチパネルの結線 |
| channel-misconfig | EtherChannelの設定が両端で食い違っている | 両端のchannel-groupのモード、対象ポートの構成一致 |
| dtp-flap / pagp-flap | ネゴシエーションが安定しない | 両端のtrunk設定・チャネル設定を固定にする |
| storm-control | 設定した閾値をブロードキャストなどが超えた | 閾値の妥当性と、上流で何が大量発生しているか |
| arp-inspection / dhcp-rate-limit | DAIやDHCP Snoopingの制限を超えた | trust設定の付け忘れ、レート値、端末側の異常 |
bpduguardとpsecure-violationは、設定どおりに動いた結果であることが多い原因です。「機器の不具合」ではなく「そこに繋いではいけないものが繋がれた」ことを示しています。物理的に何が接続されたかを先に確認します。
自動復旧に入れてよい原因・いけない原因
| 判断 | 該当する原因の例 | 理由 |
|---|---|---|
| 入れてよい | link-flap、udld、dtp-flap | ケーブルやモジュールの一時的な事象で落ちることがあり、自動で戻れば影響時間が短い |
| 慎重に判断 | storm-control、dhcp-rate-limit | 原因が残っていると復旧と停止を繰り返す。閾値の妥当性を先に確認する |
| 入れないほうがよい | bpduguard、psecure-violation | ループや不正接続を止めている。自動で上げると保護機能の意味がなくなる |
自動復旧を設定するかどうかは、そのポートが止まったときに何が困るかで決めます。無人拠点のアクセススイッチなら自動復旧が効きますし、ループを止めているポートなら人が確認してから上げるべきです。
※ここに、実際の案件で自動復旧を入れた原因・入れなかった原因と、その判断理由という元インフラエンジニアとしての実体験を追加すると強い。
解除後に再発していないか確認する
- 解除直後の状態を取る
show interfaces statusでconnectedになったことを確認します。 - 数分待って再取得する
ループやflapが残っていると、この間に再びerr-disabledへ落ちます。1回目のconnectedだけで完了にしません。 - カウンターの増分を見る
show interfacesのinput errorsやCRCが、解除前後で増えているかを比べます。増えていれば物理側が残っています。 - ログを確認する
同じ理由のメッセージが再度出ていないかをshow loggingで確認します。 - 対向機器も見る
片側だけで判断すると、対向のポート設定が原因のケースを見落とします。
インターフェースのカウンターの読み方はshow interfacesの見方にまとめています。
作業記録に残す項目
- 機器名、インターフェース名、発生時刻(タイムゾーンつき)
show interfaces status err-disabledのReason- 解除前に実施した原因の解消内容(何を、誰が)
- 解除の実施時刻と実施者、確認者
- 解除後の状態と、数分後の再取得結果
- 自動復旧の設定を変更した場合は、その原因名と秒数
関連する記事
まとめ
err-disabledは保護機能が働いた状態なので、解除は原因を潰した後に行います。手順としては show interfaces status err-disabled と show errdisable recovery で理由と復旧設定を確認し、原因を直してから対象インターフェースで shutdown → no shutdown です。自動復旧は errdisable recovery cause と errdisable recovery interval(既定300秒)で設定できますが、bpduguardやpsecure-violationのようにループや不正接続を止めている原因では、自動で上げると保護の意味がなくなります。解除後は1回のconnectedで終わらせず、数分後に再取得してカウンターとログを確認してください。
