以太网交换网络中为了提高网络可靠性,通常会采用冗余设备和冗余链路,然而现网中由于组网调整、配置修改、升级割接等原因,经常会造成数据或协议报文环形转发,不可避免的形成环路。如图1所示,三台设备两两相连就会形成环路。当设备未部署环路保护协议或者组网配置发生变更时,环形组网中就可能会产生广播风暴。
图1 以太网交换网络冗余链路组网图
二层环路最大的危害就是会产生广播风暴,以太网是一个支持广播的网络,在没有环路的环境中,广播包在网络中以泛洪的形式被送达到网络的每一个角落,以保证每个设备都能够接受到它。在带宽允许的情况下,每个网桥在接收到广播报文以后,都会向除接收端口以外的其他所有接口转发这个广播包,一旦网络中有环路,这种简单的广播机制就会引发灾难性后果。
环路中一个广播报文被反复转发了千万次,产生了广播风暴并且很快达到或接近端口线速,并迅速消耗链路带宽。根据转发规则,这些广播报文不仅仅只是在环路上无限转发,环路设备还会向其他端口转发一份,这样整个网络中都充斥着大量重复广播报文。如果全网络都采用千兆端口互连,那么几乎每一条链路上都充斥着1000M/s的广播报文,正常的数据报文将很难再获得转发的机会。
二层网络设备处于同一个广播域下,广播报文在环路中会反复持续传送,无限循环,形成广播风暴,引发MAC地址表不稳定等故障现象,进而影响正常业务,导致用户通信质量较差,甚至通信中断。
为防止环路出现,并保证网络的可靠性,交换机设备上通常会部署一些破环协议。目前S系列交换机支持的二层环路破环协议主要有:
除了二层环路破环协议,S系列交换机同时支持环路检测技术,主要的环路检测技术有:
本文将主要介绍如何识别二层网络的环路问题以及常见处理方法。
所有故障皆“事出有因”,故障的发生一定是在一个稳定的正常运行的网络中,某一网络环节发生了变化而引起的,这些诱发网络产品生故障的变化包括:
所有这些诱发故障的内在因素绝大多数都有其“外在异常表现”,具体会反映在特定网元的告警、日志、流量统计、端口状态等信息中。因此故障快速定位的关键在于,如何有效而快速的通过事发时间、影响范围、所做操作及故障网络范围的网元基本信息的查看,快速发现这些“外在异常表现”所在的点,进而锁定故障网元节点,找出问题根因。
如下图所示,网络中出现二层环路通常会有如下现象,如果分析现网问题发现存在以下异常表现中的一个或者多个,则网络中存在二层环路可能性较大。
图2 二层环路常见异常表现
判断网络中是否存在二层环路,一般可以使用查看接口带宽流量、查看MAC漂移告警、部署环路检测、查看CPU占用率四种方法进行确认。这四种方法没有严格的操作顺序,为更加准确判断故障属性,可以使用其中的一种或多种方法来进行问题定位。
图3 环路故障诊断步骤
通过display interface brief命令,查看所有接口下的流量,存在环路的接口上InUi和OutUi两个计数会逐步增加至端口速率上限。
第一次查询:
display interface brief | include up
PHY: Physical
*down: administratively down
^down: standby
~down: LDT down
#down: LBDT down
(l): loopback
(s): spoofing
(E): E-Trunk down
(b): BFD down
(e): ETHOAM down
(dl): DLDP down
(d): Dampening Suppressed
(ld): LDT block
(lb): LBDT block
InUti/OutUti: input utility/output utility
Interface PHY Protocol InUti OutUti inErrors outErrors
Ethernet0/0/0/0 up up 0.01% 0.01% 0 0
GigabitEthernet0/0/2 up up 0.01% 0.01% 0 0
GigabitEthernet0/0/16 up up 0.01% 0.56% 0.56% 0
GigabitEthernet1/0/12 up up 0.01% 0.56% 0.56% 0
最后一次查询:
display interface brief| include up
PHY: Physical
*down: administratively down
^down: standby
~down: LDT down
#down: LBDT down
(l): loopback
(s): spoofing
(E): E-Trunk down
(b): BFD down
(e): ETHOAM down
(dl): DLDP down
(d): Dampening Suppressed
(ld): LDT block
(lb): LBDT block
InUti/OutUti: input utility/output utility
Interface PHY Protocol InUti OutUti inErrors outErrors
Ethernet0/0/0/0 up up 0.01% 0.01% 0 0
GigabitEthernet0/0/2 up up 0.01% 0.01% 0 0
GigabitEthernet0/0/16 up up 76% 76% 0 0
GigabitEthernet1/0/12 up up 76% 76% 0 0
一般情况下,使用此命令查询只能看到当前网络的流量结果,此结果需要和网络的正常业务流量进行比较,业务流量的带宽可以从网管设备上的网络流量监控图中获取。
上述步骤在确认可能是环路的情况下,可以通过如下步骤进一步判断确认环路是否的确存在。
为排除先前报文统计数对故障判断的影响,在征询客户同意的前提下,您可以在用户视图执行命令reset counters interface [ interface-type [ interface-number ] ],先清除指定接口的统计信息。
任意视图下执行命令display interface [ interface-type [ interface-number ] ],或接口视图下执行命令display this interface,查看接口当前运行状态详细信息。具体可查看回显信息中的Broadcast和Multicast和字段,以观察接口出入方向是否有大量的广播和组播报文计数。
如果存在某些接口的收发广播/组播报文数明显大于同一设备其他接口的收发广播/组播报文数,则存在环路的可能性很大;否则,请执行查看MAC地址漂移进一步判断。
display interface XGigabitEthernet 2/0/1
XGigabitEthernet2/0/1 current state : UP
Line protocol current state : UP
Description:
Switch Port, PVID : 1, TPID : 8100(Hex), The Maximum Frame Length is 9216
IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is 00e0-fc01-38f9
Last physical up time : 2010-12-15 14:24:47 UTC-03:00
Last physical down time : 2010-12-15 14:23:54 UTC-03:00
Current system time: 2010-12-15 19:13:33-03:00
Port Mode: COMMON FIBER, Transceiver: 10GBASE_SR_SFP
Speed : 10000, Loopback: NONE
Duplex: FULL, Negotiation: DISABLE
Mdi : NORMAL, Flow-control: DISABLE
Last 300 seconds input rate 1432 bits/sec, 1 packets/sec
Last 300 seconds output rate 1272 bits/sec, 1 packets/sec
Input peak rate 12390544 bits/sec, Record time: 2010-12-15 14:31:02
Output peak rate 11624 bits/sec, Record time: 2010-12-15 14:24:48
Input: 3804624 packets, 578247577 bytes
Unicast: 3784099, Multicast: 20524
Broadcast: 1, Jumbo: 0
Discard: 0, Pause: 0
Frames: 0
Total Error: 0
CRC: 0, Giants: 0
Jabbers: 0, Fragments: 0
Runts: 0, DropEvents: 0
Alignments: 0, Symbols: 0
Ignoreds: 0
Output: 19396 packets, 2796198 bytes
Unicast: 9, Multicast: 19386
Broadcast: 1, Jumbo: 0
Discard: 0, Pause: 0
Total Error: 0
Collisions: 0, ExcessiveCollisions: 0
Late Collisions: 0, Deferreds: 0
Buffers Purged: 0
Input bandwidth utilization threshold : 90.00%
Output bandwidth utilization threshold: 90.00%
Input bandwidth utilization : 0%
Output bandwidth utilization : 0%