S9703交换机收到TC报文的同时遭受ARP攻击导致用户业务中断

发布时间:  2014-09-11 浏览次数:  476 下载次数:  39
问题描述
某局点的两台S9303作为核心交换机起VRRP,上面分别连接NE40,下面分别连接CISCO接入交换机。用户反馈网络断网,ping VRRP备用设备不通,或者只有少量包通。如果将备用S9303的上连接口进行shutdown,即备用S9303完全不用,则业务恢复正常。主用S9303上arp的cpu-defend值配置为1024,备用S9303上的arp的cpu-defend配置为512.S9303和NE40E上面的网络都运行OSPF协议。
告警信息
 通过在S9703上打开arp的debug信息,发现交换机收到大量的免费arp报文,同时产看stp状态可以看到交换机每隔一段时间就会收到TC报文
处理过程
S9303上配置了auto-defend对攻击源arp进行限制,同时在接口上配置了arp-limit,在接入交换机上接用户的端口都配置成为边缘端口,减少网络拓扑变更,同时在接入交换机上配置广播抑制,减少广播报文的上送数量。配置后,设备长时间没有收到TC报文,也没有收到大量的ARP报文
根因
S9303和下面的CISCO设备上都运行了MSTP协议,在S9303设备上看,每隔几分钟设备上就会收到TC报文,是下面的CISCO交换机拓扑改变造成,CISCO交换机上的端口上都没有配置边缘端口,这样如果有用户PC开机关机或者网线插拔都会造成拓扑的改变,导致发送TC报文,设备在收到TC报文后,会进行MAC表项的删除。在S9303_2上查看cpu-defend的计数,发现有大量的arp-request报文被丢弃,在S9303_2上打开debug调试开关,发现有大量的免费ARP报文,都是来自同一个IP地址,判断设备受到了ARP攻击。   
   以此判断,丢包的原因是这样的:由于S9303和NE40E到WAN侧的设备都运行OSPF协议,客户发往网络侧的出报文经VRRP的主设备S9303_1到网络侧,但是回报文可能经过VRRP的备设备S9303_2回来。由于接入交换机端口的加入或者退出,设备会发送TC报文,S9303在收到TC报文后,进行MAC表项的删除,从而ARP表项也失效了,重新进行ARP表项的学习,这个时候设备受到了ARP攻击,收到大量的ARP请求,但是由于cpu-defend的作用,大量的ARP请求被丢弃掉了,导致正常的ARP请求报文也无法处理,设备上没有生成正确的ARP表项导致业务不通。但为什么VRRP的主用S9303_1没有问题呢,因为在S9303_1上,配置的针对ARP-request的cpu-defend值较大为1024,对于大量的ARP-request报文能够进行有效的处理,从而正常的ARP表项也能够正常的学习到,所以业务如果单从S9303_1进行转发是正常的。
建议与总结
对于网络中常见的攻击要及早做好预防,对于部署生成树的网络边缘设备,连接用户的接口一定要配置成为边缘端口,防止由于接入用户侧端口的频繁UP和DOWN导致导致网络拓扑的变化,而造成生成树的重新计算。

END