由于封装的MAC地址错误导致无法ping通防火墙接口虚地址

发布时间:  2014-09-20 浏览次数:  416 下载次数:  0
问题描述
组网说明:
USG是主备组网,FW-A为当前主设备,PC通过交换机ping USG接口实地址均可通,ping虚地址不通。在USG选择带源地址ping PC,选择实地址可通,选择虚地址不通。
图4-7 组网图

处理过程
1. 在SW5300_A上配置端口镜像抓包,将与FW-A相连的接口、与SW5300_B相连的接口镜像到PC所在接口并在PC上进行抓包。抓包结果显示,只有ARP请求,没有ARP应答,另外抓包中没有抓到任何带VLAN TAG的报文,从如图4-8所示抓包来看是由于FW-A未回应ARP请求导致。
图4-8 交换机抓包截图

2. 在FW-A上调试发现,FW-A回应了ARP请求。但从抓包中未抓到ARP应答报文,查看FW-A与SW5300_A相连的FW-A接口统计和SW5300_A接口统计发现,当发送一个ARP请求时,在对应FW-A接口上一个单播报文发出,在对应SW5300_A接口上有一个单播报文接收,此时网络中只有ARP报文和VRRP报文,ARP请求报文为广播包,VRRP报文为组播包,因此可确定FW-A将ARP应答报文发出来了,查看SW5300_A下行口,没有相应统计增加。
3. 撤掉SW5300,直接用PC与FW-A相连,ping虚地址正常。由此可判断SW5300将ARP应答报文丢弃了。
4. FW-A上对应接口使用的是子接口,子接口收、发的报文都带有VLAN TAG,PC网卡驱动不识别带VLAN TAG的报文,因此抓包中不能捕获报文。
5. 在防火墙上将子接口换为主接口进行测试,发现测试正常,抓包如图4-9所示。
图4-9 防火墙抓包截图

对抓包进行分析可知,对于广播报文抓到3次(镜像了两个口,自身一个口),发往USG_A的ICMP请求报文和FW-A回应的ICMP应答报文抓到两次(镜像的FW-A接口和自身接口),但ARP应答报文只抓到了一次(镜像的FW-A接口)。
测试正常的原因在于,FW-A回应了ARP应答,虽然该ARP应答报文未被SW5300_A转发给PC,但由于做了端口镜像,导致PC仍收到了FW-A回应的ARP应答报文,因此测试正常。
根因
 USG对虚地址应答ARP时,以对应虚MAC应答,但封装报文时,源MAC仍以物理MAC封装。
 SW5300不能处理内层MAC和外层MAC不一致的ARP应答报文。该问题为SW5300已知问题,已有补丁可以解决该问题。

END