link-flap error

我的网络有16台交换机,中心交换机为4006,其中有一部分交换机的连接方式如下:
4006 ---- 光纤 ---- 2950G-48 ---- 光纤 ---- 2950G-24
其中的2950G-24已经正常工作了4个半月,今天发现交换机不通,检查后发现如下错误:
PM-4-ERR_DISABLE:link-flap error detected on gi 0/1
请各位大虾帮忙,问题出在哪里?有何检查方法和解决办法?

急急!!!
参见:

http://bbs.net130.com/showthread.php?s=&threadid=49174&highlight=ERRDISABLE

http://mize.netbuddy.org/011015.html

端口错误过多。引起端口DOWN、
我设置了"errdisable recovery cause all",可是没有用。
先把端口,shut down 再 no shut
errdisable recovery cause all
这条命什么用?
我的处理过程:
#config t
errdisable recovery cause all
errdisable recovery interval 60

#int gi 0/1
shut
no shut

Ctrl+z退出
#wr
#exit

但还是不行

产生这个错误的根本原因是否是因为交换机下的某个计算机或hub的问题?
我自己解决了。多谢各位。

(1)我查了一下cisco网站关于错误的说明
Error Message PM-4-ERR_DISABLE: [chars] error detected on [chars], putting [chars] in err-disable state.

Explanation This message means that the port manager detected a misconfiguration or misbehavior and placed the interface in an error-disabled state. A recovery is attempted after the configured retry time (the default is 5 minutes). The first [chars] is the error, and the second and third [chars] are the affected interfaces.

Recommended Action Copy the error message exactly as it appears on the console or in the system log. Enter the show tech-support privileged EXEC command to gather data that might provide information about the error. If you cannot determine the nature of the error from the error message or from the show tech-support command display, call your Cisco technical support representative, and provide the representative with the gathered information.

(2)检查了配置,没有发现错误。后来我想可能是链路匹配问题,所以在2950G-48端加了如下设置:
switchport nonegotiate

 

(3)其他方法:更换GBIC模块后正常  

加上述设置后,光纤通路正常

 

参考1

 

1、思科CE对端口有一种保护功能——errdisable功能,link_flap:中文翻译就是当端口在10S内发生 5次或者 5次以上的Up、Down时,CE会将端口置为 Err-disable模式(即:一种端口错误关闭状态)

2、触发link-falp的原因有以下几种:线缆松动、双工不匹配、以及板卡故障、对端网元端口设置导致

3、查看端口err-disable状态指令:show errdisable detect

4、思科CE对端口的保护功能还有一个自动恢复功能,指令为

errdisable recovery cause Link-flaperrdisable recovery interval   自动恢复延时自动恢复延时的设置范围为30-86400秒 思科CE默认配置为 300秒。

 

5、查看端口err-disable recovery状态的指令:show errdisable recovery

6、维护中应当加强了解对端网元的端口功能,了解在对端网元重启过程中是否会有 link-flap现象发生,如果有这种情况的话,就一定要注意设计方案中注明这种端口保护机制和恢复机制的配置,避免出现故障。

参考2

 

现象:网络线路不通,物理指示灯灭或者显示为橙色(不同平台指示灯状态不同)。

第一步,查看端口状态:show interface :

FastEthernet0/47 is down, line protocol is down (err-disabled)

接口状态是err-disable。

要查看err-disableb出现的原因用命令:show interfaces status err-disabled。

下面示例原因为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来查看。

如果已经排除引起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