<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<!-- Copyright (C) 2009 Lars-Johan Liman -->

<!-- $Id: draft-liman-tld-names-00.xml,v 1.2 2009/03/04 00:40:07 liman Exp $ -->

<?rfc compact="no"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>

<rfc category="std" ipr="trust200902" updates="RFC 1123"
     docName="draft-liman-tld-names-00">

  <front>

    <title>
      Top Level Domain Name Specification
    </title>

    <author initials="L-J." surname="Liman" fullname="Lars-Johan Liman">
      <organization abbrev="Autonomica">
        Autonomica AB
      </organization>
      <address>
       <postal>
           <street>Bellmansgatan 30</street>
           <city>SE-118 47 Stockholm</city>
<!--       <code>SE-118 47</code>    # This doens't work for Swedes -->
           <country>Sweden</country>
       </postal>
        <email>liman@autonomica.se</email>
        <uri>http://www.autonomica.se/</uri>
      </address>
    </author>

    <date day="4" month="March" year="2009"/>

    <workgroup>
      Individual submission
    </workgroup>
    
    <abstract>

      <t>RFC 1123 is ambiguous regarding the specification for top
        level domain (TLD) labels used in the domain name
        system. This document clarifies the specification, and aligns
        it with current praxis, including the use of Internationalized
        Domain Name (IDN) Labels in TLD names.</t>

    </abstract>

  </front>
  
  <middle>

    <section title="Introduction and Background">

      <t><xref target="RFC1123">RFC 1123</xref> is ambiguous regarding
        the specification for top level domain (TLD) labels used in
        the domain name system.  There are different interpretations
        which leads to problems when deciding on new TLD names. One
        important aspect of this is the wish to use internationalized
        domain name (IDN, <xref target="RFC3490">RFC 3490 et.
        al.</xref>) labels in top level domains to facilitate use of
        local scripts.</t>

      <t>This document strives to make a new and clear definition of
        which character sequences are allowed in TLD labels.</t>

      <t>This document is a proposal and a work in progress.</t>

      <section title="Terminology">

        <t>The terminology used in this document is as defined in
          <xref target="RFC0952">RFC 0952</xref>
          and <xref target="RFC1035">RFC 1035</xref>.</t>

      </section>

      <section title="Requirements Language">

        <t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;,
          &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL
          NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;,
          &quot;RECOMMENDED&quot;, &quot;MAY&quot;, and
          &quot;OPTIONAL&quot; in this document are to be interpreted
          as described in <xref target="RFC2119">RFC 2119</xref>.</t>

      </section>

    </section>

    <section title="Technical specification for Top Level Domain Labels">

      <t><xref target="RFC0952">RFC 952</xref> gives the specification
        for names that may be used for host names on the Internet. It
        is updated by <xref target="RFC1123">RFC 1123</xref>, which
        relaxes the specification somewhat. It is somewhat unclear
        wheter the relaxation is per label or per entire host
        name.</t>

      <t>In order to avoid problems based on lack of clarity, the
        specification for a TLD name is hereby stated to be as
        follows:</t>

      <t>A TLD label MUST be at least two characters long and MAY be
        as long as 63 characters - not counting any leading or
        trailing periods (.).  It MUST consist of only ASCII
        characters from the groups "letters" (A-Z), "digits" (0-9) and
        "hyphen" (-), and it MUST start with an ASCII "letter", and it
        MUST NOT end with a "hyphen". Upper and lower case MAY be
        mixed at random, since DNS lookups are case-insensitive.</t>

      <!--      <t>^[A-Za-z][-0-9A-Za-z]{0,61}[0-9A-Za-z]$</t> -->

      <figure>

        <preamble>Hence, the ABNF expression that matches a valid TLD
        label is as follows:</preamble>

        <artwork type="abnf">

        tldlabel = ALPHA *61(ldh) ld
        ldh      = ld / "-"
        ld       = ALPHA / DIGIT
        ALPHA    = %x41-5A / %x61-7A   ; A-Z / a-z
        DIGIT    = %x30-39             ; 0-9

        </artwork>

      </figure>

      <t>This new specification reflects current praxis in
        registration of TLD names by the IANA, and allows for
        IDNs.</t>

    </section>

    <section title="Other Limitations on Top Level Domain Labels">

      <t>It is carefully noted that the above specification is not the
        only limiting factor on TLD labels. There may be other
        entities than the IETF that have influence over TLD names, and
        which may decide to restrict the names further. The above
        technical specification is just one limiting factor.</t>

    </section>

    <section title="IANA Considerations">

      <t>This memo changes the specifications for TLD names registered
        by the IANA, and the IANA is requested to change its
        registration process to use the above specification.</t>

    </section>

    <section title="Security Considerations">

      <t>This document does not introduce any new security issues.</t>

      <t>It may introduce stability issues where names registered
        under this new specification may interoperate badly with old
        software written to enforce a strict interpretation of the old
        specification. However, it is belived that such software is
        scarce on the Internet, and since TLD names that do not adhere
        to a strict interpretation of the old specification are
        already used (including IDNs) without apparent problems,
        it is believed that this change of the specicification will
        not create major stability problems on the Internet.</t>

    </section>

  </middle>

  <back>

    <references title="Normative References">

      <?rfc include="bibxml/reference.RFC.1035.xml"?>
      <?rfc include="bibxml/reference.RFC.1123.xml"?>
      <?rfc include="bibxml/reference.RFC.2119.xml"?>
      <?rfc include="bibxml/reference.RFC.3490.xml"?>

    </references>

    <references title="Informative References">

      <?rfc include="bibxml/reference.RFC.0952.xml"?>

    </references>

  </back>

</rfc>
