二层环路故障诊断

总体思路

所有故障皆“事出有因”,故障的发生一定是在一个稳定的正常运行的网络中,某一网络环节发生了变化而引起的,这些诱发网络产品生故障的变化包括:

  • 网络调整:包括但不限于组网调整、配置修改、升级割接等操作;
  • 网络环境发生变化:包括但不限于网络风暴、特定节日/促销活动/智能终端导致用户行为变化,网络设备电源/温度环境发生变化、传输光缆被切断、夏令时跳变、微波受大雨/大雾等其后影响、洪水/火灾/地震/雷击等外界不可抗力;
  • 网络设备发生故障:包括但不限于软件发生缺陷、硬件老化故障(单板异常、光纤光模块故障)等。

所有这些诱发故障的内在因素绝大多数都有其“外在异常表现”,具体会反映在特定网元的告警、日志、流量统计、端口状态等信息中。因此故障快速定位的关键在于,如何有效而快速的通过事发时间、影响范围、所做操作及故障网络范围的网元基本信息的查看,快速发现这些“外在异常表现”所在的点,进而锁定故障网元节点,找出问题根因。

如下图所示,网络中出现二层环路通常会有如下现象,如果分析现网问题发现存在以下异常表现中的一个或者多个,则网络中存在二层环路可能性较大。

诊断步骤

检查端口带宽流量简要信息。

通过display interface brief命令,查看所有接口下的流量,存在环路的接口上InUi和OutUi两个计数会逐步增加至端口速率上限。

  1. 一般情况下,使用此命令查询只能看到当前网络的流量结果,此结果需要和网络的正常业务流量进行比较,业务流量的带宽可以从网管设备上的网络流量监控图中获取。

    • 通过下面简单的判断,可以初步确定有没有环路存在。
      • 如果当前网络流量远大于正常业务,可能存在二层环路。
      • 如果当前网络流量正常,且没有部署广播抑制(接口下未配置命令broadcast-suppression { percent-value | cir cir-value [ cbs cbs-value ] | packets packets-per-second }),则没有二层环路。
      • 如果当前网路流量比正常流量稍大,且部署了广播抑制,则需要通过查看MAC地址漂移进一步判断。
    • 通过观察设备流量大的端口个数和流量出入方向,也可以进行如下初步判断。
      • 如果只有一台设备的一个端口出入方向流量较大,可能属于交换机单端口自环出现环路。
      • 如果只有一台设备的两个端口流量较大,可能属于交换机双端口环路导致协议震荡。
      • 如果某端口只有单方向流量较大,即只有出方向流量大或者只有入方向流量较大,则需要重点排查,因为环路有可能在该端口的上下游设备,属于下游设备报文转发异常导致伪环路问题。

      上述步骤在确认可能是环路的情况下,可以通过如下步骤进一步判断确认环路是否的确存在。

  2. 查看带宽异常的接口详细信息。

    为排除先前报文统计数对故障判断的影响,在征询客户同意的前提下,您可以在用户视图执行命令reset counters interface [ interface-type [ interface-number ] ],先清除指定接口的统计信息。

    任意视图下执行命令display interface [ interface-type [ interface-number ] ],或接口视图下执行命令display this interface,查看接口当前运行状态详细信息。具体可查看回显信息中的BroadcastMulticast和字段,以观察接口出入方向是否有大量的广播和组播报文计数。

    如果存在某些接口的收发广播/组播报文数明显大于同一设备其他接口的收发广播/组播报文数,则存在环路的可能性很大;否则,请执行查看MAC地址漂移进一步判断。

查看MAC地址漂移

MAC地址漂移即设备上某一个接口学习到的MAC地址在同一VLAN中另一个接口上也学习到,后学习到的MAC地址表项会覆盖原来的表项。

导致MAC地址漂移的可能原因包括网络存在环路或者非法用户进行网络攻击等。因此出现MAC地址漂移不一定是因为存在环路,但是如果设备存在环路,则一定会有MAC地址漂移现象发生。

如下图所示,当SwitchA向两个方向同时发送报文时,在SwitchB上的两个不同端口都会收到该报文,从而出现MAC地址漂移。当SwitchB的两个端口出现了MAC地址漂移时,说明交换机的两个端口间可能出现了环路。

交换机所有形态和版本均默认支持MAC地址漂移检测功能。MAC地址漂移检测配置主要是指MAC地址漂移后设备是否产生告警,以及MAC地址漂移后是否设置端口堵塞功能。

由于交换机各版本和形态间的MAC地址漂移检测的命令行和检测存在差异,将划分为框式设备和盒式设备来分别介绍。

框式交换机的MAC地址漂移查看方法:

    1. 框式交换机的MAC地址漂移查看方法:
      • 对于V100R002版本设备,全局使能MAC地址漂移检测功能后,仅在非S系列单板上生效,并且设备检测到MAC地址漂移后,只支持发送TRAP告警。开启MAC地址漂移检测功能的命令如下:
        [HUAWEI] mac-flapping alarm enable
      • 对于V100R003及以后的版本,设备新增了基于VLAN的MAC地址漂移检测、检测到MAC地址漂移后执行对应的动作策略。系统视图和VLAN视图开启MAC地址漂移检测的命令如下:
        • 系统视图下执行命令:
          [HUAWEI] loop-detect eth-loop alarm-only
        • VLAN视图下执行命令:
          <HUAWEI> system-view
          [HUAWEI] vlan 10
          [HUAWEI-vlan10] loop-detect eth-loop alarm-only

      开启MAC地址漂移检测功能后,您可以执行命令display trapbuffer查看MAC地址漂移告警(告警OID 1.3.6.1.4.1.2011.5.25.160.3.7 或OID 1.3.6.1.4.1.2011.5.25.42.2.1.7.12)。各个版本的告警信息存在一定的差异,样例如下:

      版本

      告警信息

      V100R002

      全局检测

      L2IF/4/MAC_FLAPPING_ALARM:OID 1.3.6.1.4.1.2011.5.25.42.2.1.7.12The mac-address has flap value . (BaseTrapSeverity=0, BaseTrapProbableCause=0, BaseTrapEventType=4, L2IfPort=549,entPhysicalIndex=1, MacAdd=0000-0000-002b,vlanid=1001, FormerIfDescName=Ethernet3/0/2,CurrentIfDescName=Ethernet3/0/3,DeviceName=S9306-169)

      VLAN检测

      不支持

      V100R003

      全局检测

      L2IFPPI/4/MAC_FLAPPING_ALARM:OID 1.3.6.1.4.1.2011.5.25.42.2.1.7.12The mac-address has flap value . (L2IfPort=0,entPhysicalIndex=0, BaseTrapSeverity=4, BaseTrapProbableCause=549, BaseTrapEventType=1, MacAdd=00e0-fc00-4447,vlanid=1001, FormerIfDescName=GigabitEthernet6/0/6,CurrentIfDescName=GigabitEthernet6/0/7,DeviceName=9306-222.159)

      VLAN检测

      L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7 Loop exist in vlan 1001, for mac-flapping.

      V100R006及后续版本

      全局检测

      L2IFPPI/4/MAC_FLAPPING_ALARM:OID 1.3.6.1.4.1.2011.5.25.42.2.1.7.12The mac-address has flap value. (L2IfPort=0,entPhysicalIndex=0, BaseTrapSeverity=4, BaseTrapProbableCause=549, BaseTrapEventType=1, MacAdd=0025-9e6e-1c55,vlanid=1001, FormerIfDescName=GigabitEthernet2/1/23,CurrentIfDescName=GigabitEthernet2/1/22,DeviceName=9303-222.157)

      VLAN检测

      L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7 Loop exists in vlan 1001, for flapping mac-address 0025-9e6e-1c55 between port GE2/1/23 and port GE2/1/22.

    2. 盒式交换机MAC地址漂移查看方法

      盒式交换机(不包括S2700系列)在V100R003及以后版本,不支持全局配置MAC地址漂移检测功能,只支持配置基于VLAN的MAC地址漂移检测,同时支持检测到MAC地址漂移后发送TRAP告警以及进行阻塞端口等动作。开启MAC地址漂移检测命令如下:

      VLAN视图下:

      <HUAWEI> system-view
      [HUAWEI] vlan 10
      [HUAWEI-vlan10] loop-detect eth-loop alarm-only

      开启MAC地址漂移检测功能后,您可以执行命令display trapbuffer查看MAC地址漂移告警(告警OID 1.3.6.1.4.1.2011.5.25.160.3.7 或OID 1.3.6.1.4.1.2011.5.25.42.2.1.7.12)。各个版本的告警信息存在一定的差异,样例如下:

      版本

      告警信息

      V100R003

      L2IF/4/MFLPPORTRESUME:OID 1.3.6.1.4.1.2011.5.25.160.3.7 Loop exist in vlan for(hwMflpVlanId:"[1001]";hwMflpVlanCfgAlarmReason:"[for flapping mac-address 0000-0000-002b between port GE0/0/24 and port GE0/0/23]")

      V100R005

      L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7 Loop exists in vlan 1001, for flapping mac-address 0000-0000-002b between port GE0/0/24 and port GE0/0/23.

      V100R006

      L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7 Loop exists in vlan 1001, for flapping mac-address 0000-0000-002b between port GE0/0/24 and port GE0/0/23.

      V200R001

      L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7MAC move detected, VlanId = 1001, flapping mac-address 0000-0000-002b between port GE0/0/24 and port GE0/0/23.

      V200R002

      L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7 MAC move detected, VlanId = 1001, flapping mac-address 0000-0000-002b between port GE0/0/24 and port GE0/0/23.

      V200R003及后续版本

      L2IFPPI/4/MFLPVLANALARM:OID 1.3.6.1.4.1.2011.5.25.160.3.7 MAC move detected, VlanId = 1001, flapping mac-address 0000-0000-002b between port GE0/0/24 and port GE0/0/23.

       

    查看CPU占用率

    CPU占用率高,是设备本身的一种现象,直观表现为用户执行命令display cpu-usage查询的回显信息中,整机CPU占用率CPU usage偏高,如超过70%或者产生告警basetrap_1.3.6.1.4.1.2011.5.25.129.2.4.1 hwCPUUtilizationRisingAlarm(默认超过90%会产生此告警)。

    一般的软件任务导致的CPU使用率高持续时间不会太长,所以CPU统计中如果5分钟内的使用率一直持续的比较高的话,基本就是出现了异常或人为攻击,这时候就需要查看设备的正在运行的任务,检查哪个任务消耗的CPU资源高。

    判断是否为环路故障时,您可以在任意视图执行命令display cpu-usage,查看设备CPU占用率的统计信息。

    如何快速破环

    以太网环路会在短时间内形成数据风暴,当端口的流量达到带宽的最大负荷,会形成链路拥塞,影响网络业务。因此,在确认现网存在数据环路后,您需要第一时间按照如下步骤处理,尽快恢复数据业务。

    1. 梳理网络拓扑并识别环路。

      环形网络拓扑一般较为复杂,可以寻求到网络拓扑结构全图,具体到网络的VLAN规划信息,每台设备名称、系统MAC、管理IP,本端端口名称、对端端口名称。

      完整的拓扑信息是解决环路问题的首要条件,如果没有拓扑图,需要从发现环路的设备,通过逐跳登录,记录设备信息、端口信息和VLAN信息,手动绘制完整的拓扑。

    2. 紧急破环。

    紧急破环又称手动破环,当网络风暴严重影响正常的业务时,需要使用此方法尽快恢复业务。您可以通过如下三个方法紧急破环。

    2.1 端口退出已成环的VLAN

    2.2 Shutdown已经成环的端口

    2.3 拔出成环光纤破环

    THE END