WDS PXE 服务器偶尔会返回错误 IP

WDS PXE 服务器偶尔会返回错误 IP

我们有一个非常复杂的网络启动环境,以使我们的成像网络的流量保持分离,该网络每小时处理数百台机器。

我们使用 WDS 服务器选择菜单调整(http://www.stephan-schwarz.net/?p=58) 允许多个 PXE 服务器作为手动负载平衡解决方案。

在此过程中,我发现非 UEFI 机器的源上限为 20 个,而 UEFI 机器的源上限为 16 个(我在 Technet 上发布了相关内容,并且很满意这是 BIOS 上限)

从那时起,我发现 MDT 能够定义具有未知限制的服务器源列表,因此一旦启动到 MDT 映像,这就是一个负载平衡解决方案。

然而,我很少看到我无法理解的 PXE 问题。

当我进入 WDS 服务器选择菜单时,我看到所有 16 台服务器的 IP 均为 [服务器名称(无域)],由第一个响应的服务器提供。策略是选择特定服务器(从 1 到 16)。会发生以下三种情况之一:

1- 有问题的服务器加载(服务器 01 加载了 WDS 服务器选择菜单,选择了服务器 05 并从中启动)。这种情况发生的频率为 90%。

2- 原始源服务器加载,而不是所选服务器加载。这种情况很少发生,但也可能被服务器数据几乎总是相同的事实所掩盖(到目前为止)

3- 机器尝试加载任意 IP,可以是任何 IP,包括公共 IP。重新启动并重试可能会导致 IP 反复变化。有时 IP 相同。例如,我在 Wireshark 中捕获了来自某台机器的数据包流量,我看到了正常的 PXE 流量,直到相关设备发出 DHCP 请求,请求一个奇怪的目标 IP,如 8.128.0.0

现在,如果我让机器通过网络启动随机选择启动服务器,上述情况都不会发生。我觉得(虽然没有进行大量测试)如果所需的服务器位于 UEFI 的前 8 个服务器中,则不会发生这种情况(至少在相关设备上,UEFI WDS 服务器选择会显示几个设备,然后您需要滚动)。

这背后有什么道理吗?我有一个 2MB 的 pcap 文件,https://www.dropbox.com/s/qwsnvgda1lhxbcx/pcap_wds_ip_weirdness.pcapng?dl=0包含从新启动到请求错误 IP 的流量。建议的过滤器是 eth.src == d4:c9:ef:f8:e4:db || eth.dst == d4:c9:ef:f8:e4:db

该环境主要是启用了 IGMP 和 STP 的 HP - ProCurve 2530G 和(很少)2510G 交换机、ESXi 集群上的 Windows Server 2012 R2 服务器、HP Elitebook 810 G2 设备。

我非常感谢您的见解。

答案1

当 PXE 客户端启动时,它会从 N 个 DHCP/WDS 服务器接收 N 个 PXE 请求。它们都提供韓國(或者启动文件) 作为 NBP;最终一个提议被接受,NBP 被 TFTP 传输和启动。现在 NBP 启动一个新的 PXE DCHP“请求”,但这次它保存了收到的“所有”DHCP ACK,并显示一个包含所有 ACK 的菜单。第二次,WDS 服务器将提供文件引导管理器(或者启动引导文件) 作为新的 NBP。您的 wireshark 显示的正是这一点。

不同的限制(20/16)并不是您想象的 BIOS/UEFI 上限;它只是第一个 NBP 施加的限制。

流量捕获还显示一个 DHCP 服务器提供的服务没有提供第二个 NBP,那么我认为您的设置中要么有一个普通的 DHCP(未启用 PXE),要么有一个配置错误的 WDS 服务器,但这“应该”不是导致问题的原因。

您所描述的看起来像是一个有缺陷的 WDSNBP(或 wdsmgfw.efi)。为什么它如此不稳定且难以调试?第一个 NBP 是从所有提供中随机选择的,那么每次尝试时您都可能启动不同的版本。您应该验证它们都是完全相同的版本;您可能会发现,偶尔会启动一个有缺陷的旧版本,而这会成为问题的根源。强制从其自己的 IP 启动的 PC 提供的 NBP 是第一个可疑的。

相关内容