现场分析:路由器安全机制成祸因?
睿博工程师(以下简称netlorder)到达后,重新确认了一下故障现像,与客户描述属实。也再次用替换法换掉了除路由器之外的所以硬件设备,故障如旧。
看上去问题确实奇怪,按说这不可能发生的,电信的网关是通的,上网自然就应该没有问题。难道是电信有做什么安全措施?可是把IP设在PC又没有问题!从现像上我们已经无法再了解什么了。netlorder只好在光纤收发器与路由器的连接线中接镜像交换机,希望通过抓包来了解数据中有没有什么异常。拓朴如下:
结果一抓包,问题就发现了,应该说这是个非常简单的问题。抓包发现,当路由器通过ARP来请求电信网关的MAC地址的时候,会有一前一后两个响应包回来,并且响应了两个不同的网关MAC地址。通过测试进一步发现,使用了前面的MAC地址,那么可以Ping通网关但上不了网,而使用后面的MAC地址的,刚可以完全正常上网。那么现在可以确定,只有后面的MAC地址是正确的。可为什么路由器在得到前面的MAC地址之后,当有第二个ARP包过来时,会没有更新自己的ARP缓存呢?netlorder推断,或许是这款路由器有什么避免ARP欺骗的安全机制吧,只相信第一次得到的MAC,后面就不再更新。不过客户反馈,当时也有咨询路由器厂家,他们也没有提到有这么个安全机制。那这就不得而知了。