zoukankan      html  css  js  c++  java
  • 解决端口出现errdisabled问题

    关于接口处于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
  • 相关阅读:
    Python脚本抓取京东手机的配置信息
    Python中的Pandas模块
    Python中的Pandas模块
    XML和JSON数据格式
    XML和JSON数据格式
    Linux运维比较常用的一些脚本
    Linux运维比较常用的一些脚本
    Keepalived高可用集群
    Keepalived高可用集群
    Linux中正则表达式和字符串的查询、替换(tr/diff/wc/find)
  • 原文地址:https://www.cnblogs.com/fangbo/p/2352670.html
Copyright © 2011-2022 走看看