轉:https://www.2cto.com/net/201303/198724.htmlhtml
交換機出現err-disable的緣由及解決方法ios
LOG示例:安全
21w6d: %ETHCNTR-3-LOOP_BACK_DETECTED: Keepalive packet loop-back detected on FastEthernet0/20.併發
21w6d: %PM-4-ERR_DISABLE: loopback error detected on Fa0/20, putting Fa0/20 in err-disable stateoop
的信息,端口處於err-disabled狀態,後來用errdisable recovery cause loopback恢復了。spa
因爲err-disable的緣由比較多,因此須要進一步確認,致使交換機接口出現err-disable的幾個常見緣由:htm
1. EtherChannel misconfiguration接口
2. Duplex mismatchci
3. BPDU port guardget
4. UDLD
5. Link-flap error
6. Loopback error
7. Port security violation
第一個當F EC兩端配置不匹配的時候就會出現err-disable。假設Switch A把FEC模式配置爲on,這時Switch A是不會發送PAgP包和相連的Switch B去協商FEC的,它假設Switch B已經配置好FEC了。但實事上Swtich B並無配置FEC,當Switch B的這個狀態超過1分鐘後,Switch A的STP就認爲有環路出現,所以也就出現了err-disable。解決辦法就是把FEC的模式配置爲channel-group 1 mode desirable non-silent這個意思是隻有當雙方的FEC協商成功後才創建channel,不然接口還處於正常狀態。
第二個緣由就是雙工不匹配。一端配置爲half-duplex後,他會檢測對端是否在傳輸數據,只有對端中止傳輸數據,他纔會發送相似於ack的包來讓鏈路up,但對端卻配置成了full-duplex,他才無論鏈路是不是空閒的,他只會不停的發送讓鏈路up的請求,這樣下去,鏈路狀態就變成err-disable了。
第三個緣由BPDU,也就是和portfast和BPDU guard有關。若是一個接口配置了portfast,那也就是說這個接口應該和一個pc鏈接,pc是不會發送spanning-tree的BPDU幀的,所以這個口也接收BPDU來生成spanning-tree,管理員也是出於好心在同一接口上配置了BPDU guard來防止未知的BPDU幀以加強安全性,但他偏偏不當心把一個交換機接到這個同時配置了portfast和BPDU guard接口上,因而這個接口接到了BPDU幀,由於配置了BPDU guard,這個接口天然要進入到err-disable狀態。解決辦法:no spanning-tree portfast bpduguard default,或者直接把portfast關了。
第四個緣由是UDLD。UDLD是cisco的私有2層協議,用於檢測鏈路的單向問題。有的時候物理層是up的,但鏈路層就是down,這時候就須要UDLD去檢測鏈路是不是真的up的。當AB兩端都配置好UDLD後,A給B發送一個包含本身port id的UDLD幀,B收到後會返回一個UDLD幀,並在其中包含了收到的A的port id,當A接收到這個幀並發現本身的port id也在其中後,認爲這鏈路是好的。反之就變成err-disable狀態了。假設A配置了UDLD,而B沒有配置UDLD:A給B發送一個包含本身port id的幀,B收到後並不知道這個幀是什麼,也就不會返回一個包含A的port id的UDLD幀,那麼這時候A就認爲這條鏈路是一個單向鏈路,天然也就變成err-disable狀態了。
第五個緣由就是鏈路的抖動,當鏈路在10秒內反覆up、down五次,那麼就進入err-disable狀態。
第六個緣由就是keepalive loopback。在12.1EA以前,默認狀況下交換機會在全部接口都發送keepalive信息,因爲一些不通交換機協商spanning-tree可能會有問題,一個接口又收到了本身發出的keepalive,那麼這個接口就會變成err-disable了。解決辦法就是把keepalive關了。或者把ios升到12.2SE。
最後一個緣由,相對簡單,就是因爲配置了port-security violation shutdown。