I wonder if you could help me, please. I'm experiencing Unbound 1.4.8
compiled from source with built-in ldns returning SERVFAIL, although I
don't agree with it doing so FWIW, I cannot reproduce this when
validating with BIND: I've tried with both versions 9.7.2 and 9.8.0rc1.
The following queries, and their reply codes: (the order of queries
appears to be irrelevant)
dig @127.0.0.1 +dnssec test.jpmens.org A -> SERVFAIL
dig @127.0.0.1 +dnssec test.jpmens.org SOA -> SERVFAIL
Those don't exist? And neither does any NS records?
The A exists, and BIND returns it. The SOA does not exist, and BIND
returns a NOERROR.
I've had to disable `harden-referral-path' because the NS RRset for
jpmens.org isn't yet signed.
That should not matter. Hardening just queries multiple name servers for
the same data to make spoofing harder. It does not mandate dnssec.
Thanks for the clarification.
I think your problem is with your zone?
I don't think there is a problem with the zone, particularly because
a BIND replies correctly to these queries. If I restart Unbound, It
starts off by also replying correctly. I've just restarted and give it
Tested here, the ANY query triggers a validation attempt of the NS
record. The NS record is bogus. When it finds out the NS record is
bogus, unbound refuses to talk to those nameservers. Therefore is
unable to fetch further data (the SSHFP request) for the zone.
Similar behaviour for the nameserver-glue A, AAAA: if they are bogus
unbound refuses to talk to those nameservers.
Seems to be so,
Feb 21 12:47:32 unbound[22628:0] info: verify rrset <jpmens.org. NS IN>
Feb 21 12:47:32 unbound[22628:0] debug: verify sig 50853 8
Feb 21 12:47:32 unbound[22628:0] debug: verify: signature mismatch
Feb 21 12:47:32 unbound[22628:0] debug: verify sig 50853 8
Feb 21 12:47:32 unbound[22628:0] debug: verify: signature mismatch
Feb 21 12:47:32 unbound[22628:0] debug: verify sig 50853 8
Feb 21 12:47:32 unbound[22628:0] debug: verify: signature mismatch
Feb 21 12:47:32 unbound[22628:0] debug: rrset failed to verify: no valid
signatures for 1 algorithms
Good catch! There seems to be something awkward on the signer; it does
indeed produce an inordinate number of RRSIGs if there is more than one
RR in the set. I'm talking to them as we speak.
The NS record is bogus. When it finds out the NS record is
bogus, unbound refuses to talk to those nameservers.
Paul Wouters was right: the zone content was bad, and Andreas spotted
the cause: multiple RRSIGs on the NS RRset. My pdns signer erroneously
created them, but that has just been fixed in r2053.
I thought it was Unbound only, because neither BIND nor [1], [2], or [3]
hinted that something was wrong. That worries me.