<?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-dhcpv6nd-01" ipr="trust200902" updates="">
  <front>
    <title abbrev="DHCPv6ND">DHCPv6 Option for IPv6 ND (DHCPv6ND)</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="10" month="October" year="2024"/>

    <keyword>I-D</keyword>

    <keyword>Internet-Draft</keyword>

    <abstract>
      <t>On some IPv6 links, clients may have a reasonable expectation
      that routers on the link would be willing to support DHCPv6
      address/prefix delegation services without the need to first
      examine the M/O bits in a received Router Advertisement (RA)
      message. Such clients should therefore be capable of invoking
      the IPv6 Neighbor Discovery (IPv6ND) router discovery and Dynamic
      Host Configuration Protocol for IPv6 (DHCPv6) address/prefix
      delegation services in a single message exchange instead of
      multiple. This document specifies a new IPv6ND option termed
      the "DHCPv6ND Option" that supports both functions in a
      single message exchange.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>On some IPv6 links, clients may have a reasonable expectation
      that routers on the link would be willing to support DHCPv6
      address/prefix delegation services without the need to first
      examine the M/O bits in a received Router Advertisement (RA)
      message. Such clients should therefore be capable of invoking
      the IPv6 Neighbor Discovery (IPv6ND) router discovery and Dynamic
      Host Configuration Protocol for IPv6 (DHCPv6) address/prefix
      delegation services in a single message exchange instead of
      multiple. This document specifies a new IPv6ND option termed
      the "DHCPv6ND Option" that supports both functions in a
      single message exchange.</t>
    </section>

    <section anchor="ipv6" title="The DHCPv6ND Option">
      <t>The IPv6ND specification <xref target="RFC4861"/> defines
      the protocol, message formats and option types for operation
      of the IPv6 protocol <xref target="RFC8200"/> over all manners
      of links. Routers on the link send Router Advertisement (RA)
      messages to a link-scoped multicast address allowing clients
      to detect their presence. After examining the M/O bits in a
      received RA, a client can then invoke DHCPv6 <xref target=
      "RFC8415"/> services and/or StateLess Address AutoConfiguration
      (SLAAC) <xref target="RFC4862"/> procedures to obtain IPv6
      addresses. (In some environments, the DHCPv6 Prefix Delegation
      (PD) service may also be available to satisfy client needs.)</t>

      <t>This document concerns a service in which clients may send
      immediate Router Solicitation (RS) messages to invoke timely
      RA responses from routers on the link, i.e., whether or not
      an unsolicited multicast RA is also received. If the clients
      are further aware in advance that routers on the link would
      be willing to provide DHCPv6 address/prefix delegation services,
      it would be beneficial if the RS/RA message exchanges themselves
      could also convey DHCPv6 parameters. This would not only reduce
      message overhead but also reduce the attack surface since all
      operations are conducted in a single (secured) message exchange.</t>

      <t>This document specifies a DHCPv6 option for IPv6 Neighbor
      Discovery ("DHCPv6ND") with the following format:

      <figure anchor="mla-fmt"
              title="DHCPv6ND Option Format">
          <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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |     Type      |    Length     |    msg-type   |  trans-id (0) |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      transaction-id (1-2)     |                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               ~
     |                                                               ~
     ~                        DHCPv6 options                         ~
     ~                 (variable number and length)                  ~
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Null Padding ....
     +-+-+-+-+-+-+-+-+-+-+-+-
   ]]></artwork></figure></t>

      <t>In this format "Type" is assigned an integer IPv6 ND option
      type value "TBD" (see: IANA Considerations), "Length" is the
      length of the option in units of 8 octets and the remainder of
      the option is a standard-format DHCPv6 message per <xref target=
      "RFC8415"/>. The DHCPv6 message begins with a 1-octet msg-type
      followed by a 3-octet transaction-id and ends with a variable
      length concatenation of DHCPv6 options. Null Padding is added
      following the end of the DHCPv6 options if necessary to ensure
      8-octet alignment.</t>

      <t>In a reference use case, when a client on the link wishes
      to invoke the combined services without necessarily waiting to
      receive an RA, it can send an RS message containing a DHCPv6ND
      Option. The DHCPv6 message will typically include a request for
      address and/or prefix delegations plus a Rapid Commit option.
      Upon receiving the RS message, one or more routers on the
      link that are willing to provide DHCPv6 services convey the
      DHCPv6 message to a nearby DHCPv6 server, e.g., via a
      loopback interface on the local node. When the DHCPv6
      server responds, the router encapsulates the DHCPv6 response
      in an RA message DHCPv6ND option and sends the RA message to
      the unicast address of the client. It is important to understand
      that multiple routers on the link may send independent RA
      responses to a single RS message. The client should process
      the union of all DHCPv6 information received in RAs (keeping
      track of their respective routers of origin) and either accept
      or decline any offered addresses or prefixes.</t>

      <t>Following an initial RS/RA exchange when a router
      successfully delivers DHCPv6 delegations to a client,
      the client is responsible for refreshing lease lifetimes
      prior to their expiration. For this purpose, the client
      can either initiate another RS/RA exchange (e.g., if
      parameters such as router or prefix lifetimes are also
      nearing expiration) or include a DHCPv6ND option in
      a Neighbor Solicitation (NS) message prepared according
      to Neighbor Unreachability Detection (NUD) procedures.
      When the router receives the NS message, it processes
      the DHCPv6ND option and returns a Neighbor Advertisement
      (NA) message that also includes a responsive DHCPv6ND
      option.</t>

      <t>Note that it is not an error for a router that either
      does not recognize the option or cannot provide the requested
      service to return an NA/RA with a DHCPv6ND Option containing a
      negative response or no DHCPv6ND Option at all. The client can
      then attempt to obtain DHCPv6 services via another router on
      the link. However, routers SHOULD NOT return a DHCPv6 Option
      response in an NA/RA message sent to a multicast address, and
      clients MUST ignore a DHCPv6 Option response in a multicast
      NA/RA.</t>
    </section>

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

    <section anchor="iana" title="IANA Considerations">
      <t>The IANA is instructed to allocate a new entry in the
      "IPv6 Neighbor Discovery Option Formats" table of the
      "icmpv6-parameters" registry. The entry should set "Type"
      to TBD, "Description" to "DHCPv6ND option" and "Reference"
      to "[RFCXXXX]" (i.e., this document).</t>

      <t>IANA Registration procedures are "RFC Required".</t>
    </section>

    <section anchor="secure" title="Security Considerations">
      <t>By combining the IPv6 ND router discovery and DHCPv6
      managed address delegation procedures in a single RS/RA
      message exchange, the attack surface for the service is
      reduced since only the RS and RA messages need to be
      secured.</t>

      <t>The DHCPv6ND option may appear in RS/RA or NS/NA
      messages for  initial delegations or lease extensions.
      The option must be ignored if it appears in a Redirect
      message.</t>

      <t>When link or physical-layer security services are absent
      or inadequate, network layer securing services for IPv6ND
      messages that contain the DHCPv6ND option should be applied
      to ensure integrity and authorization.</t>

      <t>Nodes that do not recognize the DHCPv6ND option in
      the ND messages they process ignore the option and
      process any other recognized options present. This
      supports operation on links with a "mixed" set of
      clients and routers, where some recognize and process
      the option while others ignore it.</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>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.4861"?>

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

    <references title="Informative References">

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

    </references>

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

      <t>Differences from earlier versions:<list style="hanging">
          <t hangText="Draft -00 to -01"><vspace/><list style="symbols">
            <t>Clarifications based on list input.</t>

            <t>Include support for NS/NA/RS/RA.</t>

            <t>IANA Considerations and Security Considerations.</t>
          </list></t>

          <t hangText="Draft -00"><vspace/><list style="symbols">
            <t>First draft publication.</t>
          </list></t>
        </list></t>
    </section>
  </back>
</rfc>
