draft-ietf-dnsext-rfc2672bis-dname-05.txt   draft-ietf-dnsext-rfc2672bis-dname-06.txt 
DNS Extensions Working Group S. Rose DNS Extensions Working Group S. Rose
Internet-Draft NIST Internet-Draft NIST
Intended status: Standards Track W. Wijngaards Intended status: Standards Track W. Wijngaards
Expires: March 28, 2008 NLnet Labs Expires: May 17, 2008 NLnet Labs
September 25, 2007 November 14, 2007
Update to DNAME Redirection in the DNS Update to DNAME Redirection in the DNS
draft-ietf-dnsext-rfc2672bis-dname-05 draft-ietf-dnsext-rfc2672bis-dname-06
Status of This Memo Status of This Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on March 28, 2008. This Internet-Draft will expire on May 17, 2008.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
The DNAME record provides redirection for a sub-tree of the domain The DNAME record provides redirection for a sub-tree of the domain
name tree in the DNS system. That is, all names that end with a name tree in the DNS system. That is, all names that end with a
particular suffix are redirected to another part of the DNS. This is particular suffix are redirected to another part of the DNS. This is
skipping to change at page 2, line 24 skipping to change at page 2, line 24
2. The DNAME Resource Record . . . . . . . . . . . . . . . . . . 3 2. The DNAME Resource Record . . . . . . . . . . . . . . . . . . 3
2.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. The DNAME Substitution . . . . . . . . . . . . . . . . . . 4 2.2. The DNAME Substitution . . . . . . . . . . . . . . . . . . 4
2.3. DNAME Apex not Redirected itself . . . . . . . . . . . . . 5 2.3. DNAME Apex not Redirected itself . . . . . . . . . . . . . 5
2.4. Names Next to and Below a DNAME Record . . . . . . . . . . 5 2.4. Names Next to and Below a DNAME Record . . . . . . . . . . 5
2.5. Compression of the DNAME record. . . . . . . . . . . . . . 6 2.5. Compression of the DNAME record. . . . . . . . . . . . . . 6
3. Processing . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Processing . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1. Wildcards . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1. Wildcards . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. CNAME synthesis . . . . . . . . . . . . . . . . . . . . . 6 3.2. CNAME synthesis . . . . . . . . . . . . . . . . . . . . . 7
3.3. Acceptance and Intermediate Storage . . . . . . . . . . . 7 3.3. Acceptance and Intermediate Storage . . . . . . . . . . . 7
3.4. Server algorithm . . . . . . . . . . . . . . . . . . . . . 7 3.4. Server algorithm . . . . . . . . . . . . . . . . . . . . . 8
4. DNAME Discussions in Other Documents . . . . . . . . . . . . . 9 4. DNAME Discussions in Other Documents . . . . . . . . . . . . . 10
5. Other Issues with DNAME . . . . . . . . . . . . . . . . . . . 11 5. Other Issues with DNAME . . . . . . . . . . . . . . . . . . . 11
5.1. MX, NS and PTR Records Must Point to Target of DNAME . . . 11 5.1. MX, NS and PTR Records Must Point to Target of DNAME . . . 11
5.2. Dynamic Update and DNAME . . . . . . . . . . . . . . . . . 11 5.2. Dynamic Update and DNAME . . . . . . . . . . . . . . . . . 11
5.3. DNSSEC and DNAME . . . . . . . . . . . . . . . . . . . . . 11 5.3. DNSSEC and DNAME . . . . . . . . . . . . . . . . . . . . . 11
5.3.1. DNAME bit in NSEC/NSEC3 type map . . . . . . . . . . . 11 5.3.1. DNAME bit in NSEC type map . . . . . . . . . . . . . . 11
5.3.2. Other issues with NSEC3 and DNAME . . . . . . . . . . 12 5.3.2. Validators Must Understand DNAME . . . . . . . . . . . 12
5.3.3. Validators Must Understand DNAME . . . . . . . . . . . 12 5.3.2.1. DNAME in Bitmap Causes Invalid Name Error . . . . 12
5.3.3.1. DNAME in Bitmap Causes Invalid Name Error . . . . 12 5.3.2.2. Valid Name Error Response Involving DNAME in
5.3.3.2. Valid Name Error Response Involving DNAME in
Bitmap . . . . . . . . . . . . . . . . . . . . . . 12 Bitmap . . . . . . . . . . . . . . . . . . . . . . 12
5.3.3.3. Response With Synthesized CNAME . . . . . . . . . 13 5.3.2.3. Response With Synthesized CNAME . . . . . . . . . 12
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 7. Security Considerations . . . . . . . . . . . . . . . . . . . 13
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
9.1. Normative References . . . . . . . . . . . . . . . . . . . 14 9.1. Normative References . . . . . . . . . . . . . . . . . . . 14
9.2. Informative References . . . . . . . . . . . . . . . . . . 15 9.2. Informative References . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
DNAME is a DNS Resource Record type. DNAME provides redirection from DNAME is a DNS Resource Record type. DNAME provides redirection from
a part of the DNS name tree to another part of the DNS name tree. a part of the DNS name tree to another part of the DNS name tree.
For example, given a query for foo.example.com and a DNAME from Take for example, looking through a zone (see RFC 1034 [RFC1034],
example.com to example.net, the query would be redirected to section 4.3.2, step 3) for the domain name "foo.example.com" and a
foo.example.net. With the same DNAME a query for foo.bar.example.com DNAME resource record is found at "example.com" indicating that all
would be redirected to foo.bar.example.net. queries under "example.com" be directed to "example.net". The lookup
process will return to step 1 with the new query name of
"foo.example.net". Had the query name been "www.foo.example.com" the
new query name would be "www.foo.example.net".
The DNAME RR is similar to the CNAME RR in that it provides The DNAME RR is similar to the CNAME RR in that it provides
redirection. The CNAME RR only provides redirection for exactly one redirection. The CNAME RR only provides redirection for exactly one
name while the DNAME RR provides redirection for all names in a sub- name while the DNAME RR provides redirection for all names in a sub-
tree of the DNS name tree. tree of the DNS name tree.
This document is an update to the original specification of DNAME in This document is an update to the original specification of DNAME in
RFC 2672 [RFC2672]. DNAME was conceived to help with the problem of RFC 2672 [RFC2672]. DNAME was conceived to help with the problem of
maintaining address-to-name mappings in a context of network maintaining address-to-name mappings in a context of network
renumbering. With a careful set-up, a renumbering event in the renumbering. With a careful set-up, a renumbering event in the
network causes no change to the authoritative server that has the network causes no change to the authoritative server that has the
address-to-name mappings. Examples in practice are classless reverse address-to-name mappings. Examples in practice are classless reverse
address space delegations and punycode alternates for domain spaces. address space delegations and punycode alternates for domain spaces.
Other usage of DNAME lies in redirection of name spaces. For Another usage of DNAME lies in redirection of name spaces. For
example, a zone administrator may want subtrees of the DNS to contain example, a zone administrator may want sub-trees of the DNS to
the same information. DNAME is also used for redirection of ENUM contain the same information. DNAME is also used for redirection of
domains to another maintaining party. ENUM domains to another maintaining party.
This update to DNAME does not change the wire format or the handling This update to DNAME does not change the wire format or the handling
of DNAME Resource Records by existing software. A new UD (Understand of DNAME Resource Records by existing software. A new UD (Understand
DNAME) bit in the EDNS flags field can be used to signal that CNAME Dname) bit in the EDNS flags field can be used to signal that CNAME
synthesis is not needed. Discussion is added on problems that may be synthesis is not needed. Discussion is added on problems that may be
encountered when using DNAME. encountered when using DNAME.
2. The DNAME Resource Record 2. The DNAME Resource Record
2.1. Format 2.1. Format
The DNAME RR has mnemonic DNAME and type code 39 (decimal). The DNAME RR has mnemonic DNAME and type code 39 (decimal).
The format of the DNAME record has not changed from the original The format of the DNAME record has not changed from the original
skipping to change at page 4, line 10 skipping to change at page 4, line 19
The format is not class-sensitive. All fields are required. The The format is not class-sensitive. All fields are required. The
RDATA field target is a domain name. The RDATA field target name RDATA field target is a domain name. The RDATA field target name
MUST be sent uncompressed [RFC3597]. MUST be sent uncompressed [RFC3597].
The DNAME RR causes type NS additional section processing. The DNAME RR causes type NS additional section processing.
2.2. The DNAME Substitution 2.2. The DNAME Substitution
DNAMEs cause a name substitution to happen to query names. This is DNAMEs cause a name substitution to happen to query names. This is
called the DNAME substitution. The suffix owner name of the DNAME is called the DNAME substitution. The portion of the QNAME ending with
replaced by the target of the DNAME. The owner name of the DNAME is the root label that matches the owner name of the DNAME RR is
not itself redirected, only domain names below the owner name are replaced with the contents of the DNAME RR's RDATA. The owner name
redirected. Only whole labels are replaced. A name is considered of the DNAME is not itself redirected, only domain names below the
below the owner name if it has more labels than the owner name, and owner name are redirected. Only whole labels are replaced. A name
the labels of the owner name appear as the suffix of the name. See is considered below the owner name if it has more labels than the
the table of examples for common cases and corner cases. owner name, and the labels of the owner name appear at the end of the
query name. See the table of examples for common cases and corner
cases.
In the table below, the QNAME refers to the query name. The owner is In the table below, the QNAME refers to the query name. The owner is
the DNAME owner domain name, and the target refers to the target of the DNAME owner domain name, and the target refers to the target of
the DNAME record. The result is the resulting name after performing the DNAME record. The result is the resulting name after performing
the DNAME substitution on the query name. "no match" means that the the DNAME substitution on the query name. "no match" means that the
query did not match the DNAME and thus no substitution is performed query did not match the DNAME and thus no substitution is performed
and a possible error message is returned (if no other result is and a possible error message is returned (if no other result is
possible). In the examples below, 'cyc' and 'shortloop' contain possible). In the examples below, 'cyc' and 'shortloop' contain
loops. loops.
skipping to change at page 4, line 44 skipping to change at page 5, line 7
foo.example.com. example.com. example.net. foo.example.net. foo.example.com. example.com. example.net. foo.example.net.
a.x.example.com. x.example.com. example.net. a.example.net. a.x.example.com. x.example.com. example.net. a.example.net.
a.example.com. example.com. y.example.net. a.y.example.net. a.example.com. example.com. y.example.net. a.y.example.net.
cyc.example.com. example.com. example.com. cyc.example.com. cyc.example.com. example.com. example.com. cyc.example.com.
cyc.example.com. example.com. c.example.com. cyc.c.example.com. cyc.example.com. example.com. c.example.com. cyc.c.example.com.
shortloop.x.x. x. . shortloop.x. shortloop.x.x. x. . shortloop.x.
shortloop.x. x. . shortloop. shortloop.x. x. . shortloop.
Table 1. DNAME Substitution Examples. Table 1. DNAME Substitution Examples.
It is possible for DNAMEs to form loops. Just like CNAMEs can form It is possible for DNAMEs to form loops, just as CNAMEs can form
loops. DNAMEs and CNAMEs can chain together to form loops. A single loops. DNAMEs and CNAMEs can chain together to form loops. A single
corner case DNAME can form a loop. Resolvers and servers should be corner case DNAME can form a loop. Resolvers and servers should be
cautious in devoting resources to a query, but be aware that fairly cautious in devoting resources to a query, but be aware that fairly
long chains of DNAMEs may be valid. Zone content administrators long chains of DNAMEs may be valid. Zone content administrators
should take care to insure that there are no loops that could occur should take care to insure that there are no loops that could occur
when using DNAME or DNAME/CNAME redirection. when using DNAME or DNAME/CNAME redirection.
The domain name can get too long during substitution. For example, The domain name can get too long during substitution. For example,
suppose the target name of the DNAME RR is 250 octets in length suppose the target name of the DNAME RR is 250 octets in length
(multiple labels), if an incoming QNAME that has a first label over 5 (multiple labels), if an incoming QNAME that has a first label over 5
skipping to change at page 5, line 38 skipping to change at page 5, line 50
not allowed at the parent side of a delegation point but are allowed not allowed at the parent side of a delegation point but are allowed
at a zone apex. at a zone apex.
2.4. Names Next to and Below a DNAME Record 2.4. Names Next to and Below a DNAME Record
Other resource records MUST NOT exist below the owner of a DNAME RR. Other resource records MUST NOT exist below the owner of a DNAME RR.
To get the contents for names subordinate to that owner, the DNAME To get the contents for names subordinate to that owner, the DNAME
redirection must be invoked and the resulting target queried. A redirection must be invoked and the resulting target queried. A
server SHOULD refuse to load a zone that has data below a domain name server SHOULD refuse to load a zone that has data below a domain name
owning a DNAME RR. Also a server SHOULD refuse to load a zone owning a DNAME RR. Also a server SHOULD refuse to load a zone
subordinate to the owner of a DNAME record in the ancestor zone. subordinate to the owner of a DNAME record in the ancestor zone. See
Section 5.2 for further restrictions related to dynamic update.
DNAME is a singleton type, meaning only one DNAME is allowed per DNAME is a singleton type, meaning only one DNAME is allowed per
name. The owner name of a DNAME can only have one DNAME RR, and no name. The owner name of a DNAME can only have one DNAME RR, and no
CNAME RRs can exist at that name. These rules make sure that for a CNAME RRs can exist at that name. These rules make sure that for a
single domain name only one redirection exists, and thus no confusion single domain name only one redirection exists, and thus no confusion
which one to follow. A server SHOULD refuse to load a zone that which one to follow. A server SHOULD refuse to load a zone that
violates these rules. violates these rules.
The domain name that owns a DNAME record is allowed to have other The domain name that owns a DNAME record is allowed to have other
resource record types at that domain name, except DNAMEs or CNAMEs. resource record types at that domain name, except DNAMEs or CNAMEs.
skipping to change at page 6, line 35 skipping to change at page 6, line 48
The use of DNAME in conjunction with wildcards is discouraged The use of DNAME in conjunction with wildcards is discouraged
[RFC4592]. Thus records of the form "*.example.com DNAME [RFC4592]. Thus records of the form "*.example.com DNAME
example.net" SHOULD NOT be used. example.net" SHOULD NOT be used.
The interaction between the expansion of the wildcard and the The interaction between the expansion of the wildcard and the
redirection of the DNAME is non-deterministic. Because the redirection of the DNAME is non-deterministic. Because the
processing is non-deterministic, DNSSEC validating resolvers may not processing is non-deterministic, DNSSEC validating resolvers may not
be able to validate a wildcarded DNAME. be able to validate a wildcarded DNAME.
A server MAY give a warning that the behavior is unspecified if such A server MAY give a warning that the behavior is unspecified if such
a wildcarded DNAME is loaded. a wildcarded DNAME is loaded. The server MAY refuse it, refuse to
load or refuse dynamic update.
3.2. CNAME synthesis 3.2. CNAME synthesis
On the server side, the DNAME RR record is always included in the On the server side, the DNAME RR record is always included in the
answer section of a query. A CNAME RR record with TTL 0 is answer section of a query, when one is encountered. A CNAME RR
synthesized for old resolvers, specifically for the QNAME in the record with TTL equal to the corresponding DNAME RR is synthesized
query. DNSSEC [RFC4033], [RFC4034], [RFC4035] says that the for old resolvers, specifically for the QNAME in the query. DNSSEC
synthesized CNAME does not have to be signed. The DNAME has an RRSIG [RFC4033], [RFC4034], [RFC4035] says that the synthesized CNAME does
and a validating resolver can check the CNAME against the DNAME not have to be signed. The DNAME has an RRSIG and a validating
record and validate the DNAME record. resolver can check the CNAME against the DNAME record and validate
the DNAME record.
It does not make sense for the authoritative server to follow the It does not make sense for the authoritative server to follow the
chain of DNAMEs, CNAMEs and wildcards outside of the zone of the chain of DNAMEs, CNAMEs and wildcards outside of the zone of the
query, as modern resolvers will remove out-of-zone information from query, as some resolver implementations will remove out-of-zone
the answer. information from the answer.
Resolvers MUST be able to handle a synthesized CNAME TTL of zero or Resolvers MUST be able to handle a synthesized CNAME TTL of zero or
equal to the TTL of the corresponding DNAME record. The TTL of zero equal to the TTL of the corresponding DNAME record. The TTL of zero
means that the CNAME can be discarded immediately after processing means that the CNAME can be discarded immediately after processing
the answer. DNAME aware resolvers can set the Understand-DNAME (UD the answer. DNAME aware resolvers can set the Understand-DNAME (UD
bit) to receive a response with only the DNAME RR and no synthesized bit) to receive a response with only the DNAME RR and no synthesized
CNAMEs. CNAMEs.
The UD bit is part of the EDNS extended RCODE and Flags field. It is The UD bit is part of the EDNS extended RCODE and Flags field. It is
used to omit server processing, transmission and resolver processing used to omit server processing, transmission and resolver processing
skipping to change at page 7, line 34 skipping to change at page 7, line 52
2: |DO|UD| Z | 2: |DO|UD| Z |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Servers MUST be able to answer a query for a synthesized CNAME. An Servers MUST be able to answer a query for a synthesized CNAME. An
answer containing the synthesized CNAME cannot contain an error answer containing the synthesized CNAME cannot contain an error
(since a CNAME has been followed), as per RFC 1034 CNAME rules. (since a CNAME has been followed), as per RFC 1034 CNAME rules.
3.3. Acceptance and Intermediate Storage 3.3. Acceptance and Intermediate Storage
DNS Caches MUST NOT allow data to be cached below the owner of a DNS Caches MUST NOT allow data to be cached below the owner of a
DNAME RR, except CNAME records or perhaps NSEC3 records and their DNAME RR, except CNAME records and their signatures. CNAME records
signatures. CNAME records below the owner of a DNAME MUST be re- below the owner of a DNAME MUST be re-synthesized from the DNAME, or
synthesized from the DNAME, or checked against the DNAME record checked against the DNAME record before sending them out. This
before sending them out. This improves consistency of the DNAME and improves consistency of the DNAME and CNAME records below the owner
CNAME records below the owner of the DNAME. of the DNAME.
DNS Caches MUST perform CNAME synthesis on behalf of DNAME-ignorant DNS Caches MUST perform CNAME synthesis on behalf of DNAME-ignorant
clients. A DNS Cache that understands DNAMEs can send out queries on clients. A DNS Cache that understands DNAMEs can send out queries on
behalf of clients with the UD bit set. After receiving the answers behalf of clients with the UD bit set. After receiving the answers
the DNS Cache sends replies to DNAME ignorant clients that include the DNS Cache sends replies to DNAME ignorant clients that include
DNAMEs and synthesized CNAMEs. DNAMEs and synthesized CNAMEs.
3.4. Server algorithm 3.4. Server algorithm
Below the server algorithm, which appeared in RFC 2672 Section 4.1, Below the server algorithm, which appeared in RFC 2672 Section 4.1,
skipping to change at page 8, line 32 skipping to change at page 8, line 47
response, change QNAME to the canonical name in the CNAME RR, response, change QNAME to the canonical name in the CNAME RR,
and go back to step 1. and go back to step 1.
Otherwise, copy all RRs which match QTYPE into the answer Otherwise, copy all RRs which match QTYPE into the answer
section and go to step 6. section and go to step 6.
B. If a match would take us out of the authoritative data, we B. If a match would take us out of the authoritative data, we
have a referral. This happens when we encounter a node with have a referral. This happens when we encounter a node with
NS RRs marking cuts along the bottom of a zone. NS RRs marking cuts along the bottom of a zone.
Copy the NS RRs for the subzone into the authority section of Copy the NS RRs for the sub-zone into the authority section
the reply. Put whatever addresses are available into the of the reply. Put whatever addresses are available into the
additional section, using glue RRs if the addresses are not additional section, using glue RRs if the addresses are not
available from authoritative data or the cache. Go to step available from authoritative data or the cache. Go to step
4. 4.
C. If at some label, a match is impossible (i.e., the C. If at some label, a match is impossible (i.e., the
corresponding label does not exist), look to see whether the corresponding label does not exist), look to see whether the
last label matched has a DNAME record. last label matched has a DNAME record.
If a DNAME record exists at that point, copy that record into If a DNAME record exists at that point, copy that record into
the answer section. If substitution of its <target> for its the answer section. If substitution of its <target> for its
skipping to change at page 11, line 42 skipping to change at page 11, line 49
Zones containing a DNAME RR MUST NOT accept a dynamic update message Zones containing a DNAME RR MUST NOT accept a dynamic update message
that would add a record or delegation with a name existing under a that would add a record or delegation with a name existing under a
DNAME. DNAME.
A server MUST return an error message with RCODE=REFUSED [RFC2136] in A server MUST return an error message with RCODE=REFUSED [RFC2136] in
response to a dynamic update message that would add a resource record response to a dynamic update message that would add a resource record
under a DNAME in the zone. under a DNAME in the zone.
5.3. DNSSEC and DNAME 5.3. DNSSEC and DNAME
5.3.1. DNAME bit in NSEC/NSEC3 type map 5.3.1. DNAME bit in NSEC type map
When a validator checks the NSEC/NSEC3 RRs returned on a name error When a validator checks the NSEC RRs returned on a name error
response, it SHOULD check that the DNAME bit is not set. If the response, it SHOULD check that the DNAME bit is not set. If the
DNAME bit is set then the DNAME substitution should have been done, DNAME bit is set then the DNAME substitution should have been done,
but has not. but has not.
5.3.2. Other issues with NSEC3 and DNAME 5.3.2. Validators Must Understand DNAME
NSEC3 records and their signatures are allowed to exist below the
owner name of a DNAME RR. This is because of the nature of NSEC3 RRs
in DNSSEC, which creates hashed owner names that exist below the apex
name of the zone. This is an exception to the rule that there MUST
NOT be any other RRs under the owner name of a DNAME RR, if the DNAME
RR is owned by the zone apex domain name.
Queries for NSEC3 owner names are redirected as if there were no such
NSEC3 present.
There is no significant extra hashing cost for NSEC3 signed zones
when answering queries with DNAME substitution.
5.3.3. Validators Must Understand DNAME
Examples of why DNSSEC validators MUST understand DNAME. Examples of why DNSSEC validators MUST understand DNAME.
5.3.3.1. DNAME in Bitmap Causes Invalid Name Error 5.3.2.1. DNAME in Bitmap Causes Invalid Name Error
;; Header: QR AA DO RCODE=3(NXDOMAIN) ;; Header: QR AA DO RCODE=3(NXDOMAIN)
;; Question ;; Question
foo.bar.example.com. IN A foo.bar.example.com. IN A
;; Answer ;; Answer
bar.example.com. NSEC dub.example.com. A DNAME bar.example.com. NSEC dub.example.com. A DNAME
bar.example.com. RRSIG NSEC [valid signature] bar.example.com. RRSIG NSEC [valid signature]
If this is the response, then only by understanding that the DNAME If this is the response, then only by understanding that the DNAME
bit means that foo.bar.example.com needed to have been redirected by bit means that foo.bar.example.com needed to have been redirected by
the DNAME, the validator can see that it is a BOGUS reply from an the DNAME, the validator can see that it is a BOGUS reply from an
attacker that collated existing records from the DNS to create a attacker that collated existing records from the DNS to create a
confusing reply. confusing reply.
If the DNAME bit had not been set in the NSEC record above then the If the DNAME bit had not been set in the NSEC record above then the
answer would have validated as a correct name error response. answer would have validated as a correct name error response.
5.3.3.2. Valid Name Error Response Involving DNAME in Bitmap 5.3.2.2. Valid Name Error Response Involving DNAME in Bitmap
;; Header: QR AA DO RCODE=3(NXDOMAIN) ;; Header: QR AA DO RCODE=3(NXDOMAIN)
;; Question ;; Question
cee.example.com. IN A cee.example.com. IN A
;; Answer ;; Answer
bar.example.com. NSEC dub.example.com. A DNAME bar.example.com. NSEC dub.example.com. A DNAME
bar.example.com. RRSIG NSEC [valid signature] bar.example.com. RRSIG NSEC [valid signature]
If the query had been cee.example.com as shown above, then this This reply has the same NSEC records as the example above, but with
answer would have been validated, because 'cee' does not get this query name (cee.example.com), the answer is validated, because
redirected by the DNAME at 'bar'. 'cee' does not get redirected by the DNAME at 'bar'.
5.3.3.3. Response With Synthesized CNAME
5.3.2.3. Response With Synthesized CNAME
;; Header: QR AA DO RCODE=0(NOERROR) ;; Header: QR AA DO RCODE=0(NOERROR)
;; Question ;; Question
foo.bar.example.com. IN A foo.bar.example.com. IN A
;; Answer ;; Answer
bar.example.com. DNAME bar.example.net. bar.example.com. DNAME bar.example.net.
bar.example.com. RRSIG DNAME [valid signature] bar.example.com. RRSIG DNAME [valid signature]
foo.bar.example.com. CNAME foo.bar.example.net. foo.bar.example.com. CNAME foo.bar.example.net.
The answer shown above has the synthesized CNAME included. However, The answer shown above has the synthesized CNAME included. However,
the CNAME has no signature, since the server does not sign online (it the CNAME has no signature, since the server does not sign online (it
skipping to change at page 14, line 13 skipping to change at page 13, line 47
redirection zone's security status. redirection zone's security status.
If a validating resolver accepts wildcarded DNAMEs, this creates If a validating resolver accepts wildcarded DNAMEs, this creates
security issues. Since the processing of a wildcarded DNAME is non- security issues. Since the processing of a wildcarded DNAME is non-
deterministic and the CNAME that was substituted by the server has no deterministic and the CNAME that was substituted by the server has no
signature, the resolver may choose a different result than what the signature, the resolver may choose a different result than what the
server meant, and consequently end up at the wrong destination. Use server meant, and consequently end up at the wrong destination. Use
of wildcarded DNAMEs is discouraged in any case [RFC4592]. of wildcarded DNAMEs is discouraged in any case [RFC4592].
A validating resolver MUST understand DNAME, according to [RFC4034]. A validating resolver MUST understand DNAME, according to [RFC4034].
In Section 5.3.3 examples are given that illustrate this need. These In Section 5.3.2 examples are given that illustrate this need.
examples are shown with NSEC records, but similar cases exist for
NSEC3.
8. Acknowledgments 8. Acknowledgments
The authors of this draft would like to acknowledge Matt Larson for The authors of this draft would like to acknowledge Matt Larson for
beginning this effort to address the issues related to the DNAME RR beginning this effort to address the issues related to the DNAME RR
type. type.
9. References 9. References
9.1. Normative References 9.1. Normative References
 End of changes. 28 change blocks. 
76 lines changed or deleted 66 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/