关于cisco errdisable

   2010-01-27 18:44 星期三

  show inter status
  show inter status err
  show errdisable recovery
  errdisable recovery cause ?
  
  (config)#no errdisable detect cause all
  errdisable recovery interval 300
  
  (config-if)#no keep
  
  
  交换机端口假死(err-disable)解决方法
  
  --------------------------------------------------------------------------------
  
  2009-06-10 17:03:41 标签:   [推送到技术圈]
  
  
  出现了这个问题,我们不得不重视起交换机端口“假死”的现象,寻求在交换机不重启的状态下将该端口“拯救”回来
  
  的方法。
  拯救步骤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/100BaseTX
    这条信息更加明确的表示了该端口处于err-disabled状态。
    既然看到了该端口是被置于了错误的状态了,我们就应该有办法将其再恢复成正常的状态。
      拯救步骤2:将端口从错误状态中恢复回来
    
    进入交换机全局配置模式,执行errdisable recovery cause ?,会看到如下信息:
    Switch(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 state
    
    从列出的选项中,我们可以看出,有非常多的原因会引起端口被置于错误状态,由于我们明确的知道这台交换机上
  
  的端口是由于环路问题而被置于错误状态的,所以就可以直接键入命令:
    
    Switch(config)#errdisable recovery cause loopback
    是啊,就这么简单的一条命令,就把困挠我们很长时间的问题解决了,真的就这么神奇。那么如何验证这条命令是
  
  生效了呢?
      拯救步骤3:显示被置于错误状态端口的恢复情况
    
    Switch# show errdisable recovery
    ErrDisable Reason    Timer Status
    -----------------    --------------
    udld                 Disabled
    bpduguard            Disabled
    security-violatio    Disabled
    channel-misconfig    Disabled
    vmps                 Disabled
    pagp-flap            Disabled
    dtp-flap             Disabled
    link-flap            Disabled
    gbic-invalid         Disabled
    l2ptguard            Disabled
    psecure-violation    Disabled
    gbic-invalid         Disabled
    dhcp-rate-limit      Disabled
    unicast-flood        Disabled
    loopback             Enabled
    Timer interval: 300 seconds
    Interfaces that will be enabled at the next timeout:
    Interface    Errdisable reason    Time left(sec)
    ---------    -----------------    --------------
    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/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信息。
  
  故障症状:
  线路不通,物理指示灯灭或者显示为橙色(不同平台指示灯状态不同)
  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[b]
  Port Name [b]Status Reason
  Fa0/47 err-disabled [b]bpduguard[b]
  接口产生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
  
  detectswitch#no errdisable detect cause all
  导致交换机接口出现err-disable的几个常见原因:
      1. EtherChannel misconfiguration
      2. Duplex mismatch
      style="TEXT-INDENT: 2em">3. BPDU port guard
      4. UDLD
      5. Link-flap error
      6. Loopback error
      7. Port security violation
      第一个当F EC两端配置不匹配的时候就会出现err-disable.假设Switch A把FEC模式配置为on,这时Switch A是不
  
  会发送PAgP包和相连的Switch B去协商FEC的,它假设Switch B已经配置好FEC了。但实事上Swtich B并没有配置FEC,
  
  当Switch B的这个状态超过1分钟后,Switch A的STP就认为有环路出现,因此也就出现了err-disable.解决办法就是
  
  把FEC的模式配置为channel-group 1 mode desirable non-silent这个意思是只有当双方的FEC协商成功后才建立
  
  channel,否则接口还处于正常状态。
      第二个原因就是双工不匹配。一端配置为half-duplex后,他会检测对端是否在传输数据,只有对端停止传输数据
  
  ,他才会发送类似于ack的包来让链路up,但对端却配置成了full-duplex,他才不管链路是否是空闲的,他只会不停的
  
  发送让链路up的请求,这样下去,链路状态就变成err- disable了。
      三、第三个原因BPDU,也就是和portfast和BPDU guard有关。如果一个接口配置了portfast,那也就是说这个接
  
  口应该和一个pc连接,pc是不会发送spanning-tree的BPDU帧的,因此这个口也接收BPDU来生成spanning-tree,管理
  
  员也是出于好心在同一接口上配置了BPDU guard来防止未知的BPDU帧以增强安全性,但他恰恰不小心把一个交换机接到
  
  这个同时配置了portfast和BPDU guard接口上,于是这个接口接到了BPDU帧,因为配置了BPDU guard,这个接口自然
  
  要进入到err-disable状态。解决办法:no spanning-tree portfast bpduguard default,或者直接把portfast关了
  
  。
      第四个原因是UDLD.UDLD是cisco的私有2层协议,用于检测链路的单向问题。有的时候物理层是up的,但链路层就
  
  是down,这时候就需要 UDLD去检测链路是否是真的up的。当AB两端都配置好UDLD后,A给B发送一个包含自己port id的
  
  UDLD帧,B收到后会返回一个UDLD帧,并在其中包含了收到的A的port id,当A接收到这个帧并发现自己的port id也在
  
  其中后,认为这链路是好的。反之就变成err-disable状态了。假设A配置了UDLD,而B没有配置UDLD:A给B发送一个包
  
  含自己 port id的帧,B收到后并不知道这个帧是什么,也就不会返回一个包含A的port id的UDLD帧,那么这时候A就认
  
  为这条链路是一个单向链路,自然也就变成err-disable状态了。
      第五个原因就是链路的抖动,当链路在10秒内反复up、down五次,那么就进入err-disable状态。
      第六个原因就是keepalive loopback.在12.1EA之前,默认情况下交换机会在所有接口都发送keepalive信息,由
  
  于一些不通交换机协商spanning-tree 可能会有问题,一个接口又收到了自己发出的keepalive,那么这个接口就会变
  
  成err-disable了。解决办法就是把keepalive关了。或者把ios升到12.2SE.
      最后一个原因,相对简单,就是由于配置了port-security violation shutdown
  
  _____________________________________
  ++++++++++++++++++++++++++++++++++++
  /**************************************
  ********************************************
  ************************************************
  *****************************************************
  交换机生err-disable的问题
  
  当出现err-disabled状态后,首先要做的,是找出引起该状态的根源,然后重新启用该端口;如果顺序不一致,将导致该端
  
  口再次进入err-disabled状态.
  
  找出问题的根源,以比较常见的做为例子:
  1.以太网信道(EC)的错误配置:
  如果要让EC能够正常工作,参与到EC绑定的端口的配置,必须是一致的,比如处于同一VLAN,trunk模式相同,速率和双工模
  
  式都匹配等等.如果一端配置了EC,而另一端没有配置EC,STP将关闭配置了EC一方的参与到EC中的端口.并且当PAgP的模
  
  式是处于on模式的时候,交换机是不会向外发送 PAgP信息去进行协商的(它认为对方是处于EC).这种情况下STP判定出现
  
  环路问题,因此将端口设置为err-disabled状态.如:
  %SPANTREE-2-CHNL_MISCFG: Detected loop due to etherchannel misconfiguration
     of Gi2/1
  
  如下,查看EC信息显示使用的信道组数量为0:
  NUAIKO#show etherchannel summary
  
  Flags: D - down            P - in port-channel
            I - stand-alone   s - suspended
            H - Hot-standby (LACP only)
            R - Layer3          S - Layer2
            U - in use           f - failed to allocate aggregator
            
            u - unsuitable for bundling
  Number of channel-groups in use: 0
  Number of aggregators:               0
  
  EC没有正常工作是由于端口被设置为err-disabled状态:
  NUAIKO#show interfaces gigabitethernet 2/1 status
  
  Port     Name            Status          Vlan      Duplex     Speed     Type
  Gi2/1                   err-disabled     100            full      1000       1000BaseSX
  
  为找出为何EC没有正常工作,根据错误信息暗示,STP检测到环路.之前提到过,这种情况的发生,是由于一方配置了EC,设
  
  置PAgP模式为on模式,这种模式和desirable模式正好相反,而另一方没有配置EC.因此,为了解决这种问题的发生,将EC的
  
  PAgP模式设置为可以主动协商的 desirable模式.,然后再重新启用该端口.如下:
  !
  interface gigabitethernet 2/1
  channel-group 1 mode desirable non-silent
  !
  
  2.双工模式不匹配:
  双工模式不匹配的问题比较常见,由于速率和双工模式自动协商的故障,常导致这种问题的发生.可以使用show
  
  interfaces命令查看双方端口的速率和双工模式.后期版本的CDP也能够在将端口处于err-disabled状态之前发出警告日
  
  志信息.另外, 网卡的不正常设置也将引起双工模式的不匹配.解决办法,如双方不能自动协商,使用duplex命令(CISCO
  
  IOS和CatOS有所不同)修改双方双工模式使之一致.
  
  3.BPDU Guard:
  通常启用了快速端口(PortFast)特性的端口用于直接连接端工作站这种不会产生BPDU的末端设备.由于PortFast特性假
  
  定交换机的端口不会产生物理环路,因此,当在启用了 PortFast和BPDU Guard特性的端口上收到BPDU后,该端口将进入
  
  err-disabled状态,用于避免潜在环路.
  
  假如我们将两台6509交换机相连,在其中一台上启用PortFast特性并打开BPDU Guard特性:
  !
  interface gigabitethernet 2/1
  spanning-tree bpduguard enable
  spanning-tree portfast enable
  !
  
  此时将看到如下日志信息:
  %PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi2/1, putting Gi2/1 in
     err-disable state.
  
  验证:
  NUAIKO#show interfaces gigabitethernet 2/1 status
  
  Port     Name            Status          Vlan      Duplex     Speed     Type
  Gi2/1                   err-disabled     100            full      1000       1000BaseSX
  
  像这种情况,不能启用PortFast特性,因此禁用该特性可以解决该问题.
  
  4.UDLD:
  UDLD 协议允许通过光纤或铜线相连的设备监控线缆的物理配置,并且可以检测是否存在单向链路.如果检测到有单向链路
  
  ,UDLD将关闭相关端口并发出警告日志信息.单向链路可以引起一系列的问题,最常见的就是STP拓扑环路.注意,为了启用
  
  UDLD,双方必须都支持该协议,并且要单独在每个端口启用UDLD.如果你只在一方启用了UDLD,同样的会引起端口进入err
  
  -disabled状态,如:
  %PM-SP-4-ERR_DISABLE: udld error detected on Gi2/1, putting Gi2/1 in
     err-disable state.
  
  5.链路振荡错误:
  链路振荡(flap)是指短时间内端口不停的处于up/down状态,如果端口在10秒内连续振荡5次,端口将被设置为err-
  
  disabled状态,如:
  %PM-4-ERR_DISABLE: link-flap error detected on Gi2/1, putting Gi2/1 in
     err-disable state
  
  可以使用如下命令查看不同的振荡的值:
  NUAIKO#show errdisable flap-values
  
  ErrDisable Reason              Flaps       Time (sec)
  
  pagp-flap                              3          30
  dtp-flap                                 3          30
  link-flap                                 5         10
  
  引起链路震荡的常见因素,可能是物理层的问题,比如GBIC的硬件故障等等.因此解决这种问题通常先从物理层入手.
  
  6.回环(loopback)错误:
  当keepalive 信息从交换机的出站端口被发送出去后,又从该接口收到该信息,就会发生回环错误.交换机默认情况下会
  
  从所有端口向外发送keepalive信息.但由于 STP没能阻塞某些端口,导致这些信息可能会被转发回去形成逻辑环路.因此
  
  出现这种情况后,端口将进入err-disabled状态,如:
  %PM-4-ERR_DISABLE: loopback error detected on Gi2/1, putting Gi2/1 in
     err-disable state
  
  从CISCO IOS 12.2SE之后的版本,keepalive信息将不再从光纤和上行端口发送出去,因此解决这种问题的方案是升级
  
  CISCO IOS软件版本到12.2SE或后续版本.更多信息可以参见CISCO BUG ID CSCea46385(需要一定权限的CCO).
  
  7.违反端口安全(Port Security)策略:
  端口安全特性提供了根据MAC地址,动态的对交换机端口进行保护的特性.违反该策略将导致端口进入err-disabled状态.
  
  端口安全的原理和配置这里就不再赘述,有兴趣的可以去CISCO的Documentation CD里查阅
  
  
  
  
  
  
  
  show interface status err-disabled
  
  
  
  有可能口子下接的设备有以下的情况,都会进入disable状态
  
  bpduguard
  
  arp-inspection
  
  dhcp-rate-limit
  
  dtp-flap
  
  link-flap
  
  ....
  
  
  
  根据相关信息,就可以设置自动恢复了
  
  
  
  errdisable recovery cause xxx
  
  errdisable recovery interval 30
  
  errdisable监测某些值,到一个阈值就自动disable
  
  err-disable主要用于端口安全,
  基于主机MAC地址允许流量,
  
  不愿意查原因的话,你可以用下面的命令把errdisable关了