<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc sortrefs="no"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<rfc category="info" ipr="trust200902" updates="7084" docName="draft-winters-v6ops-cpe-lan-pd-04">
  <front>
    <title>IPv6 CE Routers LAN Prefix Delegation</title>

    <author fullname="Timothy Winters" initials="T." surname="Winters">
      <organization abbrev="QA Cafe">QA Cafe</organization>
      <address>
        <postal>
          <street>100 Main Street, Suite #212</street>
          <city>Dover</city>
          <region>NH</region>
          <code>03820</code>
          <country>United States of America</country>
        </postal>
        <email>tim@qacafe.com</email>
      </address>
    </author>


    <date year="2023" />
    <area> Internet </area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>IPv6</keyword>
    <keyword>Internet Protocol Version 6</keyword>
    <keyword>DHCPv6</keyword>

  <abstract>
    <t>This document defines requirements for IPv6 CE Routers to support DHCPv6 Prefix Delegation 
    for redistributing any unused prefix(es) that were delegated to the IPv6 CE Router.  
    This document updates RFC 7084.</t>

  </abstract>

</front>
<middle>
    <section title="Introduction">
    <t>This document defines DHCPv6 Prefix Delegation in IPv6 CE Routers (<xref target="RFC7084" />) 
    in order to properly utilize the IPv6 prefixes assigned by service providers.  Many ISP will assign 
    a prefix larger then /64 to the CE Router, as recommended in <xref target="RFC6177" />. If an IPv6 CE 
    Router doesn't support IA_PD on the LAN it will not be able to assign any prefixes beyond itself, limiting
    the usefulness of assigning prefixes larger than /64.  Supporting IA_PD on the LAN interfaces will allow
    for those unused prefixes to be distributed into a network.</t>  

    <t>Two models, hierachical prefix and flat, have been proposed in the past for prefix sub-delegation.
    Hierachical prefix delegation requires a IPv6 CE Router to sub delegate IPv6 prefixes based on set of rules.  
    If more then one router uses hierachical prefix delegation, a IPv6 prefix tree is created.  
    When no routing protocol is present to discover the network topology it's possible to have unbalanced 
    prefix delegation tree which leads to running out of prefixes. For more information on heirachical prefix 
    delegation is contained in Section 8.5 of CableLabs IPv6 eRouter Specifiction. A flat prefix delegation 
    requires the router provisioned with a the initial prefix then assign /64 prefixes to all other prefix request 
    from routers downstream.</t>  

    
    <t>This document does not cover dealing with 
    multi-provisioned networks with more than one provider.  Due to complexity of a solution that will 
    requires routing, provisioning, and policy this is out of scope of this document.</t>
    </section>

    <section anchor="Requirements Language" title="Requirements Language">

      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
      "SHALL&nbsp;NOT", "SHOULD", "SHOULD&nbsp;NOT", "RECOMMENDED",
      "NOT&nbsp;RECOMMENDED", "MAY", and "OPTIONAL" in this document
      are to be interpreted as described in BCP&nbsp;14
      <xref target="RFC2119"/> <xref target="RFC8174"/> when,
      and only when, they appear in all capitals, as shown here.</t>

      <t>This document also makes use of internal conceptual variables to
      describe protocol behavior and external variables that an implementation
      must allow system administrators to change. The specific variable names,
      how their values change, and how their settings influence protocol
      behavior are provided to demonstrate protocol behavior. An
      implementation is not required to have them in the exact form described
      here, as long as its external behavior is consistent with that described
      in this document.</t>
    </section>
    <section anchor="Terminology" title="Terminology">
    <t>The following terminology is defined for this document.
    <list style="symbols">
        <t>IPv6 CE Router: A router intended for home or small-office use that forwards packets not explicitly
        addressed to itself as defined in <xref target='RFC7084'/>.</t>
        <t>Internet Service Provider (ISP): An entity that provides access to the Internet.  
        In this document, a service provider specifically offers Internet access using IPv6, and 
        may also offer IPv4 Internet access.  The service provider can provide such access over a 
        variety of different transport methods such as DSL, cable, wireless, and others.</t>
    </list>
    </t>
    </section> 
    <section anchor="Architecture" title="Architecture">
             <figure>
                 <artwork>
                     +-----------+
                     |  Service  |
                     |  Provider |
                     |   Router  |
                     +-----+-----+
                           |
                           |
                           |  Customer
                           |  Internet Connection
                           |
                     +-----v-----+
                     |   IPv6    |
                     |    CE     |
                     |  Router   |
                     +-----+-----+
                           |
                    +----+-+-------+
                    |              |
                    |              |
                +---+----+   +-----+------+
                |  IPv6  |   |            |
                |  Host  |   |  Router    |
                |        |   |            |
                +--------+   +------------+
                 </artwork>
            </figure>
    </section>
    <section anchor="Requirements" title="Requirements">
    <t> The IPv6 CE Router distributes configuration information obtained during WAN interface
    provisioning to IPv6 hosts and routers.  Previously, a router based on <xref target="RFC7084"/> 
    would only provide IPv6 hosts with individual addresses; this update allows for addressing and routing of IPv6 
    prefixes to both hosts and routers.</t>

    <t>LAN Prefix Delegation (LPD) Requirements</t>
        <t>LPD-1: The IPv6 CE Router MUST support a DHCPv6 server capable of IPv6 prefix assignment 
        according to <xref target="RFC8415"/> (Identity Association for Prefix Delegation (IA_PD) option).</t>
        <t>LPD-2: The IPv6 CE Router MUST assign a prefix from the delegated prefix to each of its LAN links. 
        If not enough addresses are available the IPv6 CE Router SHOULD log a system management error.</t>
        <t>LPD-3: The prefix assigned to a link MUST NOT change in the absence of topology or 
        configuration changes.</t>
        <t>LPD-4: After LAN link prefix assignment the IPv6 CE Router MUST make the remaining IPv6 prefixes
        available to other routers via Prefix Delegation.</t>
        <t>LPD-5: The IPv6 CE Router MUST support either heirachical prefix delegation or flat prefix delegation.</t>
    <t>LAN Hierachical Prefix Deletation (HPD) Requirements</t>
        <t>HPD-1: If the provisioned IA_PD is smaller than a /56 (e.g., a /60) the IPv6 CE Router MUST divide the 
        delegated prefix on three 3-bit boundaries into eight sub-prefixes by default.</t> 
        <t>HPD-2: If the provisioned IA_PD is a /56 or larger the IPv6 CE Router MUST divide 
        the delegated prefix on four (4)-bit boundaries into 16 sub-prefixes by default.</t>
        <t>HPD-3: If the provisioned IA_PD is too small to divide in the manner described, the IPv6 CE Router 
        MUST divide the delegated prefix into as many /64 sub-prefixes as possible and log an error message 
        indicating the fault.</t>
    <t>LAN Flat Prefix Delegation (FPD) Requirements</t>
        <t>FPD-2: Available prefixes MUST be provisioned as IA_PD IA prefixes MUST with a prefix-length of 64.</t>
        <t>FPD-3: The IPv6 CE Router MUST install a route to the assigned IA_PD with a next-hop of the IPv6 node that 
        was assigned the prefix.  The IPv6 CE Router MUST remove the route when IA_PD lease expires.</t>
        <t>FPD-4: By default, the IPv6 CE Router firewall MUST allow forwarding of packets with an outer IPv6 header containing
        a source address belonging to Delegated Prefixes, along with reciprocal packets from the same flow, 
        following the recommendations of <xref target="RFC6092"/></t>
        <t>FPD-5: If an IPv6 CE Router receives a single IA_PD IA Prefix with a prefix-length of 64, it 
        MUST act as delegating relay according to <xref target="RFC8987"/>, specifically requirements G-2 to G-7, G-9, and S-2. 
        DHCPv6 messages without IA-PD option MUST NOT be relayed.</t>
        <t>FPD-6: A CE Router MUST only be a delegating relay with DHCPv6 messages with IA_PD options present.</t>
        <t>FPD-7: A CE Router assigning prefixes MUST NOT assign IA_NA in the same DHCPv6 exchange.</t>
    </section>
    <section anchor="Security" title="Security Considerations">
        <t>This document does not add any new security considerations beyond those mentioned in 
        Section 4 of <xref target="RFC8213"/> and Section 22 of <xref target="RFC8415"/>.</t>
    </section>
    <section anchor="IANA" title="IANA Considerations">
         <t> This document makes no request of IANA.</t>
    </section>
    <section anchor="Acknowledgements" title="Acknowledgements">
    <t> Thanks to the following people for their guidance and feedback:
    
    Marion Dillon, Erik Auerswald, Esko Dijk, Tim Carlin, Richard Patterson, Ted Lemon, 
    Michael Richardson, Martin Hunek.

    </t> 
    </section>
</middle>
<back>
 <references title="Normative References">
     <?rfc include='reference.RFC.2119.xml'?>
     <?rfc include='reference.RFC.6092.xml'?>
     <?rfc include='reference.RFC.6177.xml'?>
     <?rfc include='reference.RFC.7084.xml'?>
     <?rfc include='reference.RFC.8174.xml'?>
     <?rfc include='reference.RFC.8213.xml'?>
     <?rfc include='reference.RFC.8415.xml'?>
     <?rfc include='reference.RFC.8987.xml'?>
 </references>
 <references title="Informative References">
    <?rfc include='reference.RFC.7695.xml'?>
 </references>
</back>
</rfc>
