[Pdns-users] Low ttl with combination of forward zones makes queries fail

Thomas Mieslinger miesi at mail.com
Tue Feb 8 12:24:03 UTC 2022


In my experience pdns_recursor (okay, I tested only with older versions)
will not retry fast enough to have a 100% user experience.

I moved to bgp with my internal auth addresses. The auths check themself
and announce their service IP only if they are ready to answer.

If you don't have the chance to move to bgp, give dnsdist a try. In my
experience it does a very good job on figuring out whether a server is
up or not.

Both options complicate your setup. You could experiment with
server-down-max-fails and server-down-throttle-time to minimize the
number of lost queries to not responding Nameservers. But thats
dangerous too, because this setting is for all servers, not only your
internal auths.

But remember, pdns_recursor does not do background checking whether a
Nameserver is alive. Background checking is only done by dnsdist afaik.

Cheers Thomas

Am 08.02.22 um 13:08 schrieb Prochazka via Pdns-users:
> Hello,
>
> using pdns-recursor 4.5.7-1pdns.bullseye i am getting problem with dns
> redundancy for records with expired ttl (best seen on low ttl). Forward
> zones are used for internal domains only. Our clients has configured 3
> recurcors (resolv.conf) and every recursor connect to any of the four
> auth servers for our domains. All subdomains are delegated to own zones
> but resides on the same auth servers, extra step is using forward-zones.
> I thought, it's depending on configured order, so i set it to use same
> location first and remote location on the end (evading firewall, if it's
> possible).
>
> Pdns recursor config:
>
> ...
> forward-zones=
> forward-zones+=some.domain.tld=AUTH1_ipv6
> forward-zones+=some.domain.tld=AUTH1_ipv4
> forward-zones+=some.domain.tld=AUTH2_ipv6
> forward-zones+=some.domain.tld=AUTH2_ipv4
> forward-zones+=some.domain.tld=AUTH3_ipv6
> forward-zones+=some.domain.tld=AUTH3_ipv4
> forward-zones+=some.domain.tld=AUTH4_ipv6
> forward-zones+=some.domain.tld=AUTH4_ipv4
> ...
>
> AAAA dns query:
> ;; QUESTION SECTION:
> ;host.some.domain.tld.    IN    AAAA
>
> ;; ANSWER SECTION:
> host.some.domain.tld. 60    IN    CNAME    host1.some.domain.tld.
> host1.some.domain.tld. 3600 IN    AAAA    host1_ipv6
>
> Problem:
> When there is maintenance on for example AUTH4 (server is offline):
>
> Client <-> Recursor:
> 233336    2022-02-08 01:57:58,031241    client_ipv6    REC1_ipv6
> DNS    106    Standard query 0x7f30 AAAA host.some.domain.tld
> 233337    2022-02-08 01:57:58,031241    client_ipv6    REC1_ipv6
> DNS    106    Standard query 0xb42e A host.some.domain.tld
> 233442    2022-02-08 01:57:59,902472    REC1_ipv6    client_ipv6
> DNS    106    Standard query response 0x7f30 Server failure AAAA
> host.some.domain.tld
> 233443    2022-02-08 01:57:59,902577    REC1_ipv6    client_ipv6
> DNS    106    Standard query response 0xb42e Server failure A
> host.some.domain.tld
>
> Recursor <-> Auth:
> 196982    2022-02-08 01:57:58,031733    REC1_ipv4    AUTH4_ipv4
> DNS    97    Standard query 0xedac AAAA host.some.domain.tld OPT
> 196983    2022-02-08 01:57:58,031981    REC1_ipv4    AUTH4_ipv4
> DNS    97    Standard query 0x1246 A host.some.domain.tld OPT
> ...
> 197989    2022-02-08 01:58:13,667275    REC1_ipv4    AUTH1_ipv4
> DNS    107    Standard query 0xf4e9 A host.some.domain.tld.domain.tld OPT
> 197990    2022-02-08 01:58:13,667542    REC1_ipv4    AUTH1_ipv4
> DNS    107    Standard query 0xff8c AAAA host.some.domain.tld.domain.tld
> OPT
> 197991    2022-02-08 01:58:13,671010    AUTH1_ipv4    REC1_ipv4
> DNS    154    Standard query response 0xf4e9 No such name A
> host.some.domain.tld.domain.tld SOA ns.domain.tld OPT
> 197992    2022-02-08 01:58:13,671222    AUTH1_ipv4    REC1_ipv4
> DNS    154    Standard query response 0xff8c No such name AAAA
> host.some.domain.tld.domain.tld SOA ns.domain.tld OPT
> ...
> 218012    2022-02-08 02:02:03,229271    REC1_ipv4    AUTH4_ipv4
> DNS    97    Standard query 0xce1c A host.some.domain.tld OPT
> 218013    2022-02-08 02:02:03,229359    REC1_ipv4    AUTH4_ipv4
> DNS    97    Standard query 0xccf5 AAAA host.some.domain.tld OPT
> 218014    2022-02-08 02:02:03,232700    AUTH4_ipv4    REC1_ipv4
> DNS    140    Standard query response 0xce1c A host.some.domain.tld
> CNAME host1.some.domain.tld A host1_ipv4 OPT
> 218015    2022-02-08 02:02:03,232700    AUTH4_ipv4    REC1_ipv4
> DNS    152    Standard query response 0xccf5 AAAA host.some.domain.tld
> CNAME host1.some.domain.tld AAAA host1_ipv6 OPT
>
> It looks as recursor is querying the same Auth server for such record
> until server is up. How to change such setup so maintenance don't break
> resolving?
>
> Thanks.
>
> _______________________________________________
> Pdns-users mailing list
> Pdns-users at mailman.powerdns.com
> https://mailman.powerdns.com/mailman/listinfo/pdns-users


More information about the Pdns-users mailing list