ARP攻击导致生产业务中断案例分析

发布时间:  2016-06-24 浏览次数:  170 下载次数:  0
问题描述

S9300交换机上联NE40E-X8,下联OLT 5800。

S9306交换机使用v200r001c00spc300版本。S9306配置二层VPLS VPN业务,承载二层VPN专网业务。

在0点到1点之间,S9306出现频繁的VPLS 邻居闪断现象。

告警信息

Jun 14 2016 22:32:57 XXX L2V/2/VPLSVC_DWN_ME_T:OID 1.3.6.1.4.1.2011.5.25.119.1.2.1 The status of the VPLS VC turned DOWN. (VsiName=l2-XXX, PwId=3510, RemoteIp=10.0.0.X, PwType=1, HWL2VpnStateChangeReason=4, SysUpTime=1614038247, TunnelPolicyName=)

Jun 14 2016 22:32:58 XXX L2V/2/VPLSVC_DWN_ME_T:OID 1.3.6.1.4.1.2011.5.25.119.1.2.1 The status of the VPLS VC turned DOWN. (VsiName=XXX, PwId=704, RemoteIp=10.0.0.X, PwType=1, HWL2VpnStateChangeReason=4, SysUpTime=1614038299, TunnelPolicyName=)

处理过程

1 故障时间点,交换机出现频繁的VPLS 邻居闪断,时间从晚上10点一直到15日0:20分左右
2 查看VPLS RemoteIP下一条出接口,下一跳出接口均为10.X.X.X,出接口为GE2/0/0

路由下一跳:

10.0.0.8/32  OSPF    10   4           D   10.2.1.33       Vlanif31

10.0.0.29/32  OSPF    10   4           D   10.2.1.33       Vlanif31

10.0.0.20/32  OSPF    10   6           D   10.2.1.33       Vlanif31

10.0.0.22/32  OSPF    10   6           D   10.2.1.33       Vlanif31

出接口:

10.2.1.33       0819-a626-faf9  18        D-0         GE2/0/0

 

3 查看本端down的原因为对端先down

 

Jun 14 2016 22:32:57 XXXX LDP/2/SESSIONDOWN:OID 1.3.6.1.2.1.10.166.4.0.4 The session went Down. (LdpId=[0a.00.00.1c.00.00 (hex)], LdpEntityIndex=4294901766, PeerLdpId=[0a.00.00.08.00.00 (hex)], PeerLdpId=[0a.00.00.08.00.00 (hex)], IfIndex=0, SessionState=1, DiscontinuityTime=416433000, UnknownMesTypeErrors=0, UnknownTlvErrors=0, DownReason=15, IfName=)

原因1:Hello保持定时器超时。

原因2:会话定时器超时。

原因3:重启LDP。

原因4:去使能LDP。

原因5:去使能MPLS。

原因6:删除远端邻居。

原因7:GR配置发生改变。

原因8:GR定时器发生改变。

原因9:Keepalive保持定时器发生改变。

原因10:MD5发生改变。

原因11:Session角色发生改变。

原因12:LDP MTU信令功能的配置发生改变。

原因13:传输地址发生改变。

原因14:LsrID发生改变。

原因15:收到Notification消息。

原因16:传输地址不匹配。

原因17:协议进入GR状态。

原因18:接口状态发生改变。

原因19:TCP连接失败。

原因20:其它原因。

4 查看设备日志,在故障时间点,设备伴随大量的ARP攻击,报文数量远远大于设备承受能力,设备在持续受到攻击的情况下,会每十分钟打印一次日志。如果设备持续受到ARP攻击,会导致正常ARP无法学习到的情况
5 查看VPLS up到down的时间周期,为20分钟间隔,恰恰为ARP老化时间

根因

基于以上分析, 业务受损问题定位原因如下:
1、 设备2号单板在故障时间点持续收到大量外界过来的ARP攻击报文,大量的攻击报文远远超过交换机的承受能力。
2、 如果设备持续收到ARP攻击报文,car丢包日志会每十分钟打印一次,故障时间点日志打印频率符合此现象。
3、 设备在学习到路由下一跳ARP后,需要经过20分钟的老化时间,在第10分钟以及在第20分钟时,会再次发ARP请求给对端,用来刷新ARP老化时间,而此时如果ARP消息得不到对端的回应,或者被交换机的CP-Car丢弃(攻击报文过多,所有ARP报文被随机丢弃),则会出现ARP无法刷新的情况,直到经过老化周期后,ARP表象被删除,此时业务会出现三层转发不通,VPLS邻居出现中断现象,VPLS从up到down的间隔恰好为20分钟,和ARP老化周期相吻合。
4、 查看2号单板up的端口分别为GE2/0/0、GE2/0/3、Eth-Trunk1(GigabitEthernet2/0/23)、Eth-Trunk2(GigabitEthernet2/0/4),其中Eth-Trunk1在01:24:15出现过up/down
Jun 15 2016 01:24:15 XX %%01TRUNK/5/TRUNKDOWN(l)[25935]:The status of interface Eth-Trunk1 turns Down.
Jun 15 2016 01:32:41 XX %%01IFNET/4/IF_STATE(l)[25940]:Interface Eth-Trunk1 has turned into UP state.
查看G2/0/23(Eth-Trunk1),广播流量占比较大,此端口收到arp广播报文攻击,但另外三个端口也存在收到攻击的可能性。

解决方案

1、 排查单板下挂的业务网元,查看是否有在故障时间点受到攻击或者存在环路的情况。
2、 部属交换机攻击溯源,用以再出现类似攻击时,可以找到攻击源头。(攻击溯源会占用一定CPU资源,如果网络比较稳定,建议去使能,仅在检测到交换机受攻击时部属)                                                                                       
                   

建议与总结

部属交换机攻击溯源,用以再出现类似攻击时,可以找到攻击源头,脚本如下:

cpu-defend policy auto-defend                                                                                                      

 auto-defend enable                                                                                                                 

 auto-defend threshold 30                                                                                                          

 auto-defend alarm enable                                                                                                           

#

 

cpu-defend-policy auto-defend global                                                                                               

cpu-defend-policy auto-defend  

 

通过

display auto-defend attack-source detail

display auto-defend attack-source slot X detail   ---X表示具体接口板查看具体受到的攻击源

END