【问题标题】:ARP request are sent even though Windows has an entry in cache (ARP Table)即使 Windows 在缓存中有条目(ARP 表),也会发送 ARP 请求
【发布时间】:2011-08-18 08:40:14
【问题描述】:

我们有一个运行 Windows XP Embedded SP1 的产品。我们在 ARP 表中为一个假 IP 配置一个假的(不存在的)MAC 地址。当发生通信时,Windows 将数据包发送到假 MAC 和假 IP,然后我们在驱动程序中将其更改为真实的。 这就是软件的设计方式。

问题是有时 Windows 会开始发送伪造 IP 的 ARP 请求,即使它在 ARP 表中有一个条目。我不知道为什么会发生这种情况,并且在盲目尝试重现该问题时,我编写了一个脚本来删除 ARP 条目,然后在几秒钟后再次添加它。经过一些尝试,我发现问题正在发生。

关于我应该检查/更改什么有什么想法吗?

【问题讨论】:

  • 您确定要添加 静态 ARP 缓存条目吗?见此链接:microsoft.com/resources/documentation/windows/xp/all/proddocs/…
  • 是的,我正在添加静态 ARP 条目,但使用的是 Iphlpapi(MIB_IPNETROW 和 SetIpNetEntry)。我也可以使用 arp -a 看到 ARP 条目存在,即使 Windows 正在发送 ARP 请求。
  • 我还看到过来自 windows 框的过度 arping。

标签: windows windows-xp embedded arp windows-xp-embedded


【解决方案1】:

您能否在两种情况下检查以太网帧 MAC 地址,在有条目的情况下和在 arp 缓存中没有条目的情况下。 此外,检查您的代码,我想您会在代码中找到一些对 FAKE IP 地址的引用(您可能忘记更改) 有许多应用层协议需要在通信之前使用 ARP,所以我想你可能在代码中使用了这些协议之一,并且你指示代码与假 IP 地址通信,这就是为什么当你调用该协议使用 arp 来查找假 IP 的 MAC 地址。 如果这回答了您的问题,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2014-10-20
    相关资源
    最近更新 更多