Discussion:
[Dnsmasq-discuss] dnsmasq tftp dhcp proxy can seem to redirect between uefi and bios clients
Jelle de Jong
2017-07-11 14:34:37 UTC
Permalink
Hello everybody,

I am trying to make my dnsmasq tftp server with pxelinux setup working
with both legacy bios and uefi bios.

I am tying to load the Windows Deployment Service and I got it all to
work with legacy bios but not with uefi yet. I'm going to auto deploy
Linux servers and workstations later but need the windows infrastructure
to stay functioning.

Windows 2012 WDS server: 10.87.0.202
Windows DHCP server: 10.87.0.152
scope option on dhcp windows server:
066 (Boot Server Host Name): 10.87.3.19
# 067 (Bootfile Name): pxelinux.0
# 067 (Bootfile Name): syslinux.efi
I deleted the option 067 on the Windows DHCP server in the hope that
dnsmasq would take over, option 066 is still pointing to dnsmasq server?

PXELinux CentOS 7 server: 10.87.3.19

dnsmasq[18586]: started, version 2.77 DNS disabled
dnsmasq[18586]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN
DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
dnsmasq-dhcp[18586]: DHCP, proxy on subnet 10.87.3.19
dnsmasq-tftp[18586]: TFTP root is /srv/tftp

# cat /etc/dnsmasq.d/provisioning.conf
port=0
log-dhcp
dhcp-range=10.87.3.19,proxy,255.255.248.0

#dhcp-boot=pxelinux.0
dhcp-no-override

#pxe-service=X86PC,"Network Boot",pxelinux
#pxe-service=X86PC, "Boot BIOS PXE", pxelinux

dhcp-vendorclass=BIOS,PXEClient:Arch:00000
dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
dhcp-vendorclass=UEFI,PXEClient:Arch:00007
dhcp-vendorclass=UEFI64,PXEClient:Arch:00009

dhcp-boot=net:UEFI32,efi32/syslinux.efi
dhcp-boot=net:UEFI,efi32/syslinux.efi
dhcp-boot=net:UEFI64,efi64/syslinux.efi
dhcp-boot=net:BIOS,pxelinux.0

pxe-service=BC_EFI, "Boot UEFI PXE-BC", syslinux.efi
pxe-service=X86-64_EFI, "Boot UEFI PXE-64", syslinux.efi
pxe-service=X86PC, "Boot Legacy PXE", pxelinux

#pxe-service=tag:BC_EFI,BC_EFI, "UEFI PXE", syslinux.efi
#pxe-service=tag:x86PC,x86PC, "Legacy BIOS PXE", pxelinux

enable-tftp
tftp-root=/srv/tftp
#pxe-prompt="Press F8 for boot menu", 1

# trying some examples from
https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq

I got both an UEFI and legacy bios virtual client for testing at the
moment and what I use in my pxe-service, dhcp-boot, dhcp-vendorclas seem
to be unresponsive to change any behaviours.

My legacy bios clients just gives me a no boot filename received error
when not using option 067 on Windows DHCP, but I want my dnsmasq to do
this so I can direct to EFI and BIOS.

tcpdump -i ens192 port tftp # also shows noting

/srv/tftp/
├── bios
├── CentOS-7-x86_64
│ ├── initrd.img
│ └── vmlinuz
├── efi32
│ └── syslinux.efi
├── efi64
│ └── syslinux.efi
├── ldlinux.c32
├── libcom32.c32
├── libutil.c32
├── linux.c32
├── menu.c32
├── pxechn.c32
├── pxelinux.0
└── pxelinux.cfg
└── default

Thank for the hints in advance!

Kind regards,

Jelle de Jong

Loading...