in one upstream dnsmasq (D1) I have:


in another dnsmasq (D2) I have:


When I dig test.mydomain.net A it works fine. However, if I do dig test.mydomain.net AAAA, B forwards the request back to D1 since I did not setup ipv6. Then the loop happens requests bounce between D1 and D2. I thought the dns-loop-detect will prevent this loop but it does not. I knew I can put local=/mydomain.net/ in D2 to prevent this. But what is the purpose of the dns-loop-detect then? What kind of loop it suppose to detect and stop?


That loop detection algorithm just send a simple probe to all upstreams not being limited to a specific domain (including rDNS). If that probe is received back, the server id mentioned in that probe is marked as a loop (i.e. is skipped when checking for a usable upstream).

The most obvious loop it is meant and able to stop is when some resolvconf-related automation feeds dnsmasq all known dns servers - including dnsmasq itself in a role as local caching resolver.

The reason behind only sending the probes to upstreams valid for any domain is simply that the probe is a query for the name test - dnsmasq does not send such query to an upstream expressly not configured to handle arbitrary names.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.