cisco交换机出现“err-disable”错误的问题该怎么解决?关于接口处于err-disable的故障该再怎么排查,下面本文将详细的讲解关于cisco交换机出现“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/100BaseTX

如果出现了接口状态为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

security-violatio Enabled

channel-misconfig Enabled

psecure-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

security-violatio Disabled

channel-misconfig Disabled

vmps Disabled

pagp-flap Disabled

dtp-flap Disabled

link-flap Disabled

l2ptguard Disabled

psecure-violation Disabled

gbic-invalid Disabled

dhcp-rate-limit Disabled

unicast-flood Disabled

loopback Disabled

Timer interval: 300 seconds

Interfaces that will be enabled at the next timeout:

Interface Errdisable reason Time left(sec)

--------- ----------------- --------------

Fa0/47 bpduguard 217

配置IOS重新激活errdisable的接口,使用以下命令:

sw1(config)#errdisable recovery cause bpduguard

sw1(config)#errdisable recovery cause ?

all Enable timer to recover from all causes

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

psecure-violation Enable timer to recover from psecure violation disable state

security-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(sec)

可以调整在30-86400秒,缺省是300秒。

如果产生err-disable的原因是udld,下面有一条命令非常管用:

sw1#udld reset

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 server,收集log信息。

*************************

sw1#show interfaces status

Port Name Status Vlan Du…

***************

开启errdisable功能,这样可以使用show errdisable来查看引发errdisable的原因是什么,再更加信息内容进行解决。

******************

你要是想不影响使用的话,先用

no errdisable detect cause loopback

执行一下,将已经死掉的端口,no sh 一下

如果没问题,肯定是环路了,你可再找时间,对怀疑有问题的switch用拔插法,一个一个拔掉网线去查,当然,有更有效的方法,你可查看有问题的switch的所有rj45和gi口的状态,哪个有errdisable信息哪个就有问题。

switch#show interfaces status err-disabled

Port Name Status Reason

Fa0/22 err-disabled link-flap

Fa0/37 For office in 100K err-disabled link-flap

Fa0/41 unknow err-disabled link-flap

Fa0/42 Training Dc066 err-disabled link-flap

Fa0/45 Production line VM err-disabled link-flap

switch#show errdisable detect

ErrDisable Reason Detection status

----------------- ----------------

pagp-flap Enabled

dtp-flap Enabled

link-flap Enabled

l2ptguard Enabled

gbic-invalid Enabled

loopback Enabled

switch#show interfaces status err-disabled

Port Name Status Reason

Fa0/22 err-disabled link-flap

Fa0/37 For office in 100K err-disabled link-flap

Fa0/41 unknow err-disabled link-flap

Fa0/42 Training Dc066 err-disabled link-flap

Fa0/45 Production line VM err-disabled link-flap

switch#sh errdisable flap-values

ErrDisable Reason Flaps Time (sec)

----------------- ------ ----------

pagp-flap 3 30

dtp-flap 3 30

link-flap 5 10 ( link-flap 这就是因为链路质量不好导致的)

关闭errdisable detect

switch#no errdisable detect cause all