0
问答首页 最新问题 热门问题 等待回答标签广场
我要提问

路由器发的奇怪的 ARP 命令!这是什么原因?

安装的一个带网口的设备通过路由器经局域网连接到服务器,在服务器上PING该设备时始终没反应,后来经在设备端截取数据包发现一个奇怪的事情,服务器PING命令发到路由器后,路由器首先需要发 ARP 命令获得设备的MAC地址,问题就出在这个 ARP命令上,截取的ARP包如下:

0000   ff ff ff ff ff ff 00 16 4d 26 ad 61 08 06 00 01  ........M&.a....
0010   08 00 06 04 00 01 00 16 4d 26 ad 61 84 ef 7c a1  ........M&.a..|.
0020   00 00 00 00 00 00 84 ef 7c a3 00 00 00 00 00 00  ........|.......
0030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

ARP包有效数据只有42个,另加18个字节的填充,最后是4个字节的CRC,而这个包的最后4字节CRC居然为 00 00 00 00 !(网络数据截取工具也指示该CRC错误)设备的网络芯片具有硬件CRC功能,软件里设置了自动过滤掉CRC错误的包,结果就导致设备对这个CRC错误的ARP命令不响应!

可回头一想,这个路由器是个成熟的设备啊,不应该出现这种低级错误吧?我没研究过路由器,不知道象这种CRC不对的数据包,是由路由器有意为之(比如人为可设置发CRC为0的ARP包?以应付某些恶意攻击?),还是就是路由器的BUG?

请兄弟们指点!
提问者:hu_wfllllllllfl 地点:- 浏览次数:8642 提问时间:11-16 10:47
我有更好的答案
提 交
9条回答
safgafa 11-19 08:47
有些校验是非必须的,但不同系统的规则不一样的。
有的不发,有的不校验。

你可以ping一下PC,然后截一下包看看有没CRC,及PC是否响应。
曹志静1314 11-26 01:03
PC 没办法看,PC一旦连上去,就会发一个 GARP 命令,直接跳过 ARP 命令了,然后 PC会不断的有数据发向网络,导致 路由器一直不需要发 ARP命令!
LynnQ 11-20 15:58
那个ARP包是正确的。你搞错抓包位置了吧?

把你的拓扑贴出来瞧瞧。。
tutu11 11-16 20:21
那个ARP包最后的校验不对(最后四位不应该是0)
哇哈哈1209 11-17 11:05
什么牌子的路由器
zhihuaczh 11-22 17:56
可以用科莱抓包
wyerywsfsf 11-17 15:51
phy层的crc才抓不到的。那个数据都是编码的也没必要看。

这个crc,有些协议里处理是添0就是不校验的。(也会有效)

当然,赶紧查查是什么牌子的路由器,是国产的不。。。。。
highmagtech 11-17 12:49



你用普通电脑网卡抓个二层的CRC看看。。我用Wireshark抓过N多包了,就是没找到,可能是网卡驱动给过滤掉了。。
oqw1 11-23 02:47
能抓到包,就表示CRC是对的。
CRC错误的包,网卡直接丢掉,你根本就抓不到,这是标准里必须的,如果不这样,那网络岂不大乱了?
撰写答案
提 交
1 / 3
1 / 3