<?xml version="1.0" encoding="utf-8"?>
<!-- 
     draft-rfcxml-general-template-standard-00
  
     This template includes examples of the most commonly used features of RFCXML with comments 
     explaining how to customise them. This template can be quickly turned into an I-D by editing 
     the examples provided. Look for [REPLACE], [REPLACE/DELETE], [CHECK] and edit accordingly.
     Note - 'DELETE' means delete the element or attribute, not just the contents.
     
     Documentation is at https://authors.ietf.org/en/templates-and-schemas
-->
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-mertl-afipv8-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
-->

  <front>
    <title abbrev="AF UTF-8 IP">UTF-8 Internet Protocol Addresses</title>
    <!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

    <seriesInfo name="Internet-Draft" value="draft-mertl-afipv8-00"/>
   
    <author fullname="Marcus Ertl" initials="M" role="editor" surname="Ertl">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization>Ertl Software Productions</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>An Peschbenden 13</street>
          <code>47906</code>
          <city>Kempen</city>
          <region>NRW</region>
          <country>DE</country>
          <!-- Uses two letter country code -->
        </postal>        
        <phone>+49 2152 53286</phone>
        <email>marcus.ertl@gmx.net</email>  
        <!-- Can have more than one <email> element -->
      </address>
    </author>
   
    <date day="1" month="April" year="2026"/>
    <!-- On draft submission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->

    <area>Transport</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <!-- "Internet Engineering Task Force" is fine for individual submissions.  If this element is 
          not present, the default is "Network Working Group", which is used by the RFC Editor as 
          a nod to the history of the RFC Series. -->

    <keyword>ip6</keyword><keyword>ipv6</keyword><keyword>ip</keyword><keyword>vanity</keyword><keyword>addressing</keyword>
    <!-- [REPLACE/DELETE]. Multiple allowed.  Keywords are incorporated into HTML output files for 
         use by search engines. -->

    <abstract>
      <t>This memo describes an alternate entry and display format for IPv6 addresses using UTF-8 instead of hextets.
 A mixed representation for traditional IPv6 address prefixes also is explored, along with means of transitioning between the two within an IPv6 address.</t>
      <t>Additionally, an address extension is proposed to accommodate the inevitable need for longer addresses.</t>
      <t>Finally, security implications of special UTF-8 glyphs are considered.</t>
    </abstract>
 
  </front>

  <middle>
    
    <section>
      <name>Introduction</name>
      <t>The adoption and deployment of IPv6 has been slow due to several factors, including the perceived unwieldiness of
the addresses themselves and the lack of memorable constants. Hextet notation doesn't lend itself well to memorization
 (especially if the entire length needs to be memorized) and, while better in this respect, there still are only a handful of
 recognizable, catchy constants like "dead", "beer", "face", etc. . Even resorting to "Leetspeak" (1337) will yield only a comparatively small pool of choices.
Therefore, the most powerful drive for adoption, vanity, isn't readily applicable. This document aims to change this by presenting a
 way for organizations and individuals to express themselves within IPv6 addresses, which is impossible to do with IPv4 and therefore is
 expected to become a deciding factor in IPv6 adoption.</t>
      
      <section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
      </section>
      <!-- [CHECK] The 'Requirements Language' section is optional -->

    </section>
    
    <section>
      <name>New display and entry format for IPv6 addresses</name>
      <t>Instead of the current hextet format, separated by colons, IPv6 addresses as defined by <xref target="RFC8200"/> MAY be displayed
 and entered as a sequence of UTF-8 characters as defined in <xref target="RFC3629"/>. These lend themselves well to the underlying octet format while placing no
 limitations on the characters.</t>
      <t>Mixed representation MAY be used and is especially relevant to conventional prefixes that have been defined without this
 new representation in mind. Representations MUST NOT change within octets. Transitions MUST be delimited by a colon. Mixed
notation MUST NOT transition to UTF-8 using a valid hexadecimal character (a-f,A-F,0-9).</t>
<t>The new UTF-8 representation uses the tabulator (U+0009) as native replacement for the double colon used in IPv6. As with the double
 colon, a UTF-8 IP address MUST NOT contain more than one tabulator. It also MUST NOT contain both a tabulator and a double colon.</t>
<t>To avoid confusion, the displaying software SHOULD visually distinguish the tabulator from common whitespace. Likewise, the displaying
 software SHOULD visually distinguish traditional and nontraditional parts of an IPv6 address, since it will be common that characters from the
 hexadecimal range appear in the new notation. Also see <xref target="Security"/> for security implications of possible usage of special formatting glyphs.</t>
<t>If the slash prefix notation "/[bits]" is used, there MUST be a transition to hextet notation immediately preceding the slash.</t>
<t>Even though it is NOT RECOMMENDED, the mixed representation allows transitions transition to / from UTF-8
 after odd-numbered octets. If a double colon or tabulator is used with such a separation, all remaining octets MUST be spelt out fully
 (even those that would be compacted to a single "0" in traditional IPv6). Basic IPv6 colon separation and explosion rules MUST NOT be applied in this case.</t>
<t>The three characters: colon (:), slash (/) and tabulator (U+0009) are reserved and MUST NOT appear as part of the address itself.</t>
<t>Examples</t>
      <ul>
        <li>IETF	server:/128 (tabulator and mandatory transition before slash)<br/>
	4945:5446::7365:7276:6572/128 (traditional notation of the above)</li>
        <li>RFC	Editor:/128 (tabulator and mandatory transition before slash)<br/>
	5246:4300::4564:6974:6F72/128 (traditional notation of the above)</li>
        <li>Campus	dorm  :/64 (tabulator and mandatory transition before slash)<br/>
	4361:6D70:7573::646F:726D:2020/64 (traditional notation of the above)</li>
	<li>This is an IPv6!:/128 (mandatory transition before slash)<br/>
	5468:6973:2069:7320:616E:2049:5076:3621/128 (traditional notation of the above)</li>
      </ul>
<t>Examples for mixed addresses</t>
      <ul>
        <li>2001:db80:Peace please:/64 (one transition and mandatory transition before slash)<br/>
        2001:db80:5065:6163:6520:706C:6561:7365/64 (traditional notation of the above)</li>
        <li>2001:db8::IETF-room _ :/64 (one transition and mandatory transition before slash)<br/>
	2001:db80:4945:5446:2D72:6F6F:6D20:5F20/64 (traditional notation of the above)</li>
        <li>2001:db8::corp-servers:/64 (one transition and mandatory transition before slash)<br/>
	2001:db80:636F:7270:2D73:6572:7665:7273/64 (traditional notation of the above)</li>
        <li>2001:db80:land:0123::3/64 (two transitions, double colon and no mandatory transition)<br/>
        2001:db80:6C61:6E64:0123::3/64 (traditional notation of the above)</li>
        <li>2001:db80:land 0123::/64 (two transitions, including double colon and no mandatory transition)<br/>
        2001:db80:6C61:6E64:2030:3132:3300::/64 (traditional notation of the above)</li>
        <li>2001:db80:trees:0123:	:/64 (three transitions, tabulator and mandatory transition before slash)<br/>
        2001:db80:7472:6565:7301:2300::/64 (traditional notation of the above)</li>
        <li>2001:db80:trees:0123::/64 (equivalent to above, two transitions and no mandatory transition)<br/>
        2001:db80:7472:6565:7310:2300::/64 (traditional notation of the above)</li>
        <li>2001:db80:trees0:1230::/64 (not equivalent to above, two transitions and no mandatory transition)<br/>
        2001:db80:7472:6565:7330:1230::/64 (traditional notation of the above)</li>
        <li>2001:db80::database:/64 (one transition and mandatory transition before slash)<br/>
	2001:db80::6461:7461:6261:7365/64 (traditional notation of the above)</li>
	<li>2001:db80::Cameras:0/80 (not acceptable due to ambiguity)<br/>
	2001:db80:0000:00:Cameras:0/80 (ambiguity removed, acceptable)<br/>
	2001:db80::43:616D:6572:6173:0/80 (traditional notation of the above)</li>
      </ul>
<t>As seen above, it is often feasible to encode the entire hostname in the host part of the IPv6. However, the reverse translation into mixed notation
cannot easily be done without additional user input, therefore it is RECOMMENDED to have the position of the transition to UTF-8 be defined by the prefix length,
 and also it is NOT RECOMMENDED to transition back from UTF-8 at all except for the the mandatory transition at the slash.</t>
<t>If the prefix length is used in this manner, automated reversal would be facilitated, which would make it significantly more easy to administer static IP addresses,
oversee dynamic address leases as well as analyze log files, where the absence of meaningful UTF-8 representation may by itself be a clue to an issue.
 Essentially, the translation of a more or less arbitrary hextet sequence to any specific machine name would become largely unnecessary once the hostname <strong>is</strong> the IP
 address. This in turn has the potential of streamlining the workflow and thereby reduce both manual labour and opportunity for error.</t>
    </section>
    <section anchor="Extension">
<name>Proposal for address extension</name>
<t>By transitioning to UTF-8 addressing it becomes immediately obvious that the current size of an IPv6 address is insufficient. There will undoubtedly be
desire to use organization names, catchy phrases, or mottos for public-facing hosts, for the prefix, or both.<br/> It is therefore proposed to increase the address size by a factor of four.<br/> When doing so,
 notation should be restricted to UTF-8 only, as the resulting longer addresses cannot be rendered in a concise way in hextet notation.<br/>
With this extension, the current DNS system would become obsolete, simplifying the internet architecture and removing vulnerable services.</t>
    </section>
    
    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    
    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>If the proposed address extension is implemented, the DNS system, both local and global, would become obsolete and all associated vulnerabilities and
risks with it.<br/> Additionally, the direct representation of hostnames as their IP addresses would likely benefit security due to reduced risk of misidentification or misrepresentation.<br/> Care must be taken, however, with
international UTF-8 glyphs that look similar to those used in a particular instance, just like in internationalized domain names (IDN), <xref target="RFC5890"/>.<br/> Additionally,
glyphs that facilitate hiding of characters, like in the GlassWorm exploit, need to be taken into account.<br/> Finally, the tabulator may also look similar to a common
whitespace, so fake addresses could be constructed to mimic official addresses exploiting this.</t> <t>While hiding glyphs SHOULD simply be disallowed, the other glyphs may have
 legitimate purposes and cannot be universally restricted. Instead, the displaying software needs to visually distinguish them in an obvious but non-intrusive way so that the risk for
 misidentification is at least reduced.</t><t>The displaying software MUST ensure that all characters and glyphs that make up an address are clearly and immediately identifiable, including formatting.</t>
<t>The handling of special glyphs except for the tabulator by security software and devices can likely be heavy-handed because it is expected that these will be used either only internal to a specific network, or not at all,
 because entering them will be difficult and thus undesirable in any foreign script. External or global use will thus be restricted to fraud and forgery.</t>
<t>As a general rule, glyphs that are not native to the respective script of a network or organization should be visually distinguished. If a glyph or character cannot be rendered, it MUST be replaced by a clear indicator, ideally identifying the offending character or glyph by other means.</t>
    </section>
    
    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3629.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8200.xml"/>
        <!-- The recommended and simplest way to include a well known reference -->
        
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5890.xml"/>
      </references>
    </references>
    
    <section anchor="Acknowledgements" numbered="false">
      <!-- [REPLACE/DELETE] an Acknowledgements section is optional -->
      <name>Acknowledgements</name>
      <t>This template uses extracts from templates written by Pekka Savola, Elwyn Davies and 
        Henrik Levkowetz.</t>
    </section>
        
 </back>
</rfc>
