<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict='yes'?>
<?rfc iprnotified='no'?>
<rfc category="std" docName="draft-templin-6man-mla-01" ipr="trust200902"
updates="rfc3879, rfc4291">
  <front>
    <title abbrev="IPv6 MLAs">IPv6 MANET Local Addresses (MLAs)</title>

    <author fullname="Fred L. Templin" initials="F. L." role="editor"
            surname="Templin">
      <organization>Boeing Research &amp; Technology</organization>

      <address>
        <postal>
          <street>P.O. Box 3707</street>

          <city>Seattle</city>

          <region>WA</region>

          <code>98124</code>

          <country>USA</country>
        </postal>

        <email>fltemplin@acm.org</email>
      </address>
    </author>

    <date day="21" month="May" year="2024"/>

    <keyword>I-D</keyword>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>Mobile Ad-hoc NETworks (MANETs) present an interesting challenge
      for IPv6 addressing due to the indeterminant neighborhood properties
      of MANET interfaces. MANET routers must assign an IPv6 address to each
      MANET interface that is both unique and routable within the MANET but
      must not be forwarded to other networks. MANET routers must be able to
      assign self-generated addresses when there is no infrastructure present
      on the link that can delegate topology-relative IPv6 addresses or
      prefixes. This document therefore specifies a means for MANET
      routers to generate and assign MANET Local Addresses (MLAs).</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>When two or more IPv6 <xref target="RFC8200"/> nodes come
      together within a common local operating region (e.g., during
      the formation of a Mobile Ad-hoc Network (MANET)), they must
      be able to assign unique local-use addresses and exchange IPv6
      packets even if there is no operator infrastructure present.</t>

      <t>The key feature of these local-use IPv6 addresses is that they
      must be assured unique so that there is no chance of conflicting
      with an address assigned by another node. There is no requirement
      that the addresses have topologically-oriented prefixes, since the
      (newly-formed) local network may not (yet) connect to any other
      Internetworking topologies.</t>

      <t>The local-use IPv6 addresses could then be used for continuous
      local-scoped communications and/or to bootstrap the assignment of
      topologically-oriented addresses under the IPv6 multi-addressing
      architecture <xref target="RFC4291"/>.</t>

      <t>This document proposes a new unique local unicast address
      space known as MANET Local Addresses (MLAs). MLAs are distinguished
      by a reserved IPv6 prefix "P" as defined in this document which is
      used in conjunction with the Universally Unique Interface IDentifier
      (UUID) <xref target="RFC9562"/> to form IPv6 addresses.</t>
    </section>

    <section anchor="ipv6" title="IPv6 MANET Local Addresses (MLAs)">
      <t>The IPv6 addressing architecture specified in <xref target=
      "RFC4291"/> and <xref target="RFC4193"/> defines the supported
      IPv6 unicast/multicast/anycast address forms with various
      scopes ranging from link-local to unique-local to global.
      Unique-local and global-scoped unicast addresses are
      typically assigned through Stateless Address AutoConfiguration
      (SLAAC) <xref target="RFC4862"/> and/or the Dynamic Host
      Configuration Protocol for IPv6 (DHCPv6) <xref target=
      "RFC8415"/>, but these services require the presence of IPv6
      network infrastructure which may not be immediately available
      in spontaneously-formed MANETs or other isolated local networks.</t>

      <t>A new IPv6 address type known as the DRIP Entity Tag
      (DET) (or, Hierarchical Host Identity Tag (HHIT)) <xref
      target="RFC9374"/> provides a well-structured address
      format with exceptional uniqueness properties. A portion
      of the address includes the node's self-generated Overlay
      Routable Cryptographic Hash IDentifier (ORCHID) while
      the remainder of the address includes a well-formed IPv6
      prefix plus bits corresponding to an attestation service
      that supports address proof-of-ownership. Verification of
      the attestation aspect of the address requires access to
      network infrastructure, but this may not always be
      available.</t>

      <t>MANET interfaces have the interesting property that a MANET
      router R will often need to forward packets between MANET nodes
      A and B even though R uses the same interface in the inbound
      and outbound directions. Since nodes A and B may not be able to
      communicate directly even though both can communicate directly
      with R, the link connectivity property is intransitive and the
      IPv6 Neighbor Discovery (ND) Redirect service cannot be used.
      Conversely, R may need to forward packets between nodes A
      and B via different MANET interfaces within a single MANET
      that includes multiple partitions. Due to these degenerate
      link properties, the use of IPv6 Link Local Addresses (LLAs)
      is also out of scope.</t>

      <t>This document therefore introduces a new fully-self-generated
      IPv6 unicast address format known as the MANET Local Address
      (MLA) that can be used either instead of or in addition to a
      DET/HHIT and/or other IPv6 unicast address types (noting again
      that a single interface may have multiple IPv6 addresses <xref
      target="RFC4291"/>). The address uses an n-bit IPv6 prefix "P"
      along with a (128-n)-bit interface identifier that includes
      the least-significant bits of a Universally Unique IDentifier
      (UUID) <xref target= "RFC9562"/> as shown in <xref target=
      "mla-fmt"/>.

      <figure anchor="mla-fmt"
              title="IPv6 MANET Local Address (MLA) Format">
          <artwork><![CDATA[   |          n bits               |           128-n bits            |
   +-------------------------------+---------------------------------+
   |      IPv6 prefix ("P")        |           UUID Suffix           |
   +-------------------------------+---------------------------------+
   ]]></artwork></figure></t>

       <t>In this format, nodes can construct an MLA by first creating
       a self-generated UUID per <xref target="RFC9562"/> the writing
       the n bits of P over the n most significant bits of the UUID.
       Due to the structure of the UUID which encodes a 4-bit Version
       code beginning at bit 48, n must be chosen to be no larger
       than 48, with the smallest value of n possible preferred in
       order to maintain maximum UUID resolution. Several alternatives
       have been proposed for the selection of P, including 1000::/4,
       0f00::/8, a sub-prefix of 5f00::/8 and the ULA-C prefix
       fc00::/8 (see: <xref target="RFC4193"/>). An example IPv6
       MLA using the ULA-C prefix plus the UUIDv4 format is shown
       in <xref target= "ula-uuid"/>:

      <figure anchor="ula-uuid"
              title="IPv6 MLA Example using ULA-C">
          <artwork><![CDATA[    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |1|1|1|1|1|1|0|0|                   random_a                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          random_a             |  ver  |       random_b        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |var|                       random_c                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           random_c                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   ]]></artwork></figure></t>

      <t>In this example, the node creates a 128-bit UUIDv4 per <xref
      target="RFC9562"/> then simply replaces the most significant 8
      bits with the constant string '11111100' (0xfc); the resulting
      128-bit MLA then has the format of an IPv6 address with an 8-bit
      prefix and 120-bit interface identifier as permitted by the
      IPv6 addressing architecture. For example:</t>

      <t><list style="empty">
        <t>fc84:6c29:de12:4b74:884e:9d2a:73fc:2d94::/8</t>
      </list></t>

      <t>After a node creates an MLA, it can use the address
      within the context of spontaneously-organized local networks
      in which two or more nodes come together in the absence of
      supporting infrastructure and can still exchange IPv6 packets
      with little or no chance of address collisions. The use could
      be limited to bootstrapping the assignment of topologically
      correct IPv6 addresses through other means mentioned earlier,
      or it could extend to longer term usage patterns such as
      sustained communications with single-hop neighbors on a
      local link or even between multi-hop peers within a MANET.</t>
      
      <t>Note: while the MLA example specified above is
      relative to UUIDv4, the same format can be applied also
      to all other UUID versions specified in <xref target=
      "RFC9562"/>, i.e. by replacing the most significant n
      bits of the UUID with the n leading bits of P. New UUID
      version types are therefore advised to provide
      compatibility for this construction method.</t>
    </section>

    <section anchor="interface" title="Assigning IPv6 MLAs to an Interface">
      <t>IPv6 MLAs have no topological orientation and can therefore be
      assigned to any of a node's IPv6 interfaces. The addresses may serve
      as a basis for multihop forwarding over a MANET interface and/or for
      local neighborhood discovery over other IPv6 interface types. Due to
      their uniqueness properties, the node can assign an IPv6 MLA to an
      interface without invoking (pre-service) Duplicate Address Detection
      (DAD), however it should configure and assign a new IPv6 MLA if it
      later detects a duplicate through (in-service) DAD.</t>
    </section>

    <section anchor="sire-loc" title="Reclaiming fec0::/10">
      <t>The list of candidates for use as MLA prefix P enumerated
      above were discussed thoroughly on the list, with various benefits
      and drawbacks noted for each. Returning to a debate from over 20
      years ago, this document now proposes to reclaim the deprecated
      prefix "fec0::/10" for use as the MLA top-level prefix <xref
      target="RFC3879"/>.</t>

      <t>The prefix (formerly known as the "Site-Local IPv6 Addresses")
      has the distinct advantage that it is reserved and available for
      reclamation by a future standards track publication, for which this
      document qualifies. Upon publication as a standards track RFC, the
      RFC Editor is instructed to recategorize <xref target="RFC3879"/>
      as obsolete and update <xref target="RFC4291"/> to reflect this
      new use for "fec0::/10".</t>
    </section>

   <section anchor="reqs" title="Requirements">
      <t>IPv6 nodes MAY assign self-generated IPv6 MLAs to their interface
      connections to local networks (or MANETs). If the node later
      becomes aware that the address is already in use by another node,
      it instead generates and assigns a new MLA.</t>

      <t>IPv6 routers MAY forward IPv6 packets with MLA source or
      destination addresses over multiple hops within the same local
      network (or MANET).</t>

      <t>IPv6 routers MUST NOT forward packets with MLA source or
      destination addresses to a link outside the packet's local
      network (or MANET) of origin.</t>

      <t>IPv6 routers MUST NOT advertise prefix P to in routing
      protocol exchanges with correspondents outside the local
      network (or MANET). For this reason, the ULA-C prefix has
      the advantage that it is already scoped for local use.</t>
   </section>

    <section anchor="implement" title="Implementation Status">
      <t>In progress.</t>
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>This document has no requirements for IANA.</t>
    </section>

    <section anchor="secure" title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="ack" title="Acknowledgements">
      <t>This work was inspired by continued investigations into
      5G MANET operations in cooperation with the Virginia Tech
      National Security Institute (VTNSI).</t>

      <t>Emerging discussions on the IPv6 maintenance (6man) mailing
      list are expected to shape future versions of this document.
      The author acknowledges all those whose useful comments have
      helped further the understanding of this proposal.</t>

      <t>Kyzer Davis (RFC9562 author) is acknowledged for his review
      and comments that helped shape the document.</t>

      <t>Honoring life, liberty and the pursuit of happiness.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">

      <?rfc include="reference.RFC.8200"?>

      <?rfc include="reference.RFC.9562"?>

      <?rfc include="reference.RFC.4193"?>

      <?rfc include="reference.RFC.4291"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.9374"?>

      <?rfc include="reference.RFC.4862"?>

      <?rfc include="reference.RFC.8415"?>

      <?rfc include="reference.RFC.3879"?>
    </references>

    <section title="Change Log">
      <t>&lt;&lt; RFC Editor - remove prior to publication &gt;&gt;</t>

      <t>Differences from earlier versions:<list style="symbols">
          <t>First draft publication.</t>
        </list></t>
    </section>
  </back>
</rfc>
