@hariskar Thanks a lot for the PCAP file!!! I knew that dnsmasq is not very flexible but unfortunately this is another example. The matches and options do work but still dnsmasq is sending 192.168.1.1 in the DHCP header next-server field (so option 67 is pointing to 192.168.1.5 but next-server field is pointing to 192.168.1.1). Turns out that I only tested the dnsmasq config when running it on the same host where the TFTP server is running as well… So I didn’t notice.
But it seams to work with ‘dhcp-boot’ option as well - at least when I just tested here on my debian machine (only tested BIOS and 64 bit UEFI so far). Maybe this depends on dnsmasq version and does not work for others. So please give it a try:
dhcp-match=set:bios,60,PXEClient:Arch:00000
dhcp-boot=tag:bios,undionly.kpxe,192.168.1.5,192.168.1.5
dhcp-match=set:efi32,60,PXEClient:Arch:00006
dhcp-boot=tag:efi32,i386-efi/ipxe.efi,192.168.1.5,192.168.1.5
dhcp-match=set:efibc,60,PXEClient:Arch:00007
dhcp-boot=tag:efibc,ipxe.efi,192.168.1.5,192.168.1.5
dhcp-match=set:efi64,60,PXEClient:Arch:00009
dhcp-boot=tag:efi64,ipxe.efi,192.168.1.5,192.168.1.5
I am pretty sure I tested the ‘dhcp-boot’ option back when I added it to the wiki article. Either it didn’t work or I didn’t like it for some reason. Can’t remember. Please let us know if this is working for you and I will add this to the wiki!