在 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
- 启动固件发现已安装的网卡
- 启动固件发现每个 NIC 广播 MAC 地址,并询问 PXE UNDI 驱动程序(UNDI GET INFORMATION 返回 HwType 和 HwAddrLen),即 HwType=ETHER_TYPE HwAddrLen=6 => 广播 MAC 地址=FF:FF:FF:FF:FF:FF。
- 启动固件启动 DHCP DORA 序列 (DHCPDISCOVERY),宣布自己是启用 BIOS/UEFI 的 NIC 上的 PXE 客户端 (DHCP 选项 60),使用以下内容:
- OSI 第 2 层(数据链路层)上对应的先前发现的 MAC 广播地址
- BIOS/UEFI 在 OSI 级别 3(网络层)启用 IPv4/IPv6 广播地址 (255.255.255.255/ff02::1:2)
如果收到完整的 DHCP-PXE 提议,则引导固件将完成 DHCP DORA 序列,该提议定义:
- 客户端 IP/掩码地址
- TFTP 服务器 IP 地址
- NBP(网络启动程序)
注意:如果收到多个完整的报价,当前标准并没有具体定义客户必须如何选择一个。
- 引导固件设置 NIC IP、TFTP 传输、加载到内存并执行 NBP。
第 2 层 MAC 广播地址允许将 DHCP 以太网帧传送到客户端 NIC 以太网冲突域内的所有侦听器。第 3 层 IP 广播地址是打开 DHCP 服务器 IP 堆栈大门的地址。需要 L2/L3 广播地址。
当 PXE 客户端和 DHCP 服务器位于不同的子网中时,广播 DHCP 流量在路由器处停止,然后它们必须启用其 DHCP 中继代理(Cisco 世界中的 IP 助手),接收广播 DHCPDISCOVERY 数据包,将其转换为单播 DHCPDISCOVERY 并将其路由到定义的目标 DHCP 服务器的 IP 地址。