Hello Andrew,

thank you for this, I like it a lot. One nit below.

On 21 Sep 2017, at 5:45, Andrew Sullivan wrote:

>       [RFC2308], however, has an alternate definition that puts the
>       QNAME in the answer (or series of answers) instead of the query.
>       It defines QNAME as: "...the name in the query section of an
>       answer, or where this resolves to a CNAME, or CNAME chain, the
>       data field of the last CNAME.  The last CNAME in this sense is
>       that which contains a value which does not resolve to another
>       CNAME."  This definition has a certain internal logic, because of
>       the way CNAME substitution works and the definition of CNAME.  If
>       a name server does not find an RRset that matches a query, but it
>       finds the same name in the same class with a CNAME record, then
>       the name server "includes the CNAME record in the response and
>       restarts the query at the domain name specified in the data field
>       of the CNAME record."  ([RFC1034] Section 3.6.2).  This is made
>       explicit in the resolution algorithm outlined in Section 4.3.2,

It’s unclear that 4.3.2 is in 1034, as 1034 is in parens just before.

>       which says to "change QNAME to the canonical name in the CNAME RR,
>       and go back to step 1" in the case of a CNAME RR.  Since a CNAME
>       record explicitly declares that the owner name is canonically
>       named what is in the RDATA, then there is a way to view the new
>       name (i.e. the name that was in the RDATA of the CNAME RR) as also
>       being the QNAME.
>
>       This creates a kind of confusion, however, because the answer to a
>       query that results in CNAME processing contains in the echoed
>       Question Section one QNAME (the name in the original query), and a
>       second QNAME that is in the data field of the last CNAME.  The
>       confusion comes from the iterative/recursive mode of resolution,
>       which finally returns an answer that need not actually have the
>       same owner name as the QNAME contained in the original query.
>
>       To address this potential confusion, it is helpful to distinguish
>       between two meanings:
>
>       QNAME (original)  The name actually sent in the Question
>          Section in the orignal query, which is always echoed in the
>          (final) reply in the Question Section when the QR bit is set to
>          1.
>
>       QNAME (effective)  The name actually resolved, which is either the
>          name actually queried or else the last name in a CNAME chain as
>          defined in [RFC2308].
>
> I'm certainly not wedded to these two names.

They certainly are adequate, and I do not have better suggestions.

Wonderful work!

Kind regards,
-- 
Peter van Dijk
PowerDNS.COM BV - https://www.powerdns.com/

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

Reply via email to