>… I do want to point out that Compact DoE handles wildcards quite differently, 
>and this may not be readily apparent to the casual observer.

FWIW, I noticed.  (Not meaning to say “I’m not a casual observer” but…). This 
is something that was playing in my mind when reviewing the proposal.

In basic DNS, if a name has no records and no descendants, then the responder 
looks for a relevant source of synthesis.  Relevant means that it is “up the 
tree”, owner first label is “*” and there is no “blocking” name.  (I won’t 
define “blocking here, there’s an RFC for that.)  If a relevant source found, a 
response is cobbled from that.

In year 2004 DNSSEC, the same process is followed, but the responder will add 
DNSSEC records to support the work it is doing.  In essence, DNSSEC is 
“proving” that the responder followed the protocol faithfully in answering as 
it is.  For zones using NSEC, this means showing the query name does not have 
records or descendants (NXDOMAIN) but there is a relevant source of synthesis 
and there is no blocking name.  That can be done in one or two NSEC resource 
record sets.  For zones using NSEC3, this means showing the name doesn’t exist, 
the showing the source of synthesis exists, and then showing there is no 
blocking - the three steps may each need their own NSEC3 resource record set.

(Sorry, now I’m on a roll…)

All of this is because of the way DNS has opted to implement synthesized 
responses. It was pointed out during the writing of the “Clarifications of 
Wildcards” there are many other ways to synthesize a response, “wildcards” was 
just one, the one publicly defined, method.  This argument was from Dan 
Bernstein.  For those who recall his years of participation, there was often 
frustration in understanding his points.  He was correct in this instance.  It 
just took a long time to understand what he meant.  Instead of “wildcards are 
the way to synthesize” he wanted “wildcards are a way to synthesize”.  I’m 
including this because the point is germane here.

If a server is synthesizing responses on the fly according to other algorithms, 
then the NSEC/NSEC3 proofs do not apply.  The server isn’t following the 
“standard” synthesis method.  The server then just needs to figure out how to 
express its response.  For a positive response, the label count has to be 
“right”.  For negative responses, the server needs to decide how it wants to 
answer.  In a purely on-the-fly, synthesizing responder, there may be no 
difference in response between a name not having any records nor descendants 
and a name not having what the query is seeking.

For some part of me, I don’t understand why the original protocol distinguishes 
between name error (NXDOMAIN) and no error/no data.  It’s been said that the 
DNS matching process has two phases, matching name first and then matching 
resource records.  This is apparent in the protocols basic design.  But why it 
is this way, I don’t know.  I don’t see this as terribly significant - except 
when you try to understand how answer synthesis (“wildcards”) is done.

Based on that, I can see that Compact denial of existence handles “wildcards” 
differently.  I don’t think wildcards are integral elements of the protocol, 
but it is a defined mechanism.  A zone administrator can elect to fully 
enumerate the names in the zone, and this can be implemented either by rote 
(explicitly listing all the names in a file) or by function (fully 
synthesizing).  If the zone administrator elects either, and implements the 
protocol fully, they won’t have wildcards and no incidence of Name Error 
(NXDOMAIN).

For any application relying on NXDOMAIN - such a zone has all names “existing” 
(in some sense), there simply will never be an NXDOMAIN.  (There can be empty 
non-terminals, but if the zone is properly defined, all the leaf names - those 
without in-zone descendants - would have to own some record set.)

So…that Compact Denial of Existence handles wildcards “differently” - this is 
significant…
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to