因此,我的本地网络中已经有 DHCP 服务器。但我想使用网络启动 (PXE) 设置新虚拟机。我已将 dnsmasq 设置为proxyDHCP
向启动客户端提供 PXE 信息,同时使用其他 DHCP 服务器提供 IP/MASK。
问题:我能够设置 PXE 传统启动,并且它工作正常,但不能设置 EFI 启动。它显示“PXE-E18 服务器响应超时”。在 Hyper-V VM Gen2 和物理连接的 PC 上尝试过。我在日志中看到 dnsmaq 收到请求,但什么也没发生……
所以问题是:这是 dnsmasq 问题吗?如果是,您能否建议一些替代方案?
我的配置是否有帮助:
tftp-root=/opt/pxeboot/tftpboot
enable-tftp
dhcp-vendorclass=BIOS,PXEClient:Arch:00000
dhcp-vendorclass=UEFI,PXEClient:Arch:00007
dhcp-boot=net:UEFI,uefi/bootx64.efi
dhcp-boot=net:BIOS,pxelinux.0
dhcp-no-override
pxe-prompt="Press F8 for boot menu", 1
pxe-service=X86PC, "Boot Legacy PXE", pxelinux
dhcp-range=192.168.1.99,proxy
编辑
Feb 19 16:17:56 dnsmasq-dhcp[16026]: 2483890568 vendor class: PXEClient:Arch:00007:????:??????
Feb 19 16:17:56 dnsmasq-dhcp[16026]: 2483890568 PXE(eth0) 00:15:5d:21:94:0a proxy
Feb 19 16:17:56 dnsmasq-dhcp[16026]: 2483890568 tags: UEFI, eth0
Feb 19 16:17:56 dnsmasq-dhcp[16026]: 2483890568 bootfile name: uefi/bootx64.efi
因此客户端架构是 7
所有文件均已到位。
提前致谢。
答案1
请检查 DHCP 选项 93RFC 4578
Type Architecture Name
---- -----------------
0 Intel x86PC
1 NEC/PC98
2 EFI Itanium
3 DEC Alpha
4 Arc x86
5 Intel Lean Client
6 EFI IA32 < x86
7 EFI BC < x86_64
8 EFI Xscale
9 EFI x86-64 < x86_64
您忘记在 dnsmasq 配置中考虑类型 9。如果您的 x86_64 客户端在其 DHCP 选项 93 中宣布类型 9,则该请求将被 proxyDHCP 忽略。
要查看真正发生的情况,只需运行 Wireshark 捕获。
请参阅我已经编辑了您的问题;proxyDHCP 仅向 PXE 客户端提供 PXE 信息。