最近碰到一个很奇怪的问题。
一些应用程序通过我们的 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 请求。或者它只是出现故障。也许可以执行固件更新。