Geo*_*gas 32 networking windows-server-2008-r2 broadcom
TL; DR 版本:原来这是 Windows Server 2008 R2 中的一个深层 Broadcom 网络错误。更换英特尔硬件修复了它。我们不再使用 Broadcom 硬件。曾经。
我们一直在使用HAProxy和来自 Linux-HA 项目的heartbeat。我们使用两个 linux 实例来提供故障转移。每个服务器都有自己的公共 IP 和一个 IP,该 IP 使用虚拟接口 (eth1:1) 在两个 IP 之间共享:69.59.196.211
虚拟接口 (eth1:1) IP 69.59.196.211 被配置为它们背后的 Windows 服务器的网关,我们使用 ip_forwarding 来路由流量。
我们在我们的 linux 网关后面的一台 Windows 服务器上偶尔遇到网络中断。HAProxy 将检测服务器离线,我们可以通过远程连接到故障服务器并尝试 ping 网关来验证:
使用 32 字节数据 Ping 69.59.196.211: 来自 69.59.196.220 的回复:目标主机无法访问。
arp -a
在此失败的服务器上运行显示网关地址(69.59.196.211)没有条目:
接口:69.59.196.220 --- 0xa Internet 地址 物理地址类型 69.59.196.161 00-26-88-63-c7-80 动态 69.59.196.210 00-15-5d-0a-3e-0e 动态 69.59.196.212 00-21-5e-4d-45-c9 动态 69.59.196.213 00-15-5d-00-b2-0d 动态 69.59.196.215 00-21-5e-4d-61-1a 动态 69.59.196.217 00-21-5e-4d-2c-e8 动态 69.59.196.219 00-21-5e-4d-38-e5 动态 69.59.196.221 00-15-5d-00-b2-0d 动态 69.59.196.222 00-15-5d-0a-3e-09 动态 69.59.196.223 ff-ff-ff-ff-ff-ff 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 225.0.0.1 01-00-5e-00-00-01 静态
在我们的 linux 网关实例上arp -a
显示:
peak-colo-196-220.peak.org (69.59.196.220) at <incomplete> on eth1 stackoverflow.com (69.59.196.212) 在 00:21:5e:4d:45:c9 [ether] 在 eth1 peak-colo-196-215.peak.org (69.59.196.215) at 00:21:5e:4d:61:1a [ether] 在 eth1 peak-colo-196-219.peak.org (69.59.196.219) at 00:21:5e:4d:38:e5 [ether] on eth1 peak-colo-196-222.peak.org (69.59.196.222) at 00:15:5d:0a:3e:09 [ether] 在 eth1 peak-colo-196-209.peak.org (69.59.196.209) at 00:26:88:63:c7:80 [ether] on eth1 peak-colo-196-217.peak.org (69.59.196.217) at 00:21:5e:4d:2c:e8 [ether] on eth1
为什么 arp 偶尔会将此故障服务器的条目设置为 <incomplete>? 我们应该静态定义我们的 arp 条目吗?我总是不理会 arp,因为它 99% 的时间都可以工作,但在这种情况下,它似乎失败了。我们是否可以采取任何其他故障排除步骤来帮助解决此问题?
我们尝试过的事情
我添加了一个静态 arp 条目,用于在其中一个仍然没有帮助的 linux 网关上进行测试。
root@haproxy2:~# arp -a
peak-colo-196-215.peak.org (69.59.196.215) at 00:21:5e:4d:61:1a [ether] on eth1
peak-colo-196-221.peak.org (69.59.196.221) at 00:15:5d:00:b2:0d [ether] on eth1
stackoverflow.com (69.59.196.212) at 00:21:5e:4d:45:c9 [ether] on eth1
peak-colo-196-219.peak.org (69.59.196.219) at 00:21:5e:4d:38:e5 [ether] on eth1
peak-colo-196-209.peak.org (69.59.196.209) at 00:26:88:63:c7:80 [ether] on eth1
peak-colo-196-217.peak.org (69.59.196.217) at 00:21:5e:4d:2c:e8 [ether] on eth1
peak-colo-196-220.peak.org (69.59.196.220) at 00:21:5e:4d:30:8d [ether] PERM on eth1
root@haproxy2:~# arp -i eth1 -s 69.59.196.220 00:21:5e:4d:30:8d
root@haproxy2:~# ping 69.59.196.220
PING 69.59.196.220 (69.59.196.220) 56(84) bytes of data.
--- 69.59.196.220 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6006ms
Run Code Online (Sandbox Code Playgroud)
重新启动 Windows Web 服务器暂时解决了这个问题,网络没有其他变化,但我们的经验表明这个问题会再次出现。
交换网卡和交换机
我注意到故障 Windows 服务器的交换机端口上的链路指示灯在故障接口上以 100Mb 而不是 1Gb 的速度运行。我将电缆移到其他几个开放端口,并且链接为我尝试的每个端口指示 100Mb。我也用相同的结果交换了电缆。我尝试在 Windows 中更改网卡的属性,并且服务器锁定并在单击应用后需要硬重置。这个windows服务器有两个物理网络接口,所以我交换了两个接口上的电缆和网络设置,看看问题是否出在接口上。如果公共接口再次宕机,我们就会知道这不是网卡的问题。
(我们还尝试了手头的另一个开关,没有变化)
更改网络硬件驱动程序版本
我们在使用最新的 Broadcom 驱动程序以及 Windows Server 2008 R2 中附带的内置驱动程序时遇到了同样的问题。
更换网线
作为最后的努力,我们记得发生的另一个变化是更换了我们服务器/交换机之间的所有跳线。我们购买了两套,一套长度为 1 英尺 - 3 英尺的绿色电缆用于私有接口,另一套红色电缆用于公共接口。我们换掉了所有不同品牌的公共接口跳线,并运行我们的服务器整整一周都没有问题...... aaaaa然后问题再次出现。
禁用校验和卸载,删除 TProxy
我们还尝试在驱动程序中禁用 TCP/IP 校验和卸载,没有变化。我们现在正在退出 TProxy 并转向更传统的x-forwarded-for
网络安排,而无需任何花哨的 IP 地址重写。我们会看看这是否有帮助。
切换虚拟化供应商
万一这在某种程度上与 Hyper-V 相关(我们在其上托管 Linux VM),我们切换到 VMWare 服务器。没变。
切换主机型号
我们已经到了故障排除范围的尽头,现在正式涉及 Microsoft 支持。他们建议更改主机模型:
我们这样做了,而且我们还得到了一些未发布的内核修补程序,这些修补程序可能已被纳入 2008 R2 SP1。没有修复。
更换网卡硬件
最终,用 Intel 网络硬件替换 Broadcom 网络硬件为我们解决了这个问题。所以我倾向于认为 Broadcom Windows Server 2008 R2 驱动程序有问题!
小智 7
从http://linux-ip.net/html/ether-arp.html:
如果请求的目标 IP 不存在 ARP 缓存条目,内核将生成 mcast_solicit ARP 请求,直到收到答复。在此发现期间,ARP 缓存条目将以不完整状态列出。如果在指定数量的 ARP 请求后查找未成功,则 ARP 缓存条目将被列为失败状态。如果查找成功,内核会将响应输入 ARP 缓存并重置确认和更新计时器。
看起来您的网关盒没有响应(或响应太慢)来自网关盒的 ARP 请求。这是否<incomplete>
最终切换到<failed>
?服务器和网关之间有什么网络硬件?广播 ARP 请求是否可能在两台主机之间的某处被过滤或阻止?
小智 5
这意味着您 ping 了地址,IP 有 PTR 记录(因此得名),但相关机器没有任何响应。当我们看到这种情况时,最常见的原因是子网掩码设置不正确 - 或者在 IP 绑定到环回接口的情况下,意外绑定到了 eth 接口。
什么是 196.220?它和196.211有什么关系?我假设 .220 是 HA 代理主机之一。当你在它上面运行 ifconfig -a & arp -a 它显示什么?
归档时间: |
|
查看次数: |
49406 次 |
最近记录: |