通过路由网络进行 PXE 引导

通过路由网络进行 PXE 引导

我遇到了 PXE 启动的一个有趣问题,而 TFTP 服务器位于另一个路由(非 NAT)子网。

设置:

配有 Intel x710 10g 网卡的 Dell PowerEdge 640/740 服务器。
两个路由网络:10.0.1.0/24、10.0.2.0/24。
物理服务器和 DHCP 服务器位于网络段 10.0.1.0/24。TFTP
服务器位于网络段 10.0.2.0/24。
可以从网络 10.0.1.0/24 访问 TFTP 服务器。可以下载文件。

DHCP 配置:

default-lease-time 300;
max-lease-time 600;

allow booting;
allow bootp;


next-server 10.0.2.10;

subnet 10.0.1.0 netmask 255.255.255.0 {
  range 10.0.1.50 10.0.1.90;
  option subnet-mask 255.255.255.0;
  option routers 10.0.1.254;
  filename "bootx64.efi";
}

问题:

服务器网卡启动信息显示:

>> Start PXE over IPV4
Station IP address is 10.0.1.50
NBP filename is bootx64.efi
NBP filesize is 0 Bytes
PXE-E99: Unexpected network error

看起来网卡没有正确设置默认网关地址。
来自 DHCP 服务器的 Tcpdump:

15:42:12.799841 IP (tos 0x0, ttl 64, id 30339, offset 0, flags [none], proto UDP (17), length 387)
    0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from xx:xx:xx:xx:xx:xx, length 359, xid 0xd4d2c098, Flags [Broadcast]
      Client-Ethernet-Address xx:xx:xx:xx:xx:xx
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Request
        Server-ID Option 54, length 4: 10.0.1.1
        Requested-IP Option 50, length 4: 10.0.1.50
        MSZ Option 57, length 2: 65280
        Parameter-Request Option 55, length 35:
          Subnet-Mask, Time-Zone, Default-Gateway, Time-Server
          IEN-Name-Server, Domain-Name-Server, Hostname, BS
          Domain-Name, RP, EP, RSZ
          TTL, BR, YD, YS
          NTP, Vendor-Option, Requested-IP, Lease-Time
          Server-ID, RN, RB, Vendor-Class
          TFTP, BF, GUID, Option 128
          Option 129, Option 130, Option 131, Option 132
          Option 133, Option 134, Option 135
        GUID Option 97, length 17: 0.68.69.76.76.81.0.16.54.128.82.200.192.79.81.88.50
        NDI Option 94, length 3: 1.3.16
        ARCH Option 93, length 2: 7
        Vendor-Class Option 60, length 32: "PXEClient:Arch:00007:UNDI:003016"
15:42:12.800819 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
    10.0.1.1.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300, xid 0xd4d2c098, Flags [Broadcast]
      Your-IP 10.0.1.50
      Server-IP 10.0.2.10
      Client-Ethernet-Address xx:xx:xx:xx:xx:xx
      file "bootx64.efi"[|bootp]

尝试在其中一台服务器上运行 Linux Live CD。Linux dhclient 能够从 DHCP 服务器接收默认路由。
因此,要么是 DHCP 配置错误,要么是网卡缺少功能。
是否可以通过路由网络使用 PXE 启动?
谢谢。

答案1

首先,请仔细检查路由器是否确实是由 DHCP 服务器发送的 - 我没有在您包含的跟踪中看到它们(但您可能已将其剪切)。

如果发送了这些消息,这看起来似乎是 UEFI 网络堆栈的问题,它是平台 BIOS 的一部分,而不是 NIC 本身的选项 ROM。在这种情况下,NIC 仅提供 UEFI UNDI 驱动程序,它只是在主机和 NIC 之间混洗以太网帧。

您可以尝试使用其他提供 UEFI UNDI 驱动程序的卡来检查问题是否仍然存在。

请检查您的主板供应商是否有可用的更新 BIOS。

相关内容