Maintained by: NLnet Labs

[Unbound-users] [DNSSEC] BIND validates but not Unbound: who is right?

Casey Deccio
Mon Feb 16 22:50:01 CET 2015

On Mon, Feb 16, 2015 at 11:34 AM, Stephane Bortzmeyer <bortzmeyer at>

> With Unbound, I get a SERVFAIL:
> ...

> But BIND accepts it (and so does Google Public DNS):
> ...

DNSviz, like Unbound, says the domain is broken:
> <>

"Broken" is a loaded term.  There are definitely errors with,
namely that because both algorithms 5 and 8 show up in the DS RRset, the
zone MUST be signed with both, i.e., RRSIGs for each algorithm should be
MUST accompany any RRset in the response.  This is specified in RFC 4035,
Sec 2.2.

However, this requirement is clarified in RFC 6840, Sec. 5.11 as follows:

   This requirement applies to servers, not validators.  Validators
   SHOULD accept any single valid path.  They SHOULD NOT insist that all
   algorithms signaled in the DS RRset work, and they MUST NOT insist
   that all algorithms signaled in the DNSKEY RRset work.

Thus, as Mark pointed out, these particular errors should not affect the
validation of, for validators that understand both algorithms
5 and 8.

Note that DNSViz handles such cases by displaying the errors (i.e., with
the red error sign), but still showing the validation status of the RRsets
as "secure" (denoted by the blue-ish color).

However, you can "see" the reason for the requirement of the signer (i.e.,
that it contains RRSIGs for each algorithm in the DS) in the following
example.  Suppose a validator does not support algorithm 5 (e.g., due to
implementation deficiency, administrative policy, or because algorithm has
been declared obsolete for some reason).  The chain of trust now looks like

As far as the validator is concerned, there should be a secure path for
both algorithms (as indicated by the algorithms in the DS records).  It
can't choose one or the other because algorithm 5 is not an option.  So it
turns to algorithm 8.  However, because there is no path for algorithm 8,
the chain is broken.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>