关于vista系统机器无法通过防火墙上网的故障分析解决案例 - 蚂蚁网-多维人生,三实而立!

关于vista系统机器无法通过防火墙上网的故障分析解决案例

作者:易隐者 发布于:2012-9-17 13:53 Monday 分类:网络分析

【说在之前】:

1,该案例为误开启ARP代理功能导致的疑难故障;

2,该故障的触发是由于XP与vista操作系统发送的免费ARP报文格式不一致导致的;

3,关于ARP代理请参考本博客《ARP代理(Proxy ARP)》一文;关于免费ARP,请参考《免费ARP(gratuitousARP)》一文;

4,跟这个案例分析的原因有关的类似故障案例还有netyourlife论坛上的《为什么VISTA不能穿过ASA》,大家可自行查看比较;

5,针对该案例做的相关实验,请大家参考本博客关于防火墙的arp代理功能对不同格式的arp报文的处理情况的实验》一文

【我的案例】:

故障环境

1 网络拓扑 

点击查看原图


2 说明

1、内部机器全部在同一网段,经过一个二层交换机接入防火墙,通过防火墙的NAT访问互联网;
2、以前内部办公机器都是xp操作系统,现在新采购了一批vista操作系统新机器。

故障现象

1、 vista操作系统的办公机器在接入网络时,本地连接便显示网络连接正在识别,提示找不到网络;
2、 使用ifconfig/all命令查看vista系统的ip地址情况如下图所示: 

点击查看原图

       通过上图,我们发现:vista系统的首选地址变成了169.254.180.208,而不是先前收到设置的192.168.0.23了;
3、 用户反馈,如果vista系统的办公机器只接入交换机不会出现这种情况,但一旦接入防火墙,故障现象就会出现。
4、 XP系统的办公机器一切正常。

故障分析

1、 首先根据用户反馈的故障现象,从自己的经验出发,个人认为这个跟网络应该没有什么关系,估计是操作系统的问题,于是打microsoft OEM厂商的800电话咨询关于vista系统ip地址“突变”的原因,得到的回复是:从未出现过此类问题,可能跟现场环境有关。
2、 根据用户反馈的情况测试:首先,设好vista系统机器的ip地址后,将其接入一台普通的交换机,查看vista机器的ip地址,的确正常,如下图所示: 

点击查看原图

       难道真的跟防火墙有关?
3、 既然怀疑跟防火墙有关,我们便将注意力放到防火墙上来,telnet到防火墙上,使用使用tcpdump –i eth2 host 192.168.0.23 –n命令抓取测试vista主机的数据包。
4、 重启vista主机,发现vista主机在系统启动后,发送了一个源ip为0.0.0.0、目的ip为其配置的ip的arp请求包,同时,防火墙回应了该arp请求包,如下图所示: 

点击查看原图

5、防火墙为什么会回应该数据包?我们检查防火墙配置,发现防火墙上手动将内部办公网段设为静态arp代理。跟用户确认该问题,原来用户误认为该功能可能会解决arp欺骗问题,尝试设置后,忘记将其删除了。

故障解决

       删除防火墙上手动添加的arp代理项,故障现象消失,故障解决。

引申问题

1、通过抓取数据包,我们可以发现vista系统与xp系统在网卡引导阶段发送的“免费”arp报文格式的差别:
VISTA 系统发送的免费ARP请求包格式为:

点击查看原图

下图为wireshark抓取的vista系统网卡引导阶段发送的arp数据包格式:                      
 

点击查看原图

XP系统中发送的免费ARP请求包格式为:

点击查看原图

下图为xp系统发送的免费arp包格式: 

点击查看原图

       为什么VISTA系统在网卡地址加载期间发送这种格式的ARP数据包呢?关于这个问题已经有人做过相关的测试,我也验证了这个实验,下面为实验的过程,引用自netexpertgwdwx
“A机-B机两台xp对联测试:
1)按照xp的arp包格式(源ip=目的ip=a机ip),用sniffer伪造arp包向b机发包,b机不断提示ip冲突;
2)按照vista的arp包格式(源ip=0.0.0.0),用sniffer伪造arp包向b机发包,b机不提示。
这就是最明显的区别,看来vista比xp还谦虚,它不仅让出ip,而且还不让对方发现有ip冲突,宁可牺牲自己”。

关于这个问题的详细讨论,可以参考如下链接:
http://www.netexpert.cn/viewthread.php?tid=19463&pid=125237&page=1&extra=page%3D1#pid125237

2、细心的兄弟应该会发现这样一个问题:既然是防火墙启用了针对内部办公网段的arp代理功能,使得vista在网卡加载地址期间发生了ip地址冲突,导致了vista系统机器无法访问互联网,那么,为什么xp系统在网卡加载地址期间没有出现地址冲突呢?
       实验证明:防火墙虽然启用了针对办公网段的arp代理功能,但是,防火墙只响应vista系统格式的arp请求报文,而不响应xp系统网卡加载地址时发送的免费arp报文。

标签: 疑难故障 ARP 防火墙 免费ARP ARP代理 VISTA


您对本文的评分:
当前平均分: 10.0(5 次打分)

版权所有:《蚂蚁网-多维人生,三实而立!》 => 《关于vista系统机器无法通过防火墙上网的故障分析解决案例
本文地址:http://www.vants.org/?post=124
除非注明,文章均为 《蚂蚁网-多维人生,三实而立!》 原创,欢迎转载!转载请注明本文地址,谢谢。

发表评论:

Powered by 易隐者 基于emlog 皖ICP备12002343号-1