admin 管理员组

文章数量: 887021


2024年3月26日发(作者:xmld是什么文件)

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

  系统。

  ¨ 远程客户端根据下载的文件启动机器。


本文标签: 启动 服务器 文件 服务 开机