On 5 Mar 2018, at 08:14, Paul Hoffman <[email protected]> wrote:
> Greetings. As you can see, draft-ietf-dnsop-terminology-bis-09.txt is out.
> Reading the diff might be a bit difficult because of the reorganization of
> some sections that y'all asked for, but I think the result is worth the extra
> effort.
>
> We're still not done yet. I took a hiatus from finishing the list of
> definitions that people wanted more scrutiny on, but will start that again
> soon. I hope we'll be done with that list by mid-April and then be ready for
> WG last call.
>
> As a side note, some of the changes in this version came from people reading
> the document fresh. I encourage folks who were maybe waiting for WG Last Call
> to do a first deep reading of the document to instead do so now. The work
> that everyone is doing on this document will go a long way to making the
> final RFC more valuable for lots of folks entering the field.
I’ve reviewed this, and I think it is a very useful document.
Here are my suggestions, which I hope will help.
My main suggestion is to recommend that people always avoid using the term “DNS
server” or “name server”, since there are two very different kinds of “DNS
server” or “name server”. Instead, people should diligently use the terms
“authoritative server”, and “recursive resolver” to indicate which kind they
are talking about. They have very different rôles, despite the fact that both
can often be done with the same software package.
In your definition of “recursive resolver” I’d also include a note that this is
a misnomer. It’s not recursive, in the classic computer science use of that
term. A true “recursive resolver” would be one that forwarded its query to a
different “recursive resolver”, and so on, until some terminating condition.
That’s recursion in the classic computer science sense. Actually, a DNS
“recursive resolver” is one that performs iterative resolution on behalf of the
requester. The Recursion Desired (RD) bit might have been better specified as
the Iteration Desired (ID) bit. I realize that’s not going to change, but we
should document that dubious use of the term “recursive”.
In the abstract, expand the first mention of DNS:
The Domain Name System (DNS) is defined in literally dozens of different
RFCs.
In this text:
Naming system: A naming system associates names with data. Naming
systems have many significant facets that help differentiate them.
Some commonly-identified facets include:
* Composition of names
I don’t know what “Composition of names” means in this context.
Label: An ordered list of zero or more octets and which makes up a
portion of a domain name. Using graph theory, a label identifies
one node in a portion of the graph of all possible domain names.
A label alone does not uniquely identify a node in the graph. A label
identifies one specific *child* node of the parent at that point in the graph.
A domain name in the global DNS has a maximum total
length of 255 octets in the wire format; the root represents one
octet for this calculation.
Include a reference to Appendix C of RFC 6762 which discusses this topic:
<https://tools.ietf.org/html/rfc6762#appendix-C>
You may conclude that the assessment in RFC 6762 was wrong, but if so, the
terminology document should say so explicitly, rather than just ignoring RFC
6762.
in both English and C the first label in the ordered list is
right-most; but in Arabic it may be left-most
It’s not clear what “first” means here. Maybe write “root label” or “TLD”
instead?
Note that any label in a
domain name can contain any octet value; hostnames are generally
considered to be domain names where every label follows the rules
in the "preferred name syntax", with the amendment that labels can
start with ASCII digits (this amendment comes from Section 2.1 of
[RFC1123]).
This might be a good point to describe the "preferred name syntax" of letters,
digits and hyphens.
Canonical name: A CNAME resource record "identifies its owner name
as an alias, and specifies the corresponding canonical name in the
RDATA section of the RR."
This might be a good point to introduce the concept of a CNAME chain. The
intention of a CNAME resource record is to give the canonical name, but the
purported “canonical name” may itself be an alias of some other “canonical
name”.
Public suffix: "A domain that is controlled by a public registry."
(Quoted from [RFC6265], Section 5.3) A common definition for this
term is a domain under which subdomains can be registered
I would say: “a domain under which subdomains can be registered by third
parties”.
Any domain can have subdomains registered. It’s the third-party aspect that
makes a public registry different.
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.
I think this is an example of where “name server” means “recursive resolver”.
3. DNS Response Codes
This lists NOERROR, FORMERR, SERVFAIL, etc. What about NOTAUTH?
RRset: A set of resource records with the same label, class and
type, but with different data.
I think this should say: A set of resource records with the same owner name...
Why state a wrong definition (saying “label”), and then add a clarification
correcting it?
Similarly, an imputed definition
of "resolution" might be "the answer received from resolving".
I would add that "resolution" might mean “the act of resolving”.
While strictly
the difference between these is that one of them sends queries to
another recursive server and the other does not
One of them? One of what? Which one sends queries to another recursive server,
and which does not?
Full resolver: This term is used in [RFC1035], but it is not defined
there. RFC 1123 defines a "full-service resolver" that may or may
not be what was intended by "full resolver" in [RFC1035]. This
term is not properly defined in any RFC.
So? What do we conclude from this?
Recursive query: A query with the Recursion Desired (RD) bit set to
1 in the header.(See Section 4.1.1 of [RFC1035].)
Missing space.
Iterative query: Synonym for non-recursive query that happens to be
a query in a series of recursive queries
I think you need to delete the word “recursive” here. “series of recursive
queries” should just be “series of queries”
the first server pursues the query for the client
I would say, “the first server pursues the query on behalf of the client”
Note that it is
possible for an authoritative server to respond to a query without
the parent zone delegating authority to that server.
Can you elaborate how?
Hidden master: A stealth server that is a primary server for zone
transfers. "In this arrangement, the master name server that
processes the updates is unavailable to general hosts on the
Internet; it is not listed in the NS RRset."
The mention of “updates” here appears out of the blue. Can you elaborate?
A hidden master can also be a secondary server itself.
I would say, “A hidden master for a zone can also be a secondary server for
that zone itself.”
Forwarding: The process of one server sending a DNS query with the
RD bit set to 1 to another server to resolve that query.
How about, “The process of one server sending a DNS query with the RD bit set
to 1 to another recursive resolver to resolve that query.”
That definition appears to suggest that forwarders
normally only query authoritative servers.
I would say, “normally only query authoritative servers, which would make them
recursive resolvers.”
Anycast: "The practice of making a particular service address
available in multiple, discrete, autonomous locations, such that
datagrams sent are routed to one of several available locations."
(Quoted from [RFC4786], Section 2)
State that anycast means that the same IP address routes to different locations.
Instance: "When anycast routing is used...
Instead of “Instance” I would say, “Anycast Instance”
Split DNS: "Where a corporate network serves up partly or completely
different DNS inside and outside its firewall.
I would say, “different DNS *views* inside and outside its firewall”.
* In-domain: an adjective to describe a name server whose name is
either subordinate to...
I would say, “whose name is either a subdomain of...”
* Sibling domain: a name server's name that is either subordinate
to or (rarely) the same as the zone origin and not subordinate
to or the same as the owner name of the NS resource records.
I found this confusing. How about:
* Sibling domain: a name server's name that is either a subdomain of
or (rarely) the same as the *parent* zone origin and not a subdomain of
or the same as the owner name of the *child* NS resource records.
And here:
"Out-of-bailiwick" is the antonym of in-bailiwick. An adjective
to describe a name server whose name is not subordinate to or the
same as the zone origin.
Does this mean “a name server whose name is not a subdomain of or the same as
the *parent* zone origin”?
Glue records for out-of-bailiwick name servers are useless.
I would add: “... are useless, and possibly fraudulent.”
It is noted that this definition might
inadvertently also include any NS records that appear in the zone
What does “inadvertently” mean? Inadvertently how?
Closest provable encloser: "The longest ancestor of a name that can
be proven to exist. Note that this is only different from the
Would it be informative to say, “that can be *cryptographically* proven to
exist” ?
Fast flux DNS: ... It is often used to deliver malware.
Is this the whole story? I think short TTLs are also used to achive load
balancing. The name “www.google.com” has a short TTL, but that’s not so that it
can deliver malware.
Reverse DNS, reverse lookup: "The process of mapping an address to a
I would add that this is *not* IQUERY.
During 2000, the abbreviation was
redesignated to 'Address and Routing Parameter Area' in the hope
of reducing confusion with the earlier network name."
This is mysterious and unenlightening. Please state what the earlier network
name was.
Please say, “the abbreviation was redesignated from 'xxxx' to 'Address and
Routing Parameter Area'”.
Otherwise, this text is just mysterious and confusing to the reader.
These terms are strictly ways of referring to the
relationship standing of two domains where one is a subdomain of
the other.
Maybe we should state explicitly that “subordinate” is a synonym for
“subdomain”?
Zone
enumeration is different from zone content guessing where the
guesser uses a large dictionary of possible labels
Can we elaborate on *how* it is different?
DNSSEC Policy (DP): A statement that "sets forth the security
requirements and standards to be implemented for a DNSSEC-signed
zone." (Quoted from [RFC6841], Section 2)
DNSSEC Practice Statement (DPS): "A practices disclosure document
that may support and be a supplemental document to the DNSSEC
Policy (if such exists), and it states how the management of a
given zone implements procedures and controls at a high level."
(Quoted from [RFC6841], Section 2)
I’m unclear on what these mean. Can we add more explanatory text?
These states are
defined in [RFC4033] and [RFC4035], although the two definitions
differ a bit.
Can we elaborate with more details about *how* these definitions differ?
Stuart Cheshire
_______________________________________________
DNSOP mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dnsop