我已经使用 WDS 有一段时间了,现在我们想转到 iPXE 并链接到 WDS,但由于一些 DHCP 问题(我们不是所有者并且无法配置它)我无法配置两个启动文件的 DHCP 选项。
我知道 WDS 可以以某种方式检测启动机器是 UEFI 还是 Legacy bios,但它是如何做到的呢?
如果我能以某种方式在 Linux 机器或 Windows 服务器上使用该功能,那就太好了,但我只是无法在网上找到有关它的任何文档。
答案1
如果您无法访问 DHCP 基础架构,则可以设置代理 DHCP 服务器。在 DHCP + 代理 DHCP 方案中,DHCP 服务器仅提供 IP/MASK 等,而代理 DHCP 服务器在补充 DHCP 事务中提供 PXE 特定参数。
1 IP 地址 2 网络掩码 3 其他 DHCP 选项(如果有) 4 托管引导加载程序的 TFTP 服务器的 IP 地址 5 引导加载程序文件名
DHCP + proxyDHCP 与 PXE DHCP (图片来自塞瓦)
作为 DHCP 事务的一部分,客户端在启动时宣布其体系结构。客户端广播的第一个数据包是 DHCPDISCOVERY,其中包括由以下项指定的 DHCP 选项 93:RFC 4578
Type Architecture Name ---- ----------------- 0 Intel x86PC (BIOS pre-OS environment) 1 NEC/PC98 2 EFI Itanium 3 DEC Alpha 4 Arc x86 5 Intel Lean Client 6 EFI IA32 (UEFI 32 pre-OS environment) 7 EFI BC (UEFI 64 pre-OS environment) 8 EFI Xscale 9 EFI x86-64 (UEFI 64 pre-OS environment)
答案2
当 PXE(或任何使用 UEFI 的称呼)客户端请求 DHCP 租约时,它会提供有关自身的各种详细信息(“选项”),包括“客户端系统架构类型”,(选项 93)。
我遇到过以下值:
- 7 用于 UEFI
- x86 为 2
由于 DHCP 在发送请求时总是使用广播,因此您可以使用 Wireshark 等数据包嗅探器轻松发现所需的值。