I am setting up a FOG 1.5.10 server on a fresh installation of Debian 13.5. There is an existing DHCP server which I am not allowed to mess with, so I am trying to use DNSmasq to handle the PXEBoot requests.
I have sysprepped a machine for capturing an image, and when I watch what I think is the relevant traffic with
tcpdump -i eno1 -v port 67 or 68
on the server, and try to PXE boot the client, I can see the client’s request, which does ask for a boot file (parameter 67), and the server’s response, which does not include a boot file, just four handshake-y paramaters (DHCP-Message, Server-ID, Vendor-Class, and GUID).
I have included my dnsmasq config file below. (Based on the guides in the documentation, although I have tried with several iterations.)
I cannot figure out why the server will not send a boot file. Is there something obvious I’m missing? Is it possibly something to do with the existing DHCP server? The server and the client are on the same subnet, and can, e.g. ping each other successfully, independent of dnsmasq.
Thank you for any help you can provide.
dhcp-range=<my server's static ip>,proxy
# 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
# The default boot filename (BIOS / legacy), Server name, Server Ip Address
dhcp-boot=ipxe.efi,,<my server's static ip>
# 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
# inspect the vendor class string and match the text to set the tag
dhcp-vendorclass=BIOS,PXEClient:Arch:00000
dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
dhcp-vendorclass=UEFI,PXEClient:Arch:00007
dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
# PXE menu. The first part is the text displayed to the user.
# The second is the timeout, in seconds.
pxe-prompt="Booting FOG Client", 3
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
# Intel_Lean_Client, IA32_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.
pxe-service=X86PC, "Boot to FOG", undionly.kkpxe
pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi
pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", snponly.efi```