有没有办法跟踪发送无偿arps?

我们有一个刚刚开始行动的盒子,我们不知道为什么。 它在eth0上有199.199.199.1的IP地址,在eth1上有127.0.0.2,在eth1上有199.199.199.2。

最近,由于某种原因,eth0已经开始发送声称为199.199.199.2的免费arps。 这会导致所有需要通过eth1路由到199.199.199.2的stream量。 我正在阅读arpstream量,但似乎并不是问题,因为据我所知,这只是对arp请求的答复,而不是无偿arps。 在发送这些免费arps的stream程中没有看到任何明显的东西。

我的问题是,有什么办法找出发送这些请求的是什么? 像netstat -p但是对于arp?

这是一个运行Linux w / kernel 2.6.18的机器。

这两个地址在同一个子网上,就像你的例子所暗示的那样? 这两个网卡是否偶然连接到同一个交换机呢?

那么这可能会混淆盒子的TCP / IP堆栈。

听起来像你正在运行一个经典的虚拟服务器设置。 将以下两个选项放在/etc/sysctl.conf中,然后运行sysctl -p

 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 

这些将阻止该框从一个不是该接口的主要IP的接口发送任何arps。