远程镜像配置未删除导致的流量峰值故障

发布时间:  2014-09-17 浏览次数:  324 下载次数:  6
问题描述
组网拓扑:见附件;涉及设备:NE40E,S9300,S9700,USG5530S,cisco 2900等
版本信息:S9300/V100R006C00SPC800;NE40E/V600R006C00SPC300;S9700/V200R005C00SPC300;USG5530S/V300R001C10SPC200
组网概述:整网部署ospf,两台S93对内部署vrrp,两台USG5530S旁挂,通过在S93上部署策略路由,将部分流量引入到防火墙上。防火墙仅做访问控制,未部署nat。防火墙为主备模式,两台防火墙和两台S93之间启用VRRP引导流量走向主用侧设备(互联vlan为1100和1200)。
故障现象:当USG5530S-1和S93-1作为主用设备,即USG5530S-1和S93-1为VRRP主时,网络流量正常。当将两台S93互联vlan 1100和1200切换到S93-2为vrrp主时,立即产生流量异常。S93-2的上行端口和与USG-2的互联端口均达到峰值。同时在上层网络中也观察到流量峰值情况(一直到cisco-1,cisco-2设备均观察到峰值现象)。
告警信息
故障现象发生时,无告警信息。
处理过程
如何还原峰值流量路径:
1.交换机(可以看双向流量)
display interface
#
GigabitEthernet1/0/1 current state : UP
Line protocol current state : UP
...
Input peak rate 79912936 bits/sec, Record time: 2014-06-22 01:16:07
Output peak rate 5623432 bits/sec, Record time: 2014-06-22 01:16:28

该条记录了该端口峰值信息
2.NE路由器(只能看出方向流量)
dis port-queue statistics interface g1/0/0 outbound 
#
GigabitEthernet1/0/0 outbound traffic statistics:
[be]
...

  Peak rate:
                          2014-07-03 05:04:55                267,839,920 bps

根因
流量瞬间达到峰值,第一反应是产生了网络环路。考虑到远端cisco设备也产生了峰值流量,发生三层环路的可能性最大。
由于网络中存在ospf路由,静态路由和策略路由。考虑到问题发生前,仅仅调整了一个互联vlan的vlanif主备状态,怀疑是引入到ospf的某条外部路由与策略路由叠加产生的环路,或是远端的cisco设备错误引入了某些路由,与S93这一端形成路由互指产生三层环路。
但经过仔细检查,cisco设备的路由引入无异常。对比两台S93的路由表,ospf路由完全一致。对比S93上层的两台S97路由表,指向S93的ospf路由表也完全一致。若是路由导致的三层环路,不应该只有切换到S93-2时才触发。
至此,按照三层环路排查的思路完全堵死。
通过客户的网管监测系统,观察到当晚发生流量异常时,在远端的cisco设备上收到了大量的GRE报文,但与客户确认,网络中没有部署GRE业务。
同时通过对诊断信息分析,还原出流量异常时的流量路径:USG530S-2——S93-2——S97-2——NE40E-2——NE40E-2——cisco-1,并且沿着这条路径,NE40E与cisco设备的峰值流量都是单向的,均指向cisco-1。
通过以上信息得出结论:异常流量是单向的GRE报文。
此时研发搭建实验室模拟环境获得重大进展,复现了GRE报文,原来该流量来自S97-2上一条未删除的冗余配置:
observe-port 1 interface GigabitEthernet1/0/3 destination-ip 21.106.166.2 source-ip 192.168.185.9
#
interface GigabitEthernet1/0/0
undo portswitch
description XXX
ip address 192.168.187.6 255.255.255.252
ospf network-type p2p
port-mirroring to observe-port 1 inbound
port-mirroring to observe-port 1 outbound
该配置是为了测试一条业务添加的,测试完成后现场工程师忘记清除。
发现异常流量的源头,后续的分析水到渠成。
1.S97-2上的远程镜像配置会产生一条GRE数据流,源目的地址均为所配置的IP,出接口为G1/0/3(观察口),即S97-2与下层S93-2的互联端口;
因此S97-2会向S93-2发送一条(源192.168.185.9)(目的21.106.166.2)的GRE数据流;
2.S93-2与S97-2互联的端口上部署了策略路由,将从S97-2来的GRE数据流引入到防火墙USG5530S-2上,USG5530S-2查询路由表发现目的地址未知,根据默认路由又从原端口发送回去;
3.远程镜像配置是临时测试使用,配置的源目的地址均为测试地址,现网中没有明细路由。但现网S93-2上有一条粗路由,指向了S97-2:
21.106.0.0/16  O_ASE  150  20           D   192.168.125.133 Vlanif201
从USG5530S-2回来的GRE数据流,在S93-2上根据这条路由,发送到了S97-2上;
4.S97-2上同样有这条粗路由,于是将数据通过G1/0/0(镜像口)向上端NE40E-2发送;
此时,该流量重新被镜像到G3/0/0(观察口),产生流量迭代。即镜像到观察口的流量,由于重新流到镜像口,再次被镜像到观察口,如此循环,产生峰值。
建议与总结
1.网络中产生流量峰值现象,除环路以外,还有可能是发生了流量迭代;
2.远程镜像配置会发送GRE报文;
3.要养成良好的操作习惯,冗余配置一定要及时清理。

END