[Dnsmasq-discuss] Portable PXE boot appliance
Steve Cook
steve at turingtrust.co.uk
Fri Dec 19 09:32:59 UTC 2025
Hi,
We're a charity that supports education in sub-Saharan Africa by
refurbishing IT equipment for use in schools. At our distribution hubs in
Malawi, customised OS images are installed using bootable USBs but we'd
like to do this using PXE boot for performance reasons.
Our goal is to create a bunch of PXE boot appliances to be sent to sites
where we don't necessarily know the subnets in advance. We'd want these
servers to be 'plug-and-play' capable of serving images via PXE loading on
whatever network they're connected to, and which already have a DHCP server
(e.g. on their broadband router).
We've attempted this using Samba, Nginx, grub, pxelinux and ipxe, all of
which have no fixed IP addresses in any of the configs so it can get its
address from DHCP. It will boot clients into PXE or WinPE for OS
installation. The appliance can be attached to any subnet and provide
network boot services with no reconfiguration nor interference with
existing network facilities (DHCP). It uses <next-server> and netbios
naming instead. The only place where there is an IP address is DNSmasq's
config. Could the dhcp-range use the computer’s IP address or subnet as a
default? In other words, could we just specify the network interface(s)
and have it detect the subnet automatically?
# DNSmasq config for proxy PXE boot
# Disable DNS
port=0
log-dhcp
# dhcp-range=interface:eno1,,proxy # default to interface's subnet -
doesn't work
dhcp-range=interface:eno1,192.168.10.0,proxy # currently necessary
to specify the subnet
dhcp-range=interface:wlp3s0,192.168.20.0,proxy
no-dhcpv6-interface=eno1
dhcp-no-override
enable-tftp
tftp-root=/srv/boot
dhcp-userclass=set:IPXE,iPXE
pxe-service=tag:IPXE,X86-64_EFI,"ipxe",ipxe/bootuefi.ipxe
pxe-service=tag:!IPXE,X86-64_EFI,"UEFI",grub/grubnetx64.efi
pxe-service=X86PC,"Legacy",pxelinux/lpxelinux.0
Alternatively we could script something that detects the subnet(s) at boot
time and configures DNSmasq before starting it, but it seems neater to
incorporate this feature into DNSmasq itself.
Any guidance or advice on how best to achieve this, is much appreciated!
--
Steve Cook
Head of IT
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20251219/e51e5f2d/attachment.htm>
More information about the Dnsmasq-discuss
mailing list