【问题标题】:Sending ARP reply with arbitrary source MAC使用任意源 MAC 发送 ARP 回复
【发布时间】:2012-09-03 08:25:29
【问题描述】:

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

【问题讨论】:

    标签: c networking arp


    【解决方案1】:

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

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

    看来您的接收方无法解析发送方的 MAC。 Tanenbaum 为您提供了避免这种失败的解决方案。

    【讨论】:

    • 感谢您的回复。我不确定我是否理解正确,因为我的印象是接收者只有在收到 ARP request 时才会回复。就我而言,我的发件人总是直接发送 ARP replies(即未经请求的 ARP 回复)。对于如何在 ARP 数据包中包含发件人的 IP 到以太网的映射,我也有点困惑——它不只是发件人 IP 和发件人 MAC 吗?但是发件人IP和MAC是控制欺骗的东西,所以它们不能改变吗?我想我在这里遗漏了一些非常重要的东西:P
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      相关资源
      最近更新 更多