This turned out to be quite long... I hope it is useful!
An alphabetical index would be helpful, as would making the formatting
of paragraphs more distinct depending on whether they start with a
definition or not (e.g. hangText in xml2rfc markup). It would also be
good to avoid definitions in the middle of paragraphs unless they are
cross-referenced from a headword (except perhaps for field or flag
names).
* Section 2
** FQDN
For a clear definition you should quote RFC 1206:
A Fully Qualified Domain Name (FQDN) is a domain name that
includes all higher level domains relevant to the entity named.
The definition should say that the reason for using the term FQDN is to
clearly distinguish them from partially-qualified or unqualified names,
where some or all of the trailing labels are omitted.
I think you should include the terms "partial domain name" (from RFC
1535) with the definition "not an FQDN".
For trailing dots you should use the term "rooted FQDN" and quote the
definition from RFC 1535:
An absolute "rooted" FQDN is of the format {name}{.}
It is worth mentioning the caveat that some protocols (e.g. SMTP and 822)
do not allow you to include a trailing dot.
** Public suffix
The example of .com.au vs .au is amusing given this :-)
http://domainincite.com/18367-australia-considers-dumping-the-com
** missing definitions
Alias -- The owner of a CNAME RR, or a subdomain of the owner of a
DNAME RR [RFC 6672]. See also "canonical name".
Canonical name -- A CNAME RR identifies its owner name as an
alias, and specifies the corresponding canonical name in the RDATA
section of the RR. (RFC 1034 section 3.6.2) This usage of the word
"canonical" is related to the mathematical concept of "canonical
form".
CNAME -- It is traditional to refer to the owner of a CNAME record
as "a CNAME". This is unfortunate, as "CNAME" is an abbreviation
of "canonical name", and the owner of a CNAME record is an alias
not a canonical name. (RFC 2181 section 10.1.1)
* Section 3
I suggest this section should be expanded to cover "DNS messages and
message sequences", the general theme being higher-level properties of
messages. The idea is that the various client and server roles will be
clearer after their interactions have been set out. (It would probably
also make sense to swap the order of section 3 and 4, so the
progression is small -> big, names - records - messages - servers.)
I have some suggested definitions below, some of which need moving
from other sections in the current draft.
** NXRRSET
Correction: NXRRSET is not a synonym for NODATA: NXRRSET is a different
and specific response code used with DNS UPDATE (RFC 2136). I think this
document should say that treating them the same is a misuse of
terminology and liable to cause confusion.
** Negative response
The current definition implies that all negative responses are indicated
by the RCODE, but that isn't the case for NODATA. I suggest:
Negative response -- A response which indicates that a
particular RRset does not exist in the DNS or whose RCODE indicates the
nameserver cannot answer. Sections 2 and 7 of [RFC2308] describes the
types of negative responses in detail.
Text mostly from RFC 2308. I say "cannot answer" as a way to cover
REFUSED as well as SERVFAIL.
** NODATA
The following sentences are a bit misleading because they aren't
enough to identify NOERROR responses.
A NODATA response is a combination of an
RCODE of 0 (NOERROR) and an Answer section that is empty. In
addition, NODATA responses from authoritative servers have the
authoritative answer (AA bit) set to 1 and include an SOA record.
I suggest:
NODATA -- a pseudo RCODE which indicates that the name is valid,
for the given class, but are no records of the given type. (Quoted
from [RFC 2308] section 1.) NODATA is indicated by an answer with
the RCODE set to NOERROR and no relevant answers in the answer
section. The authority section will contain an SOA record, or there
will be no NS records there. (Quoted from [RFC 2308] section 2.2.)
(Referrals have a similar format to NODATA replies; RFC 2308
explains how to distinguish them.)
** Referral
Move here from section 6. I think of referrals as a type of DNS reply
(as in RFC 2308) so it seems wrong to have this definition in a
section about zones. I also think referrals are the whole reply, not
just part of it as the current definition says. And it seems to be a
bit confused - the discussion about authoritative vs non-authoritative
data seems redundant wrt the definitions of authoritative data and
delegations and somewhat irrelevant to the question of what a referral
is.
It's hard to find a succinct definition in the existing RFCs. My best
try is as follows. (Three key characteristics of referrals each with a
quote and a wee bit of clarification.)
Referral -- A non-recursive response contains an error, the answer,
or a referral to some other server "closer" to the answer. (RFC
1034 section 4.3.1) That is, a referral occurs as part of the
iterative resolution process.
When searching for an answer in its authoritative data, a referral
is found when the name server encounters a node with NS RRs marking
cuts along the bottom of a zone. (RFC 1034 section 4.3.2) That is,
a referral contains a delegation NS RRset.
Like NODATA, a referral is an answer with the RCODE set to NOERROR
and no relevant answers in the answer section. It is possible to
distinguish between a NODATA and a referral response by the
presence of a SOA record in the authority section or the absence of
NS records in the authority section. (Quoted from [RFC 2308]
section 2.2.)
Historically, many authoritative servers answered with a referral
to the root zone when queried for a name for which they were not
authoritative, but this practice has declined.
Regarding referrals as part of an answer, it might be helpful to add:
Implicit referral -- An implicit referral is characterised by NS
records in the authority section referring the resolver towards a
authoritative source. All answers coming from the cache have an
implicit referral built into the answer. This enables the resolver
to locate an authoritative source. ([RFC 2308] section 6.) The NS
RRset in an implicit referral can come from a zone apex or a
delegation.
** Zone transfer
Move here from section 5, since zone transfers are messages not servers.
Needs to cite RFC 5936 and RFC 1995. I suggest:
Zone transfer -- When changes are made to a zone, they must be
distributed to all of the zone's name servers. While this
distribution can be accomplished using FTP or some other ad hoc
procedure, the preferred method is the zone transfer part of the
DNS protocol. (RFC 1034 section 4.3.5) Authoritative Transfer
(AXFR) is described in RFC 5936 and Incremental Transfer (IXFR) is
described in RFC 1995.
** more definitions
Recursive query -- A query with the Recursion Desired bit set in
the header. (RD=1) (See RFC 1035 section 4.1.1) If recursive
service is available and requested via the RD bit in the query, the
server uses its resolver to answer the query. (RFC 1034 section 4.3.2)
Non-recursive query -- A query with the Recursion Desired bit unset
in the header. (RD=0) A server can answer non-recursive queries
using only local information: the response contains an error, the
answer, or a referral to some other server "closer" to the answer.
(RFC 1034 section 4.3.1)
Iterative query -- Synonym for non-recursive query. This term is
used in a number of RFCs though never explicitly defined; see for
instance RFC 4697.
Resolution -- The process of obtaining an answer to a query from
one or more name servers, which may be iterative or recursive or
some mixture of the two.
Iterative resolution -- A name server may be presented with a query
that can only be answered by some other server. The two general
approaches to dealing with this problem are "recursive", in which
the first server pursues the query for the client at another
server, and "iterative", in which the server refers the client to
another server and lets the client pursue the query. (RFC 1034 section 2.3)
In iterative resolution, the client repeatedly makes non-recursive
queries and follows referrals and/or aliases. The iterative
resolution algorithm is described in RFC 1034 section 5.3.3.
Recursive resolution -- The simplest mode for the client is
recursive, since in this mode the name server acts in the role of a
resolver and returns either an error or the answer, but never
referrals. Recursive service is helpful for a relatively simple
requester that lacks the ability to use anything other than a
direct answer to the question. (RFC 1034 section 4.3.1)
See also "iterative resolution".
* Section 4
** EDNS
There is some single/plural confusion here. I suggest:
EDNS -- The extension mechanisms for DNS, defined in [RFC6891].
Sometimes called "EDNS0" or "EDNS(0)" to indicate the version number.
EDNS allows DNS clients and servers to specify message sizes larger than
the original 512 octet limit, to expand the response code space, and
to potentially carry additional options that affect the handling of a
DNS query.
* Section 5
** Resolver
Resolver -- A program that extracts information from name servers in
response to client requests. (Quoted from [RFC1034], section 2.4) It
is a program that interfaces user programs to domain name servers.
Where does that sentence come from? It isn't part of the following
quote, and I don't think it adds anything to the preceding quote.
The resolver is located on the same machine as the program that
requests the resolver's services. (Quoted from [RFC1034], section
5.1)
I think it's worth including the rest of that sentence:
, but it may need to consult name servers on other hosts.
You should be able to drop the sentences about resolution if you adopt
my suggestions for section 3.
** Iterative mode
drop
** Recursive mode
I suggest replacing with:
Recursive server -- The recursion available, or RA bit, is set or
cleared by a recursive server in all responses. The bit is true if
the name server is willing to provide recursive service for the
client. (RFC 1034 section 4.1.1) A recursive server may be thought
of as having a name server side (which is what answers the query)
and a resolver side (which performs the resolution function).
Recursive client -- A client that sends recursive queries, such as
a stub resolver.
Recursive resolver -- This term is ambiguous and best avoided. It
can mean either 1. A recursive server; or 2. A recursive client. To
make this more confusing, recursive servers commonly perform
iterative resolution.
** Full-service resolver
Does this imply that the resolver is also a recursive server, or just
that it implements the cache and client/query side? The RFC 1034 model
implies resolvers are client-only, and RFC 1123 doesn't explicitly
require the server side.
** Authoritative server
RFC 2182 has a really nice definition:
Authoritative Server -- A server that knows the content of a DNS
zone from local knowledge, and thus can answer queries about that
zone without needing to query other servers. (RFC 2182 section 2)
This is also good:
The name server [sets the Authoritative Answer (AA) bit in] its
responses to queries so that the requester can tell whether the
response comes from authoritative data or not. (RFC 1034 section
4.1)
** Hidden master
Needs a headword of its own. The current definition isn't quite right
because it implies the hidden master is a slave, whereas it is often the
primary master.
I suggest:
Stealth server -- This is the same as a slave server except that it
is not listed in an NS resource record for the zone. (Quoted from
[RFC1996], section 2.1) See also "hidden master".
Hidden master -- 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.
(Quoted from [RFC 6781] section 3.4.3) The predecessor [RFC 4641]
says the hidden master's name appears in the SOA RRs MNAME field,
though in some setups it does not appear in the public DNS at all.
** Zone transfer
Move to section 3.
** Open resolver
Worth citing openresolverproject.org ?
** view
I don't know of servers that do per-QTYPE views. I suggest:
Typically,
views differ by the source IP address of a query, but can also be
based on the destination IP address, the query class (such as
CHAOS), whether or not it is recursive, and so on.
** Child-centric resolver
This definition seems incomplete to me. The resolvers I am familiar
with change which NS RRset they serve depending on whether or not NS
records have been explicitly queried for.
Also [citation needed] ... the term isn't used in
draft-vixie-dnsext-resimprove which discussed this kind of issue,
so is it a prominent enough term to include here?
* Section 6
** Origin
Meaning 1 has a pressy nice definition in RFC 2181:
The domain name that appears at the top of a zone (just below the cut
that separates the zone from its parent) is called the zone's
"origin". The name of the zone is the same as the name of the domain
at the zone's origin.
** Zone cut
I think this text from RFC 2181 is a definition:
Zones are delimited by "zone cuts". Each zone cut separates a
"child" zone (below the cut) from a "parent" zone (above the cut).
** Apex
Probably worth noting that RFC 1034 calls this the "top node of the zone",
but "apex" is now the preferred term.
** Delegation
The current definition is the verb form. There is also a noun form, e.g.
RFC 4035:
the parental side of a zone cut (that is, at a delegation point)
RFC 1035:
... the RRs defining a delegation ...
I suggest:
Delegation -- A delegation point is the parental side of a zone cut. It
is defined by an NS RRset indicating the servers that host the child zone,
and may have associated glue, DS, and other DNSSEC records.
"Delegation" can also be a verb describing the process of introducing a
zone cut.
** Referral
Move to section 3 - see above.
** Glue
I suggest tweaking the definition to make it clearer that "the servers"
are name servers in subzones (since the quote omits preceding sentences
from RFC 1034 that "the servers" refers to):
Glue records -- Resource records which are not part of the
authoritative data [of the zone], and are address RRs for
[name servers in subzones].
** Authoritative data
This sentence is wrong:
It is noted that this definition might inadvertently also
include any NS records that appear in the zone, even those that might
not truly be authoritative because there are identical NS RRs below
the zone cut.
In RFC 1034, zone cuts are clearly defined to occur between labels, above
each delegation point, so it is correct to define authoritative data as
being above the zone cut, and this unambiguously excludes delegation NS
RRsets.
With the DNSSEC definition of zone cut which goes through the middle of
the delegation point, you can argue (though it is a bit subtle) that the
NSEC and DS RRsets are above the zone cut and the non-authoritative
delegation NS RRset (and any glue) are below the zone cut.
So I suggest:
Authoritative data -- All of the RRs attached to all of the nodes
from the top node of the zone down to leaf nodes or nodes above cuts
around the bottom edge of the zone. (Quoted from Section 4.2.1 of
[RFC1034]) This definition excludes any delegation NS RRsets and glue
records. RFC 4035 section 2.6 updates the original DNS specification to allow
NSEC and DS RR types at the parent side of a zone cut. These RRsets
are authoritative for the parent when they appear at the parent side
of a zone cut. RFC 4035 section 2.2 says that delegation NS RRsets and
glue are not signed, consistent with them not being authoritative data.
** Empty non-terminals
Should cite RFC 4592 section 2.2.2 which has a very nice expanded
definition.
** Delegation-centric
Probably worth citing RFC 5155 which uses the term without
defining it.
Did we decide whether or not to include a definition of "delegation-only"?
The announcement for BIND 9.2.2-P2 which introduced the feature has a
pretty good definition.
https://lists.isc.org/pipermail/bind-announce/2003-September/000120.html
Delegation-only zone -- a zone which is limited to containing NS
RRs for subdomains, but no other data outside its apex (for example,
its SOA RR and apex NS RRset).
** Fast flux
Should cite RFC 6561 section 1.1.5
* Section 7
I suggest adding this definition:
WHOIS -- a protocol specified in RFC 3912 often used for querying
registry databases.
* Section 8
I suggest adding this definition:
Secure Entry Point (SEP) -- a DNSKEY flag bit which can be used to
distinguish between keys that are intended to be pointed to
by parental DS RRs or configured as a trust anchor. It is suggested
that the SEP flag be set on keys that are used as KSKs and not on keys
that are used as ZSKs. [RFC 6781 section 3.2.3]
I suggest reformarring the last few sentences as follows, and using a
quote from RFC 6781:
CSK -- In cases where the differentiation between the KSK and ZSK is not
made,
i.e., where keys have the role of both KSK and ZSK, we talk about a
Single-Type Signing Scheme. [RFC 6781] This is sometimes called a
"combined signing key" or CSK. It is operational practice, not
protocol, that determines whether a particular key is a ZSK, a KSK,
or a CSK.
Tony.
--
f.anthony.n.finch <[email protected]> http://dotat.at/
Trafalgar: Variable 4, becoming southeasterly 5 to 7 in west. Moderate or
rough, becoming very rough later in west. Rain later. Good, occasionally poor
later.
_______________________________________________
DNSOP mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dnsop