二层环路怎么办

以太网交换网络中为了提高网络可靠性,通常会采用冗余设备和冗余链路,然而现网中由于组网调整、配置修改、升级割接等原因,经常会造成数据或协议报文环形转发,不可避免的形成环路.二层网络设备处于同一个广播域下,广播报文在环路中会反复持续传送,无限循环,形成广播风暴,引发MAC地址表不稳定等故障现象,进而影响正常业务,导致用户通信质量较差,甚至通信中断.

本文档将主要介绍如何识别二层网络的环路问题以及常见处理方法.

可以通过如下现象和手段识别环路:

端口产生数据报文风暴

<HUAWEI> display interface brief | include up
PHY: Physical
*down: administratively down
^down: standby
(l): loopback
(s): spoofing
(b): BFD down
(e): ETHOAM down
(d): Dampening Suppressed
(p): port alarm down
(dl): DLDP down
InUti/OutUti: input utility rate/output utility rate
Interface                   PHY   Protocol InUti OutUti   inErrors  outErrors
10GE2/0/3                   up    up         70%    70%          0          0
10GE2/0/5                   up    up         70%    70%          0          0
MEth0/0/0                   up    up       0.01%  0.01%          0          0
NULL0                       up    up(s)       0%     0%          0          0

需要将上述查看到的端口流量和正常业务情况下的端口流量做对比,如果端口流量比正常业务大很多,可能出现环路:

  • 如果只有一个端口风暴,可能是上述环路类型的本端自环和下游设备环路场景.

  • 如果是两个端口风暴,则可能是上述环路类型的不同端口之间环路和环形组网的场景.

  • 如果有更多的端口风暴,则可能是上述环路类型的几种情况组合之后的复杂场景.

检测发生MAC地址漂移

  • 通过日志查看接口的MAC漂移记录.

    可在日志log.log中或者用display logbuffer命令查看.如下信息表明有MAC地址漂移的记录,则说明在相应的接口可能有环路.

Sep 15 2013 15:23:58 A8_CE12808_1 %%01FEI/4/hwMflpVlanLoopAlarm_active(l):CID=0x807f047e-alarmID=0x095e0012;MAC flapping detected, VlanId = 310, MacAddress = 0016-3e00-0464, Original-Port = Eth-Trunk49, Flapping port = Eth-Trunk33,-. Please check the network to which the interface learning a flapping MAC address is connected.
  • 在任意视图下执行display mac-address flapping命令查询接口的MAC漂移记录.

    在回显信息中,MoveNum表示在相应时间段漂移的次数,如果MoveNum数值很大,表明出现了大量的MAC漂移,则极可能为环路导致,需要根据接口重点排查.

协议状态不稳定

环路可能导致某些协议(如OSPF)报文丢失、环回到本设备、或者重复多份,可能导致协议不稳定.如果有大量的此类日志记录,则可能出现环路.

Sep 16 2013 10:55:56 A8_CE12808_1 %%01OSPF/6/NBR_CHANGE(l):CID=0x808304c7;Neighbor changes event: neighbor status changed. (ProcessId=1, NbrIpAddr=10.192.0.46, NbrEvent=1-Way, NbrPreviousState=ExStart, NbrCurrentState=Init) Sep 16 2013 10:55:56 A8_CE12808_1 %%01OSPF/6/NBR_CHANGE(l):CID=0x808204c3;Neighbor changes event: neighbor status changed. (ProcessId=1, NbrIpAddr=10.192.0.46, NbrEvent=2WayReceived, NbrPreviousState=Init, NbrCurrentState=ExStart)

上送CPU的协议报文(如ARP)被抑制丢弃

当环回导致的大量报文上送到CPU的时候,可能会被抑制,可以通过display cpu-defend statistics packet-type arp all命令查询.如果出现大量dropped报文,则可能出现环路.

<HUAWEI> display cpu-defend statistics packet-type arp all
Statistics(packets) on slot 2 :
--------------------------------------------------------------------------------
PacketType               Total Passed        Total Dropped   Last Dropping Time
                    Last 5 Min Passed   Last 5 Min Dropped
--------------------------------------------------------------------------------
arp                             34515             14346678   -
                                34515                 1678
--------------------------------------------------------------------------------

使用Loopback Detection功能检测到环路

在相应的端口和VLAN使能Loopback Detection功能,设备会周期性的发送检测报文,当从本端口又收到此报文时,则说明发生了环路.可以根据现网情况配置某端口和VLAN的环回检测功能,通过display loopback-detect命令查看环路情况.

当出现环路时,会极大影响网络性能,甚至导致业务异常,需要及时处理.解决环路问题可以从如下几点着手:

  • 可能是组网连线导致物理上成环,需要现场工程师排查组网,去除多余的网线或光纤.现网定位时,可以通过shutdown接口来达到链路断开的目的.

现网shutdown接口时,需要特别谨慎,以免中断业务.

  • 在现网定位的时候,一般很难在物理上做操作,所以绝大多数情况下,需要在配置上解决环路.比如:shutdown端口或端口退出成环的VLAN.

    另外,可能是由于其他特性导致成环,比如STP、Smartlink等环网协议异常,导致无法正确破环,则需要定位相应特性的问题.请收集上述执行结果、设备的配置文件、日志信息、告警信息,并联系技术支持人员.