PXE客户端如何知道其在哪个网络上?


9

在PXE引导中,第一步之一是通过DHCP获取IP地址。

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

最初如何为PXE客户端配置此网络?


您在本地网络上为PXE客户端分配了一个固定IP。
DavidPostill

5
@DavidPostill:这与Daniel B的回答以及据我所知与文档矛盾。
Mathieu K.

1
启动DHCP广播请求时,DHCP客户端使用0.0.0.0作为“源”发送到255.255.255.255。
ivanivan '18

Answers:


29

如果没有地址,它甚至如何在IP层上通信?事实并非如此,事实并非如此。而是使用第2层进行通信。

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


6
任何以太网网络的广播地址是FF:FF:FF:FF:FF:FF。 ”这适用于任何IEEE LAN协议使用48位MAC地址,例如无线网络,令牌环,FDDI等
罗恩·莫平(Ron Maupin)

it communicates using layer 2这是不正确的。第2层未达到服务器IP堆栈的网络级别。广播层2仅将以太网帧传输到一个特定以太网冲突域上的所有侦听器。IP广播地址是打开服务器IP堆栈门的地址。
专利

当然。但是,就像我写的那样,它是“不是真的” IP通信。不可以 而是通过插入源地址和目标地址来使用IP数据包处理,这将导致行为明确。实际寻址是层2做纯粹
丹尼尔乙

你错了。广播IP地址绝对是IP通信。如果该广播地址不存在,则服务器的IP层将看不到该数据包。关于广播IP地址的唯一特殊之处是它不能被路由。
专利

1
我认为Pat是对是错...实际上IP广播在第3层起作用...但是DHCP处理L2 / ARP / MAC中的所有第一步...并且仅处理最后一步(告诉DHCP)服务器在L3 /单播中接受了提供服务的IP)...必须采用这种方式,因为在开始时它没有IP / L3堆栈...除DHCP以外的其他进行IP广播的服务都没有此问题(它们已经有一个IP地址),以便他们可以通过L3 / L4-> ...
ZEE

30

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

不需要。您只需要本地广播地址255.255.255.255(对于IPv4)或多播组ff02 :: 1:2(对于IPv6)。DHCP的全部要点是,它不需要在客户端上进行任何预先配置。


这是不正确的。您还需要MAC广播地址(第2层),因为ARP不适用于广播IP地址。
专利

假定从IP到MAC广播地址的映射始终是已知的,因为它是由协议定义的,因此仍然不需要手动配置。
user1686 '18

你错了。在正在启动的DHCP客户端上,DHCPDISCOVERY数据包必须同时定义2级和3级广播地址,而不能仅仅定义3级广播,并且认为任何其他协议都将发现仅具有广播IP目标地址的目标MAC地址
Pat Pat

3
  1. 引导固件会发现已安装的NIC
  2. 引导固件发现每个询问PXE UNDI驱动程序的NIC广播MAC地址(UNDI GET INFORMATION返回HwType和HwAddrLen),即HwType = ETHER_TYPE HwAddrLen = 6 =>广播MAC地址= FF:FF:FF:FF:FF:FF:FF。
  3. 引导固件会启动DHCP DORA序列(DHCPDISCOVERY),并在启用BIOS / UEFI的NIC上将自身宣布为PXE客户端(DHCP选项60)。
    1. OSI级别2(数据链路层)上相应的先前发现的MAC广播地址
    2. 在OSI级别3(网络层)启用BIOS / UEFI的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 world上的IP Helper),即广播DHCPDISCOVERY数据包,将其转换为单播。 DHCPDISCOVERY并将其路由到已定义的目标DHCP服务器的IP地址。


先生,答案不错。
Tim_Stewart '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.