交换机err disable端口自动恢复精.docx
《交换机err disable端口自动恢复精.docx》由会员分享,可在线阅读,更多相关《交换机err disable端口自动恢复精.docx(6页珍藏版)》请在冰豆网上搜索。
交换机errdisable端口自动恢复精
端口出现err-disabled现象
关于接口处于err-disable的故障排查
故障症状:
线路不通,物理指示灯灭或者显示为橙色(不同平台指示灯状态不同
showinterface输出显示接口状态:
FastEthernetO/47isdown,lineprotocolisdown(err-disabled
接口状态是err-disable。
sw1#showinterfacesstatus
PortNameStatusVlanDuplexSpeedType
Fa0/47err-disabled1autoauto10/100BaseTX
如果出现了接口状态为err-disable,showinterfacesstatuserr-disable命令能查看触发err-disable的原因。
下面示例原因为bpduguard在连接了交换机的端口配置了spanning-tree
bpduguardenablesw1#showinterfacesstatuserr-disabled
PortNameStatusReason
Fa0/47err-disabledbpduguard
接口产生err-disable的原因可以由以下的命令来查看,系统缺省的配置是所有列出的原因都能导致接口被置为err-disable。
ErrDisableReasonDetectionstatus
udldEnabled
bpduguardEnabledsecurity-violatioEnabledchannel-misconfigEnabledpsecure-violationEnableddhcp-rate-limitEnabledunicast-floodEnabledvmpsEnabledpagp-flapEnableddtp-flapEnabledlink-flapEnabledl2ptguardEnabledgbic-invalidEnabledloopbackEnableddhcp-rate-limitEnabled
unicast-floodEnabled
从列表中,我们可以看出常见的原因有udld,bpduguard,link-flap以及loopback等。
具体由什么原因导致当前接口err-disable可以由showinterfacestatuserr-disable来查看。
在接口模式下采用shutdown,noshutdown进行手动的激活。
在缺省配置下,一旦接口被置为err-disable,IOS将不会试图恢复接口。
这个可以由showerrdisablerecovery来查看,timerstatus下面所有的值都是disable。
下面的示例中,由于手工配置了bpduguard恢复,所以timerstatus的值变为Enable。
sw1#showerrdisablerecovery
ErrDisableReasonTimerStatus
udldDisabledbpduguardEnabledsecurity-violatioDisabledchannel-misconfigDisabledvmpsDisabledpagp-flapDisableddtp-flapDisabledlink-flapDisabled
psecure-violationDisabled
gbic-invalidDisabled
dhcp-rate-limitDisabled
unicast-floodDisabled
loopbackDisabled
Timerinterval:
300seconds
Interfacesthatwillbeenabledatthenexttimeout:
InterfaceErrdisablereasonTimeleft(sec
Fa0/47bpduguard217
配置IOS重新激活errdisable的接口,使用以下命令:
sw1(config#errdisablerecoverycausebpduguard
sw1(config#errdisablerecoverycause?
allEnabletimertorecoverfromallcauses
bpduguardEnabletimertorecoverfromBPDUGuarderrordisablestate
channel-misconfigEnabletimertorecoverfromchannelmisconfigdisablestatedhcp-rate-limitEnabletimertorecoverfromdhcp-rate-limiterrordisablestatedtp-flapEnabletimertorecoverfromdtp-flaperrordisablestate
gbic-invalidEnabletimertorecoverfrominvalidGBICerrordisablestate
I2ptguardEnabletimertorecoverfromI2protocol-tunnelerrordisablestate
link-flapEnabletimertorecoverfromlink-flaperrordisablestateloopbackEnabletimertorecoverfromloopbackdetecteddisablestatepagp-flapEnabletimertorecoverfrompagp-flaperrordisablestatepsecure-violationEnabletimertorecoverfrompsecureviolationdisablestatesecurity-violationEnabletimertorecoverfrom802.1xviolationdisablestateudldEnabletimertorecoverfromudlderrordisablestate
unicast-floodEnabletimertorecoverfromunicastflooddisablestatevmpsEnabletimertorecoverfromvmpsshutdownerrordisable
配置完上述命令后,IOS在一段时间后试图恢复被置为err-disable的接口,这段时间缺省为300秒。
但是,如果引起err-disable的源没有根治,在恢复工作后,接口会再次被置为err-disable。
调整err-disable的超时时间,可以使用以下命令:
sw1(config#errdisablerecoveryinterval?
<30-86400>timer-interval(sec
可以调整在30-86400秒,缺省是300秒。
如果产生err-disable的原因是udld,下面有一条命令非常管用:
sw1#udldreset
同时,接口在被置为err-disable的时候,通常有一系列的日志产生,如下:
*Mar1515:
47:
19.984:
%SPANTREE-2-BL0CK_BPDUGUARD:
ReceivedBPDUonportFastEthernetO/47withBPDUGuardenabled.Disablingport.
sw1#
*Mar1515:
47:
19.984:
%PM-4-ERR_DISABLE:
bpduguarderrordetectedonFa0/47,puttingFa0/47inerr-disablestate
sw1#
*Mar1515:
47:
21.996:
%LINK-3-UPDOWN:
InterfaceFastEthernet0/47,changedstatetodown收集这些日志也非常管用。
所以建议配置一个syslogserver收集log信息。
*************************
sw1#showinterfacesstatus
PortNameStatusVlanDu...
***************
开启errdisable功能,这样可以使用showerrdisable来查看引发errdisable的原因是什么,再更加信息内容进行解决。
******************
你要是想不影响使用的话,先用
noerrdisabledetectcauseloopback
执行一下,将已经死掉的端口,nosh一下
switch用拔插法,一
switch的所有rj45
如果没问题,肯定是环路了,你可再找时间,对怀疑有问题的个一个拔掉网线去查,当然,有更有效的方法,你可查看有问题的和gi口的状态,哪个有errdisable信息哪个就有问题。
switch#showinterfacesstatuserr-disabled
PortNameStatusReason
FaO/22err-disabledlink-flap
FaO/37Forofficein100Kerr-disabledlink-flap
FaO/41unknowerr-disabledlink-flap
Fa0/42TrainingDc066err-disabledlink-flap
Fa0/45ProductionlineVMerr-disabledlink-flap
switch#showerrdisabledetect
ErrDisableReasonDetectionstatuspagp-flapEnableddtp-flapEnabledlink-flapEnabledl2ptguardEnabledgbic-invalidEnabledloopbackEnabled
switch#showinterfacesstatuserr-disabled
PortNameStatusReason
FaO/22err-disabledlink-flap
FaO/37Forofficein100Kerr-disabledlink-flap
FaO/41unknowerr-disabledlink-flap
Fa0/42TrainingDc066err-disabledlink-flap
Fa0/45ProductionlineVMerr-disabledlink-flap
switch#sherrdisableflap-values
ErrDisableReasonFlapsTime(sec
pagp-flap330
dtp-flap330
link-flap510(link-flap这就是因为链路质量不好导致的
关闭errdisabledetect
switch#noerrdisabledetectcauseall
下面是刚找到的网上的一篇关于Err-diasble产生原因分析的文章,贴出与大家
。
导致err-disable出现的几个常见原因
ID#1009
感谢蛋蛋的热心帮助!
但是有关前面提到的loopback的问题,我的意思是说cisco的交换机某端口收到一个自己发出的loopback检测报文时,也就是说下面的网络存在环路,端口以据说配置的角色不同,分别如何处理此类现象。
对access的口好像放此端口到errdisable状态!
如果我们配置了errdisablerecovery就会过一段时间后自动恢复。
而对于trunk的处理就不能如此粗燥了吧!
因为自环可能只存在某个vlan中,不能关闭整个trunk端口吧。
导致err-disable出现的几个常见原因:
1.EtherChannelmisconfiguration
2.Duplexmismatch
3.BPDUportguard
4.UDLD
5.Link-flaperror
6.Loopbackerror
7.Portsecurityviolation
1.当FEC两端配置不匹配的时候就会出现err-disable。
假设SwitchA把FEC模式配置为on,这时SwitchA是不会发送PAgP包和相连的SwitchB去协商FEC的,它假设SwitchB已经配置好FEC了。
但实事上SwtichB并没有配置FEC,当SwitchB的这个状态超过1分钟后,SwitchA的STP就认为有环路出现,因此也就出现了err-disable。
解决办法就是把FEC的模式配置为channel-group1modedesirablenon-silent这个意思是只有当双方的FEC协商成功后才建立channel否则接口还处于正常状态。
2.第二个原因就是双工不匹配。
一端配置为half-duplex后,
他会检测对端是否在传输数据,只有对端停止传输数据,他才会发送类似于ack的包来让链路up,但对端却配置成了full-duplex,他才不管链路是否是空闲的,他只会不停的发送让链路up的请求,这样下去,链路状态就变成err-disable了。
3.第三个原因BPDU,也就是和portfast和BPDUguard有关。
如果一个接口配置了portfast,那也就是说这个接口应该和一个pc连接,pc是不会发送spanning-tree的BPDU帧的,因此这个口也接收BPDU来生成spanning-tree,管理员也是出于好心在同一接口上配置了BPDUguard来防止未知的BPDU帧以增强安全性,但他恰恰不小心把一个交换机接到这个同时配置了portfast和BPDUguard接口上,于是这个接口接到了BPDU帧,因为配置了BPDUguard,这个接口自然要进入到err-disable状态。
解决办法:
nospanning-treeportfastbpduguarddefault^者直接把portfast关了。
4.第四个原因是UDLD。
UDLD是cisco的私有2层协议,用于检测链路的单向问题。
有的时候物理层是up的,但链路层就是down,这时候就需要UDLD去检测链路是否是真的up的。
当AB两端都配置好UDLD后,A给B发送一个包含自己portid的UDLD帧,B收到后会返回一个UDLD帧,并在其中包含了收到的A的portid,当A接收到这个帧并发现自己的portid也在其中后,认为这链路是好的。
反之就变成err-disable状态了。
假设A配置了UDLD,而B没有配置UDLD:
A给B发送一个包含自己portid的帧,B收到后并不知道这个帧是什么,也就不会返回一个包含A的portid的UDLD帧,那么这时候A就认为这条链路是一个单向链路,自然也就变成err-disable状态了。
5.第五个原因就是链路的抖动,当链路在10秒内反复up、down五次,那么就进入err-disable状态。
6.第六个原因就是keepaliveloopback在12.1EA之前,默认情况下交换机会在所有接口都发送keepalive信息,由于一些不通交换机协商spanning-tree可能会有问题,一个接口又收到了自己发出的
keepalive,那么这个接口就会变成err-disable了。
解决办法就是把keepalive关了。
或者把ios升到12.2SE7.最后一个原因,相对简单,就是由于配置了port
securityviolationshutdown。
这个太简单,就不解释啦。
我感觉你的交换机老出现err-disable很有可能是BPDU造成的。
另外也有可能是第六个原因,再仔细检查一
下吧。