我最近获得了一个客户,他们的一台服务器上存在奇怪的 ARP 缓存问题。
我有一台服务器,它最终会开始将其动态 ARP 条目转换为静态 ARP 条目。这会导致问题,因为当此服务器上具有静态 ARP 条目的计算机通过 DHCP 收到新 IP 时,服务器将无法与客户端通信。清除 ARP 缓存可以解决此问题,服务器可以正常运行大约一周,然后它开始慢慢将 ARP 条目转换为静态 ARP 条目。我还没有缩小到它开始执行的时间或数量,但慢慢地,您开始看到 1 个静态 ARP,然后是 5 个,然后是 10 个。
有问题的服务器是 Windows Server 2003 SP2。它是 DC、DHCP 和 DNS 服务器。我检查了 DHCP 作用域选项,其中没有任何内容表明与静态 ARP 条目有关。此 DNS 服务器与我们的其他 DNS 服务器之间唯一的不同之处在于,有问题的服务器上会检查“动态更新不请求更新的 DHCP 客户端的 DNA A 和 PTR 记录”。
我对此做了一些研究,似乎如果有任何 PXE 类型的服务正在运行,则可能会发生这种情况,从我所知,没有任何东西正在运行 PXE 服务器。
我有点迷茫,因为我从未见过动态 ARP 条目开始变成静态 ARP 条目。现在我的解决方案是每 24 小时运行一次以清除 ARP 缓存的计划任务 (arp -d *)。我不想依赖这个计划任务。
有人之前见过这个问题或者对如何解决这个问题有什么建议吗?
答案1
这可能是良性的,也可能是恶意的。让我们希望是良性的:您的机器上运行着某种程序,它认为自己比 ARP 更了解情况,并“手动”更新 ARP 表。我怀疑是防火墙或其他端点保护类型的程序,但如果您真的无法通过查看已安装的内容来追踪它,那么您唯一的办法就是使用 WPR/WPA 或 ProcessInternals 等重型审计工具,让它们发挥作用,然后将事件联系起来。
这可能是恶意的:典型的中间人攻击是发送一个声称自己是 Alice 的 ARP,而实际上您是 Bob:每个人都更新他们的缓存,从那时起,每个向 Alice 发送信息的人都认为他们正在与她交谈,而实际上他们的流量是发给 Bob 的。或者(另一种方式)有人闯入您的计算机并设置静态 ARP 到“错误”的目标。
顺便说一句,击败第一个攻击的一个老策略是为您想要通信的所有本地目标设置静态 ARP 条目。对于第二个攻击,如果攻击者在您的机器上,那就太晚了。
答案2
几年前,我在为客户安装冗余防火墙时就遇到了这个问题。一旦安装了新的 DC,他们的 2003 服务器就将退役,因此我进行了临时修复,每 2 分钟转储一次 arp 缓存。我只是使用任务计划程序每隔几分钟运行一次“arp -d”,这样如果防火墙切换职责,DC 仍然可以访问 Internet 来提供 dns 服务。