log-queries log-dhcp #port=0 listen-address=0.0.0.0 interface=${Vars.PXE.ListenInterface} no-resolv domain-needed bogus-priv expand-hosts server=${Vars.ETH0.DNS} strict-order addn-hosts=/etc/dnsmasq-hosts.conf domain=${Vars.PXE.DNSDomain} local=/${Vars.PXE.DNSDomain}/ localise-queries %{ if Vars.PXE.DHCPMode == "proxy" } #dhcp-no-override dhcp-range=${Vars.ETH0.IP},proxy %{ else } dhcp-range=${Vars.PXE.DHCPRangeStart},${Vars.PXE.DHCPRangeEnd},${Vars.PXE.DHCPLeaseDuration} dhcp-option=option:router,${Vars.ETH0.GATEWAY} %{ endif } dhcp-option=option:dns-server,${Vars.ETH0.IP} dhcp-option=option:domain-name,${Vars.PXE.DNSDomain} # TFTP Configuration enable-tftp tftp-root="${Vars.PXE.TFTPRoot}" pxe-prompt="${Vars.PXE.GreetingMessage}",${Vars.PXE.DelayTime} # Based on logic in https://gist.github.com/robinsmidsrod/4008017 # iPXE sends a 175 option, checking suboptions dhcp-match=set:ipxe-http,175,19 dhcp-match=set:ipxe-https,175,20 dhcp-match=set:ipxe-menu,175,39 # pcbios specific dhcp-match=set:ipxe-pxe,175,33 dhcp-match=set:ipxe-bzimage,175,24 dhcp-match=set:ipxe-iscsi,175,17 # efi specific dhcp-match=set:ipxe-efi,175,36 # combination # set ipxe-ok tag if we have correct combination # http && menu && iscsi ((pxe && bzimage) || efi) tag-if=set:ipxe-ok,tag:ipxe-http,tag:ipxe-menu,tag:ipxe-iscsi,tag:ipxe-pxe,tag:ipxe-bzimage tag-if=set:ipxe-ok,tag:ipxe-http,tag:ipxe-menu,tag:ipxe-iscsi,tag:ipxe-efi ## Load different PXE boot image depending on client architecture (when running as a proxy DHCP) pxe-service=tag:!ipxe-ok, x86PC, "Legacy boot PXE chainload to iPXE", undionly.kpxe pxe-service=tag:!ipxe-ok, BC_EFI, "UEFI32 boot chainload to iPXE", snponly.efi pxe-service=tag:!ipxe-ok, X86-64_EFI, "UEFI64 boot chainload to iPXE", snponly.efi dhcp-userclass=set:ipxe,iPXE dhcp-boot=tag:ipxe-ok,http://${Vars.ETH0.IP}:${Vars.Matchbox.HTTPPort}/boot.ipxe,,${Vars.ETH0.IP}