现场客户网络某天下午六点左右出现网络异常,用户不能正常上网,网络中很多地址互ping有大量丢包,某个时刻ping AC插卡出现完全不通的情况。几分钟后网络自行恢复,需要帮助分析问题原因。
1.由于核心设备是H3C S10508交换机,因此先分析S10508的诊断信息。首先查看日志信息,确定出问题时间点是否有异常日志:发现在18:04时的日志显示OSPF收到了重复的router-id的报文,由于这个source ip地址就是S10508本地地址,因此怀疑网络中有环路,导致自己发出的报文又被自己收到了。
这个日志OSPF之后,接着有一条STP DISPUTE保护的日志:在指定端口收到了一个低优先级的BPDU,S10508是根桥,在收到这个低优先级的BPDU报文之后,STP DISPUTE保护会把该接口阻塞,而这个接口是连接无线控制器的接口,因此可以解释为什么当时ping不通AC插卡了。
%Apr 14 18:04:01:769 2017 BOEB10-OA-CORE-10508 OSPF/6/OSPF_DUP_RTRID_NBR: OSPF 1 Duplicate router ID 1.1.1.5 on interface Vlan-interface8, sourced from IP address 10.84.144.254.
%Apr 14 18:04:13:341 2017 BOEB10-OA-CORE-10508 STP/4/STP_DISPUTE: Instance 0's port Bridge-Aggregation10 received an inferior BPDU from a designated port which is in forwarding or learning state.
查看S10508诊断信息可知,S10508是根桥:
===============display stp===============
-------[CIST Global Info][Mode RSTP]-------
Bridge ID : 32768.586a-b1f4-9ecf
Bridge times : Hello 2s MaxAge 20s FwdDelay 15s MaxHops 20
Root ID/ERPC : 32768.586a-b1f4-9ecf, 0
RegRoot ID/IRPC : 32768.586a-b1f4-9ecf, 0
RootPort ID : 0.0
BPDU-Protection : Enabled
Bridge Config-
Digest-Snooping : Disabled
TC or TCN received : 2579
Time since last TC : 0 days 4h:20m:58s
2.查看MAC地址漂移记录,发现当时确实发生了环路,因此OSPF才会收到自身发出的重复的Router id。
===============display mac-address mac-move===============
MAC address VLAN Current port Source port Last time Times
2444-27b6-e171 8 BAGG3 BAGG1 2017-04-14 18:04:31 1
c81f-be57-77c8 8 BAGG3 BAGG1 2017-04-14 18:04:21 1
c81f-be57-77cb 8 BAGG3 BAGG1 2017-04-14 18:04:35 1
3.分析环路是如何产生的呢?是否会与STP DISPUTE有关呢?按现场情况,S10508是根桥,他连接AC无线控制器的接口是指定端口,在这样的情况下,只有STP报文出现单通的情况,才会出现STP DISPUTE,这个只会阻塞端口,流量会中断,但是不会导致环路。如果STP单通消失,接口会重新自动变为转发状态。
Dispute是协议标准定义的新增功能(802.1q-2005和802.1q-2011),包括功能定义状态机实现都有明确定义,Cisco的实现是一样的。该新增标准功能解决的场景很明确,就是检测出链路出现了单通故障,并作阻塞保护以防止数据环路。如果不触发dispute保护阻塞端口,就会存在数据环路的引发广播风暴可能。
协议中说明的dispute的链路故障检测场景:
场景> 指定端口disputed,这个场景是高优先级的上游桥到低优的下游桥的链路的下行方向故障的单通。这个场景中,如果有冗余链路,不触发dispute保护就会出现数据转发环路。
并且通过日志可知,先收到OSPF Duplicate router ID,之后才有的STP Dispute,说明网络环路先发生,然后再出现的STP Dispute。所以怀疑就是先网络出现环路,由于环路导致S10508和AC的STP报文出现单通(环路导致设备性能消耗,导致BPDU报文丢弃,或者环路导致BPDU报文发错接口)然后才引发了S10508的STP Dispute。
4.由于现场所有设备都开启了STP,网络怎么突然会出现环路呢?根据S10518的MAC漂移记录,MAC地址在聚合口1和聚合口3之间进行漂移,源端口是聚合口1,漂移后的端口是聚合口3,因此环路应该是出现在聚合口3下联方向。
===============display mac-address mac-move===============
MAC address VLAN Current port Source port Last time Times
2444-27b6-e171 8 BAGG3 BAGG1 2017-04-14 18:04:31 1
并且在18:16分,S10508也从聚合口3收到到了TC,说明聚合口3下面的网络出现过震荡。由于AC无线插卡,S10508的端口转发状态都是forwarding的,没有阻塞的接口,因此应该网络中有设备的阻塞端口变成转发,因此引起了环路。所以需要从S10508的聚合口3下排查看看环路源在哪里。
%Apr 14 18:16:49:571 2017 BOEB10-OA-CORE-10508 STP/6/STP_NOTIFIED_TC: Instance 0's port Bridge-Aggregation3 was notified a topology change.
5.根据上面S10508聚合口3的线索,排查S10508聚合口3直连的3号汇聚交换机S5130EI,它的聚合口10在18:16分自己检测到了TC报文:(STP_DETECTED_TC表示自身发出了TC,STP_NOTIFIED_TC表示收到了TC)
%Apr 14 18:16:49:579 2017 BOEB10-OA-3#-CONVER-7506E STP/6/STP_DETECTED_TC: Instance 0's port Bridge-Aggregation10 detected a topology change.
这台S5130EI交换机聚合口10连接的是一台接入交换机,恰好在故障发生前现场工程师正在配置这台聚合交换机与接入交换机的互联链路聚合配置,因此需要分析环路是否与此聚合操作相关。
6.查看这台S5130EI汇聚交换机的环路漂移记录,由该交换机诊断信息里面没有display mac-address mac-move命令,因此查看mac/move_rec/show信息,这个命令查看的话需要+8小时时区,也就是18:04的样子出现环路,环路漂移的接口刚好是Ten2/0/26和聚合组1之间,而Ten2/0/26这个接口原本就是打算加入到聚合组1之中的。
===============debug l2 slot 1 chip 0 mac/move_rec/show===============
MacAddress Vlan Agg Mod Port ->Agg Mod Port Cnt LatestTime Del ->
c8:1f:be:e5:0b:cb 8 1 0 0 ->0 3 27 1 2017/04/14 10:03:56 1 -> XGE2/0/26(xe1)
c8:1f:be:e5:0d:30 8 1 0 0 ->0 3 27 2 2017/04/14 10:04:10 1 -> XGE2/0/26(xe1)
c8:1f:be:e5:0d:60 8 1 0 0 ->0 3 27 1 2017/04/14 10:03:57 1 -> XGE2/0/26(xe1)
c8:1f:be:93:67:05 8 1 0 0 ->0 3 27 1 2017/04/14 10:03:58 1 -> XGE2/0/26(xe1)
c8:1f:be:e5:0c:3e 8 1 0 0 ->0 3 27 1 2017/04/14 10:03:58 1 -> XGE2/0/26(xe1)
……
//这里的Agg 1 Port 0就代表聚合口1,也就是聚合口1与XGE2/0/26之间有MAC漂移
===============display clock===============
18:25:25 8 Sat 04/15/2017
Time Zone : 8 add 08:00:00 //时间需要加8小时
由于Ten1/0/50在17:58分的时候已经加入到了聚合口1,并且成为了选中状态,但是现场将该接口关闭了STP(全局开启STP,接口关闭STP,那么STP BPDU报文丢弃),在还没有将Ten2/0/26也加入到聚合组1之前,聚合口1的STP被关闭,Ten2/0/26的STP开启,因此出现Ten2/0/26与聚合口1之间的环路。
SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is int bri 1
%Apr 14 17:58:39:249 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is undo port trunk permit vlan 1
%Apr 14 17:58:42:495 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is undo stp enable
%Apr 14 17:58:45:332 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is dhcp snooping trust
%Apr 14 17:58:53:433 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is interface Tent 1/0/50
%Apr 14 17:58:58:686 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is port link-aggregation group 1
%Apr 14 17:58:59:180 2017 BOEB10-OA-03-1-08-5130-52TP IFNET/3/PHY_UPDOWN: Bridge-Aggregation1 link status is up.
%Apr 14 18:04:11:623 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is int ten 2/0/26
%Apr 14 18:04:15:461 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is port link-type trunk
%Apr 14 18:04:15:598 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is undo port trunk permit vlan 1
%Apr 14 18:04:15:765 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is port trunk permit vlan 2 to 4094
%Apr 14 18:04:15:887 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is undo stp enable
%Apr 14 18:04:15:999 2017 BOEB10-OA-03-1-08-5130-52TP SHELL/6/SHELL_CMD: -Line=vty0-IPAddr=10.84.0.6-User=admin; Command is port link-aggregation group 1
%Apr 14 18:04:16:138 2017 BOEB10-OA-03-1-08-5130-52TP IFNET/5/LINK_UPDOWN: Line protocol on the interface Ten-GigabitEthernet2/0/26 is down.
综上:由于一台汇聚S5130EI与接入交换机在配置链路聚合的时候,关闭了聚合口的STP,这时S5130EI与接入交换机物理上就存在两条链路之间相连,其中S5130EI的一个接口开启了STP,另外一接口关闭了STP,由于关闭STP的那个接口将STP BPDU丢弃,因此网络成环。
建议在将聚合物理口加入聚合口之前,不要先关闭接口的STP,如果一定要关闭聚合口的STP,需要在把所有物理口都加入到聚合口以后,再关闭整个聚合口的STP。
现网中偶尔会遇到网络突然中断,然后自动恢复的问题,这种情况下日志就非常重要了,大家需要根据日志抽丝剥茧,总能找到蛛丝马迹。
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作