使用网络协议分析器对 PXE 启动进行故障排除

文档

维护与性能

000006544

2020 年 02 月 12 日

此信息不会对可能导致 PXE 启动失败的故障进行详细说明。本文档提供有关成功的 PXE 引导的背景,并描述当没有 PXE 服务器可用时将发生的情况。

PXE 远程启动过程基于 DHCP 协议。要了解 PXE 的工作原理,您必须首先对 DHCP 有一个基本的了解。


动态

DHCP 基于引导协议,通常称为 BootP,它允许系统从网络获取 IP 地址和远程启动。DHCP 添加了用于传递系统信息的功能,例如动态 IP 寻址和选项字段。

DHCP 进程开始时,客户端使用 DHCP 探索消息来请求地址。发现消息是源端口为68的 UDP 数据包(定义为 Bootpc,适用于 Bootp 客户端),目标端口为67(定义为 Bootps,适用于 Bootp 服务器)。发现消息将请求节点的 MAC 地址作为源 MAC 地址,而将广播(所有 F)作为目标 MAC 地址。源 IP 地址为0.0.0.0,目标 IP 地址为255.255.255.255 (广播)。至少,该请求包括以下选项。

  • 选项55(参数请求列表)
  • 选项1(子网掩码)
  • 选项3(路由器)
  • 选项6(域名服务器)

一个或多个 DHCP 服务器应该通过 DHCP 服务作出响应。DHCP 提供消息是一个 UDP 包,它的客户端 MAC 地址是请求服务作为目标地址。端口应与原始请求相反(源端口应为67,目标端口应为68)。源 IP 地址是 tendering 的服务器地址,目标 IP 地址是广播。此优惠将包括建议的 IP 地址以及对所请求的可选参数的响应。

客户端通过 DHCP 请求响应其中一项服务。请求消息是一个类似于发现消息的 UDP 数据包,使用相同的源和目标端口以及地址,并请求相同的参数。

服务器使用请求的所有信息响应 DHCP ACK (确认)。ACK 消息是一个 UDP 数据包,它类似于 "提供消息",并且包含所需的可选信息。


对 DHCP 的 PXE 扩展

PXE 启动过程通过添加远程启动计算机所需的信息来扩展 DHCP 协议。该信息包括客户端供应商和类,使 PXE 服务器能够选择客户端特定的映像。

请求 PXE 启动的系统使用 DHCP 探索消息来识别其供应商和机器类别,并请求图像文件的位置和文件名。PXE 客户端会识别其供应商和机器类别,因为 PXE 服务器可能有多个映像可用。

来自 PXE 客户端的 DHCP 探索消息包括以下可选参数请求:

  • 60–供应商类别标识符
  • 66-TFTP 服务器名称(对托管启动映像的 TFTP 服务器名称的请求)
  • 67– Bootfile 名称(要下载的图像文件的名称)


检查 PXE 启动的 Clef * 或 Wireshark * 跟踪

PXE 引导过程涉及许多交换。

  1. PXE 客户端发送 DHCP 探索,并填入 PXE 选项。
  2. DHCP 服务器使用 TCP/IP 参数以 DHCP 提供作出响应。
  3. PXE 客户端通过 DHCP 请求回复
  4. DHCP 服务器响应 DHCP ACK。
  5. 如果 DHCP 服务器也是 PXE 服务器,则 DHCP ACK 通常具有 TFTP 服务器名称和启动文件名。如果 PXE 服务器是一个不同的系统,则在初始 DHCP 进程后,PXE 服务器和 PXE 客户端之间会单独交换请求和回复。
    会议
    • 如果初始 DHCP exchange 没有 TFTP 服务器名称和启动文件名称,请查看跟踪,直到看到成功的 DHCP ACK,因为这两个选项已完成。
    • PXE 客户端接收到具有 TFTP 服务器名称和引导文件名的确认后,客户端将连接到 TFTP 服务器,并提供 TFTP 读请求,包括启动文件的名称。
    • 在文件传输完成之前,将建立 TFTP 会话并继续。

图1是来自 PXE 客户端的 DHCP 探索消息 Clef 捕获的屏幕截图。请注意,选项55(参数请求列表)处于突出显示状态,被请求的参数将列出。

参数还包括对 TFTP 服务器名称的请求(选项66)和启动文件名(选项67)。选项60,还请求了供应商类别标识符。对请求的响应是可选的,用于通知客户端 PXE 服务器与 DHCP 服务器在不同的服务器上(DHCP 代理正在使用)。

DHCP DISCOVER
图1。DHCP 探索

 

图2显示了对 DHCP 请求的 DHCP ACK 响应。DHCP ACK 包括您在 DHCP 提供时所看到的相同选项。请注意,当 DHCP 事务成功时,会在数据包中包含 TFTP 服务器和引导文件名。

DHCP ACK
图2。DHCP ACK

 

一次成功的 DHCP 交换后,将会从 TFTP 读取请求开始。图3显示了 TFTP 会话的开始。

TFTP Session
图3。TFTP 会话。

 

图4显示了由于不存在 PXE 服务器而导致 PXE 启动失败的跟踪。虽然 PXE 客户端请求的是 TFTP 服务器名称(选项66)和启动文件名(选项67),但所示的 DHCP 服务包括选项66或67。在这种情况下,PXE 客户端会发出重复的 DHCP 探索请求,后跟 DHCP 提供的响应,没有完成 PXE 启动操作所需的选项。

DHCP OFFER
图4。DHCP 提供
没有可用的 PXE 服务器