Windows Server 2008 ARP 缓存中毒

Windows Server 2008 ARP 缓存中毒

最近碰到一个很奇怪的问题。

一些应用程序通过我们的 F5 负载均衡器通信时出现问题。我们调查后发现,路由器在负载均衡器 VLAN 上有一个错误的 ARP 和 MAC 地址表条目。这些条目指向 Windows Server 2008 R2 框,而不是负载均衡器的外部接口。

现在奇怪的是,MAC/ARP 表条目中的硬件地址在 Windows 2008 Server 上不存在,但非常接近。Windows Server 位于路由器接口 Gi1/37(下图)上。负载均衡器外部地址为 192.168.111.61,Windows Server 为 192.168.111.125。同一个 /24 子网中有两个完全不同的 IP 地址。

Windows Server 上的 IPConfig

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connect
   Physical Address. . . . . . . . . : 00-E0-81-DF-15-FE
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::917f:6781:df6:f724%11(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.111.125(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : fe80::21e:f7ff:fe41:2a80%11
                                       fe80::21e:f7ff:fe41:3540%11
                                       192.168.111.1

Windows Box 上的 MAC 信息

C:\Users\Administrator>getmac

Physical Address    Transport Name
=================== =========================================================
00-E0-81-DF-15-FE   \Device\Tcpip_{5BB4FA88-7056-4303-8528-AA2293E4821B}
00-E0-81-DF-15-FD   Media disconnected

路由器中的 ARP 和 MAC 地址条目

Router#sh ip arp 192.168.111.61
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.111.61            1   00e0.81df.15fc  ARPA   Vlan50  

Router#sh mac-address-table addr 00e0.81df.15fc

Legend: * - primary entry
    age - seconds since last seen
    n/a - not available

  vlan   mac address     type    learn     age              ports
------+----------------+--------+-----+----------+--------------------------
Module 1[FE 1]:
*   50  00e0.81df.15fc   dynamic  Yes        275   Gi1/37

硬件地址的最后 4 位虽然相似,但不是 Windows 2008 Server 上现有的物理硬件地址。逻辑表明,Windows Server 必须执行某种不正确的免费 ARP 才能毒害路由器上的 ARP 和 MAC 表。或者它正在响应对不属于它的 IP 和不属于它的 MAC 地址的 ARP 请求。

我们关闭 Windows 2008 界面并清除 ARP/MAC 表后问题就解决了。

我终生都无法理解这是怎么发生的(或为什么发生)。

答案1

如果您有虚拟服务器,并且它经历了集群故障转移,则会发送无端的 ARP 请求。很可能您的交换机没有转发此请求,交换机另一端的 ARP 表中留下了错误的 MAC。

在集群故障转移中,服务器将/可以切换 MAC 地址。

解决方案是配置您的交换机以转发免费 ARP 请求。

答案2

我怀疑您正在使用带有 iDrac 的戴尔服务器,或者具有类似功能(即 IPMI)的服务器。

NIC 设置为“共享”模式,物理适配器有多个 MAC 地址。iDrac 使用的 MAC 地址与 Windows 看到的地址仅相差一位数字。Windows 不会看到这个额外的 MAC 地址,它是在操作系统之外处理的。

换句话说,查看您的 iDrac 设置并找出其配置错误的原因。它要么设置为与负载平衡器相同的 IP 地址,要么存在某种类型的广播地址或网络掩码问题,导致响应网络上的每个 ARP 请求。或者它只是出现故障。也许可以执行固件更新。

相关内容