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
