Since you mentioned RFC 6604 "xNAME RCODE Clarification", here's a relevant 
quote from Section 3 ("RCODE Clarification"):

 

>When an xNAME chain is followed, all but the last query cycle necessarily had 
>no error.  The RCODE in the ultimate DNS response MUST BE set based on the 
>final query cycle leading to that response.  If the xNAME chain was terminated 
>by an error, it will be that error code.  If the xNAME chain terminated 
>without error, it will be zero.

 

I tried a small set up, zone example with two CNAME sets.  name1 CNAME 
name.example.com (zone also on the server, with nothing at name.example.com) 
and name2 CNAME name.example.xx (zone not on the server) and recursion disabled.

 

dig for name1.example. returns the single CNAME record in the Answer, the AA 
bit, SOA in Authority, and NXDOMAIN in the RCODE.

dig for name2.example. returns the single CNAME record in the Answer, the AA 
bit, no SOA, and NOERROR in the RCODE.

 

The first is a "final" answer - NXDOMAIN looking for the last name in the 
chain.  There's also an SOA record in the Authority indicating the negative TTL 
to use.  The latter is a non-final answer (i.e., it's up to the querier to keep 
asking), a "CNAME referral" - no SOA record and no hints as to where to go 
because it's outside any domain of the name server (or that it is willing to 
admit to having).

 

The two (final and CNAME referral) are rather hard to tell apart, it's possible 
to determine that is the "last query cycle" as mentioned in the RFC, but it 
takes a trained eye.  How?  Well, a querier ought to realize that, if it didn't 
ask for a CNAME set and there's no error (yet), you simply haven't gotten a 
final answer yet.

 

On 4/5/17, 09:54, "DNSOP on behalf of Donald Eastlake" <dnsop-boun...@ietf.org 
on behalf of d3e...@gmail.com> wrote:

 

See RFC 6604.

 

Donald

 

from iPhone

 

On Wed, Apr 5, 2017 at 09:34 Edward Lewis <edward.le...@icann.org> wrote:

On 4/5/17, 01:43, "DNSOP on behalf of Mukund Sivaraman" <dnsop-boun...@ietf.org 
on behalf of m...@isc.org> wrote:

>It seems BIND currently returns NXDOMAIN in this case, and the change in
>behavior between looking-into-other-zones and
>not-looking-into-other-zones in the nameserver algorithm caused a system
>test failure, hence the question.

I don't think there is one right answer.  There may be a more efficient answer 
(in terms of some metric).  The goal of the RFCs was interoperability, keep 
that in mind.

You allude above to an implementation changing its behavior (answering from all 
available data vs. sticking to one zone).  This is not something that is 
explicitly dealt with in the original RFCs, perhaps in later ones.  Both 
choices have merit, have downsides, still the two are interoperable.  As far as 
the protocol matters, either is a valid choice, and one that influences whether 
the query in question results in NOERROR/CNAME chain or NXDOMAIN.

In this case, I think you don't need to worry about the querier.  Rules seem to 
be explicit about caching responses here.

If anything, make sure your test script is accurate.  (Back in the day of 
DNSSEC protocol/code development, 1 out of 3 times DNSSEC had a protocol bug, 1 
out of 3 times it was a software bug, and 1 out of 3 times everything was right 
but the tester - me - was expecting the wrong result.)

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop[ietf.org]

-- 

Sent from Gmail Mobile

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to