Hello,

I have an existing PowerDNS Recursor 4.0.4 server running on Debian Jessie 8 (I 
know, I know, out of date ... I'm getting to that). It handles all DNS requests 
for my home lab network. It has a fairly simple config and has worked without 
interruption for literally years at a time. It also is configured to validate 
and successfully validates all DNSSEC.

Last night, shortly after midnight, it stopped resolving about half of all 
domains worldwide, returning `SERVFAIL` for them. Sometimes it will resolve the 
primary domain (such as `athenahealth.com`) but not a subdomain (such as 
`20785-1.portal.athenahealth.com`). Sometimes it will not resolve the primary 
domain (such as `serverfault.com` or `askubuntu.com`). I haven't been able to 
find any pattern, and no matter how I've mucked with my config (including 
turning DNSSEC completely off), it doesn't fix the problem.

My next thought was that I needed to upgrade PowerDNS Recursor, but I couldn't 
because of how old my DNS server was. So, I built out a brand new server 
running PowerDNS Recursor 5.1.3 on Ubuntu 24.04.1. Again, the config is simple. 
Here's the primary file:

```
$ cat /etc/powerdns/recursor.conf 
dnssec:
  # validation: process # default
  trustanchorfile: /usr/share/dns/root.key
recursor:
  hint_file: /usr/share/dns/root.hints
  include_dir: /etc/powerdns/recursor.d
#incoming:
 # listen:
 # - 127.0.0.1 # default
#outgoing:
 # source_address:
 # - 0.0.0.0 # default
```

And here's a file in `recursor.d`:

```
$ cat /etc/powerdns/recursor.d/me.yml 
dnssec:
  validation: off # validate
#  log_bogus: true
incoming:
  listen:
    - 10.20.30.76:53
logging:
  common_errors: true
  facility: 1
  loglevel: 6
  quiet: true
  trace: fail
recursor:
  auth_zones:
    - zone: my-domain-1.com
      file: /etc/powerdns/my-domain-1.com.zone
  forward_zones:
    - zone: my-domain-2.com
      forwarders:
        - 10.20.31.2
  setgid: pdns
  setuid: pdns
  socket_dir: /var/run
  write_pid: true
webservice:
  address: 10.20.30.76
  allow_from:
    - 10.20.30.0/24
    - 172.24.52.0/24
  api_key: loremipsum
  password: foobarbazqux
  port: 8080
```

This config is identical to my old PowerDNS Recursor config except that DNSSEC 
is disabled to try to get it to work. If I manually `dig` (I love `dig`) 
`askubuntu.com` from the root up, I easily find an answer:

```
# Using i.root-servers.net is 192.36.148.17
$ dig @192.36.148.17 com NS

; <<>> DiG 9.10.6 <<>> @192.36.148.17 com NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2217
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 21

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;com.                           IN      NS

;; ANSWER SECTION:
com.                    136670  IN      NS      d.gtld-servers.net.
com.                    136670  IN      NS      c.gtld-servers.net.
com.                    136670  IN      NS      k.gtld-servers.net.
com.                    136670  IN      NS      f.gtld-servers.net.
com.                    136670  IN      NS      i.gtld-servers.net.
com.                    136670  IN      NS      b.gtld-servers.net.
com.                    136670  IN      NS      l.gtld-servers.net.
com.                    136670  IN      NS      a.gtld-servers.net.
com.                    136670  IN      NS      e.gtld-servers.net.
com.                    136670  IN      NS      m.gtld-servers.net.
com.                    136670  IN      NS      j.gtld-servers.net.
com.                    136670  IN      NS      h.gtld-servers.net.
com.                    136670  IN      NS      g.gtld-servers.net.

;; ADDITIONAL SECTION:
b.gtld-servers.net.     43604   IN      A       192.33.14.30
b.gtld-servers.net.     71837   IN      AAAA    2001:503:231d::2:30
l.gtld-servers.net.     44115   IN      A       192.41.162.30
l.gtld-servers.net.     74612   IN      AAAA    2001:500:d937::30
a.gtld-servers.net.     59944   IN      A       192.5.6.30
a.gtld-servers.net.     52029   IN      AAAA    2001:503:a83e::2:30
e.gtld-servers.net.     11582   IN      A       192.12.94.30
e.gtld-servers.net.     63219   IN      AAAA    2001:502:1ca1::30
m.gtld-servers.net.     27782   IN      A       192.55.83.30
m.gtld-servers.net.     50020   IN      AAAA    2001:501:b1f9::30
j.gtld-servers.net.     39663   IN      A       192.48.79.30
h.gtld-servers.net.     79936   IN      A       192.54.112.30
g.gtld-servers.net.     57527   IN      A       192.42.93.30
g.gtld-servers.net.     63219   IN      AAAA    2001:503:eea3::30
d.gtld-servers.net.     44435   IN      A       192.31.80.30
d.gtld-servers.net.     10633   IN      AAAA    2001:500:856e::30
c.gtld-servers.net.     50185   IN      A       192.26.92.30
k.gtld-servers.net.     32146   IN      A       192.52.178.30
i.gtld-servers.net.     48002   IN      A       192.43.172.30
i.gtld-servers.net.     27967   IN      AAAA    2001:503:39c1::30

$ dig @192.33.14.30 askubuntu.com NS

; <<>> DiG 9.10.6 <<>> @192.33.14.30 askubuntu.com NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46168
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 13

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;askubuntu.com.                 IN      NS

;; ANSWER SECTION:
askubuntu.com.          86400   IN      NS      sureena.ns.cloudflare.com.
askubuntu.com.          86400   IN      NS      damian.ns.cloudflare.com.

;; ADDITIONAL SECTION:
damian.ns.cloudflare.com. 48087 IN      A       172.64.35.50
damian.ns.cloudflare.com. 48087 IN      A       162.159.44.50
damian.ns.cloudflare.com. 48087 IN      A       108.162.195.50
damian.ns.cloudflare.com. 13178 IN      AAAA    2803:f800:50::6ca2:c332
damian.ns.cloudflare.com. 13178 IN      AAAA    2606:4700:58::a29f:2c32
damian.ns.cloudflare.com. 13178 IN      AAAA    2a06:98c1:50::ac40:2332
sureena.ns.cloudflare.com. 38809 IN     A       108.162.194.126
sureena.ns.cloudflare.com. 38809 IN     A       172.64.34.126
sureena.ns.cloudflare.com. 38809 IN     A       162.159.38.126
sureena.ns.cloudflare.com. 32427 IN     AAAA    2a06:98c1:50::ac40:227e
sureena.ns.cloudflare.com. 32427 IN     AAAA    2803:f800:50::6ca2:c27e
sureena.ns.cloudflare.com. 32427 IN     AAAA    2606:4700:50::a29f:267e

$ dig @172.64.35.50 askubuntu.com A

; <<>> DiG 9.10.6 <<>> @172.64.35.50 askubuntu.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35705
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;askubuntu.com.                 IN      A

;; ANSWER SECTION:
askubuntu.com.          300     IN      A       172.64.150.156
askubuntu.com.          300     IN      A       104.18.37.100
```

Perfect. But if I ask either my existing PowerDNS Recursor 4.0.4 server or my 
new PowerDNS Recursor 5.1.3 server, I get `SERVFAIL`:

```
$ dig @10.20.30.76 askubuntu.com A

; <<>> DiG 9.10.6 <<>> @10.20.30.76 askubuntu.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58213
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
; OPT=15: 00 16 64 65 6c 65 67 61 74 69 6f 6e 20 63 6f 6d ("..delegation com")
;; QUESTION SECTION:
;askubuntu.com.                 IN      A
```

The `OPT=15` line with some kind of signature plus `delegation com` is 
interesting. It's not happening on every domain that's failing to resolve, so 
it might be a red herring (and it changes ... like running that same query 
again resulted in `OPT=15: 00 16 64 65 6c 65 67 61 74 69 6f 6e 20 61 73 6b 75 
62 75 6e 74 75 2e 63 6f 6d ("..delegation askubuntu.com")`).

Here is the PowerDNS Recursor 5.1.3 fail trace for a failed lookup of 
`askubuntu.com`: 
https://gist.github.com/beamerblvd/d8fa24bdf1037e2a670f8e331b7e4905

FWIW, I'm on Comcast Business Class with a 5-address static IP delegation.

What am I doing wrong?

Thanks,

Nick

_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users

Reply via email to