Cisco 交換機為保護基礎設施,當偵測到嚴重錯誤/違規行為時,會**強制關閉介面並標記為 `err-disable` 狀態** (介面燈橘燈/琥珀色閃爍,`show interface status` 顯示 `err-disabled`)。**介面完全不轉發封包**,直到人工干預或配置自動恢復。
| # | 原因 | 觸發機制 | 典型場景 | 解決/預防配置 |
|---|---|---|---|---|
| 1 | EtherChannel Misconfig (通道配置不匹配) | 一方 `channel-group mode on` (強制、不發 PAgP/LACP),另一方未配置或模式不符 → 1 分鐘後 STP 偵測環路 → err-disable | 跨廠牌堆疊、手動配置 on 模式、遷移遺留配置 | 統一使用 channel-group 1 mode desirable (PAgP) 或 mode active (LACP) → **協商成功才 Up**,失敗保持 Down 不進 err-disable |
| 2 | Duplex Mismatch (雙工不匹配) | 一端 Half、一端 Full → Half 端檢測載波才送、Full 端持續送 → 嚴重碰撞/CRC → 介面錯誤計數器爆表 → err-disable | 一端硬碼 100Full、對端 Auto;舊設備不支援 Auto-Neg | **雙端同為 Auto** 或 **雙端同為硬碼同速率/同雙工** → 關閉介面錯誤檢測觸發 err-disable:errdisable detect cause duplex-mismatch (謹慎用,建議修根因) |
| 3 | BPDU Guard (BPDU 保護) | 啟用 `spanning-tree portfast` + `spanning-tree bpduguard enable` 的存取埠 → 收到 BPDU (連接了交換機/橋接設備) → 立即 err-disable | 使用者私接交換器/Hub/無線 AP、伺服器虛擬交換機橋接模式 | ① 正規連接交換器的埠 **關閉 PortFast/BPDU Guard** → 改 `spanning-tree portfast network` (邊緣) 或普通 STP。 ② 全域關閉預設: no spanning-tree portfast bpduguard default。 |
| 4 | UDLD (UniDirectional Link Detection) | 雙端啟用 UDLD → 發送含 Port-ID 的探測幀 → 對端需回應含原 Port-ID → 若單向 (光纖單斷、TX/RX 故障) → 無回應 → err-disable | 光纖跳線單芯斷裂、光模組 TX/RX 故障、長距離單模衰減邊緣 | ① 確保雙端**同時啟用/同時關閉** UDLD。 ② 正規光纖鏈路建議啟用 `udld port aggressive` (主動模式)。 ③ 故障後 `shutdown` / `no shutdown` 重置前,必先換跳線/模組/修纜線。 |
| 5 | Link Flap (鏈路抖動) | 10 秒內介面 Up/Down ≥ 5 次 → 判定不穩定 → err-disable | 線纜鬆動/斷續、光模組故障、對端設備重啟/重啟協商、電源波動 | ① 物理層修復 (換線/換模組/固定纜線)。 ② 調整閾值 (慎用): errdisable detect cause link-flap + errdisable flap-setting cause link-flap max-flaps 10 interval 30。 |
| 6 | Loopback Error (回環錯誤) | 介面收到自己發出的 Keepalive 封包 (早期 IOS 12.1EA 預設全埠發送 Keepalive) → 判定環路 → err-disable | 舊版 IOS、特定平台 (Catalyst 2950/3550 早期) | ① 關閉 Keepalive:no keepalive (介面下)。② 升級 IOS ≥ 12.2SE (預設修正)。 |
| 7 | Port Security Violation (埠安全違規) | 配置 `switchport port-security violation shutdown` → 學習 MAC 超過上限 / 靜態 MAC 衝突 / MAC 移動偵測 → err-disable | 使用者換電腦/接 Hub/虛擬機 MAC 漂移、MAC 攻擊 (MAC Flooding) | ① 依策略選擇 `violation restrict` (丟包+日誌+SNMP Trap、不關埠) 或 `protect` (靜默丟包)。 ② 設定合理 `maximum` (如 2~3) + `aging time` + `aging type inactivity`。 ③ 違規後手動恢復: shutdown / no shutdown。 |
interface GigabitEthernet1/0/1
shutdown
no shutdown
⚠️ **必先修復根因** (換線、修配置、清理 MAC、換模組),否則秒進 err-disable 死循環。
! 全域啟用自動恢復 (預設 300 秒)
errdisable recovery cause [all]
errdisable recovery interval ! 30~86400,建議 300~600
! 可選原因 : all | arp-inspection | bpduguard | channel-misconfig | dhcp-rate-limit | dtp-flap | gbic-invalid | inline-power | link-flap | loopback | pagp-flap | psecure-violation | security-violation | sfp-config-mismatch | storm-control | udld | vlan-mismatch
| 原因 | 建議自動恢復 | 理由 |
|---|---|---|
| Link Flap | ✅ 是 (Interval 300s) | 多為暫時性物理抖動,修復後自動恢復減少人工 |
| UDLD | ❌ 否 | 單向鏈路極度危險 (黑洞/環路),必須人工確認物理層修復 |
| BPDU Guard | ❌ 否 | 拓撲變更風險高,需確認是否授權連接 |
| Port Security | ⚠️ 視策略 | 若為 `restrict` 模式不進 err-disable;`shutdown` 模式建議人工審核 |
| EtherChannel Misconfig | ❌ 否 | 配置邏輯錯誤,自動恢復會反覆震盪 |
| Loopback | ✅ 是 (Interval 300s) | 通常為舊 IOS Bug,升級後可自動恢復 |
| Storm Control | ✅ 是 (Interval 300s) | 廣播風暴通常暫時,源頭止住後自動恢復合理 |
err-disable 不是敵人,是交換機在大喊:「**這裡有嚴重問題,別裝沒看見!**」。聽懂它的語言、修好根因、配置合理自癒,才是資深網管的功力體現。