[Dnsmasq-discuss] ODP: dnsmasq-full: proxyDHCP chainloading does not work in OpenWRT since ver. 2.91
Pawel K
pawelk_ol at outlook.com
Sun Aug 9 12:18:55 UTC 2026
Hi Luiz,
I will try a remote debuger. I have never used it before.
Usually, I use Wireshark. So, I'm pretty sure what is going on from the "external" point of view.
But this issue is "internal" - about the state inside dnsmasq.
Last week, I prepared a Python script with scapy library to send iPXE Discovery as a first discovery (without one is sent by BIOS in first stage).
I played a bit with a different Options setups - those specific for iPXE and general ones as well.
Besically, the content of Discovery packet has no influence on issue.
Dnsmasq always hang up/freezes after sending second Discovery packet in proxyDHCP mode.
Kind regards,
Pawel
________________________________
Od: Luiz Angelo Daros de Luca <luizluca at gmail.com>
Wysłane: piątek, 7 sierpnia 2026 17:19
Do: Pawel K <pawelk_ol at outlook.com>
DW: dnsmasq-discuss at lists.thekelleys.org.uk <dnsmasq-discuss at lists.thekelleys.org.uk>
Temat: Re: [Dnsmasq-discuss] dnsmasq-full: proxyDHCP chainloading does not work in OpenWRT since ver. 2.91
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/attachments/20260809/9f21da98/attachment.htm>
More information about the Dnsmasq-discuss
mailing list