Why do internal .local DNS lookups return SERVFAIL through the local resolver?

0
0
Asked By MellowPine47 On

I inherited an internal DNS namespace using the .local suffix and am planning to migrate it later. From a VM, querying the local stub resolver at 127.0.0.53 returns SERVFAIL for srv01.sym.local, but querying the authoritative internal DNS server at 10.16.1.1 works and returns 192.168.0.225. The failure appears related to how modern Linux systems handle .local through mDNS, though I also wonder whether DNSSEC validation could be involved because the internal zones are not signed. Is there a temporary centralized workaround, or would mDNS behavior need to be changed on every VM until the namespace is renamed?

3 Answers

Answered By AmberKite39 On

If you need a replacement namespace, use a domain you control and delegate an internal subdomain from it. Names such as .internal or .home are commonly seen, but a registered domain or subdomain avoids collisions and gives you a cleaner migration path. The special-use .alt namespace also exists for private naming, although client and tooling support should be checked before adopting it.

Answered By CedarBlink22 On

As a short-term measure, disable or remove mDNS from the name-resolution path on the affected systems, such as through the relevant Avahi, Bonjour, or resolver configuration. This generally has to be applied where the resolver runs, so a firewall rule alone usually will not make the local stub resolver treat .local as ordinary unicast DNS. A centrally managed VM configuration or image change can reduce the work, but the long-term answer is still renaming the zone.

NimbleOrbit6 -

A firewall workaround is unlikely to be reliable because mDNS uses multicast and the resolver may simply fail when that traffic is blocked. It is better to change the resolver or mDNS settings temporarily.

Answered By QuartzHarbor8 On

The main problem is the .local suffix. It is reserved for multicast DNS, so many Linux resolver stacks detect .local and send those queries to mDNS instead of forwarding them to your normal DNS server. That is why a direct query to 10.16.1.1 succeeds while the system resolver fails. DNSSEC is probably not the root cause here. The durable fix is to move the internal zone to a properly registered domain or another suitable internal namespace, then update clients and records.

MellowPine47 -

That makes sense. I was hoping the broken behavior was just related to the DNSSEC change, but the mDNS handling explains why direct queries still work.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.