ISC to Dnsmasq transition pains

Started by jintakhan, October 15, 2025, 08:35:16 AM

Previous topic - Next topic
October 15, 2025, 08:35:16 AM Last Edit: October 15, 2025, 08:41:26 AM by jintakhan
With the deprecation of ISC and a long-overdue overhaul of my home office network, I have begun migrating to a Dnsmasq+Unbound setup. It has been mostly straightforward, but there are a couple critical quirks that I would like some help with. Thanks!

  • I want to define separate static and dynamic ranges for a subnet (e.g. 192.168.100.2-200 for static and 201-254 for dynamic) so that when I do allocate a static lease in the future, it doesn't conflict with a dynamic address already in use. But Dnsmasq only allows setting a start range for a static range, no end range. How would I achieve this? Or do I have to manually specify the domain for each static lease defined in the Dnsmasq hosts menu after specifying the dynamic range?
  • I have followed this guide to set up local DNS resolution. Right now I am able to ping only some static lease addresses via FQDN, but the guide says I should be able to resolve the host by the shortname only (e.g. foobar instead of foobar.lan.internal), as was the case with ISC static leases. This is not working in Dnsmasq. Except for the firewall itself, I cannot query for the shortname or the domain defined under System > Settings > General; only the Dnsmasq-defined FQDN resolves. How do I fix this?

The guide above has been followed to the letter and all static leases have been marked as local.

1. You only have to set a dynamic pool in dnsmasq, any reservation can be inside or outside the pool. Dnsmasq actively prevents a static lease to be given out to a dynamic client (it has been checked in the source code). So you can remove any static pools you might did.
2. Shortnames are a client thing, check out if your client has the dns search domain set correctly. Only if the client appents the search domain to its query, it can be forwarded from unbound to dnsmasq and answered.
Hardware:
DEC740

Quote from: Monviech (Cedrik) on October 15, 2025, 08:47:07 AM1. You only have to set a dynamic pool in dnsmasq, any reservation can be inside or outside the pool. Dnsmasq actively prevents a static lease to be given out to a dynamic client (it has been checked in the source code). So you can remove any static pools you might did.
2. Shortnames are a client thing, check out if your client has the dns search domain set correctly. Only if the client appents the search domain to its query, it can be forwarded from unbound to dnsmasq and answered.

Thank you. Following this feedback, I set all the ranges to the same domain as the system domain and the shortname queries now work without issue.

For the static leases, it appears the default domain specified in Dnsmasq will not apply when the static host domain field is left blank. This behavior appears to also override the domain specified in the DHCP ranges. I manually specified the system domain for all hosts in the list and now all shortnames resolve as expected.

Well I'm glad it works for you now, there are some quirks here and there but overall it works really well once set up correctly.

There is also a different domain mode that you can choose in advanced mode of a range. If you choose "Interface", the domain gets appended to the whole interface of the range, meaning also hosts outside that range on the same interface will have that domain set.
Hardware:
DEC740