PXE 客户端如何知道其位于哪个网络?

PXE 客户端如何知道其位于哪个网络?

在 PXE 启动中,第一步是通过 DHCP 获取 IP 地址。

要使用 DHCP,您需要知道网络的广播地址。

该网络如何为 PXE 客户端进行初始配置?

答案1

如果没有地址,它怎么能在 IP 层上通信呢?它根本就不能通信。相反,它使用第 2 层进行通信。

任何的广播地址以太网网络是 FF:FF:FF:FF:FF:FF。在 IP 层上,有 255.255.255.255。这就是 DHCPDISCOVER 数据包中的内容。这样,您就可以拥有常规 UDP 侦听套接字,而不是原始以太网套接字。

答案2

要使用 DHCP,您需要知道网络的广播地址。

不。您只需要本地广播地址 255.255.255.255(用于 IPv4)或多播组 ff02::1:2(用于 IPv6)。DHCP 的重点在于它不需要任何客户端上的先前配置。

答案3

  1. 启动固件发现已安装的网卡
  2. 启动固件发现每个 NIC 广播 MAC 地址,并询问 PXE UNDI 驱动程序(UNDI GET INFORMATION 返回 HwType 和 HwAddrLen),即 HwType=ETHER_TYPE HwAddrLen=6 => 广播 MAC 地址=FF:FF:FF:FF:FF:FF。
  3. 启动固件启动 DHCP DORA 序列 (DHCPDISCOVERY),宣布自己是启用 BIOS/UEFI 的 NIC 上的 PXE 客户端 (DHCP 选项 60),使用以下内容:
    1. OSI 第 2 层(数据链路层)上对应的先前发现的 MAC 广播地址
    2. BIOS/UEFI 在 OSI 级别 3(网络层)启用 IPv4/IPv6 广播地址 (255.255.255.255/ff02::1:2)
  4. 如果收到完整的 DHCP-PXE 提议,则引导固件将完成 DHCP DORA 序列,该提议定义:

    1. 客户端 IP/掩码地址
    2. TFTP 服务器 IP 地址
    3. NBP(网络启动程序)

    注意:如果收到多个完整的报价,当前标准并没有具体定义客户必须如何选择一个。

  5. 引导固件设置 NIC IP、TFTP 传输、加载到内存并执行 NBP。

第 2 层 MAC 广播地址允许将 DHCP 以太网帧传送到客户端 NIC 以太网冲突域内的所有侦听器。第 3 层 IP 广播地址是打开 DHCP 服务器 IP 堆栈大门的地址。需要 L2/L3 广播地址

当 PXE 客户端和 DHCP 服务器位于不同的子网中时,广播 DHCP 流量在路由器处停止,然后它们必须启用其 DHCP 中继代理(Cisco 世界中的 IP 助手),接收广播 DHCPDISCOVERY 数据包,将其转换为单播 DHCPDISCOVERY 并将其路由到定义的目标 DHCP 服务器的 IP 地址。

相关内容