0

这是我上一个问题的后续:ARP 回复数据包不更新 Ubuntu 上的 ARP 缓存。事实证明,我的问题是我使用了任意 MAC 地址作为源 MAC(即我的网络上不存在的 MAC 地址,比如 aa:bb:cc:dd:ee:ff)。只要我的源 MAC 与我的 NIC 的 MAC 匹配,我就可以毫无问题地发送 ARP 回复来毒化我的缓存。我尝试手动将我的 NIC 设置为具有任意 MAC 地址,然后使用它作为我的 ARP 数据包的源 MAC 地址发送 ARP 回复 - 也有效。

我想知道是否有人知道这个的内部运作。是否有某种检查可以防止发送源 MAC 不匹配的数据包?是否检查了以太网帧的源 MAC 与 ARP 数据包的源 MAC?出于我正在运行的实验的目的,有没有办法绕过这个限制?

JY

4

2 回答 2

0

可以进行各种优化以使 ARP 更有效地工作。首先,一旦机器运行了 ARP,它会缓存结果,以防它需要尽快联系同一台机器。下次它会在自己的缓存中找到映射,从而消除了第二次广播的需要。在许多情况下,主机 2(接收方)需要发回回复,迫使它也运行 ARP 来确定发送方的以太网地址。通过让发送方在 ARP 数据包中包含其 IP 到以太网的映射,可以避免这种 ARP 广播。

引自 Tanenbaum 的计算机网络,第五版 p486-487

因此,您的接收方似乎无法解析发送方的 MAC。Tanenbaum 为您提供了避免这种失败的解决方案。

于 2012-09-03T11:01:56.783 回答
0

是否有某种检查可以防止发送源 MAC 不匹配的数据包?是否检查了以太网帧的源 MAC 与 ARP 数据包的源 MAC?

你提到了 Ubuntu。在 Linux 中,您可以发送任何以太网帧(参见 示例),因此在内部没有任何此类检查。但是您没有告诉您如何尝试发送欺骗性 ARP 消息;也许这样做的方式是限制您对源 MAC 地址的选择。

于 2016-02-01T20:09:38.747 回答