DnsMasq,DHCP代理,UEFI客户端的PXE问题

我试图设置一个dnsmasq作为DHCP代理的PXE服务器。

它适用于client-arch = 0(x86传统客户端),但UEFI客户端甚至不会终止与PXE服务器交换的DHCP数据包,甚至不会在这些较新的客户端上出现pxe-prompt(使用dnsmasq设置)。

我使用Wireshark做了PXE服务器和客户端之间的DHCP对话的转储,我看到了一些差异,但我不明白为什么只有传统的客户端连接成功与我的服务器。

在PXE服务器和传统BIOS客户端之间转储DHCP消息 (Works!)

在PXE服务器和UEFI客户端之间转储DHCP消息 (不要工作:()

我在网上找不到工作configuration:下面是大量示例,我得到的是UEFI系统不会与PXE服务器交换最终的REQUEST / ACK。

Dnsmasqconfiguration:

port=0 interface=bond log-dhcp dhcp-range=192.168.1.200,proxy,255.255.255.0 dhcp-no-override dhcp-option=vendor:,6,2b pxe-prompt="Press any key for boot menu", 5 dhcp-match=set:x86PC, option:client-arch, 0 dhcp-match=set:BC_EFI, option:client-arch, 7 pxe-service=tag:x86PC,x86PC, "Legacy BIOS PXE", bios/pxelinux pxe-service=tag:BC_EFI,BC_EFI, "UEFI PXE", efi64/syslinux.efi dhcp-boot=tag:x86PC, bios/pxelinux.0 dhcp-boot=tag:BC_EFI, efi64/syslinux.efi 

有没有解决scheme?

编辑:我使用版本2.76,与UEFI支持(请参阅官方网站changelog)。

编辑2:我的UEFI客户端被归类为PXEClient:Arch:00007(所以,BC_EFI是正确的dnsmasq拱标记)。

DnsMasq proxyDHCP在UEFI环境下不起作用:

http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2015q4/009907.html

如果您正在使用带有UEFI支持的新DnsMasq,请尝试添加缺less的体系结构9

  dhcp-match=set:EFI_ x86-64, option:client-arch, 9 

UEFI 64客户端也使用9作为架构。

EDIT_2

请根据您的configuration在这一个

 # Don't function as a DNS server: port=0 # Log lots of extra information about DHCP transactions. log-dhcp # Set the root directory for files available via FTP. tftp-root=/tftpboot # Disable re-use of the DHCP servername and filename fields as extra # option space. That's to avoid confusing some old or broken DHCP clients. dhcp-no-override # The boot filename, Server name, Server Ip Address dhcp-boot=bios/pxelinux,,192.168.1.200 # PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds. # pxe-prompt="Booting PXE Client", 1 # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86, # Intel_Lean_Client, IA32_EFI, ARM_EFI, BC_EFI, Xscale_EFI and X86-64_EFI # This option is first and will be the default if there is no input from the user. # PXEClient:Arch:00000 pxe-service=X86PC, "Boot BIOS PXE", bios/pxelinux # PXEClient:Arch:00007 pxe-service=BC_EFI, "Boot UEFI PXE-BC", efi64/syslinux.efi # PXEClient:Arch:00009 pxe-service=X86-64_EFI, "Boot UEFI PXE-64", efi64/syslinux.efi dhcp-range=192.168.1.200,proxy,255.255.255.0 

https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq (将UEFI支持添加到基本脚本)