Cisco交换机error:link-flap

 

MA实验室全部无法获取IP地址,检查物理线路正常之后,发现上行端口灯不亮,进入交换机后show logging:%PM-4-ERR_DISABLE: link-flap error detected on Gi1/0/51, putting Gi1/0/51 in err-disable state

 

端口进入假死状态是交换机本身的防护机制,那么我总结了下面的解决方法,供大家参考。

一:查看原因

登录到交换机后,查看日志:

>show logging

会发现其中有以下信息(以我遇到的问题举例):

%PM-4-ERR_DISABLE: link-flap error detected on Gi1/0/51, putting Gi1/0/51 in err-disable state

所以,他所在端口是因为link-flap才造成的假死。link-flap是链路抖动,基本上是由于物理链路的问题导致,只要端口在10秒内出现了5次up/down,就会假死。那么,这种情况无非就是网口或网线本身的问题,还有一种可能是因为网卡的设置有问题(尤其是单双工模式设置)。然而,我给他重启了端口,他再也没有call过来了,具体什么情况也未可知了。

二:端口恢复

当然,直接重启端口当然可以解决问题,但也只是权宜之计,根本问题不解决,他下次在连设备的时候依然会出现异常。既然假死是由于交换机的防护机制,那么我们就按照具体情况把相应的防护机制禁用掉。

(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 60

系统会在设置的时间后尝试恢复err-disabled状态的端口。如果在这期间引起err-disabled状态的原因没有得到解决,该端口会再次的变为err-disabled,这就会造成 flapping 的状态。

四:原因分析

一般出现err-disable的情况有以下几种:​

1.EC两端的配置不匹配。包括协议类型、pagp和lacp的模式、speed、deplex等。

2.duplex的问题。手动置顶双方的deplex即可,先查看端口当前情况:

#show interface Gi1/0/51

然后手工指定:

#conf t

(config)#interface Gi1/0/51

(config-if)#speed 1000

(config-if)#duplex full​​​​​​​

3.BPDU(Bridge Protocol Data Unit 网桥协议数据单元)问题。也就是在同一个接口上做了 portfast以及BPDU Guard:

#show run interface Gi1/0/51

interface Gi1/0/51

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。

注:以上方法本人并未解决过实际问题,只是个人研究,仅供参考。且以上方法仅针对Cisco思科交换机讨论,华为、DELL等其他品牌或许有差异。

posted @ 2020-10-19 10:48  Netian  阅读(3068)  评论(0编辑  收藏  举报