On 12/09/2026 3:56 am, Andy Smith wrote:

Am I right in understanding that the issue is that Vincent's DNS resolver is
returning SERVFAIL when querying A record but not when querying AAAA

It seems, both A and AAAA queries may randomly fail when resource records are not in the DNS server cache. The same query sent a bit later (interval duration is not clear however) may succeed.

the SERVFAIL is being cached by the machine's nscd and so
persistently applications do not get an A record to try to connect to,
just AAAA?

Perhaps nscd ignores failure when the counterpart in A+AAAA query pair is successful, so it caches either only IPv6 or only IPv4 addresses for the given host. Somebody has to look into nscd sources to give definitive answer concerning cache implementation.

I am curious what is the result of third command when first or second one fails (multiple attempts varying SOMEHOST may be necessary to get an error):

    getent ahostsv4 SOMEHOST
    getent ahostsv6 SOMEHOST
    getent ahosts SOMEHOST

If so, is it known why the resolver is so unreliable?

My speculations: DDoS or improper protection against it on some parent DNS server, configuration with too short timeouts there, unreliable network link (e.g. issues with routing). I do not expect we will know what actually happens.

but if
whatever issue this is, is related to nscd, then I am a bit concerned
about it.

You may try to simulate DNS failures to check if Vincent's findings are correct.

I expect that changing DNS configuration should solve you issue.

What is the proposed configuration change to the DNS configuration? Is
this the resolver software, or are you talking about locally in
/etc/resolv.conf?

I had in mind using other DNS servers, maybe even DNS over HTTPS. I would consider another local DNS cacher: dnsmasq or systemd-resolved. Later I have noticed "no-aaaa" in resolv.conf options, but it specific to the case when IPv6 is not used at all.

Reply via email to