S5700LI下挂PC发送大量的ARP广播报文,导致话机无法使用

发布时间:  2014-10-25 浏览次数:  511 下载次数:  0
问题描述
1.1 问题涉及的设备及版本
设备类型 版本 补丁
S5700-LI V200R003C00SPC300

1.2 业务描述
S5700-LI交换机设备上每个端口下挂一台话机,话机下面再连接一台PC,在交换机上配置静态绑定表,匹配PC和话机的信息。然后在端口上配置报文合法性检查功能。

1.3 现网问题描述
问题现象:在端口下配置ARP报文检查功能时,如果PC机发送大量的ARP的时候,配置arp anti-attack check user-bind enable的时候,话机不能正常工作,配置ip source check user-bind enable的时候,话机能够正常工作。
告警信息
处理过程
3.1、 首先了解出问题话机对应的交换机接口CNTZSW12A03(IP:172.18.128.5)下主要有两个接口下接话机有问题分别如下:
 IP地址                  MAC地址                       对应接口
IP地址 MAC地址 对应接口
172.18.128.97 4437-e697-00e2 GigabitEthernet 0/0/14
172.18.128.89 4437-e65e-a4bf GigabitEthernet 0/0/8
                                                         表1
、 查看接口流量统计信息如下截图:

                                                                                 截图1


                                                                                  截图2
通过查看接口流量发现交换机接口出现大量的广播报文,且一直在增加。
3.3、 抓包分析
通过对现网数据抓包发现一共有4台PC一直在发送大量的arp数据包,主要如下表
IP地址 MAC地址 对应接口
172.18.128.97 4437-e697-00e2 g0/0/14
172.18.128.89 4437-e65e-a4bf g0/0/8
172.18.129.16 fc4d-d43c-013e 非本交换机下主机
172.18.129.14 1cbf-6503-5b12 非本交换机下主机
                                                                                   表2

                                                                                           截图3

                                                                                       截图4
其中以PC:172.18.128.97这个主机发送的ARP报文最多占一半以上。
3.4、 问题确认
找到发ARP广播报文最多的172.18.128.97对应的用户,把对应接口命令改为:arp anti-attack check user-bind enable测试话机确实无法使用,再把接口命令改为ip source check user-bind enable后话机正常。然后让其检测电脑是否中毒且关闭一些不需要的程序,抓包确定没有这台主机发的广播报文后,把命令改为:arp anti-attack check user-bind enable测试发现话机都能正常使用,确定问题原因是主机发送大量ARP广播报文造成。
3.5、 问题分析
从抓包的信息来看,172.18.128.97这个主机发送的ARP报文很多,每一秒都在进行网段扫描,发送ARP报文,这个报文数目远远超过配置arp anti-attack check user-bind enable时CAR的限制,导致话机发送的ARP报文不会上送CPU,最终丢弃。话机如果要跟外面通话,那么需要知道网关的MAC或者对端的MAC,这个需要通过ARP学习来完成,当话机的ARP报文没有转发出去的话,就导致了话机不能正常工作。
当ARP报文比较少的时候,话机的ARP报文能够正常转发,话机就能够正常工作。所以就会出现如下的现象:PC发送的ARP报文数目比较多时,话机不能正常工作,当PC发送ARP报文比较少时,话机就能够正常工作。





根因
配置arp anti-attack check user-bind enable后,需要将ARP报文上送CPU,然后根据配置绑定表信息进行合法性校验,如果报文信息跟绑定表吻合,那么就转发报文,否则丢弃报文。为了防止ARP报文对CPU的冲击,需要对上送的ARP报文进行CAR限速。进行CAR限速时,只会上送一定数目的ARP报文,超过这个数目的ARP报文就会丢弃。当发送的ARP报文数目小于CAR的限制,那么ARP报文就会正常转发出去。

配置ip source check user-bind enable功能,则只对IP报文进行检查,且对IP报文的检查时通过ACL来实现的,合法的报文都能够转发,非法的报文不能够转发。
解决方案
1、检查交换机下挂话机和终端,保证从该端口上来的数据符合绑定表数据内容,即不要存在非法ip地址或者mac地址
2、监测终端是否运行一些非法程序以及监测终端是否终端


建议与总结
不要配置arp anti-attack check user-bind enable,而配置ip source check user-bind enable,这样网络不会检查ARP报文合法性,而只检查IP报文合法性,这样数据报文都能通过。

END