WDS 如何检测客户端是 UEFI 还是 Legacy?

WDS 如何检测客户端是 UEFI 还是 Legacy?

我已经使用 WDS 有一段时间了,现在我们想转到 iPXE 并链接到 WDS,但由于一些 DHCP 问题(我们不是所有者并且无法配置它)我无法配置两个启动文件的 DHCP 选项。

我知道 WDS 可以以某种方式检测启动机器是 UEFI 还是 Legacy bios,但它是如何做到的呢?

如果我能以某种方式在 Linux 机器或 Windows 服务器上使用该功能,那就太好了,但我只是无法在网上找到有关它的任何文档。

答案1

  1. 如果您无法访问 DHCP 基础架构,则可以设置代理 DHCP 服务器。在 DHCP + 代理 DHCP 方案中,DHCP 服务器仅提供 IP/MASK 等,而代理 DHCP 服务器在补充 DHCP 事务中提供 PXE 特定参数。

    1 IP 地址 2 网络掩码 3 其他 DHCP 选项(如果有) 4 托管引导加载程序的 TFTP 服务器的 IP 地址 5 引导加载程序文件名

DHCP + 代理 DHCP 与 PXE DHCP

DHCP + proxyDHCP 与 PXE DHCP (图片来自塞瓦

  1. 作为 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 等数据包嗅探器轻松发现所需的值。

相关内容