[Dnsmasq-discuss] dnsmasq-full: proxyDHCP chainloading does not work in OpenWRT since ver. 2.91
Luiz Angelo Daros de Luca
luizluca at gmail.com
Fri Aug 7 15:19:39 UTC 2026
Hi Pawel,
> Basically, the first stage of chainloading works OK. iPXE is delivered to a client and is up and running. Then, for the next stage - a script delivery, client timeout occures.
> From OpenWRT side, in Processes tab I can see that dnsmasq processing is about ~90%.
> No proxyDHCP communication from the device is visble in Wireshark anymore. Dnsmasq is dead till the next device bootup.
> This week I tested this with dnsmasq's tftp and external tftp (on another server).
> The results are the same. So, tftp service is not a rootcause.
> It appears that the DHCP Discovery command sent via iPXE causes dnsmasq to hang.
>
> Could you be so kind and support this issue.
Yes, it does look like a bug. My suggestion is to plug a remote
debugger to your openwrt device and trace what it is going on.
Alternatively, you can just add a bunch of prints. And wireshark is
always your friend.
> BTW. Although there are multiple tutors how to use dnsmasq for PXE based on pxe-boot configuration, so OpenWRT Luci interface as well, I have never managed to run dnsmasq this way. For me only pxe-serivce in /etc/dnsmasq.conf file worked.
I never used Luci for that but it is possible to run PXE using openwrt
configuration, even with IPv6 support. The only missing part is PXE
IPv6 HTTP, which requires this patch
https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2026q2/018491.html.
It was merged into dnsmasq but I did not check if it landed in
OpenWrt. The patch follow-up message shows a dnsmasq configuration
that was generated from OpenWrt config. I'm using an external tftp
server but local (provided by the router) ipxe config. I never used
the proxyDHCP but you can temporarily not use it to rule it out. This
is my openwrt config:
config vendorclass
option networkid 'pxebios'
option vendorclass 'PXEClient:Arch:00000'
config vendorclass
option networkid 'pxeefi'
option vendorclass 'PXEClient:Arch:00006'
config vendorclass
option networkid 'httpefi'
option vendorclass 'HTTPClient:Arch:00016'
config vendorclass
option networkid 'pxeefi'
option vendorclass 'PXEClient:Arch:00007'
config vendorclass
option networkid 'pxeefi'
option vendorclass 'PXEClient:Arch:00009'
config match
option networkid 'pxeefi'
option match 'option6:61,00:07'
config match
option networkid 'pxeefi'
option match 'option6:61,00:09'
config match
option networkid 'httpefi'
option match 'option6:61,00:10'
config userclass
option networkid 'ipxe'
option userclass 'iPXE'
config boot
option networkid 'pxebios'
option filename 'ipxe/ipxe.pxe'
option serveraddress 'x.x.x.x'
option servername 'netboot.mydomain'
config boot
option networkid 'httpefi'
option filename 'http://x.x.x.x/ipxe/ipxe.efi'
option servername 'netboot.mydomain'
list dhcp_option '60,HTTPClient'
# This one requires the patch I mentioned
list dhcp_option 'option6:vendor-class,343,HTTPClient'
list dhcp_option 'option6:59,http://[xxxx:xxxx:xxxx::xxxx]/ipxe/ipxe.efi'
config boot
option networkid 'pxeefi'
option filename 'ipxe/ipxe.efi'
option serveraddress 'x.x.x.x'
option servername 'netboot.mydomain.com'
list dhcp_option 'option6:59,tftp://xxxx:xxxx:xxxx::xxxx/ipxe/ipxe.efi'
config boot
option networkid 'ipxe'
option filename '/ipxe/ipxe.cfg/init.ipxe'
list dhcp_option
'option6:59,http://[xxxx:xxxx:xxxx::xxxx]/tftpboot/ipxe/ipxe.cfg/init.ipxe'
I hope it will help you
Best regards,
Luiz
More information about the Dnsmasq-discuss
mailing list