一、PXE协议简介
PXE(Preboot Execution Environment)是一种网络启动协议,它允许计算机通过网络从远程服务器上获取操作系统镜像并进行安装。
PXE装机是一种无需使用物理介质(如光盘或USB)的自动化操作系统安装方法。
PXE装机的基本原理是在计算机启动时,通过网络请求IP地址和PXE相关配置信息。然后,计算机通过TFTP(Trivial File Transfer Protocol)从PXE服务器下载启动文件,
启动文件负责进一步的操作系统安装过程。最终,操作系统镜像文件通过网络传输到计算机,并在计算机上进行安装。
二、PXE装机步骤
步骤1:客户端向标准DHCP端口(67)广播一个DHCPDISCOVER报文,该报文包含以下内容:
-
客户端标识符(UUID - Universally Unique ID)
-
客户机UNDI版本(Universal Network Device Interface)
-
客户端架构
-
DHCP选项60,类ID,设置为“pxecclient:Arch:xxxxx:UNDI:yyyzzz”
步骤2:DHCP服务或代理DHCP向客户端的标准DHCP应答端口(68)发送一个DHCPOFFER报文。如果是代理DHCP服务,则客户端IP地址字段为空(0.0.0.0)。如果是DHCP服务,则返回的客户端IP地址字段为有效的。
步骤3:客户端从接收到的 DHCPOFFER报文中记录以下内容:
-
标准DHCP或BOOTP服务提供的客户端IP地址(和其他参数)
-
来自dhcppoffer的PXE标记中的引导服务器字段中的引导服务器列表
-
发现控制选项
-
组播发现IP地址
步骤4:如果客户端选择了DHCP服务提供的IP地址,那么它必须完成标准DHCP协议通过发送一个请求地址回给服务,然后等待来自服务的确认。
如果客户端从BOOTP应答中选择IP地址,则可以只需使用地址
步骤5:客户端选择并发现一个引导服务器。这个包可以广播发送(端口67),组播(端口4011)或单播(端口4011),具体取决于控件中包含的发现控制选项
先前的DHCPOFFER包含PXE服务扩展标记。该包叫DHCPREQUEST,包含以下信息:
-
DHCP服务分配给客户端的IP地址
-
客户端标识符(UUID)
-
客户机UNDI版本
-
客户端系统体系结构
-
DHCP选项60,类ID,设置为“pxecclient:Arch:xxxxx:UNDI:yyyzzz”
-
PXE选项字段中的引导服务器类型
步骤6:引导服务器向客户端的源端口单播一个DHCPACK数据包,该数据包包含以下信息:
-
引导文件名
-
MTFTP配置参数(Multicast Trivial File Transfer Protocol)
-
NBP成功执行之前需要的其他参数(Network Bootstrap Program,PXE通过TFTP或者MTFTP下载的远程引导镜像 )
步骤7:客户机使用标准TFTP (port69)或MTFTP下载可执行文件(启动服务器Ack包中指定的端口)。下载的文件和位置内存中下载的代码取决于客户端的CPU体系结构
步骤8:PXE客户端判断是否需要对下载的文件进行真实性测试。如果需要进行测试,则客户机向引导服务器发送另一个DHCPREQUEST消息,请求进行测试
为先前下载的引导文件下载凭据文件,通过TFTP或,并进行真实性测试。
步骤9:如果真实性测试成功或不需要,则启动PXE客户端执行下载的代码
三、PXE应用场景
1、你现在有1台电脑需要装系统,那么很简单,你拿上一个U盘安装盘插在这台电脑上,然后从U盘启动,之后就可以手动安装系统了;但如果你现在有100台电脑,如果你在拿着一个U盘安装盘一台台安装,那效率肯定是太低了,这个时候PXE就派上用场了。
2、某公司对信息安全要求比较高,需要使用无盘系统(系统不在本地电脑上,而在公司特定的服务器上),这个时候也需要使用PXE。
3、你想要一台远程的电脑运行你手上特定的系统,这个时候你就可以在本地布置一个你手上的系统,然后通过PXE启动你本地的系统(这个可能需要额外的支持,比如BMC,因为要远程)。