PXE

PXE是 Preboot eXecution Environment 的缩写 (也有人解读为 Pre-Execution Environment; 有时候大家都叫它 "pixie") PXE是一个独立于数据存储设备(象本地硬盘)和安装好的操作系统,通过网卡启动机器的环境。

PXE 是Intel在 Wired for Management (包括了PXE和WOL wake-on-lan)框架规格说明书中提出来的标准 (version 2.1) , Intel and Systemsoft 在 1999年9月20日发布了这个标准。 它用到了几个网络协议,包括IPv4,UDP,DHCP,TFTP ,还用到了这些概念 全球唯一标示(GUID), 统一用户标示(UUID) 和 统一网络接口,以及 PXE客户端扩展的固件(通过PXE启动的电脑设备等) 还有就是一些预定义的API。

Chain
在客户端的固件首先尝试通过DHCP在网络中请求找到PXE重定向服务,以便接受到PXE 启动服务器的信息。客户端固件从PXE重定向服务中获取到启动服务器上的网络启动辅助程序NBP,并通过TFTP把它下载到机器的内存中,校验通过后最终执行程序。如果所有的PXE客户端都用同一个NBP,它可以通过BOOTP指定位置,就可以把DHCP给省了,不过TFTP启动服务器还是要的。
[edit] Availability
PXE 从设计之初就是考虑支持多种系统架构的。The 2.1 version 支持包括 IA-64 and DEC Alpha.在内的6种系统架构。 虽然这个标准只是在 IA-32 上达到完全覆盖. Intel 已经在 IA-64的 EFI 带上PXE, 变成一个既成事实的标准。
[edit] Protocol
PXE大体上看是 DHCP and TFTP的整合, 虽然对他们两个做了一些小小的改动. DHCP是被用来定位启动服务器的位置, 而 TFTP 是用来瞎子啊初始化的NBP包括一些附带的文件。
初始化一个 PXE 启动会话 the PXE firmware广播一个附带由PXE规格配置的 DHCPDISCOVER 扩展包到 67/UDP 端口(DHCP server port). PXE能够设置辨识固件,不过它们对标准的DHCP服务器无效。
[edit] Proxy DHCP
如果 PXE 重定向服务 (Proxy DHCP) 获取到一个 DHCPDISCOVER扩展包, 就会应答一个 DHCPOFFER 扩展包给客户端的 68/UDP端口 (DHCP client port).
An extended DHCPOFFER contains mainly:
▪ PXE发现控制的字段包含找到PXE 启动设备的推荐使用的方式 multicasting, broadcasting, or unicasting
▪ 一个当前可用的PXE 启动服务的IP列表
▪ 一个PXE 启动菜单列出对应的PXE启动服务器类型
▪ 一个PXE启动提示告诉用户选择指定的启动项
▪ 开始第一个启动菜单如果选择超时会有一个超时机制
代理DHCP 服务也可以和标准的DHCP 服务运行在同一个主机上。 当然这两个服务不同同时使用 67/UDP端口, 代理 DHCP 是运行在4011/UDP端口上,而且会认为从PXE客户端返回的 DHCPDISCOVER 包是一个 DHCPREQUESTs包. 标准的 DHCP 不会发一个包含有 PXE 设置的DHCPOFFER包, 所以它们之间不会冲突。
[edit] Boot server contact
要连上 PXE Boot Server启动的系统必须要有一个IP地址(可以是从DHCP 获取).
它多次广播 包含有PXE 特定设置的DHCPREQUEST包 (extended DHCPREQUEST) 到 4011/UDP 端口或者 67/UDP. 这个数据包包含有PXE启动服务器的类型信息和PXE Boot Layer信息。一个daemon可以运行多种启动服务器类型。扩展的 DHCPREQUEST 包可能是 DHCPINFORM类型的. PXE Boot Server收到一个扩展的 DHCPREQUEST 对应特定的请求类型包 DHCPACK 包含有以下的信息:
▪ 一个可以通过TFTP下载到 NBP的全路径
▪ PXE Boot Server类型还有应答给对方的PXE Boot Layer信息
▪ 在组播的TFTP 配置中, 如果MTFTP 已经在 PXE 的规格中指定就必须使用.
启动的服务器端只接受一个DHCPOFFER包.
2.1 版的 PXE Boot Server支持"Boot Integrity Services" ([2]) 运行客户端通过下载 NBP同级目录的下校验码文件来校验下载的 NBPs.
去获取这个凭证文件必须支持扩展DHCPREQUEST到扩展 DHCPACK包之间的转换。
[edit] Network bootstrap program
当获取到一个 DHCPACK的扩展包, the Network Bootstrap Program 就会被加载到 RAM 然后被校验,校验如果没有设置就会略过,然后NBP就会被执行. 它就会访问 PXE固件扩展的API(Pre-boot, UDP, TFTP, Universal Network Device Interface (UNDI)). 它的一些功能和任务在PXE 规格并没有被提及.
[edit] Integration
The PXE Client/Server Protocol was designed so:
▪ 它可以被用在一个存在DHCP环境的网络而不被干扰
▪ 它也可以被完全集成到DHCP标准服务中
▪ 可以非常容易的扩展组合,所有的服务(DHP, Proxy DHCP, Boot Server)都可以单独运作,也可以整合在一起运行。

另外 PXE 固件扩展在IA-32 BIOS 被设计成一个可选的 ROM, 所以你可以让你的PC兼容 PXE 只需要装一个支持PXE的网卡. 现在在AMD64上一样支持。设计的目的是利用现有的 DHCP and TFTP 无法严格的遵照规范. 在一些方面PXE协议要求DHCP/TFTP服务器做一些通讯方面的修改,其中一个特殊的例子就是使用组播, DHCP 提供组播的组信息 而不是又go额开放的rRFC-2090组播 TFTP 转换. 尽量避免对常用 PXE 客户端实现影响操作与隔离DHCP和单播TFTP服务器。
[edit]

PXE是RPL的升级品,它是Preboot Execution Environment的缩写。它们的不同之处在于RPL是静态路由,而PXE是动态路由。其通信协议采用TCP/IP,与Internet连接高效而可靠,PXE无盘工作站的启动过程分析如下:
  ¨ 客户端个人电脑开机后, 在 TCP/IP Bootrom 获得控制权之前先做自我测试。
  ¨ Bootprom 送出 BOOTP/DHCP 要求以取得 IP。
  ¨ 如果服务器收到个人电脑所送出的要求, 就会送回 BOOTP/DHCP 回应,内容包括
  客户端的 IP 地址, 预设网关, 及开机影像文件。否则, 服务器会忽略这个要求。
  ¨ Bootprom 由 TFTP 通讯协议从服务器下载开机影像文件。
  ¨ 个人电脑通过这个开机影像文件开机, 这个开机文件可以只是单纯的开机程式也可
  以是操作系统。
  ¨ 开机影像文件将包含 kernel loader 及压缩过的 kernel, 此 kernel 将支持NTFS root
  系统。
  ¨ 远程客户端根据下载的文件启动机器。

转载请注明:运维派 » PXE

0
3.5k
0