首页 文章

使用任意源MAC发送ARP回复

提问于
浏览
0

这是我上一个问题的后续行动: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 回答

  • 0

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

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

    所以看起来您的接收器无法解析发送方的MAC . Tanenbaum向您提供了一个解决方案,以避免这种失败 .

  • 0

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

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

相关问题