DNS Extensions Working Group                                     S. Rose
Internet-Draft                                            VeriSign, Inc.
Intended status: Standards Track                           W. Wijngaards
Expires: March 29, 2007                                       NLnet Labs
                                                      September 25, 2006


                      Update to DNAME Redirection
                 draft-ietf-dnsext-rfc2672bis-dname-00

Status of This Memo

   By submitting this Internet-Draft, each author represents that any
   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
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on March 29, 2007.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   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
   particular suffix are redirected to another part of the DNS.  Changes
   to the DNS protocol since DNAME's introduction has lead to a need to
   clarify several issues in the DNAME specification.  These issues are
   discussed in this document.




Rose & Wijngaards        Expires March 29, 2007                 [Page 1]


Internet-Draft              DNAME Redirection             September 2006


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3

   2.  The DNAME Resource Record . . . . . . . . . . . . . . . . . . . 3

   3.  DNAME according to RFC 2672 . . . . . . . . . . . . . . . . . . 4
     3.1.  A DNAME in a Zone . . . . . . . . . . . . . . . . . . . . . 4
     3.2.  DNAME in Responses  . . . . . . . . . . . . . . . . . . . . 4
     3.3.  DNAME Discussions in Other Documents  . . . . . . . . . . . 5

   4.  Issues with DNAME . . . . . . . . . . . . . . . . . . . . . . . 5
     4.1.  DNAME as Delegation Tool  . . . . . . . . . . . . . . . . . 5
     4.2.  DNAME Apex is not Redirected Itself . . . . . . . . . . . . 5
     4.3.  DNAME is Always Included in Outgoing Packets. . . . . . . . 6
     4.4.  MX and NS Records Require that the DNAME in their
           RDATA is Canonical  . . . . . . . . . . . . . . . . . . . . 6
     4.5.  DNSSEC  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
     4.6.  Signaling of DNAME Understanding  . . . . . . . . . . . . . 6
     4.7.  A DNAME is not a Zone-cut . . . . . . . . . . . . . . . . . 6
     4.8.  DNAME and CIDR Blocks in in-addr.arpa . . . . . . . . . . . 6
     4.9.  Name Compression in RDATA . . . . . . . . . . . . . . . . . 6
     4.10. Synthesized CNAME TTL=0 . . . . . . . . . . . . . . . . . . 7
     4.11. Wildcarded DNAME  . . . . . . . . . . . . . . . . . . . . . 7
     4.12. NSEC3 and DNAME . . . . . . . . . . . . . . . . . . . . . . 7
     4.13. PTR Records and DNAME . . . . . . . . . . . . . . . . . . . 7
     4.14. Small Corner Cases  . . . . . . . . . . . . . . . . . . . . 7

   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8

   6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 8

   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 8

   8.  Normative References  . . . . . . . . . . . . . . . . . . . . . 8
















Rose & Wijngaards        Expires March 29, 2007                 [Page 2]


Internet-Draft              DNAME Redirection             September 2006


1.  Introduction

   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.

   For example, given a query for foo.example.com and a DNAME from
   example.com to example.net, the query would be redirected to
   foo.example.net.  With the same DNAME a query for foo.bar.example.com
   is redirected to foo.bar.example.net.

   The DNAME RR is similar to the CNAME RR in that it provides
   redirection.  But where the CNAME RR only provides redirection for
   exactly one name, the DNAME RR provides redirection for all names in
   a sub-tree of the DNS name tree.

   The usage of DNAME lies in redirection of name spaces.  An important
   use is finer control over delegation, where you want several names to
   be directed to the same name server.  In other words, you would like
   the name spaces below several names to be mapped to the same zone.
   Examples in practice are classless reverse address space delegations
   and punycode alternates for domain spaces.  All the usage examples
   envisioned are really for the delegation of multiple different names
   below a zone to the same sub-zone, even though the DNAME syntax
   permits more bizarre redirection patterns.

   [[editors note: In this version of the draft, issues that have been
   identified are discussed, and some ideas for proposals are put
   forward.  Later versions of this document will contain more formal
   clarifications or an update to the DNAME specification.]]

2.  The DNAME Resource Record

   The DNAME RR has mnemonic DNAME and type code 39 (decimal).

   The format of the DNAME record has not changed compared to RFC 2672.
   DNAME has the following format:

           <owner> <ttl> <class> DNAME <target>

   The format is not class-sensitive.  All fields are required.  The
   RDATA field target is a domain-name.  The compression of the RDATA
   field target name issue is covered in a later section.

   The DNAME RR causes type NS additional section processing.

   DNAME is a singleton type, only one DNAME is allowed per name.  No
   resource records exist below a DNAME.




Rose & Wijngaards        Expires March 29, 2007                 [Page 3]


Internet-Draft              DNAME Redirection             September 2006


   CNAME and DNAME are not allowed together for the same name.  This is
   because no records are allowed next to a CNAME.

   DNAMEs cause substitution to happen to query names.  There are limits
   on the descendants of a name with a DNAME record (none allowed), and
   limits on record types allowed for the name that has the DNAME, as
   well as loops that are possible due to DNAMEs.  These issues are
   explained more thoroughly in later sections.

3.  DNAME according to RFC 2672

   This section presents a clarification of what RFC 2672 says.

3.1.  A DNAME in a Zone

   x.  DNAME y. is like having CNAMEs for all records with domain names
   ending in .x to domain names ending in .y.  The DNAME RR only impacts
   labels below x., such as foo.x., foo.bar.x., but not x. itself.  The
   DNAME RR allows RRs of other types to be at x with the exception of
   RRType CNAME.  The DNAME RR above does not allow a CNAME or other
   DNAME RRs at x.  So a DNAME RRset may only have one RR in it, and
   CNAMEs and DNAMEs are mutually exclusive.  DNAMEs are valid only for
   their CLASS.  For a different CLASS different DNAME records are
   allowed.

   x.  DNAME y. does not allow anything to exist below x.  Thus, foo.x.,
   foo.bar.x are not allowed to have RRs.  Their contents are hidden and
   ignored.  To get their contents the DNAME must be invoked and the
   resulting target queried.

3.2.  DNAME in Responses

   The DNAME RR record is always included in the answer section of a
   query.  The target name of the DNAME (y.) is to be sent uncompressed
   to old resolvers (so the DNAME can be treated as an unknown type).
   Compressed if possible.  Thus servers must be able to read compressed
   or uncompressed target names and write uncompressed names for old
   resolvers.  See issue on target RDATA compression.

   A CNAME RR record with TTL 0 is synthesized for old resolvers,
   specifically for the QNAME in the query.  DNSSEC [RFC4033],
   [RFC4034], [RFC4035] says that the synthesized CNAMEs do not have to
   be signed.  The DNAME has an RRSIG and a validating resolver can
   check the CNAMEs against the DNAME record.

   RFC2672 claims that EDNS 0 and less signals non-understanding of
   DNAME and DNAME target name compression.  EDNS 1 and up may signal
   understanding.  The EDNS DNSSEC-OK bit signals understanding of



Rose & Wijngaards        Expires March 29, 2007                 [Page 4]


Internet-Draft              DNAME Redirection             September 2006


   DNAME.

3.3.  DNAME Discussions in Other Documents

   In [RFC2181] as reference, in Section 10.3., some information is
   pertinent, on MX and NS records.:

   10.3.  MX and NS records (in RFC 2181)

   The domain name used as the value of a NS resource record, or part of
   the value of a MX resource record must not be an alias.  Not only is
   the specification clear on this point, but using an alias in either
   of these positions neither works as well as might be hoped, nor well
   fulfills the ambition that may have led to this approach.  This
   domain name must have as its value one or more address records.
   Currently those will be A records, however in the future other record
   types giving addressing information may be acceptable.  It can also
   have other RRs, but never a CNAME RR.

   RFC 4592 [RFC4592] says that DNAMEs are discouraged at wildcards.
   DNAMEs and CNAMEs can form loops.

   DNAME is discussed in RFC 3363, section 4, on A6 and DNAME.  DNAME is
   NOT RECOMMENDED for use in the ip6 reverse tree [RFC3363].  And from
   [RFC4294], all references to DNAME should have been removed.  There
   needs to be a better clarification of the status of DNAME in RFC 3363
   which would be to drop all constraints on having DNAME RRs in these
   zones.

4.  Issues with DNAME

   There are several issues on DNAME as specified in RFC 2672 [RFC2672].

4.1.  DNAME as Delegation Tool

   DNAMEs can be used as indirections, the goal of these indirections is
   to mirror a part of the DNS domain tree in another part of the DNS
   domain tree.  This mirroring should be easy.  Alternative wording is
   that the goal is to have an alias name for a part of the domain tree.
   Running example is x DNAME y.  The extra point here is that the
   mirroring is done at exactly a delegation point.  There is a use for
   this case.

4.2.  DNAME Apex is not Redirected Itself

   Since the x is not CNAME'd itself, queries for the DNAME apex RRs are
   answered with data at x not at y.  The reason for the original
   decision was that in this way (without DNAME apex affected) one can



Rose & Wijngaards        Expires March 29, 2007                 [Page 5]


Internet-Draft              DNAME Redirection             September 2006


   have a DNAME at the zone apex, next to the SOA, NS records, without
   problem.  And use this to point zones under your operational control
   to other zones.  Hosting two identical zones for example.  Another
   reason for excluding the DNAME apex from the DNAME is that one can
   then query for the DNAME through RFC 1034 [RFC1034] caches.

4.3.  DNAME is Always Included in Outgoing Packets.

   Old resolvers or firewalls may drop packets with this unknown RR
   type.

4.4.  MX and NS Records Require that the DNAME in their RDATA is
      Canonical

   This means immediately resolve, no CNAMEs no DNAMEs.  See the
   reference to RFC 2181, Section 10.3 above.  Also in RFC 1912
   [RFC1912], Section 2.4.

4.5.  DNSSEC

   For a name error response, the resolver has to check the closest
   encloser NSEC to make sure it has no DNAME bit set.  If a DNAME had
   been present, that DNAME redirection should have been followed.

4.6.  Signaling of DNAME Understanding

   Some mechanism to signal that CNAMEs need not be synthesized.  Also
   signal that DNAME target compression can be used (if RDATA target
   name compression is allowed at all).  EDNS version seems the most
   obvious, states the rfc.  The gain is compression of the DNAME rname,
   and smaller response size.

4.7.  A DNAME is not a Zone-cut

   A DNAME is not a zone-cut.  You may want to use it as such to mirror
   a part of the DNS tree, but RFC 2672 DNAME is not usable because the
   apex is not redirected.

4.8.  DNAME and CIDR Blocks in in-addr.arpa

   Is DNAME the Way to go for CIDR Blocks in in-addr.arpa?  Should this
   be addressed by this document?

4.9.  Name Compression in RDATA

   For old versions of servers only uncompressed is possible.  New
   version can still choose to use compressed or not.




Rose & Wijngaards        Expires March 29, 2007                 [Page 6]


Internet-Draft              DNAME Redirection             September 2006


   Clarify on compression proposal: Senders SHOULD NOT compress RDATA,
   receivers MUST be able to decompress, when the new version has been
   negotiated with the EDNS bits.

4.10.  Synthesized CNAME TTL=0

   In the original specification, all synthesized CNAME RRs had a TTL of
   0.  Due to DNSSEC TTL=0 interpretation had to be changed to mean
   "keep as long as the query using this RRset is still being
   processed".  What is the status of this CNAME?

   This could be synthesized CNAMEs should have a TTL equal to the TTL
   of the DNAME.  This allows non-aware clients to cache the CNAMEs and
   thus lightens the load on authoritative servers.

4.11.  Wildcarded DNAME

   What should happen with a wildcard with RRtype DNAME, i.e.
   *.example.com DNAME example.net.  RFC 4592 [RFC4592] discourages
   this.  Behaviour unspecified (strict interpretation of RFC 2672 says
   that for queries for which the wildcard is expanded, no DNAME
   processing occurs, and for queries for the '*' label
   ('foo.*.example.com') the DNAME is followed.).

4.12.  NSEC3 and DNAME

   NSEC3 uses hashing to obscure names.  This hashing can be expensive
   to compute.  A zone that has DNAME and NSEC3 may have to do
   additional hashing for NSEC3 lookups.  More work needs to be done to
   look into this and see what computational costs are involved.

4.13.  PTR Records and DNAME

   PTR records in the reverse zone must have canonical names as their
   RDATA, like NS and MX records.  The lookup process for PTR records
   owner names may involve DNAME/CNAME records, but the lookup process
   for PTR records RDATA names may not.  RFC 1912.  More problematic
   than NS and MX in operational sense, since the reverse zone may not
   be under the control of the zone operator.

4.14.  Small Corner Cases

   There are also some corner cases to discuss and clarify.  These are
   small issues, but additional examples can give more guidance to
   implementors. [[editors note: The following is to be expanded]]






Rose & Wijngaards        Expires March 29, 2007                 [Page 7]


Internet-Draft              DNAME Redirection             September 2006


   1.  Example of why DNSSEC validators MUST understand DNAME.
   2.  Examples of the DNAME name substitution. whole labels only, name
       can get longer and shorter.  The '*' label is handled as a fixed
       string during substitution. apex is not substituted. name can get
       too long.
   3.  Corner case: queries for synthesized CNAME.  Not a problem,
       current algorithm already creates the CNAME again from the DNAME
       for such a query and follows the chain of DNAME/CNAMEs.  Server
       reminded that it must return no error.
   4.  Corner case: loops with single DNAME record possible.  Loop: x
       DNAME y.x.  Loop: x DNAME x.  Loop: x DNAME "." for queries
       qname=a.x.x
   5.  Servers must not allow zones to be loaded below a DNAME.  This is
       similar to requesting to not load a zone when a domain name below
       a DNAME contains resource records, as the RFC requests.
   6.  Caches must not allow data to be cached below a DNAME.  CNAMES
       below a DNAME must be re-synthesized from the DNAME, or checked
       against the DNAME if needed.

5.  IANA Considerations

   The main purpose of this draft is to discuss issues related to the
   use of DNAME RRs in a DNS zone.  The results of these discussions may
   result in a new RR to augment or replace DNAME, which will require
   IANA action.  Any solutions that propose this will be contained in a
   following document and not this draft.

6.  Security Considerations

   DNAME redirects queries elsewhere, which may impact security based on
   policy and the security status of the zone with the DNAME and the
   redirection zone's security status.  This document only discusses
   issues regarding the DNAME specification.  Any clarification or
   replacement RR type will have different security considerations.
   These will be stated in a following document.

7.  Acknowledgements

   The authors of this draft would like to acknowledge Matt Larson for
   beginning this effort to addres the issues related to the DNAME RR
   type.

8.  Normative References

   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
              STD 13, RFC 1034, November 1987.

   [RFC1912]  Barr, D., "Common DNS Operational and Configuration



Rose & Wijngaards        Expires March 29, 2007                 [Page 8]


Internet-Draft              DNAME Redirection             September 2006


              Errors", RFC 1912, February 1996.

   [RFC2181]  Elz, R. and R. Bush, "Clarifications to the DNS
              Specification", RFC 2181, July 1997.

   [RFC2672]  Crawford, M., "Non-Terminal DNS Name Redirection",
              RFC 2672, August 1999.

   [RFC3363]  Bush, R., Durand, A., Fink, B., Gudmundsson, O., and T.
              Hain, "Representing Internet Protocol version 6 (IPv6)
              Addresses in the Domain Name System (DNS)", RFC 3363,
              August 2002.

   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "DNS Security Introduction and Requirements",
              RFC 4033, March 2005.

   [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Resource Records for the DNS Security Extensions",
              RFC 4034, March 2005.

   [RFC4035]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Protocol Modifications for the DNS Security
              Extensions", RFC 4035, March 2005.

   [RFC4294]  Loughney, J., "IPv6 Node Requirements", RFC 4294,
              April 2006.

   [RFC4592]  Lewis, E., "The Role of Wildcards in the Domain Name
              System", RFC 4592, July 2006.

Authors' Addresses

   Scott Rose
   VeriSign, Inc.
   21345 Ridgetop Circle
   Dulles, VA  20166-6503
   USA

   Phone: +1-703-948-3364
   Fax:   +1-...
   EMail: srose@verisign.com









Rose & Wijngaards        Expires March 29, 2007                 [Page 9]


Internet-Draft              DNAME Redirection             September 2006


   Wouter Wijngaards
   NLnet Labs
   Kruislaan 419
   Amsterdam  1098 VA
   The Netherlands

   Phone: +31-20-888-4551
   Fax:   +31-20-888-4462
   EMail: wouter@nlnetlabs.nl










































Rose & Wijngaards        Expires March 29, 2007                [Page 10]


Internet-Draft              DNAME Redirection             September 2006


Full Copyright Statement

   Copyright (C) The Internet Society (2006).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).







Rose & Wijngaards        Expires March 29, 2007                [Page 11]