交换机端⼝假死(err-disable)解决⽅法
出现了这个问题,我们不得不重视起交换机端⼝“假死”的现象,寻求在交换机不重启的状态下将该端⼝“拯救”回来
的⽅法。
consulate 拯救步骤1:查看⽇志/端⼝的状态
登录进⼊交换机后,执⾏show 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 state
以上信息就明确表⽰由于检测到第20端⼝出现了环路,所以将该端⼝置于了err-disable状态。
查看端⼝的状态
Switch# show inter fa0/20 status
Port Name Status Vlan Duplex Speed Type
Fa0/20 link to databackup err-disabled 562 auto auto 10/100BaTX
这条信息更加明确的表⽰了该端⼝处于err-disabled状态。
既然看到了该端⼝是被置于了错误的状态了,我们就应该有办法将其再恢复成正常的状态。
拯救步骤2:将端⼝从错误状态中恢复回来
进⼊交换机全局配置模式,执⾏errdisable recovery cau ?,会看到如下信息:
Switch(config)#errdisable recovery cau ?
all Enable timer to recover from all caus
bpduguard Enable timer to recover from BPDU Guard error disable state
channel-misconfig Enable timer to recover from channel misconfig disable state
dhcp-rate-limit Enable timer to recover from dhcp-rate-limit error disable state
dtp-flap Enable timer to recover from dtp-flap error disable state
gbic-invalid Enable timer to recover from invalid GBIC error disable state
l2ptguard Enable timer to recover from l2protocol-tunnel error disable state
link-flap Enable timer to recover from link-flap error disable state
loopback Enable timer to recover from loopback detected disable state
pagp-flap Enable timer to recover from pagp-flap error disable state
pcure-violation Enable timer to recover from pcure violation disable state
curity-violation Enable timer to recover from 802.1x violation disable state
udld Enable timer to recover from udld error disable state
unicast-flood Enable timer to recover from unicast flood disable state
vmps Enable timer to recover from vmps shutdown error disable state
从列出的选项中,我们可以看出,有⾮常多的原因会引起端⼝被置于错误状态,由于我们明确的知道这台交换机上
的端⼝是由于环路问题⽽被置于错误状态的,所以就可以直接键⼊命令:
Switch(config)#errdisable recovery cau loopback
是啊,就这么简单的⼀条命令,就把困挠我们很长时间的问题解决了,真的就这么神奇。那么如何验证这条命令是
⽣效了呢?
拯救步骤3:显⽰被置于错误状态端⼝的恢复情况
Switch# show errdisable recovery
ErrDisable Reason Timer Status
----------------- --------------
udld Disabled
bpduguard Disabled
curity-violatio Disabled
channel-misconfig Disabled
vmps Disabled
pagp-flap Disabled
dtp-flap Disabled
link-flap Disabled
gbic-invalid Disabled
l2ptguard Disabled
pcure-violation Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
unicast-flood Disabled
loopback Enabled
Timer interval: 300 conds
Interfaces that will be enabled at the next timeout:
Interface Errdisable reason Time left(c)
--------- ----------------- --------------
Fa0/8 loopback 276
Fa0/17 loopback 267
Fa0/20 loopback 250
从以上显⽰的信息可以看出,这台交换机有三个端⼝(Fa0/8、Fa0/17、Fa0/20)会分别在276、267、250秒之后恢
复为正常的状态,实际情况也是这样,等了⼏分钟以后,我们找了⼀台笔记本电脑,分别接到这⼏个端⼝上试了⼀下,
端⼝都可以正常⼯作了。这下总算在不重交换机的情况下,将⼏个处于“假死”状态的端⼝“拯救”了回来。
关于接⼝处于err-disable的故障排查
故障症状:
线路不通,物理指⽰灯灭或者显⽰为橙⾊(不同平台指⽰灯状态不同)
show interface 输出显⽰接⼝状态:
FastEthernet0/47 is down, line protocol is down (err-disabled)
接⼝状态是err-disable。
sw1#show interfaces status
Port Name Status Vlan Duplex Speed Type
Fa0/47 err-disabled 1 auto auto 10/100BaTX
如果出现了接⼝状态为err-disable,show interfaces status err-disabled命令能查看触发err-disable的原因。
下⾯⽰例原因为bpduguard,在连接了交换机的端⼝配置了spanning-tree bpduguard enable。
sw1#show interfaces status err-disabled
Port Name Status Reason
Fa0/47 err-disabled bpduguard
接⼝产⽣err-disable的原因可以由以下的命令来查看,系统缺省的配置是所有列出的原因都能导致接⼝被置为err-
disable。
sw1#show errdisable detect
ErrDisable Reason Detection status
----------------- ----------------
udld Enabled
bpduguard Enabled
curity-violatio Enabled
channel-misconfig Enabled
pcure-violation Enabled
dhcp-rate-limit Enabled
unicast-flood Enabled
vmps Enabled
pagp-flap Enabled
dtp-flap Enabled
link-flap Enabled
l2ptguard Enabled
gbic-invalid Enabled
loopback Enabled
dhcp-rate-limit Enabled
unicast-flood Enabled
从列表中,我们可以看出常见的原因有udld,bpduguard,link-flap以及loopback等。
具体由什么原因导致当前接⼝err-disable可以由show interface status err-disable来查看。
在接⼝模式下采⽤shutdown,no shutdown进⾏⼿动的激活。
在缺省配置下,⼀旦接⼝被置为err-disable,IOS将不会试图恢复接⼝。
这个可以由show errdisable recovery来查看,timer status下⾯所有的值都是disable。
下⾯的⽰例中,由于⼿⼯配置了bpduguard恢复,所以timer status的值变为Enable。
sw1#show errdisable recovery
ErrDisable Reason Timer Status
----------------- --------------
udld Disabled
bpduguard Enabled
curity-violatio Disabled
channel-misconfig Disabled
vmps Disabled
pagp-flap Disabled
ud to的用法 dtp-flap Disabled
link-flap Disabled
l2ptguard Disabled
pcure-violation Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
unicast-flood Disabled
loopback Disabled
Timer interval: 300 conds
Interfaces that will be enabled at the next timeout:
Interface Errdisable reason Time left(c)
--------- ----------------- --------------
Fa0/47 bpduguard 217
配置IOS重新激活errdisable的接⼝,使⽤以下命令:
sw1(config)#errdisable recovery cau bpduguard
sw1(config)#errdisable recovery cau ?
all Enable timer to recover from all caus
bpduguard Enable timer to recover from BPDU Guard error disable state
channel-misconfig Enable timer to recover from channel misconfig disable state
dhcp-rate-limit Enable timer to recover from dhcp-rate-limit error disable state
dtp-flap Enable timer to recover from dtp-flap error disable stateglimp
gbic-invalid Enable timer to recover from invalid GBIC error disable state
l2ptguard Enable timer to recover from l2protocol-tunnel error disable state
link-flap Enable timer to recover from link-flap error disable state
loopback Enable timer to recover from loopback detected disable state
pagp-flap Enable timer to recover from pagp-flap error disable state
pcure-violation Enable timer to recover from pcure violation disable state
curity-violation Enable timer to recover from 802.1x violation disable state
udld Enable timer to recover from udld error disable state
unicast-flood Enable timer to recover from unicast flood disable state
胡萝卜的拼音 vmps Enable timer to recover from vmps shutdown error disable
配置完上述命令后,IOS在⼀段时间后试图恢复被置为err-disable的接⼝,这段时间缺省为300秒。
但是,如果引起err-disable的源没有根治,在恢复⼯作后,接⼝会再次被置为err-disable。
调整err-disable的超时时间,可以使⽤以下命令:
sw1(config)#errdisable recovery interval ?
<30-86400> timer-interval(c)
可以调整在30-86400秒,缺省是300秒。
如果产⽣err-disable的原因是udld,下⾯有⼀条命令⾮常管⽤:
sw1#udld ret
No ports are disabled by UDLD.
同时,接⼝在被置为err-disable的时候,通常有⼀系列的⽇志产⽣,如下:
*Mar 15 15:47:19.984: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port FastEthernet0/47 with BPDU
Guard enabled. Disabling port.
sw1#
*Mar 15 15:47:19.984: %PM-4-ERR_DISABLE: bpduguard error detected on Fa0/47, putting Fa0/47 in err-ap是什么
disable state
sw1#
*Mar 15 15:47:21.996: %LINK-3-UPDOWN: Interface FastEthernet0/47, changed state to down
收集这些⽇志也⾮常管⽤。
所以建议配置⼀个syslog rver,收集log信息。
故障症状:
线路不通,物理指⽰灯灭或者显⽰为橙⾊(不同平台指⽰灯状态不同)
show interface 输出显⽰接⼝状态:
FastEthernet0/47 is down, line protocol is down (err-disabled)
接⼝状态是err-disable。
sw1#show interfaces status
Port Name Status Vlan Duplex Speed Type
Fa0/47 err-disabled 1 auto auto 10/100BaTX
如果出现了接⼝状态为err-disable,show interfaces status err-disabled命令能查看触发err-disable的原因。
下⾯⽰例原因为bpduguard,在连接了交换机的端⼝配置了spanning-tree bpduguard enable。
sw1#show interfaces status err-disabled[b]
Port Name [b]Status Reason
Fa0/47 err-disabled [b]bpduguard[b]
接⼝产⽣err-disable的原因可以由以下的命令来查看,系统缺省的配置是所有列出的原因都能导致接⼝被置为err-
jsp是什么意思 disable。
sw1#show errdisable detect
ErrDisable Reason Detection status
----------------- ----------------
udld Enabled
bpduguard Enabled
curity-violatio Enabled
channel-misconfig Enabled
pcure-violation Enabled
dhcp-rate-limit Enabled
unicast-flood Enabled
vmps Enabled
pagp-flap Enabled
dtp-flap Enabled
concept是什么意思 link-flap Enabled
l2ptguard Enabled
gbic-invalid Enabled
loopback Enabled
dhcp-rate-limit Enabled
unicast-flood Enabled
从列表中,我们可以看出常见的原因有udld,bpduguard,link-flap以及loopback等。
具体由什么原因导致当前接⼝err-disable可以由show interface status err-disable来查看。
在接⼝模式下采⽤shutdown,no shutdown进⾏⼿动的激活。
在缺省配置下,⼀旦接⼝被置为err-disable,IOS将不会试图恢复接⼝。
这个可以由show errdisable recovery来查看,timer status下⾯所有的值都是disable。
下⾯的⽰例中,由于⼿⼯配置了bpduguard恢复,所以timer status的值变为Enable。
sw1#show errdisable recovery
ErrDisable Reason Timer Status
----------------- --------------
udld Disabled
bpduguard Enabled
curity-violatio Disabled
日你妈 channel-misconfig Disabled
vmps Disabled
l什么意思 pagp-flap Disabled
dtp-flap Disabled
link-flap Disabled
l2ptguard Disabled
pcure-violation Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
unicast-flood Disabled
loopback Disabled
七年级下册英语作文 Timer interval: 300 conds
Interfaces that will be enabled at the next timeout:
Interface Errdisable reason Time left(c)
--------- ----------------- --------------
Fa0/47 bpduguard 217
配置IOS重新激活errdisable的接⼝,使⽤以下命令:
sw1(config)#errdisable recovery cau bpduguard
sw1(config)#errdisable recovery cau ?
all Enable timer to recover from all caus
bpduguard Enable timer to recover from BPDU Guard error disable state
channel-misconfig Enable timer to recover from channel misconfig disable state
dhcp-rate-limit Enable timer to recover from dhcp-rate-limit error disable state
dtp-flap Enable timer to recover from dtp-flap error disable state
gbic-invalid Enable timer to recover from invalid GBIC error disable state
l2ptguard Enable timer to recover from l2protocol-tunnel error disable state
link-flap Enable timer to recover from link-flap error disable state
loopback Enable timer to recover from loopback detected disable state
pagp-flap Enable timer to recover from pagp-flap error disable state
pcure-violation Enable timer to recover from pcure violation disable state
curity-violation Enable timer to recover from 802.1x violation disable state
udld Enable timer to recover from udld error disable state
unicast-flood Enable timer to recover from unicast flood disable state
vmps Enable timer to recover from vmps shutdown error disable
配置完上述命令后,IOS在⼀段时间后试图恢复被置为err-disable的接⼝,这段时间缺省为300秒。
但是,如果引起err-disable的源没有根治,在恢复⼯作后,接⼝会再次被置为err-disable。
调整err-disable的超时时间,可以使⽤以下命令:
sw1(config)#errdisable recovery interval ?
<30-86400> timer-interval(c)
可以调整在30-86400秒,缺省是300秒。
如果产⽣err-disable的原因是udld,下⾯有⼀条命令⾮常管⽤:
sw1#udld ret
No ports are disabled by UDLD.
同时,接⼝在被置为err-disable的时候,通常有⼀系列的⽇志产⽣,如下:
*Mar 15 15:47:19.984: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port FastEthernet0/47 with BPDU
Guard enabled. Disabling port.
sw1#
*Mar 15 15:47:19.984: %PM-4-ERR_DISABLE: bpduguard error detected on Fa0/47, putting Fa0/47 in err-
disable state
sw1#
*Mar 15 15:47:21.996: %LINK-3-UPDOWN: Interface FastEthernet0/47, changed state to down
收集这些⽇志也⾮常管⽤。
所以建议配置⼀个syslog rver,收集log信息。
sw1#show interfaces status Port Name Status 开启errdisable功能,这样可以使⽤show
errdisable来查看引发errdisable的原因是什么,再更加信息内容进⾏解决。
你要是想不影响使⽤的话,先⽤ no errdisable detect cau loopback 执⾏⼀下,将已经死掉的端⼝,no sh ⼀下
如果没问题,肯定是环路了,你可再找时间,对怀疑有问题的switch⽤拔插法,⼀个⼀个拔掉⽹线去查,当然,有更有
效的⽅法,你可查看有问题的 switch的所有rj45和gi⼝的状态,哪个有errdisable信息哪个就有问题。
switch#show interfaces status err-disabled
Port Name Status Reason
Fa0/22 err-disabled link-flap