dnsmasq-full: proxyDHCP chainloading
Nobody has claimed this yet.
- Dominant language
- Makefile
- Stars
- 4.6k
- Forks
- 4k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 134
Description
Package Name
dnsmasq-full
Maintainer
@simonkelley
OpenWrt Version
OpenWrt SNAPSHOT r0-525a1e9
OpenWrt Target/Subtarget
armsr/armv8
Steps to Reproduce
I successfully configured dnsmasq-full ver. 2.90-r4 on OpenWrt to operate in proxyDHCP mode.
Since I was using the chainloading with iPXE my config was as follow:
- dnsmasq.conf file
Enable proxyDHCP
dhcp-range=set:lan,192.168.1.0,proxy,255.255.255.0
match ipxe, which can help chainload
dhcp-match=set:ipxe,175
bios
pxe-service=tag:!ipxe,x86PC,"Network Boot BIOS",undionly.kpxe,192.168.1.3
uefi
pxe-service=tag:!ipxe,X86-64_EFI,"Network Boot UEFI x86_64",ipxe.efi,192.168.1.3
iPXE script
pxe-service=tag:ipxe,X86PC,"iPXE BIOS script",boot_script.ipxe,192.168.1.3
pxe-service=tag:ipxe,X86-64_EFI,"iPXE UEFI script",boot_script.ipxe,192.168.1.3
- /etc/config/dhcp file
config dnsmasq
...
option logdhcp '1'
option enable_tftp '1'
option tftp_root '/tftp_dir'
config match
option networkid 'ipxe'
option match '175'
I recently updated my proxyDHCP/iPXE machine to the latest version of OpenWrt (with the "apk" package manager, instead "opkg").
This release contains dnsmasq-full ver. 2.92-r1.
I used the same config I had in my previous OpenWrt.
Apparently, the chainloading does not work on dnsmasq-full v. 2.92-r1 as it used to work.
The first stage in the chainload works OK, so undionly.kpxe is provisioned and runs on the dedicated notebook but then boot_script.ipxe is not delivered at all since
dnsmasq hangs up. It does not even replay to DHCP Discover sent by iPXE. CPU usage for {dnsmasq /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.cfg01411c -k -x /var/run/dnsmasq/dnsmasq.cfg01411c.pid} process is about 24-26% on my 4x core ARMv8 architecture machine. It looks like one ARM in dead.
Then, it does not work at all till I restart dnsmasq.
I confirmed this issue more then 10 times. I also sniffed DHCP and TFTP to investigate the stage it hangs up.
Actual Behaviour
The first stage in the chainload works OK, so undionly.kpxe is provisioned and runs on the dedicated notebook but then boot_script.ipxe is not delivered at all since
dnsmasq hangs up. It does not even replay to DHCP Discover sent by iPXE. CPU usage for {dnsmasq /usr/sbin/dnsmasq -C /var/etc/dnsmasq.conf.cfg01411c -k -x /var/run/dnsmasq/dnsmasq.cfg01411c.pid} process is about 24-26% on my 4x core ARMv8 architecture machine. It looks like one ARM in dead.
Then, it does not work at all till I restart dnsmasq.
I confirmed this issue more then 10 times. I also sniffed DHCP and TFTP to investigate the stage it hangs up.
Confirmation Checklist
- The package is maintained in this repository.
- I understand that issues related to the base OpenWrt repository or LuCI repository will be closed.
- I am reporting an issue for OpenWrt, not an unsupported fork.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reported dnsmasq.conf and /etc/config/dhcp settings, then inspect the generated /var/etc/dnsmasq.conf.cfg01411c while reproducing the iPXE chainload on dnsmasq-full 2.92-r1. Compare DHCP and TFTP behavior before and after the first undionly.kpxe stage; done means dnsmasq continues answering iPXE requests and delivers boot_script.ipxe without hanging.
Written by the indexing model from the issue text.
Assessment
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100