这是我之前提问的后续问题:ARP reply packet does not update ARP cache on Ubuntu。事实证明,我的问题是我使用任意MAC地址作为我的源MAC(即我的网络中不存在的MAC,例如aa:bb:cc:dd:ee:ff)。只要我的源MAC与我的NIC的MAC匹配,我就可以发送ARP回复来中毒我的缓存没有问题。我试图手动设置我的NIC有一个任意的MAC地址,然后使用它作为我的ARP数据包的源MAC发送ARP回复 - 也工作。
我想知道是否有人知道这个的内部运作方式。是否有某种检查可以防止发送源MAC不匹配的数据包?它是以太网帧的源MAC与ARP数据包的源MAC之间的检查吗?为了我正在运行的实验,有没有办法绕过这个限制?
JY
答案 0 :(得分:0)
可以使ARP更有效地进行各种优化。 首先,一旦机器运行ARP,它就会缓存结果 它需要很快联系同一台机器。下一次会 找到它自己的缓存映射,从而消除了对a的需求 第二次广播。在许多情况下,主机2(接收器)将需要发送 回复一个回复,强制它也运行ARP来确定发送者的回复 以太网地址。拥有发件人可以避免这种ARP广播 包括ARP数据包中的IP到以太网映射。
引自Tanenbaum的计算机网络,第五版p486-487
所以看起来您的接收器无法解析发送方的MAC。 Tanenbaum向您提供了一个解决方案,以避免这种失败。
答案 1 :(得分:0)