思科cisco交换机端口显示err-disable错误的解决办法
思科交换机出现“err-disable”错误的问题该怎么解决?关于接口处于err-disable的故障该再怎么排查,下面本文将详细的讲解关于cisco交换机出现“err-disable”问题的解决办法:
一:查看原因
登录到交换机后,查看日志:
>show log
会发现其中有以下信息(以我遇到的问题举例):
Keepalive packet link-flap detected on FastEthernet0/17
linkflap error detected on Fa0/17, putting Fa0/17 in err-disable state
所以,所在端口是因为link-flap才会造成频繁假死。link-flap是链路抖动,基本上是由于物理链路的问题导致,只要端口在10秒内出现了5次up/down,就会假死。那么,这种情况无非就是网口或网线本身的问题,还有一种可能是因为网卡的设置有问题(尤其是单双工模式设置)。
cisco交换机
二:端口恢复
当然,直接重启端口当然可以解决问题,但也只是权宜之计,根本问题不解决,下次再次连设备的时候依然会出现异常。既然假死是由于交换机的防护机制,那么我们就按照具体情况把相应的防护机制禁用掉。
(config)#no errdisable detect cause ******
会导致 err-disabled 状态的原因,可以通过下面的命令查看:
#show errdisable detect
你会看到很多造成假死的原因。
当然,你也可以暴力点:
(config)#no errdisable detect cause all
禁用全部防护机制,这样不管你怎么折腾,都不会errdisable了。
三:自动恢复
上面的方法虽然直接,但无疑会让交换机置于隐患之中,那么我们可以设置端口的自动恢复机制。
可以通过下面的命令查看有哪些防护会在timeout后会自动恢复:
#show errdisable recovery
会出现各种防护的自动恢复状态,Disable是不会自动恢复,Enable是可以自动恢复。
默认情况下,一旦某个端口被置为err-disabled的状态,该端口将会一直保持该状态,系统并不会使它自动恢复。
因此,要使其有自动恢复的功能,需要如下的配置:
#conf t
#(config)errdisable recovery cause ******
还可以设置一下 recovery 的 timerout:
(config)#errdisable recovery interval 300
系统会在设置的时间后尝试恢复err-disabled状态的端口。如果在这期间引起err-disabled状态的原因没有得到解决,该端口会再次的变为err-disabled,这就会造成flapping 的状态。
四:原因分析
一般出现err-disable的情况有以下几种:
1.Ether-Channel两端的配置不匹配。包括协议类型、pagp和lacp的模式、speed、deplex等。
2.duplex的问题。手动置顶双方的deplex即可,先查看端口当前情况:
#show interface fa0/17
然后手工指定:
#conf t
(config)#interface fa0/17
(config-if)#speed 1000
(config-if)#duplex full
3.BPDU(Bridge Protocol Data Unit 网桥协议数据单元)问题。也就是在同一个接口上做了 portfast以及BPDU Guard:
#show run interface fa0/17
interface FastEthernet0/17
spanning-tree bpduguard enable
spanning-tree portfast enable
直接禁用或重置即可:
(config-if)#spanning-tree portfast bpduguard disable
或
(config-if)#spanning-tree portfast bpduguard default
4.UDLD(UnidDrectional Link Detection 单向链路检测)的问题。这是Cisco的私有协议问题,两边的配置必须要同步。
5.link-flap的问题。造成此问题的原因大多是物理链路,上面有提到。
6.另外还有诸如keepalived、security-violation、l2ptguard、异常的SFPz Cable等都会造成err-disable。