这是我上一个问题的后续行动: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
2 回答
引自Tanenbaum的计算机网络,第五版p486-487
所以看起来您的接收器无法解析发送方的MAC . Tanenbaum向您提供了一个解决方案,以避免这种失败 .
你提到Ubuntu . 在Linux中,您可以发送任何以太网帧(see examples),因此内部没有任何此类检查 . 但是您没有告诉您如何尝试发送欺骗性ARP消息;也许 you 这样做的方式是限制你对源MAC地址的选择 .