由于开启ARP-SPOOFING攻击防范导致内网服务器主备切换失败的问题

发布时间:  2014-09-20 浏览次数:  286 下载次数:  0
问题描述
组网结构:

如上图,防火墙、交换机和服务器都组成双机热备的组网,防火墙为服务器提供nat server服务。

在对两台服务器做主备切换测试时,发现服务器主备倒换后,从公网无法访问服务器上的业务。重新切换回去,业务又能正常访问。
主备切换的方法是直接将服务器SRV-1与交换机SW-1之间的网线拔掉。
故障分析
处理过程
先检查服务器的配置,没有发现问题,在交换机SW-1上连接一台PC,然后再做服务器的主备切换,在PC上能通过服务器的私网地址正常访问相关业务,这说明服务器没有问题,问题可能出在防火墙上。
检查防火墙的配置,没有发现问题。
向服务器的研发人员了解服务器主备切换的机制,SRV-1和SRV-2共享一个虚拟地址,但该虚拟地址对应的MAC地址对于两台服务器是不同的,当发生主备切换时,主服务器会发送一次免费ARP,以刷新其他设备的ARP表项。
查看两台防火墙以及PC的ARP表项,发现学到的服务器的ARP表项对应的MAC地址都是A1-A2-A3。然后再让服务器做一次主备切换,再查看,结果发现两台防火墙上的ARP表项没有发生变化,而PC上的ARP对应的MAC地址变为B1-B2-B3,正好是SRV-2的MAC地址。这说明防火墙没有刷新ARP表项。
再去检查防火墙的配置,发现里面有一条命令行与ARP有关:firewall defend  arp-spoofing enable,怀疑报文被识别为arp-spoofing攻击了,但查看防火墙的日志,没有发现arp-spoofing的攻击日志。
再确认arp-spoofing的实现机制,当开启此攻击防范时,所有的免费ARP都不再学习和刷新,也不会报攻击,只针对到自身的非免费ARP,与之前学到的ARP表项进行比较,如果不一致时就报攻击日志。
关闭firewall defend arp-spoofing enable,再做服务器的主备切换,然后检查ARP表项,发现已经更新,从公网测试服务器上的业务,都能正常访问。
根因
开启arp-spoofing攻击防范后,免费ARP不再学习和更新,防火墙无法感知服务器的主备切换,导致主备切换后业务不通。
解决方案
当存在依赖于免费ARP的业务时,需要关闭arp-spoofing攻击防范。

END