wkumari / draft-wkumari-dnsop-internal

Draft requesting the allocation and delegation of .internal for RFC1918 type use.
11 stars 4 forks source link

Important: Read CONTRIBUTING.md before submitting feedback or contributing


DNSOP                                                          W. Kumari
Internet-Draft                                                    Google
Intended status: Informational                              July 2, 2017
Expires: January 3, 2018

                           The .internal TLD.
                    draft-wkumari-dnsop-internal-00

Abstract

   It has become clear that many users would like to use the DNS
   resolution system for names which do not have meaning in the global
   context but do have meaning in a context internal to their network.
   This document reserves the string ".internal" for this purpose.

   [ Ed note: Text inside square brackets ([]) is additional background
   information, answers to frequently asked questions, general musings,
   etc.  They will be removed before publication.  RFC Editor: Please
   remove these before publication. ]

   [ This document is being collaborated on in Github at:
   https://github.com/wkumari/draft-wkumari-dnsop-internal.  The most
   recent version of the document, open issues, etc should all be
   available here.  The authors (gratefully) accept pull requests ]

   [ Ed note: This document is intended to drive discussion.  It is
   clear that there has been a desire for an "RFC 1918-style" TLD for a
   long time; in its absence, people have just started using whatever
   seemed convenient.  This document requests that the allocation of
   .internal for this use.  There is no existing process for this - some
   of the purpose of this document is to explore the process
   implications. ]

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

Kumari                   Expires January 3, 2018                [Page 1]

Internet-Draft                  .internal                      July 2017

   This Internet-Draft will expire on January 3, 2018.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements notation . . . . . . . . . . . . . . . . . .   3
   2.  Use cases . . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Why not use <existing name>?  . . . . . . . . . . . . . . . .   4
     3.1.  Why not use .alt? . . . . . . . . . . . . . . . . . . . .   4
     3.2.  Why not use something.arpa? . . . . . . . . . . . . . . .   5
     3.3.  Why not use .local? . . . . . . . . . . . . . . . . . . .   5
     3.4.  Why not use .example? . . . . . . . . . . . . . . . . . .   5
   4.  DNSSEC Considerations . . . . . . . . . . . . . . . . . . . .   5
     4.1.  Scenario 1 - No DNSSEC, .internal not delegated . . . . .   6
     4.2.  Scenario 2 - DNSSEC, .internal not delegated  . . . . . .   6
     4.3.  Scenario 3 - DNSSEC, .internal delegated  . . . . . . . .   6
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
     5.1.  Domain Name Reservation Considerations  . . . . . . . . .   7
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   8
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Appendix A.  Changes / Author Notes.  . . . . . . . . . . . . . .   9
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   Over the years, a number of strings have been used as pseudo-TLDs for
   namespaces that are disjoint (or separate) from the "global DNS"
   namespace.  Common examples of these include .home and .corp.  See
   [I-D.chapin-additional-reserved-tlds], [I-D.ietf-dnsop-sutld-ps] for
   more background information on this issue.  The

Kumari                   Expires January 3, 2018                [Page 2]

Internet-Draft                  .internal                      July 2017

   [I-D.ietf-dnsop-sutld-ps] document discusses the issues in depth, and
   should be considered required reading for understanding this
   document.

   The [I-D.ietf-dnsop-alt-tld] document reserves a string to be used as
   a pseudo-TLD for non-DNS resolution contexts.  However, it is clear
   that there is a significant use case for a similar string to be used
   for namespaces which are resolved using the DNS protocol, but which
   do not have a meaning in the global DNS context.

   There is no way to prevent users from simply picking a string (such
   as .home) and starting to use it for internal use.  Unfortunately,
   although these strings are supposed to only be used internally, there
   is ample evidence that they often leak into the global DNS, sometimes
   causing technical issues for the user of the no-longer internal name.

   This document requests allocation of a string to be used as a pseudo-
   TLD for namespaces that are not part of the global DNS, but are meant
   to be resolved with the DNS protocol.  A reasonable analogy is that
   this is to names as [RFC1918] is to IP addresses.  Such a reservation
   should alleviate pollution, such as junk queries at the root, and
   potential collisions with other users of the namespace.

   Note that there was a discussion of the .homenet delegation in the
   HOMENET WG, and the resulting decision was to *not* request that the
   name be delegated as a TLD for the IETF's use.  This document has
   significant similarities to the .homenet case, but also significant
   differences.  These include (in no particular order) the fact that
   the use case is significant broader, and that there is no urgency to
   the request and does not delay or create uncertainty for any protocol
   work.

1.1.  Requirements notation

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

2.  Use cases

   The ".internal" TLD can be used for any purpose where a non-global
   DNS name is needed.

   This includes creating a namespace "behind" a Customer Premises
   Equipment (CPE).  For example, the Belkin company used ".belkin" for
   this.  British Telecom used ".home", and shipped devices named
   "bthomehub.home" [BT_HOME_HUB]).  Additionally, internal resolution
   systems like Microsoft Active Directory have documentation that

Kumari                   Expires January 3, 2018                [Page 3]

Internet-Draft                  .internal                      July 2017

   suggests (or previously suggested) that administrators use ".corp"
   for these cases.

   The .internal TLD is intended to address some of the issues
   documented in the Special-Use Domain Names Problem Statement
   [I-D.ietf-dnsop-sutld-ps] specifically (from the list in Section 3):

   5.3:  Intended use is covered by gTLD process, but the third party
      doesn't want to pay a fee.

   5.4:  Intended use is covered by some IETF process, but the third
      party doesn't want to follow the process.

   5.6:  Unaware that a name intended to be used only locally may
      nevertheless leak

   5.7:  Unaware that a name used locally with informal allocation may
      subsequently be allocated formally, creating operational problems.

   18 There exists no safe, non-process-violating mechanism for ad-hoc
      assignment of Special-Use Domain Names.

   Other use cases for .internal include its use in testing,
   prototyping, and benchmarking.  Researchers have often needed to set
   up a fake root and namespace in order to test something, and have
   needed an arbitrarily chosen a name for a piece of network equipment
   which it not connected to the Internet.

3.  Why not use <existing name>?

   The IANA "Special Use Names" registry [IANA.SUN] already contains
   some names which, it could be argued, already meet this need.
   Unfortunately, many of these names (such as ".example") are either
   reserved for a specific use case, or are semantically unsuitable (for
   example, a CPE manufacturer would likely not find "Open a browser and
   connect to 'router.invalid'" acceptable).

   This section discusses why existing strings in the Special-Use Domain
   Names registry ([IANA.SUN]) are not appropriate.

3.1.  Why not use .alt?

   The proposed .alt presudo-TLD is specifically only for use as a
   pseudo-TLD for non-DNS resolution contexts.  At one point .alt was
   being considered both for DNS and non-DNS resolution contexts, but,
   after much discussion it was decided that the DNSSEC implications
   (and desired behavior) meant that .alt should be reserved
   specifically for non-DNS resolution.

Kumari                   Expires January 3, 2018                [Page 4]

Internet-Draft                  .internal                      July 2017

3.2.  Why not use something.arpa?

   This is indeed an interesting idea.  I suspect that it fails the
   semantically desirable / understandable case, but is definitely worth
   further discussion.  It may also cause issues when server operators
   override part of the .arpa domain in order to instantiate
   something.arpa.

3.3.  Why not use .local?

   .local is already in wide use and has special handling implemented
   for handing .local names.  See [RFC6762] Section 22.1 Subsection 3,
   4, 5.

3.4.  Why not use .example?

   .example, .example.[com|net|org] may indeed be appropriate.
   Unfortunately, the hard part of all of this is not the selection and
   adding of a name to the "Special Use Names" registry, but rather
   deciding if this should be done and, if so, the process to interact
   with ICANN in order to achieve the delegation.

4.  DNSSEC Considerations

   The .internal TLD would be an unsigned TLD, as there is no (clean)
   way to sign it.

   This particular topic received much discussion during the "Should
   .alt be used for DNS, or only non-DNS resolution" discussions, and
   was the cause of much confusion and misunderstandings.  Much of this
   revolved around why it is important to have an insecure DNSSEC
   delegation for a name which is added to the Locally-Served DNS Zones
   ( [IANA.LocallyServed] ) registry, or any other case where a name is
   instantiated.  It is briefly covered here, but interested readers
   should review the DNSOP mailing list archive for more details.

   Take the following figure:

                   +-----------+         +----------+
    .-------.      |           |         |   Stub   |
   (  Root   <-----| Resolver  <---------| Resolver |
    `-------'      +-----------+         +----------+
        A                B                     C

   The user has just purchased a new CPE, which creates an internal
   namespace called .internal, and responds to lookups for
   router.interal with its (internal) management IP address (another
   example would be a corporate user at an organization which has

Kumari                   Expires January 3, 2018                [Page 5]

Internet-Draft                  .internal                      July 2017

   created a private internal namespace disconnected from the public,
   global DNS).  The CPE hands out addresses using DHCP, and lists
   itself as the DNS server.

   The user follows the instructions included in the box, and enters
   "http://router.internal" into a web browser.  This causes a DNS
   lookup to be sent from the user's stub to the recursive resolver.
   The recursive resolver correctly identifies that this is query is for
   itself, and so responds with an answer saying "router.internal is
   192.168.0.1".

4.1.  Scenario 1 - No DNSSEC, .internal not delegated

   In this scenario, the .internal name has not been added to the root
   zone, and the user's stub resolver *does not* perform DNSSEC
   validation.  The stub receives the response, performs no validation,
   and so trust the answer and connects.  The user is happy.  This is
   the current behavior for non-DNSSEC validating stubs.

4.2.  Scenario 2 - DNSSEC, .internal not delegated

   In this scenario, the .internal name has not been added to the root
   zone, and the user's stub resolver *does* perform DNSSEC validation.
   (Note that it is believed that validating stubs are currently rare.)
   The stub receives the response, and begins DNSSEC validation.  As the
   .internal TLD has not been added to the root zone, DNSSEC
   Authenticated Denial of Existence proves that the .internal TLD does
   not exist (currently there is an NSEC record proving that nothing
   exists between .intel and .international).  This resulting outcome is
   a DNSSEC "bogus" answer, the user is unable to connect, and becomes
   frustrated.  This is the current behavior for DNSSEC validating
   stubs.

4.3.  Scenario 3 - DNSSEC, .internal delegated

   In this scenario, the .internal name has been added to the DNS root
   zone, with an insecure delegation to AS112 (by "insecure delegation"
   we mean that that there is no DS record for .internal in the root
   zone; the .internal domain is unsigned).  The stub receives the
   response, and performs DNSSEC validation.  As .internal has been
   delegated, there is an (insecure) entry in the root zone, proving
   that the .internal TLD exists.  As it is an insecure delegation, the
   validating stub is perfectly happy to accept the "router.internal is
   192.168.0.1" response, the user connects to their router, and
   everyone is happy.

Kumari                   Expires January 3, 2018                [Page 6]

Internet-Draft                  .internal                      July 2017

5.  IANA Considerations

   This document requests that the .internal TLD be assigned to the IANA
   (similar to the way that .example is) and a DNSSEC insecure
   delegation (that is, a delegation with no DS records) be inserted
   into the root-zone, delegated to blackhole-[12].iana.org.

   [Editor's note: This is not something which the IANA currently has
   the authority to do.  This fact was extensively discussed during the
   .homenet discussions.  This text in the IANA considerations should be
   considered a placeholder for "what someone needs to do if this gets
   IETF consensus".  If there is consensus that the reservation of
   .internal makes sense, there will need to be some process design
   before implementation.  Such a process might be similar to "the IESG
   asks the IAB to request ICANN to consider the reservation /
   delegation of this string".  ICANN does not currently have a process
   for handling requests like these, and so will also likely need to
   design a process for this.  It is possible that either process might
   not be designed and this will fail.  It is also possible that the
   IETF makes a request and ICANN does not make the delegation. ]

5.1.  Domain Name Reservation Considerations

   [ Ed: This section is to satisfy the requirement in Section 5 of
   RFC6761.  This document is intended to spark a discussion, there is
   currently no process for the IETF / IAB to request that ICANN
   delegate a TLD for special use, and simply adding .internal to the
   "Special-Use Domain Name" registry ([IANA.SUN]) does not accomplish
   this.  I have decided to fill in the RFC6761 "questions" simply to
   clarify the expected behavior.  This entire section needs to be
   removed before publication. ]

   The string ".internal." is special in the following ways:

   1.  Users may know that strings that end in .internal behave
       differently to normal DNS names.  They may expect that names of
       the form <something>.internal refer to resources internal to
       their network / enterprise / similar.

   2.  Writers of application software not required to perform any
       special handing for .internal names.  They are resolved normally,
       using the DNS.

   3.  Writers of name resolution APIs and libraries are not expected to
       perform special handling.

   4.  Caching DNS servers MAY recognize these names as special.  By
       default they should answer them locally (using "Locally Served

Kumari                   Expires January 3, 2018                [Page 7]

Internet-Draft                  .internal                      July 2017

       Zones"), but may be configured to forward them to authoritative
       servers.

   5.  Authoritative DNS servers SHOULD NOT recognize these names as
       special and should not perform any special handling with them,
       unless they wish to instantiate an internal namespace, in which
       case they can choose to simply create any names within .internal
       that they want.  Names are "local" to the network, and only have
       meaning within that network.

   6.  DNS server operators SHOULD be aware that queries for names
       ending in .internal are not part of the global, IANA DNS, and
       were leaked into the global DNS.  This information may be useful
       for support or debugging purposes.

   7.  DNS Registries/Registrars MUST NOT grant requests to register
       ".internal" names in the normal way to any person or entity.
       These ".internal" names are defined by protocol specification to
       be nonexistent, and they fall outside the set of names available
       for allocation by registries/registrars.

6.  Security Considerations

   This section will certainly be filled in later as the discussion
   progresses.

7.  Acknowledgements

   The authors wish to thank Steve Crocker, Wes Hardaker, David
   Lawrence, Suzanne Woolf, and many others on the DNSOP mailing list.

   The author would like to especially think Paul Hoffman for creating a
   Pull Request.

8.  References

8.1.  Normative References

   [I-D.ietf-dnsop-sutld-ps]
              Lemon, T., Droms, R., and W. Kumari, "Special-Use Domain
              Names Problem Statement", draft-ietf-dnsop-sutld-ps-06
              (work in progress), June 2017.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
              RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

Kumari                   Expires January 3, 2018                [Page 8]

Internet-Draft                  .internal                      July 2017

8.2.  Informative References

   [BT_HOME_HUB]
              IANA, "I have problems connecting 5GHz and dual band
              devices wirelessly to the BT Hub",
              <http://bt.custhelp.com/app/answers/detail/a_id/44798/kw/
              bthomehub.home/c/346,7474,7477>.

   [I-D.chapin-additional-reserved-tlds]
              Chapin, L. and M. McFadden, "Additional Reserved Top Level
              Domains", draft-chapin-additional-reserved-tlds-02 (work
              in progress), March 2015.

   [I-D.ietf-dnsop-alt-tld]
              Kumari, W. and A. Sullivan, "The ALT Special Use Top Level
              Domain", draft-ietf-dnsop-alt-tld-08 (work in progress),
              March 2017.

   [IANA.LocallyServed]
              IANA, "Locally Served DNS Zones",
              <https://www.iana.org/assignments/locally-served-dns-
              zones/locally-served-dns-zones.xhtml>.

   [IANA.SUN]
              IANA, "Special-Use Domain Names",
              <https://www.iana.org/assignments/locally-served-dns-
              zones/locally-served-dns-zones.xhtml>.

   [RFC1918]  Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G.,
              and E. Lear, "Address Allocation for Private Internets",
              BCP 5, RFC 1918, DOI 10.17487/RFC1918, February 1996,
              <http://www.rfc-editor.org/info/rfc1918>.

   [RFC6762]  Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762,
              DOI 10.17487/RFC6762, February 2013,
              <http://www.rfc-editor.org/info/rfc6762>.

Appendix A.  Changes / Author Notes.

   [RFC Editor: Please remove this section before publication ]

   -00

   o  This document was originally started in late 2014 / early 2015,
      but languished until being revived in June 2017.

Kumari                   Expires January 3, 2018                [Page 9]

Internet-Draft                  .internal                      July 2017

Author's Address

   Warren Kumari
   Google
   1600 Amphitheatre Parkway
   Mountain View, CA  94043
   US

   Email: warren@kumari.net

Kumari                   Expires January 3, 2018               [Page 10]