Independent Submission R. Arends Internet-Draft ICANN Intended status: Best Current Practice J. Abley Expires: October 12, 2021 Public Interest Registry E. Lisse Namibian Network Information Center (Pty) Ltd April 10, 2021 Top-level Domains for Private Internets draft-ietf-dnsop-private-use-tld-01 Abstract There are no defined private-use namespaces in the Domain Name System (DNS). For a domain name to be considered private-use, it needs to be future-proof in that its top-level domain will never be delegated from the root zone. The lack of a private-use namespace has led to locally configured namespaces with a top-level domain that is not future proof. The DNS needs an equivalent of the facilities provided by BCP 5 (RFC 1918) for private internets, i.e. a range of short, semantic-free top-level domains that can be used in private internets without the risk of being globally delegated from the root zone. This document describes a particular set of code points which, by virtue of the way they have been designated in the ISO 3166 standard, are thought to be plausible choices for the implementation of private namespaces that are anchored in top-level domains. The ISO 3166 standard is used for the definition of eligible designations for country-code top-level Domains. This standard is maintained by the ISO 3166 Maintenance Agency. The ISO 3166 standard includes a set of user-assigned code elements that can be used by those who need to add further names to their local applications. Because of the rules set out by ISO in their standard, it is extremely unlikely that these user-assigned code elements would ever conflict with delegations in the root zone under current practices. In order to avoid the operational and security consequences of collisions between private and global use of these code elements as top-level domains, this document specifies that such top-level domains should never be deployed in the global namespace, and reserves them accordingly in the Special-Use Names Registry [RFC6761]. 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 https://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." This Internet-Draft will expire on October 12, 2021. Copyright Notice Copyright (c) 2021 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 (https://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. The ISO 3166-1 alpha-2 and Two-Letter Top-Level Domains 2.1. ISO 3166-1 alpha-2 User-assigned Code Elements 3. Private-use top-level Domains 4. Domain Name Reservation Considerations 5. IAB Considerations 6. IANA Considerations 7. Security Considerations 8. Acknowledgements 9. Informative References Appendix A. Examples of Current Uses of the User-assigned Code Elements. Authors' Addresses 1. Introduction The Domain Name System (DNS) [RFC1034] is used to map names to services, systems and other devices that are accessible across networks. Many network operators configure such name mappings in such a way that names referring to private resources, such as services that are intended for use within private networks, are not published in the DNS for general use over the Internet. Collections of such names form a private namespace. Private namespaces can be considered to be local sub-trees of the familiar, global DNS namespace. An operator can choose where their private namespace is anchored. Since it is useful for applications to be able to make use of both private and global names, it is important that the private and global namespaces do not overlap. Some operators are known to have chosen top-level domains that do not exist in the global namespace as anchors for their private namespaces. Such deployments could theoretically use sub-domains of a domain registered for the specific hosting entity, though not all such configurations have such a domain available. Many protocols outside the DNS have a defined set of elements for private use, or an identifier that indicates private use, such as "X-headers" MIME types [RFC2045], addresses for private internets [BCP-5], the "x-" sub-tag in private-use language tags [BCP-47], private-use Autonomous System Numbers [BCP-6], and private-use DNS RRTypes and RCODEs [BCP-42]. There is currently no such facility for the DNS namespace. A user is required to resort to registering a globally unique domain where a locally unique domain would suffice, or may configure a domain name that is not currently delegated from the root zone. Additionally, there are plenty of examples of device vendors that ship networking devices with a default setting for DHCP [RFC2131] option 15 (domain name) [RFC2132], containing a top-level domain that is believed to not be delegated in the root zone. In practice, the lack of a private-use namespace facility has led to the deployment of arbitrary, unregistered, semantically meaningful top-level domains, such as ".home", ".dhcp", ".lan", ".localdomain", ".internal", ".dlink", ".ip" and ".corp" [ITHI]. These examples of locally configured strings are derived from traffic to the ICANN Managed Root Servers [IMRS] and are part of the most popular observed query names [BCP-219]. While these commonly chosen strings currently do not exist in the root zone, there is no guarantee that these strings will not be delegated in the root zone in the future. Therefore, there is no guarantee that the local use of these strings (or other strings that might be chosen for private use) will be stable, safe, and secure. There are many uses for private-use names. It is not feasible to assign a semantically meaningful, relatively short top-level label to each individual private-use of a namespace in multiple languages. Similar to "X-headers" MIME types, and analogous in concept to address allocation for private internets, this document defines a range of abstract, two-letter labels that are aligned with the user- assigned two-letter code elements in the ISO 3166-1 alpha-2 [ISO3166-1] standard. The ISO 3166 standard is used for the implementation of country-code Top-Level Domains in the DNS. This standard is maintained by the ISO 3166 Maintenance Agency and includes a set of code elements designated "user-assigned". Such user-assigned code points are in use for a variety of applications where it is useful to avoid conflict with codes assigned to countries or regions. 2. The ISO 3166-1 alpha-2 and Two-Letter Top-Level Domains IANA's practice of governing the delegation of ASCII two-letter domain names in the DNS [STD13] root zone is to align it with assignment of two-letter (known as "alpha-2") code elements in the ISO 3166-1 standard [ISO3166-1]. The ISO 3166-1 standard contains many categories of code elements, with the "officially assigned" and some "exceptionally reserved" code elements being used in the DNS to represent entities as country-code top-level domains (ccTLDs) [RFC1591]. The interrelationship is documented in "ICANN and the ISO, A Common Interest in ISO Standard 3166" [ICANNISO]. In addition to the assigned, available, and reserved code elements, there are code elements designated as "user-assigned". The intent of user-assigned code elements is to provide the user with a code element when no other code element satisfies the intended use. 2.1. ISO 3166-1 alpha-2 User-assigned Code Elements The ISO 3166-1 standard states in section 5.2: "In addition, exactly 42 alpha-2 code elements are not used in the ISO 3166, AA, QM to QZ, XA to XZ, ZZ." And explains in clause 8.1 "Special Provisions": "Users sometimes need to extend or alter the use of country-code elements for special purposes. The following provisions give guidance for meeting such needs within the framework of this part of ISO 3166. " And finally, clause 8.1.3 "User assigned code element": "If users need code elements to represent country names not included in this part of ISO 3166, the series of letters AA, QM to QZ, XA to XZ, and ZZ, and the series AAA to AAZ, QMA to QZZ, XAA to XZZ, and ZZA to ZZZ respectively and the series of numbers 900 to 999 are available. NOTE Users are advised that the above series of codes are not universals, those code elements are not compatible between different entities." As shown above, the ISO 3166-1 user-assigned alpha-2 code elements are defined to be AA, QM to QZ, XA to XZ, and ZZ. The ranges ("to") are alphabetic and contain only characters in the US-ASCII definition [STD80]. Appendix A contains examples of the usage of ISO 3166-1 user-assigned alpha-2 code elements in various organisations. 3. Private-use top-level Domains The user-assigned classification of these code elements in the ISO 3166-1 alpha-2 standard allows for the assumption that these code elements will not risk delegation as country-code top-level Domains through future assignments to represent a country or territory. To quote [XNIDN]: "The use of ISO 3166-1 User-assigned elements removes the possibility that the code will duplicate a present or future ccTLD code." The ISO 3166 user-assigned code elements are hence plausible choices for network operators who have decided to use a top-level domain as an anchor for their private namespace. They are safer choices than some other labels that do not currently exist as top-level domains, since new top-level domains are assigned from time to time. The ISO 3166 standard is not maintained by the IETF, and it is possible that the standard will change in the future. However, the use of ISO 3166 alpha-2 user-assigned code elements as top-level domain anchors for private namespaces under the current standard is well-known. Regardless of any future changes to the ISO 3166 standard, choosing to add a top-level domain in the global namespace that conflicted with any of these code points in the future could have negative operational effects and pose security risks. To avoid these negative operational consequences, this document directs that the top-level domains corresponding to these ISO 3166 alpha-2 user-assigned code elements should never be deployed in the global namespace; that is, they must never exist as an owner name in the root zone of the DNS. Using these code elements as top-level domains for the purpose of private-use TLDs is in line with the intended use of these code elements and follows the many examples of other standards and protocols. Furthermore, they are short and free of any semantic meaning. This document does not recommend any specific ISO 3166-1 alpha-2 user-assigned code as a private use, but instead proposes that any of them can be used by a network or application for private use. That is, there is no attempt to choose just one of the ISO 3166-1 Alpha-2 user-assigned codes for use as private-use TLDs, just as other organizations use multiple user-assigned codes for many internal purposes. Note that there may be software that treats labels beginning with XN differently due to the use of the XN- prefix in internationalized domain names [RFC5890]. 4. Domain Name Reservation Considerations The information that follows is intended to satisfy the requirements of [RFC6761]. The top-level domains corresponding to the ISO 3166 User-Assigned code elements are special in the following ways: 1. Users are free to use these names as they would any other top- level domain. However, since this document specifies that these names MUST never be deployed in the global DNS, users SHOULD be aware that these names are likely to yield different results on different networks. 2. Application software SHOULD NOT recognise these names as special and SHOULD use these names as they would any other name. 3. Name resolution APIs and libraries SHOULD NOT recognise these names as special and SHOULD NOT treat them differently. Name resolution APIs SHOULD send queries for these names to their configured caching DNS server(s). 4. Caching DNS servers MAY recognise these names as special and SHOULD NOT, by default, attempt to look up NS records for the, or otherwise query authoritative DNS servers on the global Internet in an attempt to resolve these domains. Instead, caching DNS servers SHOULD, by default, generate immediate (positive or negative) responses for all such queries. This is to avoid unnecessary load on the root name servers and other name servers. Caching DNS servers SHOULD offer a configuration option (disabled by default) to enable upstream resolution of such names, for use in private networks where these domains are known to be handled by an authoriative DNS server in said private network. 5. Authoritative DNS servers SHOULD recognise these names as special and SHOULD, by default, generate immediate negative responses for all such queries, unless explicitly configured by the administrator to give positive answers from a private namespace. 6. DNS server operators SHOULD, if they are using private namespaces anchored at these names, configure their authoritative DNS servers to act as authoritative for these names. 7. DNS Registries/Registrars MUST NOT grant requests to register any of these names in the normal way to any person or entity. These names are reserved due to their use in private namespaces, and fall outside the set of names available for allocation by registries/registrars. Attempting to allocate one of these names as if it were a normal DNS domain name will probably not work as desired, for reasons 4, 5 and 6 above. 5. IAB Considerations This document specifies that various two-character codes should never be used in the global DNS as top-level domains, for technical, operational and security reasons. This technical restriction has implications for root zone management in the DNS, policy for which is developed at ICANN. As part of its review process for this document, the authors suggest that the IAB exercise its relevant liaisons to ICANN (the organisation and the community) to ensure that the content of this document does not raise any concerns that the IAB feels are important. The authors further suggest that the text in this section be replaced prior to publication by a record of the IAB's review. 6. IANA Considerations This document makes the observation that the policy of assigning ccTLD labels is to align with the ISO-3166-1 alpha-2 standard [RFC1591], which includes user-assigned code elements that will never be assigned to a territory [ISO3166-1]. This is then consistent with existing policies that those user-assigned codes will never be delegated from the DNS root zone and, for that reason, will never give rise to collisions with any future new TLD. This document directs that the following rows be added to the Special-Use Names Registry: +------+-----------------+ | Name | Reference | +------+-----------------+ | AA. | (this document) | | | | | QM. | (this document) | | | | | QN. | (this document) | | | | | QO. | (this document) | | | | | QP. | (this document) | | | | | QQ. | (this document) | | | | | QR. | (this document) | | | | | QS. | (this document) | | | | | QT. | (this document) | | | | | QU. | (this document) | | | | | QV. | (this document) | | | | | QW. | (this document) | | | | | QX. | (this document) | | | | | QY. | (this document) | | | | | QZ. | (this document) | | | | | XA. | (this document) | | | | | XB. | (this document) | | | | | XC. | (this document) | | | | | XD. | (this document) | | | | | XE. | (this document) | | | | | XF. | (this document) | | | | | XG. | (this document) | | | | | XH. | (this document) | | | | | XI. | (this document) | | | | | XJ. | (this document) | | | | | XK. | (this document) | | | | | XL. | (this document) | | | | | XM. | (this document) | | | | | XN. | (this document) | | | | | XO. | (this document) | | | | | XP. | (this document) | | | | | XQ. | (this document) | | | | | XR. | (this document) | | | | | XS. | (this document) | | | | | XT. | (this document) | | | | | XU. | (this document) | | | | | XV. | (this document) | | | | | XW. | (this document) | | | | | XX. | (this document) | | | | | XY. | (this document) | | | | | XZ. | (this document) | | | | | ZZ. | (this document) | +------+-----------------+ 7. Security Considerations Use of private-use identifiers of any sort is known to result in unexpected collisions. This has repeatedly been shown for private- use addresses, private-use identifiers (such as "x- headers") and private-use names in the DNS. These unexpected collisions can easily have security ramifications that are well beyond what the user understands or expects. 8. Acknowledgements This document is based on an earlier draft by Ed Lewis. David Conrad, Paul Hoffman, Sion Lloyd, Alain Durand, Jaap Akkerhuis, Kal Feher, Andrew Sullivan, Petr Spacek, Patrick Mevzek and Kim Davies have played a role. 9. Informative References [BCP-219] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS Terminology", BCP 219, RFC 8499, DOI 10.17487/RFC8499, January 2019, . [BCP-42] Eastlake 3rd, D., "Domain Name System (DNS) IANA Considerations", BCP 42, RFC 6895, DOI 10.17487/RFC6895, April 2013, . [BCP-47] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, September 2009, . [BCP-5] 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, . [BCP-6] Mitchell, J., "Autonomous System (AS) Reservation for Private Use", BCP 6, RFC 6996, DOI 10.17487/RFC6996, July 2013, . [CABForum] "CA/Browser Forum Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates, version 1.6.9", March 2020, . [IANA-Special] "Special-Use Domain Names", n.d., . [ICANNISO] "ICANN and the International Organization for Standardization (ISO)", n.d., . [ICAO] "International Civil Aviation Organization, Machine Readable Travel Documents, Part 3; Specifications Common to all MRTDs", n.d., . [IMRS] "ICANN Managed Root Server", n.d., . [INTERPOL] "Interpol Implementation data format for the interchange of fingerprint, facial & smt information", n.d., . [ISO3166-1] "ISO 3166-1:2013 Codes for the representation of names of countries and their subdivisions - Part 1: Country codes", 2013, . [ISO3901] "Information and documentation -- International Standard Recording Code (ISRC)", n.d., . [ISO4217] "ISO 4217; Codes for the representation of currencies and funds", n.d., . [ISO6166] "Securities and related financial instruments -- International securities identification numbering system (ISIN)", n.d., . [ITHI] "ICANN's Identifier Technology Health Indicator; Queries to frequently leaked strings", n.d., . [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, . [RFC1591] Postel, J., "Domain Name System Structure and Delegation", RFC 1591, DOI 10.17487/RFC1591, March 1994, . [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, . [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, DOI 10.17487/RFC2131, March 1997, . [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997, . [RFC5890] Klensin, J., "Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework", RFC 5890, DOI 10.17487/RFC5890, August 2010, . [RFC6761] Cheshire, S. and M. Krochmal, "Special-Use Domain Names", RFC 6761, DOI 10.17487/RFC6761, February 2013, . [STD13] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, . [STD80] Cerf, V., "ASCII format for network interchange", STD 80, RFC 20, DOI 10.17487/RFC0020, October 1969, . [UNICODE] "CLDRv37 - Unicode Common Locale Data Repository version 37", April 2020, . [UNLOCODE] "United Nations Code for Trade and Transport Locations; UN/LOCODE Manual", n.d., . [WIPO] "World Intellectual Property Organization; Recommended standard on two-letter codes for the representation of states, other entities and intergovernmental organizations.", n.d., . [WORLDBANK] "Worldbank API V2 Country API", n.d.. [XNIDN] "Results of IANA Selection of IDNA Prefix", February 2003, . Appendix A. Examples of Current Uses of the User-assigned Code Elements. Using code elements to represent an entity other than a country name may appear to deviate from the intended use of the ISO 3166-1 standard. However, many organizations, including the IETF and the ISO, have used the user-assigned range to represent entities other than country names. The following list is not exhaustive but illustrates the wide variety of current uses of codes within the ISO 3166-1 user-assigned alpha-2 range. o The International Standard Recording Code (ISRC) [ISO3901] uses code element "ZZ" from the User-assigned range for direct registrants independent of any country. o The ISO Currency Codes standard [ISO4217] uses code elements "XA" to "XZ" from the user-assigned range for transactions and precious metals. o International Securities Identification Numbers [ISO6166] uses the following code elements from the user-assigned range: QS: internally used by Euroclear France QT: internally used in Switzerland QW: internally used in WM Datenservice Germany for historical data XA: CUSIP Global Services substitute agencies XB: NSD Russia substitute agencies XC: WM Datenservice Germany substitute agencies XD: SIX Telekurs substitute agencies XF: internally assigned, non-unique numbers XS: Euroclear and Clearstream international securities o The International Civil Aviation Organization [ICAO] Machine Readable Travel Documents standard uses code element "ZZ" from the user-assigned range for UN travel documents. o The World Intellectual Property Organization [WIPO] Standard 3 uses the following code elements from the user-assigned range: QZ: Community Plant Variety Office (European Union) (CPVO). XN: Nordic Patent Institute (NPI). XU: International Union for the Protection of New Varieties of Plants (UPOV). XV: Visegrad Patent Institute (VPI) XX: recommended to refer to unknown states, other entities or organizations. o The United Nations Code for Trade and Transport Locations [UNLOCODE] uses the code element "XZ" from the user-assigned range for international waters in accordance with ISO 3166-1 clause 8.1.3: "3.2.5 In cases where no ISO 3166 country-code element is available, e.g. installations in international waters or international cooperation zones, the code element "XZ", available for user assignment in accordance with clause 8.1.3 of ISO 3166-1/1997, will be used." o The World Bank Country API [WORLDBANK] uses the following code elements from the User-assigned range: XC: Euro area XD: High income XE: Heavily indebted poor countries (HIPC) XF: International Bank for Reconstruction and Development XH: Blend XI: International Development Association XJ: Latin America and Caribbean (excluding high income) XL: Least developed countries: UN classification XM: Low income XN: Lower middle income XO: Low & middle income XP: Middle income XQ: Middle East & North Africa (excluding high income) XT: Upper middle income XU: North America XX: Not classified XY: Not Classified o The Interpol Implementation data format for the interchange of fingerprint, facial & scar-mark-tattoo information [INTERPOL] uses code element "ZZ" from the user-assigned range as follows: Destination Agency Identifier "ZZ/ALL" is reserved for transactions which shall be distributed by INTERPOL AFIS to all INTERPOL member states." o The Certificate Authority Browser Forum Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates [CABForum] states that if a country is not represented by an official ISO 3166-1 alpha-2 country-code, the CA may specify the user-assigned code element "XX" to indicate that an official code element has not been assigned. o The UNICODE Common Locale Data Repository (CLDR) [UNICODE] version 37 uses the following code elements from the user-assigned range: QO: Outlying Oceania; countries in Oceania that do not have a subcontinent. XA: Pseudo-Accents; special code indicating derived testing locale with English + added accents and lengthened. XB: Pseudo-Bidi; special code indicating derived testing locale with forced RTL English. ZZ: Unknown Region; used in APIs or as a replacement for invalid code. o The IETF Best Current Practice 47 [BCP-47] contains a section and examples dedicated to private-use subtags, using code elements from the user-assigned range: "For example, the region subtags 'AA', 'ZZ', and those in the ranges 'QM'-'QZ' and 'XA'-'XZ' (derived from the ISO 3166-1 alpha-2 private use codes) can be used to form a language tag. A tag such as "zh-Hans-XQ" conveys a great deal of public, interchangeable information about the language material" o The IETF Proposed Standard "Internationalized Domain Names for Applications" [RFC5890] uses the XN-- prefix. The method that was used to decide on the prefix was explained in an email from the IANA to the IETF IDN Working Group list [XNIDN]: "The following steps will be used to select the two-character code: The code will be selected from among a subset of the entries on the ISO 3166-1, clause 8.1.3 User-assigned alpha-2 code elements: AA, QM to QZ, XA to XZ, and ZZ. The selection is limited to these codes because of the following: The use of ISO 3166-1 User-assigned elements removes the possibility that the code will duplicate a present or future ccTLD code." Authors' Addresses Roy Arends ICANN Email: roy.arends@icann.org Joe Abley Public Interest Registry 470 Moore Street London, true N6C 2C2 Canada Email: jabley@pir.org Eberhard W. Lisse Namibian Network Information Center (Pty) Ltd Email: el@lisse.na