<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.39 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dhc-addr-notification-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.5 -->
  <front>
    <title abbrev="Registering SLAAC Addresses using DHCPv6">Registering Self-generated IPv6 Addresses using DHCPv6</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dhc-addr-notification-latest"/>
    <author initials="W." surname="Kumari" fullname="Warren Kumari">
      <organization>Google, LLC</organization>
      <address>
        <email>warren@kumari.net</email>
      </address>
    </author>
    <author initials="S." surname="Krishnan" fullname="Suresh Krishnan">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <email>suresh.krishnan@gmail.com</email>
      </address>
    </author>
    <author initials="R." surname="Asati" fullname="Rajiv Asati">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>7025 Kit Creek road</street>
          <city>Research Triangle Park</city>
          <code>27709-4987</code>
          <country>USA</country>
        </postal>
        <email>rajiva@cisco.com</email>
      </address>
    </author>
    <author initials="L." surname="Colitti" fullname="Lorenzo Colitti">
      <organization>Google, LLC</organization>
      <address>
        <postal>
          <street>Shibuya 3-21-3</street>
          <country>Japan</country>
        </postal>
        <email>lorenzo@google.com</email>
      </address>
    </author>
    <author initials="J." surname="Linkova" fullname="Jen Linkova">
      <organization>Google, LLC</organization>
      <address>
        <postal>
          <street>1 Darling Island Rd</street>
          <city>Pyrmont</city>
          <code>2009</code>
          <country>Australia</country>
        </postal>
        <email>furry@google.com</email>
      </address>
    </author>
    <author initials="S." surname="Jiang" fullname="Sheng Jiang">
      <organization>Beijing University of Posts and Telecommunications</organization>
      <address>
        <postal>
          <street>No. 10 Xitucheng Road</street>
          <city>Beijing</city>
          <region>Haidian District</region>
          <code>100083</code>
          <country>China</country>
        </postal>
        <email>shengjiang@bupt.edu.cn</email>
      </address>
    </author>
    <date year="2023" month="August" day="02"/>
    <area>Internet</area>
    <workgroup>Dynamic Host Configuration</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 102?>

<t>This document defines a method to inform a DHCPv6 server that a device has a self-generated or statically configured address.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://wkumari.github.io/draft-wkumari-dhc-addr-notification/draft-wkumari-dhc-addr-notification.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-dhc-addr-notification/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Dynamic Host Configuration Working Group mailing list (<eref target="mailto:dhcwg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dhcwg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dhcwg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/wkumari/draft-wkumari-dhc-addr-notification"/>.</t>
    </note>
  </front>
  <middle>
    <?line 107?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>It is very common operational practice, especially in enterprise networks, to use IPv4 DHCP logs for troubleshooting or security purposes. Examples of this include a help desk dealing with a ticket such as "The CEO's laptop cannot connect to the printer"; if the MAC address of the printer is known (for example from an inventory system), the IPv4 address can be retrieved from the DHCP logs and the printer pinged to determine if it is reachable. Another common example is a Security Operations team discovering suspicious events in outbound firewall logs and then consulting DHCP logs to determine which employee's laptop had that IPv4 address at that time so that they can quarantine it and remove the malware.</t>
      <t>This operational practice relies on the DHCP server knowing the IP address assignments. Therefore, the practice does not work if static IP addresses are manually configured on devices or self-assigned addresses (such as when self-configuring an IPv6 address using SLAAC <xref target="RFC4862"/>) are used.</t>
      <t>The lack of this parity with IPv4 is one of the reasons which may be hindering IPv6 deployment, especially in enterprise networks.</t>
      <t>This document provides a mechanism for a device to inform the DHCPv6 server that it has a self-configured IPv6 address (or has a statically configured address), and thus provides parity with IPv4 in this aspect.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

</section>
    <section anchor="registration-mechanism-overview">
      <name>Registration Mechanism Overview</name>
      <t>The DHCPv6 protocol is used as the address registration protocol when a DHCPv6 server performs the role of an address registration server.
The DHCPv6 IA Address option <xref target="RFC8415"/> is used to specify the address to be registered.</t>
      <t>After successfully assigning a self-generated IPv6 address on one of its interfaces, a client implementing this specification <bcp14>SHOULD</bcp14> multicast an ADDR-REG-INFORM message in order to inform the DHCPv6 server that this self-generated address is in use (as shown in Fig.1).</t>
      <figure anchor="figops">
        <name>Address Registration Procedure</name>
        <artwork><![CDATA[
+----+   +----------------+                  +---------------+
|Host|   |First-hop router|                  |Addr-Reg Server|
+----+   +----------------+                  +---------------+
|   SLAAC   |                                      |
|<--------->|                                      |
|           |                                      |
|           |        ADDR-REG-INFORM               |
|------------------------------------------------->|
|           |                                      |Register / log
|           |        ADDR-REG-REPLY                |address
|<-------------------------------------------------

]]></artwork>
      </figure>
    </section>
    <section anchor="dhcpv6-address-registration-procedure">
      <name>DHCPv6 Address Registration Procedure</name>
      <section anchor="dhcpv6-address-registration-request">
        <name>DHCPv6 Address Registration Request</name>
        <t>The DHCPv6 client sends an ADDR-REG-INFORM message to inform that an IPv6 address is in use.  The format of the ADDR-REG-INFORM message is described as follows:</t>
        <figure anchor="message-inform">
          <name>DHCPv6 ADDR-REG-INFORM message</name>
          <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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |    msg-type   |               transaction-id                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 .                            options                            .
 .                           (variable)                          .
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  msg-type             Identifies the DHCPv6 message type;
                       Set to ADDR-REG-INFORM (TBA1).

  transaction-id       The transaction ID for this message exchange.

  options              Options carried in this message.
]]></artwork>
        </figure>
        <t>The client <bcp14>MUST</bcp14> generate a transaction ID and insert this value in the "transaction-id" field.</t>
        <t>The client <bcp14>MUST</bcp14> include a Client Identifier option in the ADDR-REG-INFORM message.</t>
        <t>The ADDR-REG-INFORM message <bcp14>MUST NOT</bcp14> contain the Server Identifier option and <bcp14>MUST</bcp14> contain exactly one IA Address option containing the address being registered. The valid-lifetime and preferred-lifetime fields in the option <bcp14>MUST</bcp14> match the current Valid Lifetime and Preferred Lifetime of the address being registered.</t>
        <t>The ADDR-REG-INFORM message is dedicated for clients to initiate an address registration request toward an address registration server.  Consequently, clients <bcp14>MUST NOT</bcp14> put any Option Request Option(s) in the ADDR-REG-INFORM message. Clients <bcp14>MAY</bcp14> include other options, such as the Client FQDN Option <xref target="RFC4704"/>.</t>
        <t>The client sends the DHCPv6 ADDR-REG-INFORM message to the All_DHCP_Relay_Agents_and_Servers multicast address (ff02::1:2). The client <bcp14>MUST</bcp14> send separate messages for each address being registered.</t>
        <t>Unlike other types of messages, which are sent from the link-local address of the client, then ADDR-REG-INFORM message <bcp14>MUST</bcp14> be sent from the address being registered. This is primarily for "fate sharing" purposes - for example, if the network implements some form of L2 security to prevent a client from spoofing other clients' addresses this prevents an attacker from spoofing ADDR-REG-INFORM messages.</t>
        <t>On clients with multiple interfaces, the client <bcp14>MUST</bcp14> only send the packet on the network interface that has the address being registered, even if it has multiple interfaces with different addresses. If the same address is configured on multiple interfaces, then the client <bcp14>MUST</bcp14> send ADDR-REG-INFORM each time the address is configured on an interface that did not previously have it, and refresh each registration independently from the others.</t>
        <t>The client <bcp14>MUST</bcp14> only send the ADDR-REG-INFORM message for valid (<xref target="RFC4862"/>) addresses of global scope (<xref target="RFC4007"/>). This includes ULA addresses, which are defined in <xref target="RFC4193"/> to have global scope.
The client <bcp14>MUST NOT</bcp14> send the  ADDR-REG-INFORM message for addresses configured by DHCPv6.</t>
        <t>The client <bcp14>SHOULD NOT</bcp14> send the ADDR-REG-INFORM message if it has not received any Router Advertisement message with either M or O flags set to 1.</t>
        <t>Clients <bcp14>MUST</bcp14> discard any received ADDR-REG-INFORM messages.</t>
        <section anchor="server-message-processing">
          <name>Server message processing</name>
          <t>Servers <bcp14>MUST</bcp14> discard any ADDR-REG-INFORM messages that meet any of the following conditions:</t>
          <ul spacing="normal">
            <li>the message does not include a Client Identifier option;</li>
            <li>the message includes a Server Identifier option;</li>
            <li>the message does not include the IA Address option, or the IP address in the IA Address option does not match the source address of the original ADDR-REG-INFORM message sent by the client.</li>
            <li>the message includes an Option Request Option.</li>
          </ul>
          <t>After receiving this ADDR-REG-INFORM message, the address registration server <bcp14>SHOULD</bcp14> verify that the address being registered is "appropriate to the link" as defined by <xref target="RFC8415"/>. If the server believes that the address being registered is not appropriate to the link <xref target="RFC8415"/>, it <bcp14>MUST</bcp14> drop the message, and <bcp14>SHOULD</bcp14> log this fact. Otherwise, the server:</t>
          <ul spacing="normal">
            <li>
              <bcp14>SHOULD</bcp14> register or update a binding between the provided Client Identifier and IPv6 address in its database. If there is already a binding between the registered address and another another client, the server <bcp14>SHOULD</bcp14> log the fact and update the binding.</li>
            <li>
              <bcp14>SHOULD</bcp14> log the address registration information (as is done normally for clients which have requested an address), unless configured not to do so.</li>
            <li>
              <bcp14>SHOULD</bcp14> mark the address as unavailable for use and not include it in future ADVERTISE messages.</li>
            <li>
              <bcp14>SHOULD</bcp14> send back an ADDR-REG-REPLY message.</li>
          </ul>
          <t>DHCPv6 relay agents and switches that relay address registration messages directly from clients <bcp14>SHOULD</bcp14> include the client's link-layer address in the relayed message using the Client Link-Layer Address option (<xref target="RFC6939"/>).</t>
        </section>
      </section>
      <section anchor="dhcpv6-address-registration-acknowledgement">
        <name>DHCPv6 Address Registration Acknowledgement</name>
        <t>The server <bcp14>SHOULD</bcp14> acknowledge receipt of a valid ADDR-REG-INFORM message by sending a ADDR-REG-REPLY message back. The format of the ADDR-REG-REPLY message is described as follows:</t>
        <figure anchor="message-reply">
          <name>DHCPv6 ADDR-REG-REPLY message</name>
          <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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |    msg-type   |               transaction-id                  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                                                               |
 .                            options                            .
 .                           (variable)                          .
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  msg-type             Identifies the DHCPv6 message type;
                       Set to ADDR-REG-REPLY (TBA2).

  transaction-id       The transaction ID for this message exchange.

  options              Options carried in this message.
]]></artwork>
        </figure>
        <t>If the ADDR-REG-INFORM message that the server is replying to was not relayed, then the IPv6 destination address of the message <bcp14>MUST</bcp14> be the address being registered. If the ADDR-REG-INFORM message was relayed, then the server <bcp14>MUST</bcp14> construct the Relay-reply message as specified in <xref target="RFC8415"/> section 19.3.</t>
        <t>The server <bcp14>MUST</bcp14> copy the transaction-id from the ADDR-REG-INFORM message to the transaction-id field of the ADDR-REG-REPLY.</t>
        <t>The ADDR-REG-REPLY message <bcp14>MUST</bcp14> contain an IA Address option for the address being registered. The option <bcp14>MUST</bcp14> be identical to the one in the ADDR-REG-INFORM message that the server is replying to.</t>
        <t>Servers <bcp14>MUST</bcp14> ignore any received ADDR-REG-REPLY messages.</t>
        <t>Clients <bcp14>MUST</bcp14> discard any ADDR-REG-REPLY messages that meet any of the following conditions:</t>
        <ul spacing="normal">
          <li>The IPv6 destination address does not match the address being registered.</li>
          <li>The IA-Address option does not match the address being registered.</li>
          <li>The address being registered is not assigned to the interface receiving the message.</li>
          <li>The transaction-id does not match the transaction-id the client used in the corresponding ADDR-REG-INFORM message.</li>
        </ul>
        <t>The ADDR-REG-REPLY message only indicates that the ADDR-REG-INFORM message has been received. The ADDR-REG-REPLY message <bcp14>MUST NOT</bcp14> be considered as any indication of the address validity and <bcp14>MUST NOT</bcp14> be required for the address to be usable. DHCPv6 relays, or other devices that snoop ADDR-REG-REPLY messages, <bcp14>MUST NOT</bcp14> add or alter any forwarding or security state based on the ADDR-REG-REPLY message.</t>
      </section>
      <section anchor="registration-expiry-and-refresh">
        <name>Registration Expiry and Refresh</name>
        <t>The client <bcp14>MUST</bcp14> refresh the registration every AddrRegRefresh seconds, where  AddrRegRefresh is min(1/3 of the Valid Lifetime filed in the very first PIO received to form the address; 4 hours). Registration refresh packets <bcp14>SHOULD</bcp14> be retransmitted using the same logic as described in the 'Retransmission' section below. In particular, retransmissions <bcp14>SHOULD</bcp14> be jittered to avoid synchronization causing a large number of registrations to expire at the same time.</t>
        <t>The client <bcp14>SHOULD</bcp14> generate a new transaction ID when refreshing the registration.</t>
        <t>If the address registration server does not receive such a refresh after the Valid Lifetime has passed, it <bcp14>SHOULD</bcp14> remove the record of the Client-Identifier-to-IPv6-address binding.</t>
        <t>The client <bcp14>MAY</bcp14> choose to notify the server when an address is no longer being used (e.g., if the client is disconnecting from the network, the address lifetime expired, or the address is being removed from the interface). To indicate that the address is not being used anymore the client <bcp14>MUST</bcp14> set the preferred-lifetime and valid-lifetime fields of the IA Address option to zero.</t>
        <t>If the server receives a message with a valid-lifetime of zero, it <bcp14>SHOULD</bcp14> act as if the address has expired.</t>
      </section>
      <section anchor="retransmission">
        <name>Retransmission</name>
        <t>To reduce the effects of packet loss on registration, the client <bcp14>SHOULD</bcp14> retransmit the registration message. Retransmissions <bcp14>SHOULD</bcp14> follow the standard retransmission logic specified by section 15 of <xref target="RFC8415"/> with the following default parameters:</t>
        <ul spacing="normal">
          <li>IRT 1 sec</li>
          <li>MRC 3</li>
        </ul>
        <t>The client <bcp14>SHOULD</bcp14> allow these parameters to be configured by the administrator.</t>
        <t>To comply with section 16.1 of <xref target="RFC8415"/>, the client <bcp14>MUST</bcp14> leave the transaction ID unchanged in retransmissions of an ADDR-REG-INFORM message.</t>
        <t>If an ADDR-REG-REPLY message is received for the address being registered, the client <bcp14>MUST</bcp14> stop retransmission. However, the client cannot rely on the server acknowledging receipt of the registration message, because the server might not support address registration.</t>
      </section>
    </section>
    <section anchor="host-configuration">
      <name>Host configuration</name>
      <t>DHCP clients <bcp14>SHOULD</bcp14> allow the administrator to disable sending ADDR-REG-INFORM messages. This could be used, for example, to reduce network traffic on networks where the servers are known not to support the message type. Sending the messages <bcp14>SHOULD</bcp14> be enabled by default.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>An attacker may attempt to register a large number of addresses in quick succession in order to overwhelm the address registration server and / or fill up log files. Similar attack vectors exist today, e.g. an attacker can DoS the server with messages contained spoofed DUIDs.</t>
      <t>If a network is using FCFS SAVI <xref target="RFC6620"/>, then the DHCPv6 server can trust that the ADDR-REG-INFORM message was sent by the legitimate holder of the address. This prevents a host from registering an address owned by another host.</t>
      <t>One of the use-cases for the mechanism described in this document is to identify sources of malicious traffic after the fact. Note, however, that as the device itself is responsible for informing the DHCPv6 server that it is using an address, a malicious or compromised device can simply not send the ADDR-REG-INFORM message. This is an informational, optional mechanism, and is designed to aid in troubleshooting and forensics. On its own, it is not intended to be a strong security access mechanism.
In particular, the ADDR-REG-INFORM message <bcp14>MUST</bcp14> not be used for authentication and authorization purposes, because in addition to the reasons above, the packets containing the message may be dropped.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document defines two new DHCPv6 messages, ADDR-REG-INFORM message (TBA1) described in Section 4, and ADDR-REG-REPLY (TBA2) described in Section 5, that requires an allocation out of the registry of Message Types defined at http://www.iana.org/assignments/dhcpv6-parameters/.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4007">
          <front>
            <title>IPv6 Scoped Address Architecture</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="B. Zill" initials="B." surname="Zill"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>This document specifies the architectural characteristics, expected behavior, textual representation, and usage of IPv6 addresses of different scopes. According to a decision in the IPv6 working group, this document intentionally avoids the syntax and usage of unicast site-local addresses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4007"/>
          <seriesInfo name="DOI" value="10.17487/RFC4007"/>
        </reference>
        <reference anchor="RFC4193">
          <front>
            <title>Unique Local IPv6 Unicast Addresses</title>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <author fullname="B. Haberman" initials="B." surname="Haberman"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This document defines an IPv6 unicast address format that is globally unique and is intended for local communications, usually inside of a site. These addresses are not expected to be routable on the global Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4193"/>
          <seriesInfo name="DOI" value="10.17487/RFC4193"/>
        </reference>
        <reference anchor="RFC4862">
          <front>
            <title>IPv6 Stateless Address Autoconfiguration</title>
            <author fullname="S. Thomson" initials="S." surname="Thomson"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the steps a host takes in deciding how to autoconfigure its interfaces in IP version 6. The autoconfiguration process includes generating a link-local address, generating global addresses via stateless address autoconfiguration, and the Duplicate Address Detection procedure to verify the uniqueness of the addresses on a link. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4862"/>
          <seriesInfo name="DOI" value="10.17487/RFC4862"/>
        </reference>
        <reference anchor="RFC6939">
          <front>
            <title>Client Link-Layer Address Option in DHCPv6</title>
            <author fullname="G. Halwasia" initials="G." surname="Halwasia"/>
            <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
            <author fullname="W. Dec" initials="W." surname="Dec"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>This document specifies the format and mechanism that is to be used for encoding the client link-layer address in DHCPv6 Relay-Forward messages by defining a new DHCPv6 Client Link-Layer Address option.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6939"/>
          <seriesInfo name="DOI" value="10.17487/RFC6939"/>
        </reference>
        <reference anchor="RFC8415">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="November" year="2018"/>
            <abstract>
              <t>This document describes the Dynamic Host Configuration Protocol for IPv6 (DHCPv6): an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly, or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes. DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
              <t>This document updates the text from RFC 3315 (the original DHCPv6 specification) and incorporates prefix delegation (RFC 3633), stateless DHCPv6 (RFC 3736), an option to specify an upper bound for how long a client should wait before refreshing information (RFC 4242), a mechanism for throttling DHCPv6 clients when DHCPv6 service is not available (RFC 7083), and relay agent handling of unknown messages (RFC 7283). In addition, this document clarifies the interactions between models of operation (RFC 7550). As such, this document obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, and RFC 7550.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8415"/>
          <seriesInfo name="DOI" value="10.17487/RFC8415"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4704">
          <front>
            <title>The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) Option</title>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document specifies a new Dynamic Host Configuration Protocol for IPv6 (DHCPv6) option that can be used to exchange information about a DHCPv6 client's Fully Qualified Domain Name (FQDN) and about responsibility for updating DNS resource records (RRs) related to the client's address assignments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4704"/>
          <seriesInfo name="DOI" value="10.17487/RFC4704"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC6620">
          <front>
            <title>FCFS SAVI: First-Come, First-Served Source Address Validation Improvement for Locally Assigned IPv6 Addresses</title>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>This memo describes First-Come, First-Served Source Address Validation Improvement (FCFS SAVI), a mechanism that provides source address validation for IPv6 networks using the FCFS principle. The proposed mechanism is intended to complement ingress filtering techniques to help detect and prevent source address spoofing. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6620"/>
          <seriesInfo name="DOI" value="10.17487/RFC6620"/>
        </reference>
      </references>
    </references>
    <?line 314?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Much thanks to Bernie Volz for significant review and feedback, as well as Hermin Anggawijaya, Stuart Cheshire, Alan DeKok, Ryan Globus, Erik Kline, David Lamparter, Ted Lemon, Eric Levy-Abegnoli, Jim Reid, Michael Richardson, Mark Smith, Eric Vynke, Timothy Winter for their feedback, comments and guidance.</t>
      <t>This document borrows heavily from a previous document, draft-ietf-dhc-addr-registration, which defined "a mechanism to register self-generated and statically configured addresses in DNS through a DHCPv6 server". That document was written Sheng Jiang, Gang Chen, Suresh Krishnan, and Rajiv Asati.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="G." surname="Chen" fullname="Gang Chen">
        <organization>China Mobile</organization>
        <address>
          <postal>
            <street>53A, Xibianmennei Ave.</street>
            <street>Xuanwu District</street>
            <city>Beijing</city>
            <country>P.R. China</country>
          </postal>
          <email>phdgang@gmail.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
