端口处于err-disabled

端口处于err-disabled状态的几种原因: 
1.双工不匹配. 
2.端口信道的错误配置. 
3.违反BPDU守护(BPDU Guard)特性. 
4.单向链路检测(UDLD). 
5.检测到后期冲突. 
6.链路振荡. 
7.违反某些安全策略. 
8.端口聚合协议(PAgP)的振荡. 
9.层2隧道协议(L2TP)守护(L2TP Guard). 
10.DHCP侦听限速. 

从第一条到第10条逐条trouble shooting

 

端口出现err-disabled现象

关于接口处于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

 

一.err-disabled状态的作用:

通常情况下,如果交换机运转正常,其中端口一项显示为启用(enable)状态.但是如果交换机的软件(CISCO IOS/CatOS)检测到端口的一些错误,端口将随即被关闭.也就是说,当交换机的操作系统检测到交换机端口发生些错误事件的时候,交换机将自动关闭该端口.

当端口处于err-disabled状态,将没有任何流量从该端口被转发出去,也将不接收任何进站流量.从交换机外观上看去,端口相对应的LED状态灯也将由正常的绿色变为暗黄色(或者叫做橘黄色,本人色盲,官方给的说法是amber,琥珀色).同时使用查看端口状态的一些命令,比如show interfaces,也会看到端口是处于err-disabled状态的.还有种情况是,当交换机因一种错误因素导致端口被禁用(err-disabled),这种情况通常会看到类似如下日志信息:

%SPANTREE-SP-2-BLOCK_BPDUGUARD:

Received BPDU on port GigabitEthernet2/1 with BPDU Guard enabled. Disabling port.

%PM-SP-4-ERR_DISABLE:

bpduguard error detected on Gi2/1, putting Gi2/1 in err-disable state

err-disabled的两个作用的:

1.告诉管理员端口状态出错.

2.消除因某个端口的错误导致所有端口,或者整个模块功能的出错.

二.err-disabled状态的起因:

该特性最初是用于处理特定的冲突形势,比如过分冲突(excessive collisison)和后期冲突(late collision).由于CSMA/CD机制的制定,当发生16次冲突后帧将被丢弃,此时发生excessive collision;而late collision是指在发送方发送了64个字节之后,正常的和合法的冲突就不可能发生了.理论上正常的网络传播一定会在此之前就完成了,但是如果线路过长的话会在前64个字节完成后发生冲突,后期冲突和发生在前64个字节的冲突最明显的区别是后者网卡会自动重新传输正常的冲突帧,但不会重传后期冲突的帧.后期冲突发生在时间超时和中继器的远端.一般而言,这样的冲突在本地网段会简单地判断为一个帧校验序列(FCS)错误.引起这种错误的可能原因有:

1.线缆的不规范使用,比如超出了最大传输距离或者使用了错误的线缆类型.

2.网卡的不正常工作(物理损坏或者驱动程序的错误).

3.端口双工模式的错误配置,如双工不匹配.

如下是端口处于err-disabled状态的几种原因:

1.双工不匹配.

2.端口信道的错误配置.

3.违反BPDU守护(BPDU Guard)特性.

4.单向链路检测(UDLD).

5.检测到后期冲突.

6.链路振荡.

7.违反某些安全策略.

8.端口聚合协议(PAgP)的振荡.

9.层2隧道协议(L2TP)守护(L2TP Guard).

10.DHCP侦听限速.

三.检验端口是否处于err-disabled状态:

可以使用show interfaces命令查看端口状态,如:

NUAIKO#show interfaces gigabitethernet 2/1 status

Port     Name          Status       Vlan    Duplex     Speed     Type

Gi2/1                err-disabled 100          full    1000    1000BaseSX

当交换机的某个端口处于err-disabled状态后,交换机将发送为什么这么做的日志信息到控制台端口.也可以使用show log查看系统日志,如:

%SPANTREE-SP-2-BLOCK_BPDUGUARD:

Received BPDU on port GigabitEthernet2/1 with BPDU Guard enabled. Disabling port.

%PM-SP-4-ERR_DISABLE:

bpduguard error detected on Gi2/1, putting Gi2/1 in err-disable state

%SPANTREE-2-CHNMISCFG: STP loop - channel 11/1-2 is disabled in vlan 1

如果启用了errdisable recovery功能,可以使用show errdisable recovery命令查看处于err-disabled状态的原因,如:

NUAIKO#show errdisable recovery

ErrDisable Reason          Timer Status

posted @ 2020-03-29 11:28  cyrusxx  阅读(422)  评论(0编辑  收藏  举报