我正在尝试通过网络对台式机进行 PXE 启动以安装新操作系统,但它在启动期间没有通过 DHCP 获取 IP 地址。当计算机上已经启动操作系统时,它工作正常。过去,由于 RSTP 配置错误,我遇到了一些问题。但在spanning-tree [PORT] admin-edge-port
HP 交换机上(portfast
我猜相当于思科),我以为我解决了这个问题。现在它又回来了,症状完全相同……PXE 启动:
Client -> Server: DHCP-Discover
Server -> Client: DHCP-Offer
Client -> Server: DHCP-Discover
Server -> Client: DHCP-Offer
.... looping...
我尝试了几件事:
- 延长启动时间(客户端内存检查)
- 禁用 RSTP
- 禁用交换机和客户端之间的自动协商
我已经束手无策了。有人有主意吗?
答案1
如果 DHCP 通过操作系统工作,但不能通过 PXE 工作,则 NIC 本身的固件/配置可能有问题。
在启动期间进入 NIC 的固件(通常有一个 Cntl-Key 序列,或者如果是板载的,则可以访问 BIOS)并查看有哪些选项可供调整。
确保操作系统通过 DHCP 关闭的接口与 PXE 失败的接口完全相同。对于台式机,您可能只有一个接口,但如果有多个接口,则经常会出现操作系统设备枚举不符合预期的问题。
您也可以尝试其他台式机(使用其他网卡),看看问题是否仅仅是特定的固件版本/制造商,或者问题可能更大。
答案2
这个问题的许多解决方法最终都是采用 STP 并需要使用 PortFast。这种情况很常见,以至于在排除 STP 后几乎没有信息可以帮助你做什么。
我遇到了这个问题,如果不使用带有“-vv”选项的 tcpdump,则无法解决此问题,该选项位于与出现问题的客户端位于同一网段的任何旧机器上。不需要混杂模式。
当标准 PXE 客户端启动时,它会向 DHCP 服务器询问常见项目:IP、子网、网关等。但是,它还会询问 tftp 服务器名称和 boofile 名称。这都是一个请求的一部分。我一直误以为,一旦机器有了 IP 信息并可以在网络上通信,询问 PXE 服务器重要信息就是第二个请求。如果这些 PXE 项目缺失(在我的情况下,由于配置文件错误而缺失),客户端似乎无法获取 IP 地址,这显示为重复的 DHCP-Discover 和 DHCP-Offer,而没有 DHCP-Request。在我的情况下,客户端确实收到了带有 IP 信息的响应,但根据所询问的内容,响应不完整……因此客户端一次又一次地询问,直到超时。我浪费了很多时间认为客户端没有收到“提议”,但实际上它收到了。客户端只是对提议不满意。我正在调整 vlan、ip-helpers 和 stp 配置。我找错了地方。
好响应和坏响应之间的区别在于格式错误的“提供”没有引导文件名,因此客户端会继续询问。配置文件修复后,“提供”确实包含 tftp 服务器名称和引导文件名。客户端对“提供”的内容感到满意,因此它发出请求,然后使用 PXE 信息联系 TFTP 服务器。
答案3
我们的 HP 服务器连接到 C4948 时也遇到了类似的问题。DHCP 提供后,PXE 启动过程停止。HP 服务器不会使用 DHCP 请求数据包进行响应。
解决方案# 我们通过在访问端口上配置 ACL 来停止 VLAN 上的所有 UDP 广播数据包,它开始正常工作。希望对您有所帮助。