<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>

<rfc category="info" docName="draft-ietf-dnsop-alt-tld-18" ipr="trust200902">
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

  <?rfc toc="yes" ?>

  <?rfc symrefs="yes" ?>

  <?rfc sortrefs="yes"?>

  <?rfc iprnotified="no" ?>

  <?rfc strict="yes"?>

  <?rfc compact="yes" ?>

  <front>
    <!-- WK: Set long title. -->

    <title abbrev="Reserve ALT TLD">The ALT Special Use Top Level
    Domain</title>

    <author fullname="Warren Kumari" initials="W." surname="Kumari">
      <organization>Google</organization>

      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>

          <city>Mountain View, CA</city>

          <code>94043</code>

          <country>US</country>
        </postal>

        <email>warren@kumari.net</email>
      </address>
    </author>

    <author fullname="Paul Hoffman" initials="P." surname="Hoffman">
      <organization>ICANN</organization>

      <address>
        <email>paul.hoffman@icann.org</email>
      </address>
    </author>

    <date />

    <area>template</area>

    <workgroup>dnsop</workgroup>

    <abstract>
      <t>This document reserves a TLD label, "alt" to be used in
      non-DNS contexts. It also provides advice and guidance to developers
      developing alternative namespaces.</t>

      <t>[ This document is being
      collaborated on in Github at &lt;https://github.com/wkumari/draft-wkumari-dnsop-alt-tld&gt;.
      The most recent version of the document, open
      issues, etc should all be available here. The authors (gratefully)
      accept pull requests. ]</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Many Internet protocols need to name entities. Names that look
      like DNS names (a series of labels separated with dots) have become
      common, even in systems that are not part of the global DNS administered
      by IANA. This document reserves the top-level label "alt" (short for
      "alternative") as a special-use domain name (<xref target="RFC6761"/>). This
      top-level label can be used as the final (rightmost) label to signify
      that the name is not rooted in the global DNS, and that it should not be
      resolved using the DNS protocol.</t>
      
      <t>In <xref target="iana-6761"/>, the IANA is requested to add the .alt name
      to the "Special-Use Domain Name" registry. IANA sets aside names in that
      registry, as described in &lt;https://www.iana.org/domains/reserved&gt;.</t>
      
      <t>Throughout the rest of this document, the top-level "alt" label is shown
      as ".alt" to match the common presentation form of DNS names.</t>

      <t>The techniques in this document are primarily intended to address the
      "Experimental Squatting Problem", the "Land Rush Problem", and "Name
      Collisions" issues discussed in <xref target="RFC8244"/>, which contains
      additional background on the issues with special use domain names.</t>

      <section title="Requirements Notation">
        <t>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 <xref
        target="RFC2119"/>.</t>
      </section>

      <section title="Terminology">
        <t>This document assumes familiarity with DNS terms; please see
        <xref target="RFC8499"/>. Terminology that is specific to this document is:</t>

        <t><list style="symbols">
            <t>DNS name: Domain names that are intended to be used with DNS
            resolution, either in the global DNS or in some other context.</t>

            <t>DNS context: The namespace anchored at the globally-unique DNS
            root, administered by IANA. This is the namespace or context that
            "normal" DNS uses.</t>

            <t>non-DNS context: Any other (alternative) namespace.</t>

            <t>pseudo-TLD: A label that appears in a fully-qualified domain
            name in the position of a TLD, but which is not part of the
            global DNS. This term is not intended to be pejorative.</t>

            <t>TLD: See the definition in Section 2 of <xref target="RFC8499"/>.</t>
          </list></t>
      </section>
    </section>

    <section title="The alt Namespace">
      <t>This document reserves the .alt label
      for use as an unmanaged pseudo-TLD
      namespace. The .alt label can be used in any domain name as a pseudo-TLD
      to signify that this is an alternative (non-DNS) namespace, and should
      not be looked up in a DNS context.</t>

      <t>This document uses ".alt" for the pseudo-TLD in the presentation
      format for the DNS, corresponding to a 0x03616c7400 suffix in DNS wire format.
      The presentation and on-the-wire formats for non-DNS protocols might be
      different.</t>

      <t>Alternative namespaces should differentiate themselves from other
      alternative namespaces by choosing a name and using it in the label
      position just before the .alt pseudo-TLD. For example, a group wishing
      to create a namespace for Friends Of Olaf might choose the string "foo"
      and use any set of labels under foo.alt.</t>

      <t>Because names beneath .alt are in an alternative namespace, they have no
      significance in the regular DNS context. DNS stub and recursive resolvers
      do not need to look them up in the DNS context.</t>

      <t>DNS resolvers that serve the DNS protocol and non-DNS protocols at the same time might consider
      .alt like an entry in the "Transport-Independent Locally-Served DNS Zone Registry"
      that is part of IANA's "Locally-Served DNS Zones" registry, except that .alt
      is always used to denote names that are to be resolved by non-DNS protocols.</t>

      <t>Note that using .alt as a pseudo-TLD does not mandate how the non-DNS protocol
      will handle the name. To maximize compatibility with existing applications,
      it is suggested, but not required, that non-DNS protocols using names that end in .alt follow DNS
      name syntax. If the non-DNS protocol has a wire format like the DNS
      wire format, it might append the null label at the end of the name, but it also
      might not. This document does not make any suggestion for how non-DNS protocols
      deal with the wire format of their names.</t>

      <t>Groups wishing to create new alternative namespaces may create their
      alternative namespace under a label that names their namespace under the
      .alt pseudo-TLD. They should attempt to choose a label that they expect to be
      unique among similar groups and, ideally, descriptive.
      Developers are wholly
      responsible for dealing with any collisions that may occur under .alt.</t>
      
      <t>(This paragraph exists to meet the requirements of <xref target="RFC6761"/>.)
      Application software that uses alternative namespaces in .alt are expected
      to have their own processing rules for their own names, probably in specialized
      resolver APIs, libraries, and/or application software.
      Users might or might not recognize that names in the .alt pseudo-TLD are special.
      Caching DNS servers and authoritative DNS servers will treat all names in the
      .alt pseudo-TLD just as they would any other name whose TLD does not appear in the
      global DNS root.
      DNS server operators and DNS registries/registrars for the global DNS will never register
      names in the .alt pseudo-TLD because .alt will not exist in the global DNS root.</t>

      <t>Currently deployed projects and protocols that are using pseudo-TLDs
      may choose to move under the .alt pseudo-TLD, but this is not a requirement.
      Rather, the .alt pseudo-TLD is being reserved so that current and future
      projects of a similar nature have a designated place to create
      alternative resolution namespaces that will not conflict with the
      regular DNS context.</t>

    </section>

    <section title="IANA Considerations">

      <section title="Special-Use Domain Name Registry" anchor="iana-6761">

      <t>The IANA is requested to add the .alt name to the "Special-Use
      Domain Name" registry (<xref target="RFC6761"/>), and reference this
      document.</t>

      </section>

    </section>

    <section title="Privacy Considerations">
      <t>This document reserves .alt to be used to indicate that a name is not
      a DNS name, and so should not attempt to be resolved using the global DNS.
      Unfortunately, these queries will undoubtedly leak into the global DNS.
      This is a
      general problem with alternative name spaces and not confined to names
      ending in .alt.</t>
    </section>

    <section anchor="security" title="Security Considerations">
      <t>The unmanaged and "registration not required" nature of labels
      beneath .alt provides the opportunity for an attacker to re-use the
      chosen label and thereby possibly compromise applications dependent on
      the special host name.</t>
    </section>

    <section title="Acknowledgements">
      <t>We would like to thank Joe Abley, Mark Andrews, Erik Auerswald,
      Marc Blanchet, John Bond, Stephane Bortzmeyer, David Cake, David Conrad,
      Steve Crocker, Brian Dickson, Ralph Droms, Robert Edmonds,
      Patrik Faltstrom, Olafur Gudmundsson, Bob Harold,
      Joel Jaeggli, Ted Lemon, Edward Lewis, John Levine, George Michaelson,
      Ed Pascoe, Jim Reid, Arturo Servin, Paul Vixie
      and Suzanne Woolf for feedback.</t>

      <t>Christian Grothoff was also very helpful and deserves special
      recognition.</t>
      <t>In addition, Andrew Sullivan was an author from adoption (2015)
      through version 14 (2021).</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml'?>

      <?rfc include='https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6761.xml'?>
    </references>

    <references title="Informative References">
      <?rfc include='https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8244.xml'?>

      <?rfc include='https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8499.xml'?>

    </references>

    <section title="Changes / Author Notes.">
      <t>[RFC Editor: Please remove this section before publication ]</t>
      
        <t>From -16 to -18:<list style="symbols">
          <t>Lots of editorial fix-ups</t>
          <t>Fixed reference to RFC 8499</t>
          <t>Clarified presentation format for .alt</t>
          <t>Clarified that IANA will set aside the name when it goes into the 6761 registry</t>
          <t>Removed the loose registry for names under .alt</t>
          <t>Added back the required discussion for RFC 6761</t>
        </list></t>

        <t>From -15 to -16:<list style="symbols">
          <t>Many simplifications to focus the document on the technical bits
          as much as possible, based on mailing list feedback.</t>
          <t>Removed unused references.</t>
          <t>Removed the RFC 2119 language because it is no longer used in the document.</t>
          <t>Added a non-normative IANA registry.</t>
          <t>Added Paul Hoffman as second author to help get the draft moving in the DNSOP WG again.</t>
        </list></t>

        <t>From -14 to -15:<list style="symbols">
          <t>[Pinky]: Gee, Brain. What are we going to do tonight?</t>
          <t>[The Brain]: The same thing we do every 6 months, Pinky. Post a
          new version of this document, with only the version number changed.</t>
        </list></t>

        <t>From -13 to -14:<list style="symbols">
          <t>Andrew asked to be removed as co-author, due to potential perception of CoI.</t>
          <t>Erik Auerswald provided Github issues and comments re: references and grammar.</t>
        </list></t>

        <t>From -12 to -13:<list style="symbols">
          <t>Just bumping versions to prevent expiration. </t>
        </list></t>

      <t>From -08 to -12:<list style="symbols">
          <t>Just bumping versions to prevent expiration. </t>

          <t>Updated references (aggressive-nsec is now RFC 8198,
          draft-ietf-dnsop-sutld-ps is now 8244).</t>
        </list></t>

      <t>From -07 to -08:<list style="symbols">
          <t>Made it clear that this is only for non-DNS.</t>

          <t>As per Interim consensus, removed the "add this to local zones"
          text.</t>

          <t>Added a Privacy Considerations section</t>

          <t>Grammar fix -- "alternative" is more correct than "alternate",
          replaced.</t>
        </list></t>

      <t>From -06 to -07:<list style="symbols">
          <t>Rolled up the GItHub releases in to a full release.</t>
        </list></t>

      <t>From -07.2 to -07.3 (GitHub point release):<list>
          <t>Removed 'sandbox' at Stephane's suggestion -
          https://www.ietf.org/mail-archive/web/dnsop/current/msg18495.html</t>

          <t>Suggested (in 4.1 bullet 3) that DNS libraries ignore these --
          Bob Harold -
          https://mailarchive.ietf.org/arch/msg/dnsop/a_ruPf8osSzi_hCzCqOxYLXhYoA</t>

          <t>Added some pointers to the SUTLD document.</t>
        </list></t>

      <t>From -07.1 to -07.2 (Github point release):<list style="symbols">
          <t>Reverted the &lt;TBD&gt; string (at request of chairs).</t>

          <t>Added an editors note explaining the above.</t>

          <t>Removed some more background, editorializing, etc.</t>
        </list></t>

      <t>From -06 to -07.1
      (https://github.com/wkumari/draft-wkumari-dnsop-alt-tld/tree/7988fcf06100f7a17f21e6993b781690b5774472):<list
          style="symbols">
          <t>Replaced ALT with &lt;TBD&gt; at the suggestions of George.</t>
        </list></t>

      <t>From -05 to -06:<list style="symbols">
          <t>Removed a large amount of background - we now have the (adopted)
          tldr document for that.</t>

          <t>Made it clear that pseudo-TLD is not intended to be
          pejorative.</t>

          <t>Tried to make it cleat that this is something people can choose
          to use - or not.</t>
        </list></t>

      <t>From -04 to -05:<list style="symbols">
          <t>Version bump - we are waiting in the queue for progress on SUN,
          bumping this to keep it alive.</t>
        </list></t>

      <t>From -03 to -04:<list style="symbols">
          <t>3 changes - the day, the month and the year (a bump to keep
          alive).</t>
        </list></t>

      <t>From -02 to -03:<list style="symbols">
          <t>Incorporate suggestions from Stephane and Paul Hoffman.</t>
        </list></t>

      <t>From -01 to -02:<list style="symbols">
          <t>Merged a bunch of changes from Paul Hoffman. Thanks for sending a
          git pull.</t>
        </list></t>

      <t>From -00 to 01:<list style="symbols">
          <t>Removed the "delegated to new style AS112 servers" text -this was
          legacy from the omnicient AS112 days. (Joe Abley)</t>

          <t>Removed the "Advice to implemntors" section. This used to
          recommend that people used a subdomain of a domain in the DNS. It
          was pointed out that this breaks things badly if the domain
          expires.</t>

          <t>Added text about why we don't want to adminster a registry for
          ALT.</t>
        </list></t>

      <t>From Individual-06 to DNSOP-00<list style="symbols">
          <t>Nothing changed, simply renamed draft-wkumari-dnsop-alt-tld to
          draft-ietf-dnsop-alt-tld</t>
        </list></t>

      <t>From -05 to -06<list style="symbols">
          <t>Incorporated comments from a number of people, including a number
          of suggestion heard at the IETF meeting in Dallas, and the DNSOP
          Interim meeting in May, 2015.</t>

          <t>Removed the "Let's have an (optional) IANA registry for people to
          (opportinistically) register their string, if they want that option"
          stuff. It was, um, optional....</t>
        </list></t>

      <t>From -04 to -05</t>

      <t><list style="symbols">
          <t>Went through and made sure that I'd captured the feedback
          received.</t>

          <t>Comments from Ed Lewis.</t>

          <t>Filled in the "Domain Name Reservation Considerations" section of
          RFC6761.</t>

          <t>Removed examples from .Onion.</t>
        </list></t>

      <t>From -03 to -04</t>

      <t><list style="symbols">
          <t>Incorporated some comments from Paul Hoffman</t>
        </list></t>

      <t>From -02 to -03</t>

      <t><list style="symbols">
          <t>After discussions with chairs, made this much more generic (not
          purely non-DNS), and some cleanup.</t>
        </list></t>

      <t>From -01 to -02</t>

      <t><list style="symbols">
          <t>Removed some fluffy wording, tightened up the language some.</t>
        </list></t>

      <t>From -00 to -01.</t>

      <t><list style="symbols">
          <t>Fixed the abstract.</t>

          <t>Recommended that folk root their non-DNS namespace under a DNS
          namespace that they control (Joe Abley)</t>
        </list></t>
    </section>
  </back>
</rfc>
