<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" docName="draft-ietf-v6ops-dhcp-pd-per-device-08" number="9663" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" consensus="true" xml:lang="en" sortRefs="true" symRefs="true" prepTime="2024-10-07T11:06:34" indexInclude="true" scripts="Common,Latin" tocDepth="3" tocInclude="true">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-v6ops-dhcp-pd-per-device-08" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9663" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Prefix per Client Using DHCPv6-PD">Using DHCPv6 Prefix Delegation (DHCPv6-PD) to Allocate Unique IPv6 Prefixes per Client in Large Broadcast Networks</title>
    <seriesInfo name="RFC" value="9663" stream="IETF"/>
    <author initials="L." surname="Colitti" fullname="Lorenzo Colitti">
      <organization showOnFrontPage="true">Google, LLC</organization>
      <address>
        <postal>
          <street>Shibuya 3-21-3</street>
          <country>Japan</country>
        </postal>
        <email>lorenzo@google.com</email>
      </address>
    </author>
    <author fullname="Jen Linkova" initials="J" role="editor" surname="Linkova">
      <organization showOnFrontPage="true">Google</organization>
      <address>
        <postal>
          <street>1 Darling Island Rd</street>
          <city>Pyrmont</city>
          <region>New South Wales</region>
          <code>2009</code>
          <country>Australia</country>
        </postal>
        <email>furry13@gmail.com</email>
        <email>furry@google.com</email>
      </address>
    </author>
    <author fullname="Xiao Ma" initials="X" role="editor" surname="Ma">
      <organization showOnFrontPage="true">Google</organization>
      <address>
        <postal>
          <street>Shibuya 3-21-3</street>
          <country>Japan</country>
        </postal>
        <email>xiaom@google.com</email>
      </address>
    </author>
    <date month="10" year="2024"/>
    <area>OPS</area>
    <workgroup>v6ops</workgroup>
    <keyword>IPv6</keyword>
    <keyword>SLAAC</keyword>
    <keyword>DHCPv6-PD</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document discusses an IPv6 deployment scenario when individual
      nodes connected to large broadcast networks (such as enterprise networks
      or public Wi-Fi networks) are allocated unique prefixes via DHCPv6
      Prefix Delegation (DHCPv6-PD), as specified in RFC 8415.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by the
            Internet Engineering Steering Group (IESG).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see Section 2 of RFC 7841. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9663" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2024 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-design-principles">Design Principles</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-applicability-and-limitatio">Applicability and Limitations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-routing-and-addressing-cons">Routing and Addressing Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-prefix-pool-allocation">Prefix Pool Allocation</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-first-hop-router-requiremen">First-Hop Router Requirements</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-topologies-with-multiple-fi">Topologies with Multiple First-Hop Routers</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.4">
                <t indent="0" pn="section-toc.1-1.6.2.4.1"><xref derivedContent="6.4" format="counter" sectionFormat="of" target="section-6.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-on-link-communication">On-Link Communication </xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-dhcpv6-pd-server-considerat">DHCPv6-PD Server Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-prefix-length-consideration">Prefix Length Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-client-mobility">Client Mobility</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-antispoofing-and-savi-inter">Antispoofing and SAVI Interaction</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-migration-strategies-and-co">Migration Strategies and Co-existence with SLAAC Using Prefixes from the PIO</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="12" format="counter" sectionFormat="of" target="section-12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-benefits">Benefits</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="13" format="counter" sectionFormat="of" target="section-13"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-privacy-considerations">Privacy Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.14">
            <t indent="0" pn="section-toc.1-1.14.1"><xref derivedContent="14" format="counter" sectionFormat="of" target="section-14"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.15">
            <t indent="0" pn="section-toc.1-1.15.1"><xref derivedContent="15" format="counter" sectionFormat="of" target="section-15"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.16">
            <t indent="0" pn="section-toc.1-1.16.1"><xref derivedContent="16" format="counter" sectionFormat="of" target="section-16"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.16.2">
              <li pn="section-toc.1-1.16.2.1">
                <t indent="0" pn="section-toc.1-1.16.2.1.1"><xref derivedContent="16.1" format="counter" sectionFormat="of" target="section-16.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.16.2.2">
                <t indent="0" pn="section-toc.1-1.16.2.2.1"><xref derivedContent="16.2" format="counter" sectionFormat="of" target="section-16.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.17">
            <t indent="0" pn="section-toc.1-1.17.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multiple-addresses-consider">Multiple Addresses Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.18">
            <t indent="0" pn="section-toc.1-1.18.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.19">
            <t indent="0" pn="section-toc.1-1.19.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">Often, broadcast networks such as enterprise or public Wi-Fi
      deployments place many devices on a shared link with a single on-link
      prefix. This document describes an alternative deployment model where
      individual devices obtain prefixes from the network. This provides two
      important advantages.</t>
      <t indent="0" pn="section-1-2">First, it offers better scalability. Unlike IPv4, IPv6 allows hosts
      to have multiple addresses, and this is the case in most deployments
      (see <xref target="appendix" format="default" sectionFormat="of" derivedContent="Appendix A"/> for more details). However, increasing
      the number of addresses introduces scalability issues on the network
      infrastructure.  Network devices need to maintain various types of tables and hashes
(Neighbor Cache on first-hop routers, Neighbor Discovery Proxy caches
on Layer 2 devices, etc.). 
On Virtual eXtensible Local Area Network (VXLAN) networks <xref target="RFC7348" format="default" sectionFormat="of" derivedContent="RFC7348"/>,
each address might be represented as a route. This means, for example,
that if every client has 10 addresses instead of one, the network must
support 10 times more routes, etc. 
If an infrastructure device's resources are exhausted, the
      device might drop some IPv6 addresses from the corresponding tables,
      while the address owner might still be using the address to send
      traffic. This leads to traffic being discarded and a degraded customer experience.
Providing every host with one prefix allows the network to
      maintain only one entry per device, while still providing the device the
      ability to use an arbitrary number of addresses.
      </t>
      <t indent="0" pn="section-1-3">Second, this deployment model provides the ability to extend the network. In IPv4, a
      device that connects to the network can provide connectivity to
      subtended devices by using NAT. With DHCPv6 Prefix Delegation
      (DHCPv6-PD) <xref target="RFC8415" format="default" sectionFormat="of" derivedContent="RFC8415"/>, such a device can similarly
      extend the network, but unlike IPv4 NAT, it can provide its subtended
      devices with full end-to-end connectivity.</t>
      <t indent="0" pn="section-1-4">Another method of deploying unique prefixes per device is documented
      in <xref target="RFC8273" format="default" sectionFormat="of" derivedContent="RFC8273"/>. Similarly, the standard deployment model in
      cellular IPv6 networks <xref target="RFC6459" format="default" sectionFormat="of" derivedContent="RFC6459"/> provides a unique prefix
      to every device. However, providing a unique prefix per device is very uncommon in
enterprise-style networks, where nodes are usually connected to
broadcast segments such as VLANs and each link has a single on-link
prefix assigned. This document takes a similar approach to <xref target="RFC8273" format="default" sectionFormat="of" derivedContent="RFC8273"/>, but allocates the prefix using DHCPv6-PD.</t>
      <t indent="0" pn="section-1-5">This document focuses on the behavior of the network. Host behavior
      is not defined in this document.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-requirements-language">Requirements Language</name>
      <t indent="0" pn="section-2-1">
    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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
      </t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-terminology">Terminology</name>
      <dl indent="3" newline="false" spacing="normal" pn="section-3-1">
        <dt pn="section-3-1.1">Node:</dt>
        <dd pn="section-3-1.2">a device that implements IPv6 <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/></dd>
        <dt pn="section-3-1.3">Host:</dt>
        <dd pn="section-3-1.4">any node that is not a router <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/></dd>
        <dt pn="section-3-1.5">Client:</dt>
        <dd pn="section-3-1.6">a node that connects to a network and acquires addresses. The
  node may wish to obtain addresses for its own use, or it may be a router that
  wishes to extend the network to its physical or virtual subsystems, or
  both. It may be either a host or a router as defined by <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/>.</dd>
        <dt pn="section-3-1.7">AP:</dt>
        <dd pn="section-3-1.8">(wireless) Access Point</dd>
        <dt pn="section-3-1.9">DHCPv6 IA_NA:</dt>
        <dd pn="section-3-1.10">Identity Association for Non-temporary Addresses
(<xref target="RFC8415" sectionFormat="of" section="21.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8415#section-21.4" derivedContent="RFC8415"/>)</dd>
        <dt pn="section-3-1.11">DHCPv6 IA_PD:</dt>
        <dd pn="section-3-1.12">Identity Association for Prefix Delegation (<xref target="RFC8415" sectionFormat="of" section="21.21" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8415#section-21.21" derivedContent="RFC8415"/>)</dd>
        <dt pn="section-3-1.13">DHCPv6-PD:</dt>
        <dd pn="section-3-1.14">DHCPv6 Prefix Delegation <xref target="RFC8415" format="default" sectionFormat="of" derivedContent="RFC8415"/>; a
  mechanism to delegate IPv6 prefixes to clients.</dd>
        <dt pn="section-3-1.15">ND:</dt>
        <dd pn="section-3-1.16">Neighbor Discovery <xref target="RFC4861" format="default" sectionFormat="of" derivedContent="RFC4861"/></dd>
        <dt pn="section-3-1.17">NUD:</dt>
        <dd pn="section-3-1.18">Neighbor Unreachability Detection <xref target="RFC4861" format="default" sectionFormat="of" derivedContent="RFC4861"/></dd>
        <dt pn="section-3-1.19">PIO:</dt>
        <dd pn="section-3-1.20">Prefix Information Option <xref target="RFC4862" format="default" sectionFormat="of" derivedContent="RFC4862"/></dd>
        <dt pn="section-3-1.21">SLAAC:</dt>
        <dd pn="section-3-1.22">IPv6 Stateless Address Autoconfiguration <xref target="RFC4862" format="default" sectionFormat="of" derivedContent="RFC4862"/></dd>
      </dl>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-design-principles">Design Principles</name>
      <t indent="0" pn="section-4-1">Instead of all clients on a given link forming addresses from the same
shared prefix assigned to that link, this deployment model operates as
described below:
</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-4-2">
        <li pn="section-4-2.1">A device acts as a DHCPv6-PD client and requests a prefix via
	DHCPv6-PD by sending an IA_PD request.</li>
        <li pn="section-4-2.2">The server delegates a prefix to the client and the delegated
	prefix is installed into the routing table of the first-hop router as
	a route pointing to the client's link-local address. The first-hop
	router can act as a DHCPv6 relay and snoop DHCPv6 Reply messages from
	an off-link DHCPv6 server, or it can act as a DHCPv6 server itself. In
	both cases, it can install the route locally, and if the network is
	running a dynamic routing protocol, distribute the route or the entire
	prefix pool into the protocol.</li>
        <li pn="section-4-2.3">For the router and all other infrastructure devices, the delegated
	prefix is considered off-link, so traffic to that prefix does not
	trigger any ND packets, other than the minimum ND required to sustain
	Neighbor Unreachability Detection (NUD) for the client's link-local
	address.</li>
        <li pn="section-4-2.4">The device can use the delegated prefix in various ways. For
	example, it can form addresses, as described in requirement WAA-7 of
	<xref target="RFC7084" format="default" sectionFormat="of" derivedContent="RFC7084"/>. It can also extend the network, as described
	in <xref target="RFC7084" format="default" sectionFormat="of" derivedContent="RFC7084"/> or <xref target="RFC7278" format="default" sectionFormat="of" derivedContent="RFC7278"/>.</li>
      </ul>
      <t indent="0" pn="section-4-3">An example scenario is shown in <xref target="fig1" format="default" sectionFormat="of" derivedContent="Figure 1"/>. Note that the prefix lengths
    used in the example are /64 because that is the prefix length currently
    supported by SLAAC and is not otherwise required by the proposed
    deployment model.</t>
      <figure anchor="fig1" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-an-example-topology-with-tw">An Example Topology with Two First-Hop Routers</name>
        <artset pn="section-4-4.1">
          <artwork type="svg" align="left" pn="section-4-4.1.1">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="784" width="576" viewBox="0 0 576 784" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,112 L 8,224" fill="none" stroke="black"/>
              <path d="M 24,16 L 24,64" fill="none" stroke="black"/>
              <path d="M 24,272 L 24,336" fill="none" stroke="black"/>
              <path d="M 24,608 L 24,768" fill="none" stroke="black"/>
              <path d="M 40,672 L 40,736" fill="none" stroke="black"/>
              <path d="M 56,344 L 56,416" fill="none" stroke="black"/>
              <path d="M 56,464 L 56,608" fill="none" stroke="black"/>
              <path d="M 64,160 L 64,272" fill="none" stroke="black"/>
              <path d="M 72,72 L 72,128" fill="none" stroke="black"/>
              <path d="M 128,64 L 128,160" fill="none" stroke="black"/>
              <path d="M 128,200 L 128,264" fill="none" stroke="black"/>
              <path d="M 128,336 L 128,496" fill="none" stroke="black"/>
              <path d="M 128,544 L 128,600" fill="none" stroke="black"/>
              <path d="M 152,224 L 152,272" fill="none" stroke="black"/>
              <path d="M 168,384 L 168,608" fill="none" stroke="black"/>
              <path d="M 176,672 L 176,736" fill="none" stroke="black"/>
              <path d="M 184,416 L 184,480" fill="none" stroke="black"/>
              <path d="M 192,672 L 192,736" fill="none" stroke="black"/>
              <path d="M 216,336 L 216,384" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,264" fill="none" stroke="black"/>
              <path d="M 272,512 L 272,576" fill="none" stroke="black"/>
              <path d="M 280,272 L 280,336" fill="none" stroke="black"/>
              <path d="M 304,64 L 304,112" fill="none" stroke="black"/>
              <path d="M 312,384 L 312,416" fill="none" stroke="black"/>
              <path d="M 320,272 L 320,336" fill="none" stroke="black"/>
              <path d="M 328,672 L 328,736" fill="none" stroke="black"/>
              <path d="M 344,176 L 344,264" fill="none" stroke="black"/>
              <path d="M 352,608 L 352,768" fill="none" stroke="black"/>
              <path d="M 376,576 L 376,672" fill="none" stroke="black"/>
              <path d="M 392,336 L 392,384" fill="none" stroke="black"/>
              <path d="M 400,224 L 400,272" fill="none" stroke="black"/>
              <path d="M 400,704 L 400,752" fill="none" stroke="black"/>
              <path d="M 424,416 L 424,480" fill="none" stroke="black"/>
              <path d="M 440,384 L 440,512" fill="none" stroke="black"/>
              <path d="M 456,672 L 456,704" fill="none" stroke="black"/>
              <path d="M 464,160 L 464,272" fill="none" stroke="black"/>
              <path d="M 464,344 L 464,400" fill="none" stroke="black"/>
              <path d="M 464,448 L 464,512" fill="none" stroke="black"/>
              <path d="M 472,72 L 472,128" fill="none" stroke="black"/>
              <path d="M 528,336 L 528,432" fill="none" stroke="black"/>
              <path d="M 528,480 L 528,504" fill="none" stroke="black"/>
              <path d="M 536,64 L 536,160" fill="none" stroke="black"/>
              <path d="M 536,208 L 536,264" fill="none" stroke="black"/>
              <path d="M 536,576 L 536,640" fill="none" stroke="black"/>
              <path d="M 544,704 L 544,752" fill="none" stroke="black"/>
              <path d="M 552,512 L 552,576" fill="none" stroke="black"/>
              <path d="M 560,16 L 560,64" fill="none" stroke="black"/>
              <path d="M 568,112 L 568,224" fill="none" stroke="black"/>
              <path d="M 568,272 L 568,336" fill="none" stroke="black"/>
              <path d="M 24,16 L 560,16" fill="none" stroke="black"/>
              <path d="M 24,64 L 560,64" fill="none" stroke="black"/>
              <path d="M 8,112 L 568,112" fill="none" stroke="black"/>
              <path d="M 8,224 L 568,224" fill="none" stroke="black"/>
              <path d="M 24,272 L 280,272" fill="none" stroke="black"/>
              <path d="M 320,272 L 568,272" fill="none" stroke="black"/>
              <path d="M 24,336 L 280,336" fill="none" stroke="black"/>
              <path d="M 320,336 L 568,336" fill="none" stroke="black"/>
              <path d="M 160,384 L 448,384" fill="none" stroke="black"/>
              <path d="M 184,416 L 424,416" fill="none" stroke="black"/>
              <path d="M 184,480 L 424,480" fill="none" stroke="black"/>
              <path d="M 272,512 L 552,512" fill="none" stroke="black"/>
              <path d="M 272,576 L 552,576" fill="none" stroke="black"/>
              <path d="M 24,608 L 352,608" fill="none" stroke="black"/>
              <path d="M 40,672 L 176,672" fill="none" stroke="black"/>
              <path d="M 192,672 L 328,672" fill="none" stroke="black"/>
              <path d="M 368,672 L 544,672" fill="none" stroke="black"/>
              <path d="M 400,704 L 544,704" fill="none" stroke="black"/>
              <path d="M 40,736 L 176,736" fill="none" stroke="black"/>
              <path d="M 192,736 L 328,736" fill="none" stroke="black"/>
              <path d="M 400,752 L 544,752" fill="none" stroke="black"/>
              <path d="M 24,768 L 352,768" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="544,640 532,634.4 532,645.6" fill="black" transform="rotate(90,536,640)"/>
              <polygon class="arrowhead" points="544,264 532,258.4 532,269.6" fill="black" transform="rotate(90,536,264)"/>
              <polygon class="arrowhead" points="544,160 532,154.4 532,165.6" fill="black" transform="rotate(90,536,160)"/>
              <polygon class="arrowhead" points="536,504 524,498.4 524,509.6" fill="black" transform="rotate(90,528,504)"/>
              <polygon class="arrowhead" points="536,432 524,426.4 524,437.6" fill="black" transform="rotate(90,528,432)"/>
              <polygon class="arrowhead" points="480,72 468,66.4 468,77.6" fill="black" transform="rotate(270,472,72)"/>
              <polygon class="arrowhead" points="472,448 460,442.4 460,453.6" fill="black" transform="rotate(270,464,448)"/>
              <polygon class="arrowhead" points="472,344 460,338.4 460,349.6" fill="black" transform="rotate(270,464,344)"/>
              <polygon class="arrowhead" points="472,160 460,154.4 460,165.6" fill="black" transform="rotate(270,464,160)"/>
              <polygon class="arrowhead" points="352,264 340,258.4 340,269.6" fill="black" transform="rotate(90,344,264)"/>
              <polygon class="arrowhead" points="248,264 236,258.4 236,269.6" fill="black" transform="rotate(90,240,264)"/>
              <polygon class="arrowhead" points="136,600 124,594.4 124,605.6" fill="black" transform="rotate(90,128,600)"/>
              <polygon class="arrowhead" points="136,496 124,490.4 124,501.6" fill="black" transform="rotate(90,128,496)"/>
              <polygon class="arrowhead" points="136,264 124,258.4 124,269.6" fill="black" transform="rotate(90,128,264)"/>
              <polygon class="arrowhead" points="136,160 124,154.4 124,165.6" fill="black" transform="rotate(90,128,160)"/>
              <polygon class="arrowhead" points="80,72 68,66.4 68,77.6" fill="black" transform="rotate(270,72,72)"/>
              <polygon class="arrowhead" points="72,160 60,154.4 60,165.6" fill="black" transform="rotate(270,64,160)"/>
              <polygon class="arrowhead" points="64,464 52,458.4 52,469.6" fill="black" transform="rotate(270,56,464)"/>
              <polygon class="arrowhead" points="64,344 52,338.4 52,349.6" fill="black" transform="rotate(270,56,344)"/>
              <g class="text">
                <text x="292" y="36">DHCPv6 Servers</text>
                <text x="288" y="52">Pool 3fff:0:d::/48 for clients on 2001:db8:ff::/64 link</text>
                <text x="44" y="132">DHCPv6</text>
                <text x="308" y="132">IPv6 Network</text>
                <text x="436" y="132">DHCPv6</text>
                <text x="64" y="148">Relay-Forward</text>
                <text x="464" y="148">Relay-Forward</text>
                <text x="288" y="164">Route for 3fff:0:d::/48</text>
                <text x="124" y="180">DHCPv6</text>
                <text x="532" y="180">DHCPv6</text>
                <text x="128" y="196">Relay-Reply</text>
                <text x="520" y="196">Relay-Reply</text>
                <text x="152" y="292">First-hop router/DHCPv6 relay</text>
                <text x="448" y="292">First-hop Router/DHCPv6 relay</text>
                <text x="152" y="308">3fff:0:d:1::/64 -&gt; fe80::aa</text>
                <text x="440" y="308">3fff:0:d:1::/64 -&gt; fe80::aa</text>
                <text x="152" y="324">3fff:0:d:2::/64 -&gt; fe80::cc</text>
                <text x="440" y="324">3fff:0:d:2::/64 -&gt; fe80::cc</text>
                <text x="308" y="356">Shared IPv6 link</text>
                <text x="308" y="372">2001:db8:ff::/64</text>
                <text x="476" y="420">DHCPv6</text>
                <text x="52" y="436">DHCPv6</text>
                <text x="288" y="436">Client B (no DHCPv6-PD)</text>
                <text x="480" y="436">Request</text>
                <text x="56" y="452">Request</text>
                <text x="292" y="452">link-local address fe80::b</text>
                <text x="532" y="452">DHCPv6</text>
                <text x="304" y="468">global address 2001:db8:ff::b</text>
                <text x="528" y="468">Reply</text>
                <text x="132" y="516">DHCPv6</text>
                <text x="128" y="532">Reply</text>
                <text x="372" y="532">Client C</text>
                <text x="392" y="548">link-local address fe80::cc</text>
                <text x="412" y="564">delegated prefix 3fff:0:d:2::/64</text>
                <text x="500" y="612">Router</text>
                <text x="172" y="628">Client A</text>
                <text x="472" y="628">Advertisement</text>
                <text x="172" y="644">link-local address: fe80::aa</text>
                <text x="468" y="644">containing PIO</text>
                <text x="184" y="660">delegated prefix: 3fff:0:d:1::/64</text>
                <text x="472" y="660">3fff:0:d:2::/64</text>
                <text x="108" y="692">virtual system</text>
                <text x="260" y="692">virtual system</text>
                <text x="108" y="708">3fff:0:d:1::de</text>
                <text x="260" y="708">3fff:0:d:1::ad</text>
                <text x="108" y="724">3fff:0:d:1::ca</text>
                <text x="260" y="724">3fff:0:d:1::fe</text>
                <text x="472" y="724">Tethered device</text>
                <text x="468" y="740">3fff:0:d:2::66</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="left" pn="section-4-4.1.2">

  +------------------------------------------------------------------+
  |                          DHCPv6 Servers                          |
  |     Pool 3fff:0:d::/48 for clients on 2001:db8:ff::/64 link      |
  +------------+---------------------+----------------------------+--+
        ^      |                     |                    ^       |
        |      |                     |                    |       |
+-------+------+---------------------+--------------------+-------+---+
| DHCPv6|      |                IPv6 Network       DHCPv6 |       |   |
|Relay-Forward |                                   Relay-Forward  |   |
|      ^       v        Route for 3fff:0:d::/48          ^        v   |
|      |    DHCPv6           |            |              |     DHCPv6 |
|      |  Relay-Reply        |            |              | Relay-Reply|
|      |       |             |            |              |        |   |
+------+-------+--+----------+------------+------+-------+--------+---+
       |       |  |          |            |      |       |        |
       |       v  |          v            v      |       |        v
  +----+----------+---------------+    +---------+-------+------------+
  | First-hop router/DHCPv6 relay |    | First-hop Router/DHCPv6 relay|
  |  3fff:0:d:1::/64 -&gt; fe80::aa  |    | 3fff:0:d:1::/64 -&gt; fe80::aa  |
  |  3fff:0:d:2::/64 -&gt; fe80::cc  |    | 3fff:0:d:2::/64 -&gt; fe80::cc  |
  +------------+----------+-------+    +--------+----------------+----+
      ^        |          |   Shared IPv6 link  |        ^       |
      |        |          |   2001:db8:ff::/64  |        |       |
      |        |   -+-----+-----------+---------+-----+- |       |
      |        |    |                 |               |  |       |
      |        |    | +---------------+-------------+ | DHCPv6   |
   DHCPv6      |    | | Client B (no DHCPv6-PD)     | | Request  v
   Request     |    | |link-local address fe80::b   | |  ^     DHCPv6
      ^        |    | |global address 2001:db8:ff::b| |  |     Reply
      |        |    | +-----------------------------+ |  |       |
      |        v    |                                 |  |       v
      |      DHCPv6 |            +--------------------+--+----------+
      |      Reply  |            |        Client C                  |
      |        |    |            | link-local address fe80::cc      |
      |        |    |            | delegated prefix 3fff:0:d:2::/64 |
      |        |    |            +------------+-------------------+-+
      |        v    |                         |                   |
  +---+-------------+----------------------+  |            Router |
  |              Client A                  |  |     Advertisement |
  |    link-local address: fe80::aa        |  |    containing PIO v
  |   delegated prefix: 3fff:0:d:1::/64    |  |    3fff:0:d:2::/64
  | +----------------+ +----------------+  | -+---------+-----------
  | | virtual system | | virtual system |  |            |
  | | 3fff:0:d:1::de | | 3fff:0:d:1::ad |  |     +------+----------+
  | | 3fff:0:d:1::ca | | 3fff:0:d:1::fe |  |     | Tethered device |
  | +----------------+ +----------------+  |     | 3fff:0:d:2::66  |
  |                                        |     +-----------------+
  +----------------------------------------+

</artwork>
        </artset>
      </figure>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-applicability-and-limitatio">Applicability and Limitations</name>
      <t indent="0" pn="section-5-1">Delegating a unique prefix per client provides all the benefits of both
    SLAAC and DHCPv6 address allocation, but at the cost of greater address-space usage.  This design would substantially benefit some networks (see
    <xref target="benefits" format="default" sectionFormat="of" derivedContent="Section 12"/>) in which the additional cost of an additional
    service (such as DHCPv6 Prefix Delegation) and allocation of a larger amount of
    address space can easily be justified.  Examples of such networks include
    but are not limited to:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-5-2">
        <li pn="section-5-2.1">Large-scale networks where even three to five addresses per client
	      might introduce scalability issues.</li>
        <li pn="section-5-2.2">Networks with a high number of virtual hosts, so physical
	      devices require multiple addresses.</li>
        <li pn="section-5-2.3">Managed networks where extensive troubleshooting, device
	      traffic logging, or forensics might be required.</li>
      </ul>
      <t indent="0" pn="section-5-3">In smaller networks, such as home networks or small
	    enterprises with smaller address space and a lower number of
	    clients, SLAAC is a simpler and often preferred option.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-routing-and-addressing-cons">Routing and Addressing Considerations</name>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-prefix-pool-allocation">Prefix Pool Allocation</name>
        <t indent="0" pn="section-6.1-1">One simple deployment model is to assign a dedicated prefix pool to
        each link. The prefixes from each link's pool are only issued to
        requesting clients on the link; if clients move to another link,
        they will obtain a prefix from the pool associated with the new link
        (see <xref target="mobility" format="default" sectionFormat="of" derivedContent="Section 9"/>).</t>
        <t indent="0" pn="section-6.1-2">This is very similar to how address pools are allocated when using
	DHCP to assign individual addresses (e.g., DHCPv4 or DHCPv6 IA_NA),
	where each link has a dedicated pool of addresses, and clients on the
	link obtain addresses from the pool. In this model, the network can
	route the entire pool to the link's first-hop routers, and the routers
	do not need to advertise individual delegated prefixes into the
	network's dynamic routing protocol.</t>
        <t indent="0" pn="section-6.1-3">Other deployment models, such as prefix pools shared over multiple
        links or routers, are possible but are not described in this
        document.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-first-hop-router-requiremen">First-Hop Router Requirements</name>
        <t indent="0" pn="section-6.2-1">In large networks, DHCPv6 servers are usually centralized and reached
    via DHCPv6 relays co-located with the first-hop routers.  To delegate IPv6
    prefixes to clients, the first hop routers need to implement DHCPv6 relay
    functions and meet the requirements defined in <xref target="RFC8987" format="default" sectionFormat="of" derivedContent="RFC8987"/>.
    In particular, per <xref target="RFC8987" sectionFormat="of" section="4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8987#section-4.2" derivedContent="RFC8987"/>, the first-hop
    router must maintain a local routing table that contains all prefixes
    delegated to clients.</t>
        <t indent="0" pn="section-6.2-2">With the first-hop routers performing DHCPv6 relay functions, the
    proposed design neither requires any subsequent relays in the path nor
    introduces any requirements (e.g., snooping) for such subsequent relays, if
    they are deployed.</t>
        <t indent="0" pn="section-6.2-3">To ensure that routes to the delegated prefixes are preserved even if a
    relay is rebooted or replaced, the operator <bcp14>MUST</bcp14> ensure
    that all relays in the network infrastructure support DHCPv6 Bulk
    Leasequery as defined in <xref target="RFC5460" format="default" sectionFormat="of" derivedContent="RFC5460"/>. While <xref target="RFC8987" section="4.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8987#section-4.3" derivedContent="RFC8987"/> lists keeping active
    prefix delegations in persistent storage as an alternative to DHCPv6 Bulk
    Leasequery, relying on persistent storage has the following drawbacks:
        </t>
        <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-6.2-4">
          <li pn="section-6.2-4.1">In a network with multiple relays, network state can change
    significantly while the relay is rebooting (new prefixes might
    be delegated or some prefixes might be expiring, etc).
</li>
          <li pn="section-6.2-4.2">Persistent storage might not be preserved if the router is
      physically replaced.</li>
        </ul>
        <t indent="0" pn="section-6.2-5">Another mechanism for first-hop routers to obtain information about
    delegated prefixes is by using Active Leasequery <xref target="RFC7653" format="default" sectionFormat="of" derivedContent="RFC7653"/>,
    though this is not yet widely supported.</t>
      </section>
      <section anchor="mult_relays" numbered="true" removeInRFC="false" toc="include" pn="section-6.3">
        <name slugifiedName="name-topologies-with-multiple-fi">Topologies with Multiple First-Hop Routers</name>
        <t indent="0" pn="section-6.3-1">In a topology with redundant first-hop routers, all the routers need to
    relay DHCPv6 traffic, install the delegated prefixes into their routing
    tables and, if needed, advertise those prefixes to the network.</t>
        <t indent="0" pn="section-6.3-2">If the first-hop routers obtain information about delegated prefixes by
    snooping DHCPv6 Reply messages sent by the server, then all the first-hop
    routers must be able to snoop these messages. This is possible if the
    client multicasts the DHCPv6 messages it sends to the server. The server
    will receive one copy of the client message through each first-hop relay,
    and will reply unicast to each of them via the relay (or chain of relays)
    from which it received the message. Thus, all first-hop relays will be
    able to snoop the replies. Per <xref target="RFC8415" sectionFormat="of" section="14" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8415#section-14" derivedContent="RFC8415"/>,
    clients always use multicast unless the server uses the Server Unicast
    option to explicitly allow unicast communication (<xref target="RFC8415" section="21.12" sectionFormat="comma" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8415#section-21.12" derivedContent="RFC8415"/>). Therefore, in topologies with
    multiple first-hop routers, the DHCPv6 servers <bcp14>MUST</bcp14> be
    configured not to use the Server Unicast option. It should be noted that
    <xref target="I-D.ietf-dhc-rfc8415bis" format="default" sectionFormat="of" derivedContent="RFC8415bis"/> deprecates the Server Unicast
    option precisely because it is not compatible with topologies with
    multiple first-hop relays.</t>
        <t indent="0" pn="section-6.3-3">To recover from crashes or reboots, relays can use Bulk Leasequery or
    Active Leasequery to issue a QUERY_BY_RELAY_ID with the ID(s) of the other
    relay(s), as configured by the operator. Additionally, some vendors
    provide vendor-specific mechanisms to synchronize state between DHCP
    relays.</t>
      </section>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-6.4">
        <name slugifiedName="name-on-link-communication">On-Link Communication </name>
        <t indent="0" pn="section-6.4-1">For security reasons, some networks block on-link device-to-device
      traffic at Layer 2 to prevent communication between clients on the same
      link.  In this case, delegating a prefix to each client doesn't affect
      traffic flows, as all traffic is sent to the first-hop router anyway.
      Depending on the network security policy, the router may allow or drop
      the traffic.</t>
        <t indent="0" pn="section-6.4-2">If the network does allow peer-to-peer communication, the PIO for the
      on-link prefix is usually advertised with the L-bit set to 1 <xref target="RFC4861" format="default" sectionFormat="of" derivedContent="RFC4861"/>.  As a result, all addresses from that prefix are
      considered on-link, and traffic to those destinations is sent directly
      (not via routers).  If such a network delegates prefixes to clients (as
      described in this document), then each client will consider other
      client's destination addresses to be off-link, because those addresses
      are from the delegated prefixes and are no longer within the on-link
      prefix.  When a client sends traffic to another client, packets will
      initially be sent to the default router.  The router will respond with
      an ICMPv6 redirect message (<xref target="RFC4861" section="4.5" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4861#section-4.5" derivedContent="RFC4861"/>). If the client receives and accepts the redirect,
      then traffic can flow directly from device to device.  Therefore, the
      administrator deploying the solution described in this document
      <bcp14>SHOULD</bcp14> ensure that the first-hop routers can send ICMPv6
      redirects (the routers are configured to do so and the security policies
      permit those messages).</t>
      </section>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-dhcpv6-pd-server-considerat">DHCPv6-PD Server Considerations</name>
      <t indent="0" pn="section-7-1">This document does not introduce any changes to the DHCPv6 protocol
    itself.  However, for the proposed solution to work correctly, the
    DHCPv6-PD server needs to be configured as follows:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-7-2">
        <li pn="section-7-2.1">The server <bcp14>MUST</bcp14> follow recommendations from <xref target="RFC8168" format="default" sectionFormat="of" derivedContent="RFC8168"/> on processing prefix-length hints.</li>
        <li pn="section-7-2.2">The server <bcp14>MUST</bcp14> provide a prefix short enough for the
      client to extend the network to at least one interface and allow nodes
      on that interface to obtain addresses via SLAAC.  The server
      <bcp14>MAY</bcp14> provide more address space to clients that ask for
      it, either by delegating multiple such prefixes, or by delegating a
      single prefix of a shorter length. It should be noted that <xref target="RFC8168" format="default" sectionFormat="of" derivedContent="RFC8168"/> allows the server to provide a prefix shorter than
      the prefix-length hint value received from the client.</li>
        <li pn="section-7-2.3">If the server receives the same Solicit message from the same
      client multiple times through multiple relays, it <bcp14>MUST</bcp14>
      reply to all of them with the same prefix(es).  This ensures that all
      the relays will correctly configure routes to the delegated prefixes.</li>
        <li pn="section-7-2.4">The server <bcp14>MUST NOT</bcp14> send the Server Unicast option to
      the client unless the network topology guarantees that no client is
      connected to a link with multiple relays (see <xref target="mult_relays" format="default" sectionFormat="of" derivedContent="Section 6.3"/>).</li>
        <li pn="section-7-2.5">In order to ensure uninterrupted connectivity when a first-hop
      router crashes or reboots, the server <bcp14>MUST</bcp14> support Bulk
      Leasequery or Active Leasequery.</li>
      </ul>
      <t indent="0" pn="section-7-3">As most operators have some experience with IPv4, they can use a
similar approach for choosing the pool size and the timers (such as T1
and T2 timers). In particular, the following factors should be taken into account:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-7-4">
        <li pn="section-7-4.1">the expected maximum number of clients;</li>
        <li pn="section-7-4.2">the average duration of client connections;</li>
        <li pn="section-7-4.3">how mobile the clients are (a network where all clients are
connected to a single wired VLAN might choose longer timers than a
network where clients can switch between multiple wireless networks);</li>
        <li pn="section-7-4.4">how often clients are expected to reconnect to the network (for
example, a corporate authenticated Wi-Fi network might be using longer
timers than an open public Wi-Fi).</li>
      </ul>
      <t indent="0" pn="section-7-5">DHCPv6 servers that delegate prefixes can interface with Dynamic DNS
infrastructure to automatically populate reverse DNS using wildcard
records, similarly to what is described in <xref target="RFC8501" sectionFormat="of" section="2.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8501#section-2.2" derivedContent="RFC8501"/>. Networks that also wish to populate forward DNS cannot
    do so automatically based only on DHCPv6 prefix delegation transactions,
    but they can do so in other ways, such as by supporting DHCPv6 address
    registration as described in <xref target="I-D.ietf-dhc-addr-notification" format="default" sectionFormat="of" derivedContent="ADDR-NOTIFICATION"/>.</t>
      <t indent="0" pn="section-7-6">Some additional recommendations driven by security and privacy
    considerations are discussed in <xref target="Security" format="default" sectionFormat="of" derivedContent="Section 15"/> and <xref target="privacy" format="default" sectionFormat="of" derivedContent="Section 13"/>.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-prefix-length-consideration">Prefix Length Considerations</name>
      <t indent="0" pn="section-8-1">Delegating a prefix of sufficient size to use SLAAC allows the client
    to extend the network, providing limitless addresses to IPv6 nodes
    connected to it (e.g., virtual machines or tethered devices), because all
    IPv6 hosts are required to support SLAAC <xref target="RFC8504" format="default" sectionFormat="of" derivedContent="RFC8504"/>. Additionally, even clients that support other forms of
    address assignment require SLAAC for some functions, such as forming
    dedicated addresses for the use of 464XLAT (see <xref target="RFC6877" section="6.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6877#section-6.3" derivedContent="RFC6877"/>).</t>
      <t indent="0" pn="section-8-2">At the time of writing, the only prefix size that will allow devices to
   use SLAAC is 64 bits. Also, as noted in <xref target="RFC7421" format="default" sectionFormat="of" derivedContent="RFC7421"/>, using an interface identifier (IID) shorter than 64 bits and a subnet prefix longer than 64 bits is outside
   the current IPv6 specifications.  Choosing longer prefixes would require
   the client and any connected system to use other address assignment
   mechanisms.  This would limit the applicability of the proposed solution,
   as other mechanisms are not currently supported by many hosts.</t>
      <t indent="0" pn="section-8-3">For the same reasons, a prefix length of /64 or shorter is required to
   extend the network as described in <xref target="RFC7084" format="default" sectionFormat="of" derivedContent="RFC7084"/> (see requirement L-2),
   and a prefix length of /64 is required to provide global connectivity for
   stub networks as per <xref target="I-D.ietf-snac-simple" format="default" sectionFormat="of" derivedContent="SNAC-SIMPLE"/>.</t>
      <t indent="0" pn="section-8-4">Assigning a prefix of sufficient size to support SLAAC is possible on
   large networks. In general, any network that numbers clients from an IPv4
   prefix of length X (e.g., X=/18, X=/24) would require an IPv6 prefix of
   length X+32 (e.g., X=/40, X=/56) to provide a /64 prefix to every device.
   As an example, <xref target="RFC7934" section="9.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7934#section-9.2" derivedContent="RFC7934"/> suggests that even a
   very large network that assigns every single one of the 16 million IPv4
   addresses in 10.0.0.0/8 would only need an IPv6 /40. A /40 prefix is a
   small amount of address space: there are 32 times more /40s in the current
   IPv6 unicast range 2000::/3 than there are IPv4 addresses.  Existing sites
   that currently use a /48 prefix cannot support more than 64k clients in
   this model without renumbering, though many networks of such size have Local Internet Registry (LIR) status and can justify bigger address blocks.</t>
      <t indent="0" pn="section-8-5">Note that assigning a prefix of sufficient size to support SLAAC does
   not require that subtended nodes use SLAAC; they can use other address
   assignment mechanisms as well.</t>
    </section>
    <section anchor="mobility" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-client-mobility">Client Mobility</name>
      <t indent="0" pn="section-9-1">As per <xref target="RFC8415" section="18.2.12" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8415#section-18.2.12" derivedContent="RFC8415"/>, when
the client moves to a new link, it <bcp14>MUST</bcp14> initiate a Rebind/Reply
message exchange. Therefore, when the client moves between network attachment
points, it would refresh its delegated prefix the same way it refreshes
addresses assigned (via SLAAC or DHCPv6 IA_NA) from a shared on-link prefix:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-9-2">
        <li pn="section-9-2.1">
When a client moves from between different attachment points on the
same link (e.g., roams between two APs while
connected to the same wireless network or moves between two
switchports belonging to the same VLAN), the delegated prefix does not
change, and the first-hop routers have a route for the prefix with the
nexthop set to the client link-local address on that link. As per
  requirement S-2 in <xref target="RFC8987" section="4.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8987#section-4.3" derivedContent="RFC8987"/>, the DHCPv6-relays
  (the first-hop routers) <bcp14>MUST</bcp14> retain the route for the
  delegating prefix until the route is released or removed due to expiring
  DHCP timers. Therefore, if the client reconnects to the same link, the
  prefix doesn't change.</li>
        <li pn="section-9-2.2">When a client moves to a different link, the DHCPv6 server provides the
  client with a new prefix, so the behavior is consistent with SLAAC or
  DHCPv6-assigned addresses, which are also different on the new link.</li>
      </ul>
      <t indent="0" pn="section-9-3">In theory, DHCPv6 servers can delegate the same prefix to the same client
even if the client changes the attachment points.  However, while allowing the
client to keep the same prefix while roaming between links might provide some
benefits for the client, it is not feasible without changing DHCPv6 relay
behavior: after the client moves to a new link, the DHCPv6 relays would
retain the route pointing to the client's link-local address on the old link
for the duration of DHCPv6 timers (see requirement S-2, <xref target="RFC8987" section="4.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8987#section-4.3" derivedContent="RFC8987"/>).  As a result, the first-hop routers would
have two routes for the same prefix pointing to different links, causing
connectivity issues for the client.</t>
      <t indent="0" pn="section-9-4">It should be noted that addressing clients from a shared on-link prefix
also does not allow clients to keep addresses while roaming between links, so
the proposed solution is not different in that regard. In addition to that,
different links often have different security policies applied (for
example, corporate internal networks versus guest networks), hence clients on
different links need to use different prefixes.</t>
    </section>
    <section anchor="savi" numbered="true" removeInRFC="false" toc="include" pn="section-10">
      <name slugifiedName="name-antispoofing-and-savi-inter">Antispoofing and SAVI Interaction</name>
      <t indent="0" pn="section-10-1">Enabling unicast Reverse Path Forwarding (uRPF) <xref target="RFC3704" format="default" sectionFormat="of" derivedContent="RFC3704"/> on the first-hop router interfaces towards clients
    provides the first layer of defense against spoofing.  A spoofed packet
    sent by a malicious client would be dropped by the router unless the
    spoofed address belongs to a prefix delegated to another client on the
    same interface.  Therefore the malicious client can only spoof addresses already
delegated to another client on the same link or another client's
link-local address.</t>
      <t indent="0" pn="section-10-2">Source Address Validation Improvement (SAVI) <xref target="RFC7039" format="default" sectionFormat="of" derivedContent="RFC7039"/>
    provides more reliable protection against address spoofing.
    Administrators deploying the proposed solution on SAVI-enabled
    infrastructure <bcp14>SHOULD</bcp14> ensure that SAVI perimeter devices
    support DHCPv6-PD snooping to create the correct binding for the delegated
    prefixes (see <xref target="RFC7513" format="default" sectionFormat="of" derivedContent="RFC7513"/>).  Using FCFS SAVI <xref target="RFC6620" format="default" sectionFormat="of" derivedContent="RFC6620"/> to protect link-local addresses and create SAVI
    bindings for DHCPv6-PD assigned prefixes would prevent spoofing.</t>
      <t indent="0" pn="section-10-3">Some infrastructure devices do not implement SAVI as defined in <xref target="RFC7039" format="default" sectionFormat="of" derivedContent="RFC7039"/>; instead, they perform other forms of address tracking and
    snooping for security or performance improvement purposes (e.g., ND
    proxy).  This is very common behavior for wireless devices (such as access points
    and controllers).  Administrators <bcp14>SHOULD</bcp14> ensure that such
    devices are able to snoop DHCPv6-PD packets so the traffic from the
    delegated prefixes is not dropped.</t>
      <t indent="0" pn="section-10-4">It should be noted that using DHCPv6-PD makes it harder for an attacker
    to select the spoofed source address.  When all clients are using the same
    shared link to form addresses, the attacker might learn addresses used by
    other clients by listening to multicast Neighbor Solicitations and
    Neighbor Advertisements.  In DHCPv6-PD environments, however, the
    attacker can only learn about other clients' global addresses by
    listening to multicast DHCPv6 messages, which are not transmitted so
    often, and may not be received by the client at all because they are sent
    to multicast groups that are specific to DHCPv6 servers and relays.</t>
    </section>
    <section numbered="true" removeInRFC="false" toc="include" pn="section-11">
      <name slugifiedName="name-migration-strategies-and-co">Migration Strategies and Co-existence with SLAAC Using Prefixes from the PIO</name>
      <t indent="0" pn="section-11-1">It would be beneficial for the network to explicitly indicate its
    support of DHCPv6-PD for connected clients.</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-11-2">
        <li pn="section-11-2.1">In small networks (e.g., home networks), where the number of clients
      is not too high, the number of available prefixes becomes a limiting
      factor.  If every phone or laptop in a home network were to request a unique
prefix suitable for SLAAC, the home network might run out of prefixes,
if the prefix allocated to the Customer Premises Equipment (CPE) by
its ISP is too long. For example, if an ISP delegates a /60, the CPE
would only be able to delegate fifteen /64 prefixes to clients.
So while the enterprise network administrator
      might want all phones in the network to request a prefix, it would be
      highly undesirable for the same phone to request a prefix when
      connecting to a home network.</li>
        <li pn="section-11-2.2">When the network supports both a unique prefix per client and a PIO
      with A=1 as address assignment methods, it's highly desirable for the
      client NOT to use the PIO prefix to form global addresses and instead only use
      the prefix delegated via DHCPv6-PD.  
Starting both SLAAC using the PIO prefix and DHCPv6-PD, and then
deprecating the SLAAC addresses after receiving a delegated prefix
would be very disruptive for applications.
      If the client continues to use addresses formed from the PIO prefix, it
      would not only undermine the benefits of the proposed solution (see
      <xref target="benefits" format="default" sectionFormat="of" derivedContent="Section 12"/>), but it would also introduce complexity and
      unpredictability in the source address selection.  Therefore, the client
      needs to know what address assignment method to use and whether or not to use
      the prefix in the PIO, if the network provides the PIO with the 'A' flag
      set.</li>
      </ul>
      <t indent="0" pn="section-11-3">The deployment model described in this document does not require the
    network to signal support of DHCPv6-PD: for example, devices acting as
    compatible routers <xref target="RFC7084" format="default" sectionFormat="of" derivedContent="RFC7084"/> will be able to receive
    prefixes via DHCPv6-PD even without such signaling. Also, some clients
    may decide to start DHCPv6-PD and acquire prefixes if they detect that
    the network does not provide addresses via SLAAC. To fully achieve the
    benefits described in this section, <xref target="I-D.ietf-6man-pio-pflag" format="default" sectionFormat="of" derivedContent="PIO-PFLAG"/> defines a new PIO flag to signal
    that DHCPv6-PD is the preferred method of obtaining prefixes.</t>
    </section>
    <section anchor="benefits" numbered="true" removeInRFC="false" toc="include" pn="section-12">
      <name slugifiedName="name-benefits">Benefits</name>
      <t indent="0" pn="section-12-1">The proposed solution provides the following benefits:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-12-2">
        <li pn="section-12-2.1">Network device resources (e.g., memory) need to scale to the
	      number of devices, not the number of IPv6 addresses.  The
	      first-hop routers have a single route per device pointing to the
	      device's link-local address. This can potentially enable
	      hardware cost savings; for example, if hardware such as wireless
	      LAN controllers is limited to supporting only a specific number
	      of client addresses, or in VXLAN deployments where each client
	      address consumes one routing table entry.</li>
        <li pn="section-12-2.2">The cost of having multiple addresses is offloaded to the
	      clients.  Hosts are free to create and use as many addresses as
	      they need without imposing any additional costs onto the
	      network.</li>
        <li pn="section-12-2.3">If all clients connected to the given link support this mode
	      of operation and can generate addresses from the delegated
	      prefixes, there is no reason to advertise a common prefix
	      assigned to that link in the PIO with the 'A' flag set.  Therefore, it is
	      possible to remove the global shared prefix from that link and
	      the router interface completely, so no global addresses are
	      on-link for the link.  This would lead to reducing the attack
	      surface for Neighbor Discovery attacks described in <xref target="RFC6583" format="default" sectionFormat="of" derivedContent="RFC6583"/>.</li>
        <li pn="section-12-2.4">DHCPv6-PD logs and routing tables obtained from first-hop routers
provide complete information on IPv6 to MAC mapping, which can be used
for forensics and troubleshooting. Such information is much
	      less dynamic than the ND cache; therefore, it's much easier for an
	      operator to collect and process it.</li>
        <li pn="section-12-2.5">A dedicated prefix per client allows the network
	      administrator to create security policies per device (such as ACLs) even
	      if the client is using temporary addresses. This mitigates one
	      of the issues described in <xref target="I-D.ietf-opsec-ipv6-addressing" format="default" sectionFormat="of" derivedContent="IPv6-ADDRESS"/>.</li>
        <li pn="section-12-2.6">Fate sharing: all global addresses used by a given client are routed
as a single prefix. Either all of them work or none of them work,
which makes failures easier to diagnose and mitigate.</li>
        <li pn="section-12-2.7">Lower level of multicast traffic: less Neighbor Discovery
              <xref target="RFC4861" format="default" sectionFormat="of" derivedContent="RFC4861"/> multicast packets, as the routers need to resolve only the clients' link-local addresses.  Also, there is no Duplicate Address Detection (DAD) traffic
   except for the clients' link-local addresses.</li>
        <li pn="section-12-2.8">Ability to extend the network transparently. If the network
	      delegates to the client a prefix of sufficient size to support
	      SLAAC, the client can provide connectivity to other hosts, as
	      is possible in IPv4 with NAT (e.g., by acting as an IPv6 Customer Edge (CE)
	      router as described in <xref target="RFC7084" format="default" sectionFormat="of" derivedContent="RFC7084"/>).</li>
      </ul>
    </section>
    <section anchor="privacy" numbered="true" removeInRFC="false" toc="include" pn="section-13">
      <name slugifiedName="name-privacy-considerations">Privacy Considerations</name>
      <t indent="0" pn="section-13-1">If an eavesdropper or information collector is aware that a
	    given client is using the proposed mechanism, then they may be
	    able to track the client based on its prefix.  The privacy
	    implications of this are equivalent to the privacy implications of
	    networks using stateful DHCPv6 address assignment: in both cases,
	    the IPv6 addresses are determined by the server, either because
	    the server assigns a full 128-bit address in a shared prefix, or
	    because the server determines what prefix is delegated to the
	    client.  Administrators deploying the proposed mechanism can use
	    similar methods to mitigate the impact as the ones used today in
	    networks that use stateful DHCPv6 address assignment.</t>
      <t indent="0" pn="section-13-2">Except for networks (such as datacenter networks) where hosts
            do not need temporary addresses <xref target="RFC8981" format="default" sectionFormat="of" derivedContent="RFC8981"/>, the
            network <bcp14>SHOULD</bcp14>:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-13-3">
        <li pn="section-13-3.1">Ensure that when a client requests a prefix, the prefix is
	      randomly assigned and not allocated deterministically.</li>
        <li pn="section-13-3.2">Use short prefix lifetimes (e.g., hours) to ensure that
	      when a client disconnects and reconnects it gets a different
	      prefix.</li>
        <li pn="section-13-3.3">Allow the client to have more than one prefix at the same
	      time. This allows the client to rotate prefixes using a
	      mechanism similar to temporary addresses, but that operates on
	      prefixes instead of on individual addresses.  In this case, the
	      prefix's lifetime <bcp14>MUST</bcp14> be short enough to allow
	      the client to use a reasonable rotation interval without using
	      too much address space.  For example, if every 24 hours the
	      client asks for a new prefix and stops renewing the old prefix,
	      and the Valid Lifetime of delegated prefixes is one hour, then
	      the client will consume two prefixes for one hour out of 24
	      hours, and thus will consume just under 1.05
	      prefixes on average.</li>
      </ul>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-14">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-14-1">This document has no IANA actions.</t>
    </section>
    <section anchor="Security" numbered="true" removeInRFC="false" toc="include" pn="section-15">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-15-1">A malicious (or just misbehaving) client might attempt to exhaust the
      DHCPv6-PD pool by sending a large number of requests with differing
      DHCP Unique Identifiers (DUIDs). To prevent a misbehaving client from denying service to other
      clients, the DHCPv6 server or relay <bcp14>MUST</bcp14> support limiting
      the number of prefixes delegated to a given client at any given
      time.</t>
      <t indent="0" pn="section-15-2">Networks can protect against malicious clients by authenticating
      devices using tokens that cannot be spoofed (e.g., 802.1x
      authentication) and limiting the number of link-local addresses or MAC
      addresses that each client is allowed to use. Note that this is not a new
      issue, as the same attack might be implemented using DHCPv4 or DHCPv6
      IA_NA requests; in particular, while it is unlikely for clients to be
      able to exhaust an IA_NA address pool, clients using IA_NA can exhaust
      other resources such as DHCPv6 and routing infrastructure resources such as
      server RAM, ND cache entries, Ternary Content-Addressable Memory (TCAM) entries, SAVI entries, etc.</t>
      <t indent="0" pn="section-15-3">A malicious client might request a prefix and then release it very
      quickly, causing routing convergence events on the relays.  The impact
      of this attack can be reduced if the network rate-limits the amount of
      broadcast and multicast messages from the client.</t>
      <t indent="0" pn="section-15-4">Delegating the same prefix for the same client introduces privacy
      concerns.  The proposed mitigation is discussed in <xref target="privacy" format="default" sectionFormat="of" derivedContent="Section 13"/>.</t>
      <t indent="0" pn="section-15-5">Spoofing scenarios and prevention mechanisms are discussed in <xref target="savi" format="default" sectionFormat="of" derivedContent="Section 10"/>.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-6man-pio-pflag" to="PIO-PFLAG"/>
    <displayreference target="I-D.ietf-dhc-rfc8415bis" to="RFC8415bis"/>
    <displayreference target="I-D.ietf-dhc-addr-notification" to="ADDR-NOTIFICATION"/>
    <displayreference target="I-D.ietf-opsec-ipv6-addressing" to="IPv6-ADDRESS"/>
    <displayreference target="I-D.ietf-snac-simple" to="SNAC-SIMPLE"/>
    <references pn="section-16">
      <name slugifiedName="name-references">References</name>
      <references pn="section-16.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC4193" target="https://www.rfc-editor.org/info/rfc4193" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC5460" target="https://www.rfc-editor.org/info/rfc5460" quoteTitle="true" derivedAnchor="RFC5460">
          <front>
            <title>DHCPv6 Bulk Leasequery</title>
            <author fullname="M. Stapp" initials="M." surname="Stapp"/>
            <date month="February" year="2009"/>
            <abstract>
              <t indent="0">The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) has been extended with a Leasequery capability that allows a client to request information about DHCPv6 bindings. That mechanism is limited to queries for individual bindings. In some situations individual binding queries may not be efficient, or even possible. This document expands on the Leasequery protocol, adding new query types and allowing for bulk transfer of DHCPv6 binding data via TCP. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5460"/>
          <seriesInfo name="DOI" value="10.17487/RFC5460"/>
        </reference>
        <reference anchor="RFC6620" target="https://www.rfc-editor.org/info/rfc6620" quoteTitle="true" derivedAnchor="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 indent="0">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>
        <reference anchor="RFC6877" target="https://www.rfc-editor.org/info/rfc6877" quoteTitle="true" derivedAnchor="RFC6877">
          <front>
            <title>464XLAT: Combination of Stateful and Stateless Translation</title>
            <author fullname="M. Mawatari" initials="M." surname="Mawatari"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <author fullname="C. Byrne" initials="C." surname="Byrne"/>
            <date month="April" year="2013"/>
            <abstract>
              <t indent="0">This document describes an architecture (464XLAT) for providing limited IPv4 connectivity across an IPv6-only network by combining existing and well-known stateful protocol translation (as described in RFC 6146) in the core and stateless protocol translation (as described in RFC 6145) at the edge. 464XLAT is a simple and scalable technique to quickly deploy limited IPv4 access service to IPv6-only edge networks without encapsulation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6877"/>
          <seriesInfo name="DOI" value="10.17487/RFC6877"/>
        </reference>
        <reference anchor="RFC7084" target="https://www.rfc-editor.org/info/rfc7084" quoteTitle="true" derivedAnchor="RFC7084">
          <front>
            <title>Basic Requirements for IPv6 Customer Edge Routers</title>
            <author fullname="H. Singh" initials="H." surname="Singh"/>
            <author fullname="W. Beebee" initials="W." surname="Beebee"/>
            <author fullname="C. Donley" initials="C." surname="Donley"/>
            <author fullname="B. Stark" initials="B." surname="Stark"/>
            <date month="November" year="2013"/>
            <abstract>
              <t indent="0">This document specifies requirements for an IPv6 Customer Edge (CE) router. Specifically, the current version of this document focuses on the basic provisioning of an IPv6 CE router and the provisioning of IPv6 hosts attached to it. The document also covers IP transition technologies. Two transition technologies in RFC 5969's IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) and RFC 6333's Dual-Stack Lite (DS-Lite) are covered in the document. The document obsoletes RFC 6204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7084"/>
          <seriesInfo name="DOI" value="10.17487/RFC7084"/>
        </reference>
        <reference anchor="RFC8168" target="https://www.rfc-editor.org/info/rfc8168" quoteTitle="true" derivedAnchor="RFC8168">
          <front>
            <title>DHCPv6 Prefix-Length Hint Issues</title>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <author fullname="C. Liu" initials="C." surname="Liu"/>
            <author fullname="Y. Cui" initials="Y." surname="Cui"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">DHCPv6 Prefix Delegation allows a client to include a prefix-length hint value in the IA_PD option to indicate a preference for the size of the prefix to be delegated, but it is unclear about how the client and server should act in different situations involving the prefix-length hint. This document provides a summary of the existing problems with the prefix-length hint and guidance on what the client and server could do in different situations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8168"/>
          <seriesInfo name="DOI" value="10.17487/RFC8168"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8273" target="https://www.rfc-editor.org/info/rfc8273" quoteTitle="true" derivedAnchor="RFC8273">
          <front>
            <title>Unique IPv6 Prefix per Host</title>
            <author fullname="J. Brzozowski" initials="J." surname="Brzozowski"/>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
            <date month="December" year="2017"/>
            <abstract>
              <t indent="0">This document outlines an approach utilizing existing IPv6 protocols to allow hosts to be assigned a unique IPv6 prefix (instead of a unique IPv6 address from a shared IPv6 prefix). Benefits of using a unique IPv6 prefix over a unique service-provider IPv6 address include improved host isolation and enhanced subscriber management on shared network segments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8273"/>
          <seriesInfo name="DOI" value="10.17487/RFC8273"/>
        </reference>
        <reference anchor="RFC8415" target="https://www.rfc-editor.org/info/rfc8415" quoteTitle="true" derivedAnchor="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 indent="0">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 indent="0">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="RFC8981" target="https://www.rfc-editor.org/info/rfc8981" quoteTitle="true" derivedAnchor="RFC8981">
          <front>
            <title>Temporary Address Extensions for Stateless Address Autoconfiguration in IPv6</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="R. Draves" initials="R." surname="Draves"/>
            <date month="February" year="2021"/>
            <abstract>
              <t indent="0">This document describes an extension to IPv6 Stateless Address Autoconfiguration that causes hosts to generate temporary addresses with randomized interface identifiers for each prefix advertised with autoconfiguration enabled. Changing addresses over time limits the window of time during which eavesdroppers and other information collectors may trivially perform address-based network-activity correlation when the same address is employed for multiple transactions by the same host. Additionally, it reduces the window of exposure of a host as being accessible via an address that becomes revealed as a result of active communication. This document obsoletes RFC 4941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8981"/>
          <seriesInfo name="DOI" value="10.17487/RFC8981"/>
        </reference>
        <reference anchor="RFC8987" target="https://www.rfc-editor.org/info/rfc8987" quoteTitle="true" derivedAnchor="RFC8987">
          <front>
            <title>DHCPv6 Prefix Delegating Relay Requirements</title>
            <author fullname="I. Farrer" initials="I." surname="Farrer"/>
            <author fullname="N. Kottapalli" initials="N." surname="Kottapalli"/>
            <author fullname="M. Hunek" initials="M." surname="Hunek"/>
            <author fullname="R. Patterson" initials="R." surname="Patterson"/>
            <date month="February" year="2021"/>
            <abstract>
              <t indent="0">This document describes operational problems that are known to occur when using DHCPv6 relays with prefix delegation. These problems can prevent successful delegation and result in routing failures. To address these problems, this document provides necessary functional requirements for operating DHCPv6 relays with prefix delegation.</t>
              <t indent="0">It is recommended that any network operator using DHCPv6 prefix delegation with relays ensure that these requirements are followed on their networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8987"/>
          <seriesInfo name="DOI" value="10.17487/RFC8987"/>
        </reference>
      </references>
      <references pn="section-16.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.ietf-dhc-addr-notification" target="https://datatracker.ietf.org/doc/html/draft-ietf-dhc-addr-notification-13" quoteTitle="true" derivedAnchor="ADDR-NOTIFICATION">
          <front>
            <title>Registering Self-generated IPv6 Addresses using DHCPv6</title>
            <author fullname="Warren Kumari" initials="W." surname="Kumari">
              <organization showOnFrontPage="true">Google, LLC</organization>
            </author>
            <author fullname="Suresh Krishnan" initials="S." surname="Krishnan">
              <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Rajiv Asati" initials="R." surname="Asati">
              <organization showOnFrontPage="true">Independent</organization>
            </author>
            <author fullname="Lorenzo Colitti" initials="L." surname="Colitti">
              <organization showOnFrontPage="true">Google, LLC</organization>
            </author>
            <author fullname="Jen Linkova" initials="J." surname="Linkova">
              <organization showOnFrontPage="true">Google, LLC</organization>
            </author>
            <author fullname="Sheng Jiang" initials="S." surname="Jiang">
              <organization showOnFrontPage="true">Beijing University of Posts and Telecommunications</organization>
            </author>
            <date day="16" month="May" year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dhc-addr-notification-13"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-opsec-ipv6-addressing" target="https://datatracker.ietf.org/doc/html/draft-ietf-opsec-ipv6-addressing-00" quoteTitle="true" derivedAnchor="IPv6-ADDRESS">
          <front>
            <title>Implications of IPv6 Addressing on Security Operations</title>
            <author fullname="Fernando Gont" initials="F." surname="Gont">
              <organization showOnFrontPage="true">SI6 Networks</organization>
            </author>
            <author fullname="Guillermo Gont" initials="G." surname="Gont">
              <organization showOnFrontPage="true">SI6 Networks</organization>
            </author>
            <date day="2" month="June" year="2023"/>
            <abstract>
              <t indent="0">The increased address availability provided by IPv6 has concrete implications on security operations. This document discusses such implications, and sheds some light on how existing security operations techniques and procedures might need to be modified accommodate the increased IPv6 address availability.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsec-ipv6-addressing-00"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-6man-pio-pflag" target="https://datatracker.ietf.org/doc/html/draft-ietf-6man-pio-pflag-11" quoteTitle="true" derivedAnchor="PIO-PFLAG">
          <front>
            <title>Signaling DHCPv6 Prefix per Client Availability to Hosts</title>
            <author fullname="Lorenzo Colitti" initials="L." surname="Colitti">
              <organization showOnFrontPage="true">Google</organization>
            </author>
            <author fullname="Jen Linkova" initials="J." surname="Linkova">
              <organization showOnFrontPage="true">Google</organization>
            </author>
            <author fullname="Xiao Ma" initials="X." surname="Ma">
              <organization showOnFrontPage="true">Google</organization>
            </author>
            <author fullname="David Lamparter" initials="D." surname="Lamparter">
              <organization showOnFrontPage="true">NetDEF, Inc.</organization>
            </author>
            <date day="4" month="October" year="2024"/>
            <abstract>
              <t indent="0">This document defines a "P" flag in the Prefix Information Option (PIO) of IPv6 Router Advertisements (RAs). The flag is used to indicate that the network prefers that clients use the draft-ietf- v6ops-dhcp-pd-per-device deployment model instead of using individual adresses in the on-link prefix assigned using Stateless Address Autoconfiguration (SLAAC) or DHCPv6 address assignment. This document updates RFC4862 to indicate that the Autonomous flag in a PIO needs to be ignored if the PIO has the P flag set. It also updates RFC4861 to specify that the P flag indicates DHCPv6 Prefix Delegation support for clients.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-6man-pio-pflag-11"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC3704" target="https://www.rfc-editor.org/info/rfc3704" quoteTitle="true" derivedAnchor="RFC3704">
          <front>
            <title>Ingress Filtering for Multihomed Networks</title>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="P. Savola" initials="P." surname="Savola"/>
            <date month="March" year="2004"/>
            <abstract>
              <t indent="0">BCP 38, RFC 2827, is designed to limit the impact of distributed denial of service attacks, by denying traffic with spoofed addresses access to the network, and to help ensure that traffic is traceable to its correct source network. As a side effect of protecting the Internet against such attacks, the network implementing the solution also protects itself from this and other attacks, such as spoofed management access to networking equipment. There are cases when this may create problems, e.g., with multihoming. This document describes the current ingress filtering operational mechanisms, examines generic issues related to ingress filtering, and delves into the effects on multihoming in particular. This memo updates RFC 2827. 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="84"/>
          <seriesInfo name="RFC" value="3704"/>
          <seriesInfo name="DOI" value="10.17487/RFC3704"/>
        </reference>
        <reference anchor="RFC4861" target="https://www.rfc-editor.org/info/rfc4861" quoteTitle="true" derivedAnchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t indent="0">This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
        <reference anchor="RFC4862" target="https://www.rfc-editor.org/info/rfc4862" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC6459" target="https://www.rfc-editor.org/info/rfc6459" quoteTitle="true" derivedAnchor="RFC6459">
          <front>
            <title>IPv6 in 3rd Generation Partnership Project (3GPP) Evolved Packet System (EPS)</title>
            <author fullname="J. Korhonen" initials="J." role="editor" surname="Korhonen"/>
            <author fullname="J. Soininen" initials="J." surname="Soininen"/>
            <author fullname="B. Patil" initials="B." surname="Patil"/>
            <author fullname="T. Savolainen" initials="T." surname="Savolainen"/>
            <author fullname="G. Bajko" initials="G." surname="Bajko"/>
            <author fullname="K. Iisakkila" initials="K." surname="Iisakkila"/>
            <date month="January" year="2012"/>
            <abstract>
              <t indent="0">The use of cellular broadband for accessing the Internet and other data services via smartphones, tablets, and notebook/netbook computers has increased rapidly as a result of high-speed packet data networks such as HSPA, HSPA+, and now Long-Term Evolution (LTE) being deployed. Operators that have deployed networks based on 3rd Generation Partnership Project (3GPP) network architectures are facing IPv4 address shortages at the Internet registries and are feeling pressure to migrate to IPv6. This document describes the support for IPv6 in 3GPP network architectures. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6459"/>
          <seriesInfo name="DOI" value="10.17487/RFC6459"/>
        </reference>
        <reference anchor="RFC6583" target="https://www.rfc-editor.org/info/rfc6583" quoteTitle="true" derivedAnchor="RFC6583">
          <front>
            <title>Operational Neighbor Discovery Problems</title>
            <author fullname="I. Gashinsky" initials="I." surname="Gashinsky"/>
            <author fullname="J. Jaeggli" initials="J." surname="Jaeggli"/>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <date month="March" year="2012"/>
            <abstract>
              <t indent="0">In IPv4, subnets are generally small, made just large enough to cover the actual number of machines on the subnet. In contrast, the default IPv6 subnet size is a /64, a number so large it covers trillions of addresses, the overwhelming number of which will be unassigned. Consequently, simplistic implementations of Neighbor Discovery (ND) can be vulnerable to deliberate or accidental denial of service (DoS), whereby they attempt to perform address resolution for large numbers of unassigned addresses. Such denial-of-service attacks can be launched intentionally (by an attacker) or result from legitimate operational tools or accident conditions. As a result of these vulnerabilities, new devices may not be able to "join" a network, it may be impossible to establish new IPv6 flows, and existing IPv6 transported flows may be interrupted.</t>
              <t indent="0">This document describes the potential for DoS in detail and suggests possible implementation improvements as well as operational mitigation techniques that can, in some cases, be used to protect against or at least alleviate the impact of such attacks. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6583"/>
          <seriesInfo name="DOI" value="10.17487/RFC6583"/>
        </reference>
        <reference anchor="RFC7039" target="https://www.rfc-editor.org/info/rfc7039" quoteTitle="true" derivedAnchor="RFC7039">
          <front>
            <title>Source Address Validation Improvement (SAVI) Framework</title>
            <author fullname="J. Wu" initials="J." surname="Wu"/>
            <author fullname="J. Bi" initials="J." surname="Bi"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="C. Vogt" initials="C." role="editor" surname="Vogt"/>
            <date month="October" year="2013"/>
            <abstract>
              <t indent="0">Source Address Validation Improvement (SAVI) methods were developed to prevent nodes attached to the same IP link from spoofing each other's IP addresses, so as to complement ingress filtering with finer-grained, standardized IP source address validation. This document is a framework document that describes and motivates the design of the SAVI methods. Particular SAVI methods are described in other documents.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7039"/>
          <seriesInfo name="DOI" value="10.17487/RFC7039"/>
        </reference>
        <reference anchor="RFC7278" target="https://www.rfc-editor.org/info/rfc7278" quoteTitle="true" derivedAnchor="RFC7278">
          <front>
            <title>Extending an IPv6 /64 Prefix from a Third Generation Partnership Project (3GPP) Mobile Interface to a LAN Link</title>
            <author fullname="C. Byrne" initials="C." surname="Byrne"/>
            <author fullname="D. Drown" initials="D." surname="Drown"/>
            <author fullname="A. Vizdal" initials="A." surname="Vizdal"/>
            <date month="June" year="2014"/>
            <abstract>
              <t indent="0">This document describes requirements for extending an IPv6 /64 prefix from a User Equipment Third Generation Partnership Project (3GPP) radio interface to a LAN link and describes two implementation examples.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7278"/>
          <seriesInfo name="DOI" value="10.17487/RFC7278"/>
        </reference>
        <reference anchor="RFC7348" target="https://www.rfc-editor.org/info/rfc7348" quoteTitle="true" derivedAnchor="RFC7348">
          <front>
            <title>Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks</title>
            <author fullname="M. Mahalingam" initials="M." surname="Mahalingam"/>
            <author fullname="D. Dutt" initials="D." surname="Dutt"/>
            <author fullname="K. Duda" initials="K." surname="Duda"/>
            <author fullname="P. Agarwal" initials="P." surname="Agarwal"/>
            <author fullname="L. Kreeger" initials="L." surname="Kreeger"/>
            <author fullname="T. Sridhar" initials="T." surname="Sridhar"/>
            <author fullname="M. Bursell" initials="M." surname="Bursell"/>
            <author fullname="C. Wright" initials="C." surname="Wright"/>
            <date month="August" year="2014"/>
            <abstract>
              <t indent="0">This document describes Virtual eXtensible Local Area Network (VXLAN), which is used to address the need for overlay networks within virtualized data centers accommodating multiple tenants. The scheme and the related protocols can be used in networks for cloud service providers and enterprise data centers. This memo documents the deployed VXLAN protocol for the benefit of the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7348"/>
          <seriesInfo name="DOI" value="10.17487/RFC7348"/>
        </reference>
        <reference anchor="RFC7421" target="https://www.rfc-editor.org/info/rfc7421" quoteTitle="true" derivedAnchor="RFC7421">
          <front>
            <title>Analysis of the 64-bit Boundary in IPv6 Addressing</title>
            <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
            <author fullname="T. Chown" initials="T." surname="Chown"/>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="A. Petrescu" initials="A." surname="Petrescu"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <date month="January" year="2015"/>
            <abstract>
              <t indent="0">The IPv6 unicast addressing format includes a separation between the prefix used to route packets to a subnet and the interface identifier used to specify a given interface connected to that subnet. Currently, the interface identifier is defined as 64 bits long for almost every case, leaving 64 bits for the subnet prefix. This document describes the advantages of this fixed boundary and analyzes the issues that would be involved in treating it as a variable boundary.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7421"/>
          <seriesInfo name="DOI" value="10.17487/RFC7421"/>
        </reference>
        <reference anchor="RFC7513" target="https://www.rfc-editor.org/info/rfc7513" quoteTitle="true" derivedAnchor="RFC7513">
          <front>
            <title>Source Address Validation Improvement (SAVI) Solution for DHCP</title>
            <author fullname="J. Bi" initials="J." surname="Bi"/>
            <author fullname="J. Wu" initials="J." surname="Wu"/>
            <author fullname="G. Yao" initials="G." surname="Yao"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <date month="May" year="2015"/>
            <abstract>
              <t indent="0">This document specifies the procedure for creating a binding between a DHCPv4/DHCPv6-assigned IP address and a binding anchor on a Source Address Validation Improvement (SAVI) device. The bindings set up by this procedure are used to filter packets with forged source IP addresses. This mechanism complements BCP 38 (RFC 2827) ingress filtering, providing finer-grained source IP address validation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7513"/>
          <seriesInfo name="DOI" value="10.17487/RFC7513"/>
        </reference>
        <reference anchor="RFC7653" target="https://www.rfc-editor.org/info/rfc7653" quoteTitle="true" derivedAnchor="RFC7653">
          <front>
            <title>DHCPv6 Active Leasequery</title>
            <author fullname="D. Raghuvanshi" initials="D." surname="Raghuvanshi"/>
            <author fullname="K. Kinnear" initials="K." surname="Kinnear"/>
            <author fullname="D. Kukrety" initials="D." surname="Kukrety"/>
            <date month="October" year="2015"/>
            <abstract>
              <t indent="0">The Dynamic Host Configuration Protocol for IPv6 (DHCPv6) has been extended with a Leasequery capability that allows a requestor to request information about DHCPv6 bindings. That mechanism is limited to queries for DHCPv6 binding data updates prior to the time the DHCPv6 server receives the Leasequery request. Continuous update of an external requestor with Leasequery data is sometimes desired. This document expands on the DHCPv6 Leasequery protocol and allows for active transfer of real-time DHCPv6 binding information data via TCP. This document also updates DHCPv6 Bulk Leasequery (RFC 5460) by adding new options.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7653"/>
          <seriesInfo name="DOI" value="10.17487/RFC7653"/>
        </reference>
        <reference anchor="RFC7934" target="https://www.rfc-editor.org/info/rfc7934" quoteTitle="true" derivedAnchor="RFC7934">
          <front>
            <title>Host Address Availability Recommendations</title>
            <author fullname="L. Colitti" initials="L." surname="Colitti"/>
            <author fullname="V. Cerf" initials="V." surname="Cerf"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="July" year="2016"/>
            <abstract>
              <t indent="0">This document recommends that networks provide general-purpose end hosts with multiple global IPv6 addresses when they attach, and it describes the benefits of and the options for doing so.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="204"/>
          <seriesInfo name="RFC" value="7934"/>
          <seriesInfo name="DOI" value="10.17487/RFC7934"/>
        </reference>
        <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200" quoteTitle="true" derivedAnchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t indent="0">This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="I-D.ietf-dhc-rfc8415bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-dhc-rfc8415bis-05" quoteTitle="true" derivedAnchor="RFC8415bis">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="Tomek Mrugalski" initials="T." surname="Mrugalski">
              <organization showOnFrontPage="true">Internet Systems Consortium, Inc.</organization>
            </author>
            <author fullname="Bernie Volz" initials="B." surname="Volz">
              <organization showOnFrontPage="true">Individual Contributor</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization showOnFrontPage="true">Sandelman Software Works</organization>
            </author>
            <author fullname="Sheng Jiang" initials="S." surname="Jiang">
              <organization showOnFrontPage="true">Beijing University of Posts and Telecommunications</organization>
            </author>
            <author fullname="Timothy Winters" initials="T." surname="Winters">
              <organization showOnFrontPage="true">QA Cafe</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t indent="0">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). This document replaces RFC8415 to incorporate reported errata and to obsolete the assignment of temporary addresses (the IA_TA option) and the server unicast capability (the Server Unicast option and UseMulticast status code).</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dhc-rfc8415bis-05"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC8501" target="https://www.rfc-editor.org/info/rfc8501" quoteTitle="true" derivedAnchor="RFC8501">
          <front>
            <title>Reverse DNS in IPv6 for Internet Service Providers</title>
            <author fullname="L. Howard" initials="L." surname="Howard"/>
            <date month="November" year="2018"/>
            <abstract>
              <t indent="0">In IPv4, Internet Service Providers (ISPs) commonly provide IN-ADDR.ARPA information for their customers by prepopulating the zone with one PTR record for every available address. This practice does not scale in IPv6. This document analyzes different approaches and considerations for ISPs in managing the IP6.ARPA zone.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8501"/>
          <seriesInfo name="DOI" value="10.17487/RFC8501"/>
        </reference>
        <reference anchor="RFC8504" target="https://www.rfc-editor.org/info/rfc8504" quoteTitle="true" derivedAnchor="RFC8504">
          <front>
            <title>IPv6 Node Requirements</title>
            <author fullname="T. Chown" initials="T." surname="Chown"/>
            <author fullname="J. Loughney" initials="J." surname="Loughney"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="January" year="2019"/>
            <abstract>
              <t indent="0">This document defines requirements for IPv6 nodes. It is expected that IPv6 will be deployed in a wide range of devices and situations. Specifying the requirements for IPv6 nodes allows IPv6 to function well and interoperate in a large number of situations and deployments.</t>
              <t indent="0">This document obsoletes RFC 6434, and in turn RFC 4294.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="220"/>
          <seriesInfo name="RFC" value="8504"/>
          <seriesInfo name="DOI" value="10.17487/RFC8504"/>
        </reference>
        <reference anchor="I-D.ietf-snac-simple" target="https://datatracker.ietf.org/doc/html/draft-ietf-snac-simple-05" quoteTitle="true" derivedAnchor="SNAC-SIMPLE">
          <front>
            <title>Automatically Connecting Stub Networks to Unmanaged Infrastructure</title>
            <author fullname="Ted Lemon" initials="T." surname="Lemon">
              <organization showOnFrontPage="true">Apple Inc.</organization>
            </author>
            <author fullname="Jonathan Hui" initials="J." surname="Hui">
              <organization showOnFrontPage="true">Google LLC</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t indent="0">This document describes a set of practices for connecting stub networks to adjacent infrastructure networks. This is applicable in cases such as constrained (Internet of Things) networks where there is a need to provide functional parity of service discovery and reachability between devices on the stub network and devices on an adjacent infrastructure link (for example, a home network).</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-snac-simple-05"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="appendix" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-multiple-addresses-consider">Multiple Addresses Considerations</name>
      <t indent="0" pn="section-appendix.a-1">While a typical IPv4 host normally has only one IPv4 address per
      interface, an IPv6 device almost always has multiple addresses assigned
      to its interface.  At the very least, a host can be expected to have one
      link-local address, one temporary address, and, in most cases, one
      stable global address.  On a network providing NAT64 service, an
      IPv6-only host running the 464XLAT customer-side translator (CLAT) <xref target="RFC6877" format="default" sectionFormat="of" derivedContent="RFC6877"/> would use a dedicated 464XLAT address, configured
      via SLAAC (see <xref target="RFC6877" section="6.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6877#section-6.3" derivedContent="RFC6877"/>), which brings
      the total number of addresses to four.  Other common scenarios where the
      number of addresses per host interface might increase significantly
      include but are not limited to:</t>
      <ul bare="false" empty="false" indent="3" spacing="normal" pn="section-appendix.a-2">
        <li pn="section-appendix.a-2.1">Devices running containers or namespaces: each container or namespace
	would have multiple addresses as described above. As a result, a
	device running just a few containers in a bridge mode can easily have
	20 or more IPv6 addresses on the given link.</li>
        <li pn="section-appendix.a-2.2">Networks assigning multiple prefixes to a given link: multihomed
networks, networks using Unique Local IPv6 Unicast Addresses (ULA,
<xref target="RFC4193" format="default" sectionFormat="of" derivedContent="RFC4193"/>) and non-ULA prefixes together, or networks performing a
graceful renumbering from one prefix to another.</li>
      </ul>
      <t indent="0" pn="section-appendix.a-3"><xref target="RFC7934" format="default" sectionFormat="of" derivedContent="RFC7934"/> discusses this aspect and explicitly states
      that IPv6 deployments <bcp14>SHOULD NOT</bcp14> limit the number of IPv6
      addresses a host can have.  However, it has been observed that
      networks often do limit the number of on-link addresses per device,
      likely in an attempt to protect network resources and prevent DoS
      attacks.</t>
      <t indent="0" pn="section-appendix.a-4">The most common scenario of network-imposed limitations is ND proxy.  Many enterprise-scale wireless solutions
      implement ND proxy to reduce the amount of broadcast and multicast
      downstream (AP to clients) traffic and provide SAVI functions.  To
      perform ND proxy, a device usually maintains a table containing IPv6
      and MAC addresses of connected clients.  At least some implementations
      have hardcoded limits on how many IPv6 addresses per single MAC such a
      table can contain.  When the limit is exceeded, the behavior is
      implementation dependent. Some vendors just fail to install an N+1 address
      to the table.  Others delete the oldest entry for this MAC and replace
      it with the new address. In any case, the affected addresses lose
      network connectivity without receiving any implicit signal, with traffic
      being silently dropped.</t>
    </section>
    <section anchor="Acknowledgements" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.b-1">Thanks to <contact fullname="Harald Alvestrand"/>, <contact fullname="Nick Buraglio"/>, <contact fullname="Brian Carpenter"/>,
      <contact fullname="Tim Chown"/>, <contact fullname="Roman Danyliw"/>,
      <contact fullname="Gert Doering"/>, <contact fullname="David Farmer"/>,
      <contact fullname="Fernando Gont"/>, <contact fullname="Joel Halpern"/>,
      <contact fullname="Nick Hilliard"/>, <contact fullname="Bob Hinden"/>,
      <contact fullname="Martin Hunek"/>, <contact fullname="Erik Kline"/>,
      <contact fullname="Warren Kumari"/>, <contact fullname="David       Lamparter"/>, <contact fullname="Andrew McGregor"/>, <contact fullname="Tomek Mrugalski"/>, <contact fullname="Alexandre Petrescu"/>,
      <contact fullname="Jurgen Schonwalder"/>, <contact fullname="Pascal       Thubert"/>, <contact fullname="Ole Troan"/>, <contact fullname="Eric       Vyncke"/>, <contact fullname="Eduard Vasilenko"/>, <contact fullname="Timothy Winters"/>, <contact fullname="Chongfeng Xie"/>, and
      <contact fullname="Peter Yee"/> for the discussions, their input, and all contributions.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.c">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="L." surname="Colitti" fullname="Lorenzo Colitti">
        <organization showOnFrontPage="true">Google, LLC</organization>
        <address>
          <postal>
            <street>Shibuya 3-21-3</street>
            <country>Japan</country>
          </postal>
          <email>lorenzo@google.com</email>
        </address>
      </author>
      <author fullname="Jen Linkova" initials="J" role="editor" surname="Linkova">
        <organization showOnFrontPage="true">Google</organization>
        <address>
          <postal>
            <street>1 Darling Island Rd</street>
            <city>Pyrmont</city>
            <region>New South Wales</region>
            <code>2009</code>
            <country>Australia</country>
          </postal>
          <email>furry13@gmail.com</email>
          <email>furry@google.com</email>
        </address>
      </author>
      <author fullname="Xiao Ma" initials="X" role="editor" surname="Ma">
        <organization showOnFrontPage="true">Google</organization>
        <address>
          <postal>
            <street>Shibuya 3-21-3</street>
            <country>Japan</country>
          </postal>
          <email>xiaom@google.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
