目录

预引导执行环境（PXE，有时读作pixie）

将PXE客户端重定向到不同的TFTP服务器

重要故障排除说明

PXE引导中可能使用的DHCP选项

客户拓扑

预引导执行环境(PXE，有时发音为pixie)

PXE或网络引导允许BIOS通过网络下载和引导操作系统(OS)。在Cisco NX-OS路由器中，这相当于引导加载程序[loader>]ak Kickstart。

在PXE引导中，PXE客户端的BIOS会查看配置的引导顺序，如果配置了PXE引导，则确定硬件是否支持PXE引导。如果是，它会尝试将IP地址从NIC上DHCP。在DHCP请求中，PXE客户端请求某些DHCP选项，如67 [文件名]。在DHCP应答中，DHCP服务器使用请求的选项进行应答。然后，PXE客户端下载在DHCP响应中指定的文件名[网络引导程序(NBP)]，并运行它以获取加载到服务器上的操作系统。

将PXE客户端重定向到不同的TFTP服务器

默认情况下，PXE客户端将尝试从DHCP服务器下载DHCP响应中的文件名，除非它在DHCP响应中收到选项66、下一服务器或选项60/43以将其重定向到其他IP地址。下一个服务器地址用于bootp和PXE，以指定将不同的服务器用于DHCP和TFTP。

next-server（选项12）和bootfile（选项0）DHCP选项通常指定TFTP服务器和初始引导加载程序的文件名。Bootfile（可选）由客户端在DHCPDISCOVER消息中请求特定类型的引导文件。DHCPOFFER中的DHCP服务器使用它来完全指定引导文件目录路径和文件名。

还必须为文件名指定选项67。bootfile和选项67之间的区别是在DHCP响应中找到文件名的位置。使用保留字段，响应不会在响应数据包的“选项”部分进行编号，而是按特定顺序给出。

例如，服务器主机名和引导文件显示在下图中的编号选项之前。

重要故障排除说明

如果PXE引导客户端未在DHCP请求数据包的选项55参数请求列表中请求特定DHCP选项，则DHCP选项将不会在DHCP服务器响应数据包中，即使它在DHCP服务器上配置。获取嗅探器跟踪以验证请求和提供的选项非常重要。

NOTE:如果为DHCP服务器的DHCP ip helper地址（DHCP中继）配置了ACI，则第一跳枝叶交换机上可能会使用tcpdump。由于枝叶交换机必须充当DHCP中继，因此CPU必须处理DHCP数据包，将其转发到DHCP服务器。您可以使用管理员帐户登录，然后使用命令

tcpdump -i any -w /tmp/packet.pcap "port 67"

捕获主机和DHCP服务器之间的DHCP数据包。如果枝叶交换机没有任何OOB ip地址，您可以使用管理员用户名登录APIC并使用

scp admin@<switch TEP>:/tmp/packet.pcap /home/admin

然后，您可以使用GUI IP地址从APIC传输文件。

根据PXE服务器支持的文件名，可能有许多不同的文件名。Linux服务器最常见的引导加载程序文件名称为“/pxelinux.0”，通常位于/tftpboot目录中。

PXE引导中可能使用的DHCP选项

名称

选项编号

配置

引导文件

0

Bootfile <file>

DEFAULT_ROUTER

3

Default-router 10.250.118.1

网络

11

Network 10.250.118.0 255.255.255.0

NEXT_SERVER

12

下一台服务器10.45.67.8

使用匹配选项60发送

43

选项43 hex 06010708070000010afbd015

选项43的匹配字符串

60

选项60 “PXEClient”

单个TFTP服务器

66

选项66 ip 10.240.221.21

PXE文件名

67

选项67 "/pxelinux.0"

TFTP服务器列表

150

选项150 10.240.208.21

如果DHCP服务器将其选项60字符串与客户端发送的选项60字符串匹配，则选项43将返回给PXE客户端。选项43有几个子选项（选项6和8等）：

子选项6定义为

06：子选项6

01：1字节长

07：使用PXE_BOOT_SERVERS列表，禁用组播和广播发现（仅单播）

子选项8定义为

08：子选项8

07：08选项的大小（字节）

0000：PXE服务器类型0（PXE引导服务器）

01：PXE服务器数

0afbd015:10.251.208.21

该选项在DHCP配置中类似

选项43 hex 06010708070000010afbd015

根据https://support.microsoft.com/en-us/kb/259670，当DHCP服务器设置了以下选项时：

60 =客户端标识符（设置为“PXEClient”）

66 =引导服务器主机名或IP地址

67 =引导文件名

当来自DHCP服务器的初始DHCP提供包含这些引导选项时，会尝试从PXE客户端连接到DHCP服务器上的端口4011，并出现“代理DHCP服务未在端口4011上回复”错误。

NOTE:Microsoft不支持在DHCP服务器上使用这些选项重定向PXE客户端。

客户拓扑

在本示例中，用户有2个不同的ACI交换矩阵。在ACI交换矩阵#1中，PXE客户端正在DHCPing和引导交换矩阵内的Microsoft服务器。在另一个ACI交换矩阵中，PXE客户端通过L3Out从外部IOS-XE 4507路由器DHCP连接，但使用同一Microsoft服务器下载文件，以便DHCP服务器不充当TFTP服务器。

客户最终采用的解决方案是迁移到Linux DHCP服务器。分析DHCP数据包跟踪时，客户似乎误配置了选项43字符串，IOS-XE DHCP服务器从未工作。

要在ACI中运行，请执行以下操作：

1. 必须配置DHCP中继以中继DHCP客户端数据包

2. 合同必须允许L3Out和PXE客户端所在的EPG之间的DHCP和TFTP数据包

在枝叶交换机上，您可能会看到使用命令的TFTP数据包的合同丢弃

calo2-leaf2# show logging ip access-list internal packet-log | grep <client ip address>

此命令将在2.0版中更改，以添加deny或permit关键字，并变为

calo2-leaf2# show logging ip access-list internal packet-log deny | grep <client ip address>

在示例中，PXE客户端未请求选项66，而是在选项5参数列表中指定选项60并请求选项43。它也在请求下一台服务器（选项12）。 请注意，它通过选项67请求了PXE文件名。

响应显示bootfile和选项67

枝叶交换机上的TCPdump: