<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dhc-dhcpv4-over-dhcpv6-ra-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title abbrev="DCHP 4o6 Relay Agent">DHCPv4 over DHCPv6 with Relay Agent Support</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dhc-dhcpv4-over-dhcpv6-ra-00"/>
    <author initials="C." surname="Porfiri" fullname="Claudio Porfiri">
      <organization>Ericsson</organization>
      <address>
        <email>claudio.porfiri@ericsson.com</email>
      </address>
    </author>
    <author initials="S." surname="Krishnan" fullname="Suresh Krishnan">
      <organization>Cisco</organization>
      <address>
        <email>suresh.krishnan@gmail.com</email>
      </address>
    </author>
    <author initials="J." surname="Arkko" fullname="Jari Arkko">
      <organization>Ericsson</organization>
      <address>
        <email>jari.arkko@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Kühlewind" fullname="Mirja Kühlewind">
      <organization>Ericsson</organization>
      <address>
        <email>mirja.kuhlewind@ericsson.com</email>
      </address>
    </author>
    <date year="2024" month="December" day="17"/>
    <area>Internet</area>
    <workgroup>Dynamic Host Configuration</workgroup>
    <keyword>dhcp</keyword>
    <abstract>
      <?line 58?>

<t>This document describes a mechanism for networks
with legacy IPv4-only clients to use services provided by
DHCPv6 using DHCPv4-over-DHCPv6 (DHCP 4o6) in a Relay Agent.
RFC7341 specifies use of DHCPv4-over-DHCPv6 in the client only.
This document specifies
a RFC7341-based approach that allows DHCP 4o6 to be deployed as a
Relay Agent (4o6RA) that implements the 4o6 DHCP en- and decapsulation
if this is not possible at the client.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-porfiri-dhc-dhcpv4-over-dhcpv6-ra/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mirjak/dhc-dhcpv4-over-dhcpv6-ra"/>.</t>
    </note>
  </front>
  <middle>
    <?line 69?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7341"/> describes a transport mechanism for carrying DHCPv4
messages using the DHCPv6 protocol for the dynamic provisioning
of IPv4 addresses and other DHCPv4 specific configuration parameters
across IPv6-only networks. The deployment of <xref target="RFC7341"/> requires implementation in
all DHCP clients and at the DHCPv6 server.</t>
      <t>However, if the client only supports IPv4 and cannot easily be replaced or updated
due to a number of technical or business reasons, this approach does not work.</t>
      <t>Similarly, the specifications for DHCPv6 Relay Agents such as LDRA <xref target="RFC6221"/>
or L3RA <xref target="RFC8415"/> do not foresee the possibility to handle legacy DHCP,
other than implementing 4o6 in client.</t>
      <t>This document specifies an <xref target="RFC7341"/>-based solution that can be
implemented in intermediate nodes such as L2 switches or routers,
without putting any requirements on clients. No new protocols or extensions are needed,
instead this document specifies an amendment to <xref target="RFC7341"/> that allows
a Relay Agent to perform the 4o6 DHCP en- and decapsultion instead of
the client.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The following terms and acronyms are used in this document:</t>
      <ul spacing="normal">
        <li>
          <t>DHCPv4 over DHCPv6 (or 4o6):
 The architecture, the procedures and the protocols described in the
 DHCPv4-over-DHCPv6 document <xref target="RFC7341"/>.</t>
        </li>
        <li>
          <t>DHCP Relay Agent (or RA):
 This is a concept in all of the protocols, BOOTP <xref target="RFC0951"/> <xref target="RFC1542"/>, DHCPv4
 <xref target="RFC2131"/> <xref target="RFC2132"/>, and DHCPv6 <xref target="RFC8415"/>, although the details differ
 between the protocols.</t>
        </li>
        <li>
          <t>Lightweight DHCPv6 Relay Agent (or LDRA):
 This is an extension of the original DHCPv6 Relay Agent mechanism,
 to support also Layer 2 devices performing a Relay Agent function <xref target="RFC6221"/>.</t>
        </li>
        <li>
          <t>DHCPv4 over DHCPv6 Relay Agent (or 4o6RA):
 The 4o6 Relay Agent (as specified in this document)
 is the part of an RA implementing 4o6.</t>
        </li>
      </ul>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="dhcpv4-over-dhcpv6-relay-agent-4o6ra">
      <name>DHCPv4 over DHCPv6 Relay Agent (4o6RA)</name>
      <t>This document assume an network, where IPv4-only clients are connected
to an uplink network that supports IPv6 only and limited IPv4 services.</t>
      <t>To address such a network setup, this document proposes to extend
DHCPv6 Relay Agents with  DHCPv4 over DHCPv6, as
shown in <xref target="fig_4o6RA"/>.</t>
      <figure anchor="fig_4o6RA">
        <name>Architecture Overview with legacy DHCP client</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="480" viewBox="0 0 480 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
              <path d="M 80,48 L 80,64" fill="none" stroke="black"/>
              <path d="M 80,128 L 80,144" fill="none" stroke="black"/>
              <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,64 L 176,128" fill="none" stroke="black"/>
              <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
              <path d="M 192,128 L 192,144" fill="none" stroke="black"/>
              <path d="M 288,48 L 288,64" fill="none" stroke="black"/>
              <path d="M 288,128 L 288,144" fill="none" stroke="black"/>
              <path d="M 304,64 L 304,128" fill="none" stroke="black"/>
              <path d="M 384,64 L 384,128" fill="none" stroke="black"/>
              <path d="M 400,48 L 400,64" fill="none" stroke="black"/>
              <path d="M 400,128 L 400,144" fill="none" stroke="black"/>
              <path d="M 472,64 L 472,128" fill="none" stroke="black"/>
              <path d="M 96,32 L 176,32" fill="none" stroke="black"/>
              <path d="M 304,32 L 384,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
              <path d="M 176,64 L 304,64" fill="none" stroke="black"/>
              <path d="M 384,64 L 472,64" fill="none" stroke="black"/>
              <path d="M 96,96 L 176,96" fill="none" stroke="black"/>
              <path d="M 304,96 L 384,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,128 L 304,128" fill="none" stroke="black"/>
              <path d="M 384,128 L 472,128" fill="none" stroke="black"/>
              <path d="M 96,160 L 176,160" fill="none" stroke="black"/>
              <path d="M 304,160 L 384,160" fill="none" stroke="black"/>
              <path d="M 96,32 C 87.16936,32 80,39.16936 80,48" fill="none" stroke="black"/>
              <path d="M 176,32 C 184.83064,32 192,39.16936 192,48" fill="none" stroke="black"/>
              <path d="M 304,32 C 295.16936,32 288,39.16936 288,48" fill="none" stroke="black"/>
              <path d="M 384,32 C 392.83064,32 400,39.16936 400,48" fill="none" stroke="black"/>
              <path d="M 96,160 C 87.16936,160 80,152.83064 80,144" fill="none" stroke="black"/>
              <path d="M 176,160 C 184.83064,160 192,152.83064 192,144" fill="none" stroke="black"/>
              <path d="M 304,160 C 295.16936,160 288,152.83064 288,144" fill="none" stroke="black"/>
              <path d="M 384,160 C 392.83064,160 400,152.83064 400,144" fill="none" stroke="black"/>
              <g class="text">
                <text x="140" y="68">L2</text>
                <text x="340" y="68">IPv6</text>
                <text x="52" y="84">DHCPv4</text>
                <text x="136" y="84">Network</text>
                <text x="236" y="84">DHCPv6</text>
                <text x="344" y="84">Network</text>
                <text x="412" y="84">DHCP</text>
                <text x="448" y="84">4o6</text>
                <text x="52" y="100">Client</text>
                <text x="216" y="100">Relay</text>
                <text x="264" y="100">Agent</text>
                <text x="428" y="100">Server</text>
                <text x="220" y="116">with</text>
                <text x="264" y="116">4o6RA</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                 .-----------.             .-----------.
                |             |           |             |
       +--------+-+    L2   +-+-----------+-+  IPv6   +-+--------+
       |  DHCPv4  | Network |    DHCPv6     | Network | DHCP 4o6 |
       |  Client  +---------+  Relay Agent  +---------+  Server  |
       |          |         |   with 4o6RA  |         |          |
       +--------+-+         +-+-----------+-+         +-+--------+
                |             |           |             |
                 '-----------'             '-----------'

]]></artwork>
        </artset>
      </figure>
      <t>This document specifies the encapsulation
and decapsulation described in <xref target="RFC7341"/> to be performed in the Relay Agent
whereas the DHCP Client does not require any change.
In this case it is up to the Relay Agent to provide the full
4o6 DHCP set of functionality whereas the legacy client is not aware of being served
via a 4o6 DHCP service.
All prerequisites and configuration that to the DHCP client in <xref section="5" sectionFormat="of" target="RFC7341"/>
apply shall be applied to the 4o6RA instead.</t>
      <t>To maintain interoperability with existing DHCP relays and servers,
the message format is unchanged from <xref target="RFC8415"/>. The 4o6RA implements
the same message types as a normal DHCPv6 Relay Agent <xref section="6" sectionFormat="of" target="RFC7341"/>.</t>
      <t>In this specification, the 4o6RA creates the DHCPV4-QUERY Message
and encapsulates the DHCP request message received from the legacy DHCPv4 client.</t>
      <t>When DHCPV4-RESPONSE Message is received by the 4o6 Relay Agent,
it looks for the DHCPv4 Message option within this message.
If this option is not found, the DHCPv4-response message <bcp14>MUST</bcp14> be discarded.
If the DHCPv4 Message option is present, the 4o6RA <bcp14>MUST</bcp14> extract the DHCPv4
message and forward the encapsulated DHCPv4-response to the legacy DHCPv4 client.</t>
      <t>Any Layer 2 Relay Agent receiving DHCPV4-QUERY or DHCPV4-RESPONSE messages
will handle them as specified in <xref section="6" sectionFormat="of" target="RFC6221"/>.</t>
      <t>The DHCPv6 server must be compliant with 4o6 according to <xref target="RFC7341"/>.
No additional requirements on DHCPv6 server are set by this specification.</t>
    </section>
    <section anchor="topology_considerations">
      <name>Using 4o6RA for Topology Discovery</name>
      <t>In some networks the configuration of a client host may depend on the
topology.  However, when a new client host gets connected to the
network, it may be unaware of the topology and respectively how it
has to be configured.</t>
      <t>The DHCPv4 <xref target="RFC2131"/> and DHCPv6 <xref target="RFC3315"/> protocol specifications
describe how addresses can be allocated to clients based on network
topology information provided by the DHCP relay infrastructure.</t>
      <t>In IPv6 networks, Topology discover can be realized using DHCPv6
Relay Agents <xref target="RFC6221"/> that insert relay agent options in DHCPv6
message exchanges in order to identify the client-facing interfaces,
e.g. using the Serial Number or other hardcoded information.  Then, a
reference host that is responsible for providing configuration to the
client host can obtain topology information from the DHCP server.</t>
      <t>Address allocation decisions are integral to the allocation of
addresses and prefixes in DHCP. The argument is described in details
in <xref target="RFC7969"/>, here we want to guarantee that 4o6RA does not
break any legacy capability when related to the use of topology.</t>
      <t>In the scenario described in <xref target="RFC7341"/> the DHCPv6 Relay Agent knows
the interface where the encapsulated DHCP request is received.</t>
      <t>Moving 4o6 in the intermediate node rather than at the client breaks the topology
propagation as 4o6RA-only does not provide any interface information in the encapsulated message.</t>
      <figure anchor="fig_4o6RA_RA">
        <name>Topology broken path</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="528" viewBox="0 0 528 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
              <path d="M 80,48 L 80,64" fill="none" stroke="black"/>
              <path d="M 80,128 L 80,144" fill="none" stroke="black"/>
              <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,64 L 176,128" fill="none" stroke="black"/>
              <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
              <path d="M 192,128 L 192,144" fill="none" stroke="black"/>
              <path d="M 224,48 L 224,64" fill="none" stroke="black"/>
              <path d="M 224,128 L 224,144" fill="none" stroke="black"/>
              <path d="M 256,64 L 256,128" fill="none" stroke="black"/>
              <path d="M 296,64 L 296,128" fill="none" stroke="black"/>
              <path d="M 368,64 L 368,128" fill="none" stroke="black"/>
              <path d="M 432,64 L 432,128" fill="none" stroke="black"/>
              <path d="M 448,48 L 448,64" fill="none" stroke="black"/>
              <path d="M 448,128 L 448,144" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
              <path d="M 96,32 L 176,32" fill="none" stroke="black"/>
              <path d="M 240,32 L 432,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
              <path d="M 176,64 L 256,64" fill="none" stroke="black"/>
              <path d="M 296,64 L 368,64" fill="none" stroke="black"/>
              <path d="M 432,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 96,96 L 176,96" fill="none" stroke="black"/>
              <path d="M 256,96 L 296,96" fill="none" stroke="black"/>
              <path d="M 368,96 L 432,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,128 L 256,128" fill="none" stroke="black"/>
              <path d="M 296,128 L 368,128" fill="none" stroke="black"/>
              <path d="M 432,128 L 520,128" fill="none" stroke="black"/>
              <path d="M 96,160 L 176,160" fill="none" stroke="black"/>
              <path d="M 240,160 L 432,160" fill="none" stroke="black"/>
              <path d="M 96,32 C 87.16936,32 80,39.16936 80,48" fill="none" stroke="black"/>
              <path d="M 176,32 C 184.83064,32 192,39.16936 192,48" fill="none" stroke="black"/>
              <path d="M 240,32 C 231.16936,32 224,39.16936 224,48" fill="none" stroke="black"/>
              <path d="M 432,32 C 440.83064,32 448,39.16936 448,48" fill="none" stroke="black"/>
              <path d="M 96,160 C 87.16936,160 80,152.83064 80,144" fill="none" stroke="black"/>
              <path d="M 176,160 C 184.83064,160 192,152.83064 192,144" fill="none" stroke="black"/>
              <path d="M 240,160 C 231.16936,160 224,152.83064 224,144" fill="none" stroke="black"/>
              <path d="M 432,160 C 440.83064,160 448,152.83064 448,144" fill="none" stroke="black"/>
              <g class="text">
                <text x="100" y="52">L2</text>
                <text x="144" y="52">Network</text>
                <text x="308" y="52">IPv6</text>
                <text x="360" y="52">Network</text>
                <text x="52" y="84">DHCPv4</text>
                <text x="208" y="84">4o6</text>
                <text x="332" y="84">DHCPv6</text>
                <text x="460" y="84">DHCP</text>
                <text x="496" y="84">4o6</text>
                <text x="52" y="100">Client</text>
                <text x="204" y="100">RA</text>
                <text x="332" y="100">RA</text>
                <text x="476" y="100">Server</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.     .-------------------------.
          | L2 Network  |   |        IPv6 Network       |
 +--------+-+         +-+---+---+    +--------+       +-+--------+
 |  DHCPv4  |         |  4o6    |    | DHCPv6 |       | DHCP 4o6 |
 |  Client  +---------+  RA     +----+   RA   +-------+  Server  |
 |          |         |         |    |        |       |          |
 +--------+-+         +-+---+---+    +--------+       +-+--------+
          |             |   |                           |
           '-----------'     '-------------------------'

]]></artwork>
        </artset>
      </figure>
      <t>As shown in <xref target="fig_4o6RA_RA"/>, the introduction of 4o6 at the
edge of the IPv6 network hides the L2 network from the DHCPv6 RA.</t>
      <t>In order to preserve the topology information, it is recommended that the
implementation of 4o6RA is combined with the implementation of LDRA <xref target="RFC6221"/>
and that the implementation has a mechanism for LDRA to get interface information
that can be used for the Interface-ID option, as specified in
<xref section="5.3.2" sectionFormat="of" target="RFC6221"/>.
The internal mechanisms to exchange interface information,
their format and whether the interface information contains an indication that a 4o6RA
is involved are out of the scope for this document.</t>
      <figure anchor="fig_4o6LDRA">
        <name>Topology path preserved with LDRA</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="480" viewBox="0 0 480 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
              <path d="M 80,48 L 80,64" fill="none" stroke="black"/>
              <path d="M 80,128 L 80,144" fill="none" stroke="black"/>
              <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,64 L 176,128" fill="none" stroke="black"/>
              <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
              <path d="M 192,128 L 192,144" fill="none" stroke="black"/>
              <path d="M 224,48 L 224,64" fill="none" stroke="black"/>
              <path d="M 224,128 L 224,144" fill="none" stroke="black"/>
              <path d="M 248,64 L 248,128" fill="none" stroke="black"/>
              <path d="M 328,64 L 328,128" fill="none" stroke="black"/>
              <path d="M 384,64 L 384,128" fill="none" stroke="black"/>
              <path d="M 464,48 L 464,56" fill="none" stroke="black"/>
              <path d="M 464,136 L 464,144" fill="none" stroke="black"/>
              <path d="M 472,64 L 472,128" fill="none" stroke="black"/>
              <path d="M 96,32 L 176,32" fill="none" stroke="black"/>
              <path d="M 240,32 L 448,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
              <path d="M 176,64 L 328,64" fill="none" stroke="black"/>
              <path d="M 384,64 L 472,64" fill="none" stroke="black"/>
              <path d="M 96,96 L 176,96" fill="none" stroke="black"/>
              <path d="M 328,96 L 384,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,128 L 328,128" fill="none" stroke="black"/>
              <path d="M 384,128 L 472,128" fill="none" stroke="black"/>
              <path d="M 96,160 L 176,160" fill="none" stroke="black"/>
              <path d="M 240,160 L 448,160" fill="none" stroke="black"/>
              <path d="M 96,32 C 87.16936,32 80,39.16936 80,48" fill="none" stroke="black"/>
              <path d="M 176,32 C 184.83064,32 192,39.16936 192,48" fill="none" stroke="black"/>
              <path d="M 240,32 C 231.16936,32 224,39.16936 224,48" fill="none" stroke="black"/>
              <path d="M 448,32 C 456.83064,32 464,39.16936 464,48" fill="none" stroke="black"/>
              <path d="M 96,160 C 87.16936,160 80,152.83064 80,144" fill="none" stroke="black"/>
              <path d="M 176,160 C 184.83064,160 192,152.83064 192,144" fill="none" stroke="black"/>
              <path d="M 240,160 C 231.16936,160 224,152.83064 224,144" fill="none" stroke="black"/>
              <path d="M 448,160 C 456.83064,160 464,152.83064 464,144" fill="none" stroke="black"/>
              <g class="text">
                <text x="100" y="52">L2</text>
                <text x="144" y="52">Network</text>
                <text x="324" y="52">IPv6</text>
                <text x="376" y="52">Network</text>
                <text x="52" y="84">DHCPv4</text>
                <text x="208" y="84">4o6</text>
                <text x="284" y="84">LDRA</text>
                <text x="412" y="84">DHCP</text>
                <text x="448" y="84">4o6</text>
                <text x="52" y="100">Client</text>
                <text x="204" y="100">RA</text>
                <text x="288" y="100">RFC6221</text>
                <text x="428" y="100">Server</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.     .---------------------------.
          | L2 Network  |   |          IPv6 Network       |
 +--------+-+         +-+---+--+---------+      +----------+
 |  DHCPv4  |         |  4o6   |  LDRA   |      | DHCP 4o6 |
 |  Client  +---------+  RA    + RFC6221 +------+  Server  |
 |          |         |        |         |      |          |
 +--------+-+         +-+---+--+---------+      +----------+
          |             |   |                             |
           '-----------'     '---------------------------'

]]></artwork>
        </artset>
      </figure>
      <t>The assumed architecture is shown in <xref target="fig_4o6LDRA"/> where the whole
RA is built up with cooperating 4o6RA and LDRA, and an internal interface to
propagated topology information from 4o6RA to LDRA.</t>
      <t>In a simple case, where the same node hosts teh 4o6RA and the DHCP4o6 server,
it might be enough to only use 4o6RA, as shown in <xref target="fig_4o6RAserver"/>.</t>
      <figure anchor="fig_4o6RAserver">
        <name>Topology path preserved 4o6 RA in DHCP server</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="344" viewBox="0 0 344 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,128" fill="none" stroke="black"/>
              <path d="M 80,48 L 80,64" fill="none" stroke="black"/>
              <path d="M 80,128 L 80,144" fill="none" stroke="black"/>
              <path d="M 96,64 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,64 L 176,128" fill="none" stroke="black"/>
              <path d="M 192,48 L 192,64" fill="none" stroke="black"/>
              <path d="M 192,128 L 192,144" fill="none" stroke="black"/>
              <path d="M 248,64 L 248,128" fill="none" stroke="black"/>
              <path d="M 336,64 L 336,128" fill="none" stroke="black"/>
              <path d="M 96,32 L 176,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
              <path d="M 176,64 L 336,64" fill="none" stroke="black"/>
              <path d="M 96,96 L 176,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
              <path d="M 176,128 L 336,128" fill="none" stroke="black"/>
              <path d="M 96,160 L 176,160" fill="none" stroke="black"/>
              <path d="M 96,32 C 87.16936,32 80,39.16936 80,48" fill="none" stroke="black"/>
              <path d="M 176,32 C 184.83064,32 192,39.16936 192,48" fill="none" stroke="black"/>
              <path d="M 96,160 C 87.16936,160 80,152.83064 80,144" fill="none" stroke="black"/>
              <path d="M 176,160 C 184.83064,160 192,152.83064 192,144" fill="none" stroke="black"/>
              <g class="text">
                <text x="100" y="52">L2</text>
                <text x="144" y="52">Network</text>
                <text x="52" y="84">DHCP</text>
                <text x="208" y="84">4o6</text>
                <text x="276" y="84">DHCP</text>
                <text x="312" y="84">4o6</text>
                <text x="52" y="100">Client</text>
                <text x="204" y="100">RA</text>
                <text x="292" y="100">Server</text>
                <text x="36" y="116">on</text>
                <text x="64" y="116">CPE</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.
          | L2 Network  |
 +--------+-+         +-+------+----------+
 |   DHCP   |         |  4o6   | DHCP 4o6 |
 |  Client  +---------+  RA    +  Server  |
 |  on CPE  |         |        |          |
 +--------+-+         +-+------+----------+
          |             |
           '-----------'

]]></artwork>
        </artset>
      </figure>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>As the client is not aware of the 4o6RA, the network deployment needs to ensure that
all DHCPv4 broad- and unicast messages from the client are routed over the 4o6RA.
This can e.g. be achieved by placing the 4o6RA in a cetral position that can observe all traffic
from the clients or use of address translation with the 4o6RA address for unicast
messages.</t>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>This documents applies 4o6 DHCP in a scenario where legacy IPv4 clients are
connected to 4o6 DHCP Relay Agent that performs the en- and decapsulation. This document
does not change anything else in the 4o6 DHCP specification and therefore the
security consideration of <xref target="RFC7341"/> still apply.</t>
      <t>The mechanism described differs from <xref target="RFC7341"/> as the DHCP client
actually sends and receveis DHCP messages, whereas in <xref target="RFC7341"/> it
only sends DHCPv6 messages. This makes it possible that
DHCP messages could reach a DHCP server without using the 4o6RA.
While this can cause errornous states in both the client and DHCP server
and potentially even lead to misconfigrations that impact reachability,
this is not seen as a security concern rather than a deloyment error.</t>
      <t>More generally, the legacy IPv4 client is not aware of this mechanism, however, even
when 4o6 DHCP is used, the client does not have any control about the
information provided by the Relay agent. As such this change does not
raise any additional security concerns.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3046">
          <front>
            <title>DHCP Relay Agent Information Option</title>
            <author fullname="M. Patrick" initials="M." surname="Patrick"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>Newer high-speed public Internet access technologies call for a high- speed modem to have a local area network (LAN) attachment to one or more customer premise hosts. It is advantageous to use the Dynamic Host Configuration Protocol (DHCP) as defined in RFC 2131 to assign customer premise host IP addresses in this environment. However, a number of security and scaling problems arise with such "public" DHCP use. This document describes a new DHCP option to address these issues. This option extends the set of DHCP options as defined in RFC 2132. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3046"/>
          <seriesInfo name="DOI" value="10.17487/RFC3046"/>
        </reference>
        <reference anchor="RFC3315">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="R. Droms" initials="R." role="editor" surname="Droms"/>
            <author fullname="J. Bound" initials="J." surname="Bound"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Carney" initials="M." surname="Carney"/>
            <date month="July" year="2003"/>
          </front>
          <seriesInfo name="RFC" value="3315"/>
          <seriesInfo name="DOI" value="10.17487/RFC3315"/>
        </reference>
        <reference anchor="RFC6221">
          <front>
            <title>Lightweight DHCPv6 Relay Agent</title>
            <author fullname="D. Miles" initials="D." role="editor" surname="Miles"/>
            <author fullname="S. Ooghe" initials="S." surname="Ooghe"/>
            <author fullname="W. Dec" initials="W." surname="Dec"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="A. Kavanagh" initials="A." surname="Kavanagh"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>This document proposes a Lightweight DHCPv6 Relay Agent (LDRA) that is used to insert relay agent options in DHCPv6 message exchanges identifying client-facing interfaces. The LDRA can be implemented in existing access nodes (such as Digital Subscriber Link Access Multiplexers (DSLAMs) and Ethernet switches) that do not support IPv6 control or routing functions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6221"/>
          <seriesInfo name="DOI" value="10.17487/RFC6221"/>
        </reference>
        <reference anchor="RFC6925">
          <front>
            <title>The DHCPv4 Relay Agent Identifier Sub-Option</title>
            <author fullname="B. Joshi" initials="B." surname="Joshi"/>
            <author fullname="R. Desetti" initials="R." surname="Desetti"/>
            <author fullname="M. Stapp" initials="M." surname="Stapp"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>This document defines a new Relay Agent Identifier sub-option for the Dynamic Host Configuration Protocol (DHCP) Relay Agent Information option. The sub-option carries a value that uniquely identifies the relay agent device within the administrative domain. The value is normally administratively configured in the relay agent. The sub-option allows a DHCP relay agent to include the identifier in the DHCP messages it sends.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6925"/>
          <seriesInfo name="DOI" value="10.17487/RFC6925"/>
        </reference>
        <reference anchor="RFC7341">
          <front>
            <title>DHCPv4-over-DHCPv6 (DHCP 4o6) Transport</title>
            <author fullname="Q. Sun" initials="Q." surname="Sun"/>
            <author fullname="Y. Cui" initials="Y." surname="Cui"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="S. Krishnan" initials="S." surname="Krishnan"/>
            <author fullname="I. Farrer" initials="I." surname="Farrer"/>
            <date month="August" year="2014"/>
            <abstract>
              <t>IPv4 connectivity is still needed as networks migrate towards IPv6. Users require IPv4 configuration even if the uplink to their service provider supports IPv6 only. This document describes a mechanism for obtaining IPv4 configuration information dynamically in IPv6 networks by carrying DHCPv4 messages over DHCPv6 transport. Two new DHCPv6 messages and two new DHCPv6 options are defined for this purpose.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7341"/>
          <seriesInfo name="DOI" value="10.17487/RFC7341"/>
        </reference>
        <reference anchor="RFC7969">
          <front>
            <title>Customizing DHCP Configuration on the Basis of Network Topology</title>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <date month="October" year="2016"/>
            <abstract>
              <t>DHCP servers have evolved over the years to provide significant functionality beyond that described in the DHCP base specifications. One aspect of this functionality is support for context-specific configuration information. This memo describes some such features and explains their operation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7969"/>
          <seriesInfo name="DOI" value="10.17487/RFC7969"/>
        </reference>
        <reference anchor="RFC8415">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author fullname="T. Mrugalski" initials="T." surname="Mrugalski"/>
            <author fullname="M. Siodelski" initials="M." surname="Siodelski"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <author fullname="T. Lemon" initials="T." surname="Lemon"/>
            <author fullname="T. Winters" initials="T." surname="Winters"/>
            <date month="November" year="2018"/>
            <abstract>
              <t>This document describes the Dynamic Host Configuration Protocol for IPv6 (DHCPv6): an extensible mechanism for configuring nodes with network configuration parameters, IP addresses, and prefixes. Parameters can be provided statelessly, or in combination with stateful assignment of one or more IPv6 addresses and/or IPv6 prefixes. DHCPv6 can operate either in place of or in addition to stateless address autoconfiguration (SLAAC).</t>
              <t>This document updates the text from RFC 3315 (the original DHCPv6 specification) and incorporates prefix delegation (RFC 3633), stateless DHCPv6 (RFC 3736), an option to specify an upper bound for how long a client should wait before refreshing information (RFC 4242), a mechanism for throttling DHCPv6 clients when DHCPv6 service is not available (RFC 7083), and relay agent handling of unknown messages (RFC 7283). In addition, this document clarifies the interactions between models of operation (RFC 7550). As such, this document obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083, RFC 7283, and RFC 7550.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8415"/>
          <seriesInfo name="DOI" value="10.17487/RFC8415"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC0951">
          <front>
            <title>Bootstrap Protocol</title>
            <author fullname="W.J. Croft" initials="W.J." surname="Croft"/>
            <author fullname="J. Gilmore" initials="J." surname="Gilmore"/>
            <date month="September" year="1985"/>
            <abstract>
              <t>This RFC describes an IP/UDP bootstrap protocol (BOOTP) which allows a diskless client machine to discover its own IP address, the address of a server host, and the name of a file to be loaded into memory and executed. The bootstrap operation can be thought of as consisting of TWO PHASES. This RFC describes the first phase, which could be labeled `address determination and bootfile selection'. After this address and filename information is obtained, control passes to the second phase of the bootstrap where a file transfer occurs. The file transfer will typically use the TFTP protocol, since it is intended that both phases reside in PROM on the client. However BOOTP could also work with other protocols such as SFTP or FTP. This RFC suggests a proposed protocol for the ARPA-Internet community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="951"/>
          <seriesInfo name="DOI" value="10.17487/RFC0951"/>
        </reference>
        <reference anchor="RFC1542">
          <front>
            <title>Clarifications and Extensions for the Bootstrap Protocol</title>
            <author fullname="W. Wimer" initials="W." surname="Wimer"/>
            <date month="October" year="1993"/>
            <abstract>
              <t>Some aspects of the BOOTP protocol were rather loosely defined in its original specification. In particular, only a general description was provided for the behavior of "BOOTP relay agents" (originally called "BOOTP forwarding agents"). The client behavior description also suffered in certain ways. This memo attempts to clarify and strengthen the specification in these areas. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1542"/>
          <seriesInfo name="DOI" value="10.17487/RFC1542"/>
        </reference>
        <reference anchor="RFC2132">
          <front>
            <title>DHCP Options and BOOTP Vendor Extensions</title>
            <author fullname="S. Alexander" initials="S." surname="Alexander"/>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>This document specifies the current set of DHCP options. Future options will be specified in separate RFCs. The current list of valid options is also available in ftp://ftp.isi.edu/in-notes/iana/assignments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2132"/>
          <seriesInfo name="DOI" value="10.17487/RFC2132"/>
        </reference>
        <reference anchor="RFC2131">
          <front>
            <title>Dynamic Host Configuration Protocol</title>
            <author fullname="R. Droms" initials="R." surname="Droms"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>The Dynamic Host Configuration Protocol (DHCP) provides a framework for passing configuration information to hosts on a TCPIP network. DHCP is based on the Bootstrap Protocol (BOOTP), adding the capability of automatic allocation of reusable network addresses and additional configuration options. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2131"/>
          <seriesInfo name="DOI" value="10.17487/RFC2131"/>
        </reference>
      </references>
    </references>
    <?line 313?>

<section anchor="usecase">
      <name>Example Use Case: Topology Discovery for IPv4-only Radio Unit in the RAN Switched Fronthaul</name>
      <t>In Radio Access Networks (RANs) the Fronthaul is the network segment
that connects Radio Units, the distributed radio elements in a mobile network,
to other network elements. The aggregation
of Radio Unit devices (also known as Switched Fronthaul) hides the relationship
between the Radio Units themselves and the physical ports where they are connected.
The Radio Units are the client hosts in the switched Fronthaul network and
need to be configured based on their Topology.</t>
      <figure anchor="l2_switched_fh">
        <name>Layer 2 Switched Fronthaul Example</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="544" viewBox="0 0 544 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 8,112 L 8,160" fill="none" stroke="black"/>
              <path d="M 8,192 L 8,240" fill="none" stroke="black"/>
              <path d="M 8,272 L 8,320" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
              <path d="M 80,112 L 80,160" fill="none" stroke="black"/>
              <path d="M 80,192 L 80,240" fill="none" stroke="black"/>
              <path d="M 80,272 L 80,320" fill="none" stroke="black"/>
              <path d="M 152,48 L 152,144" fill="none" stroke="black"/>
              <path d="M 152,208 L 152,304" fill="none" stroke="black"/>
              <path d="M 168,48 L 168,80" fill="none" stroke="black"/>
              <path d="M 168,208 L 168,240" fill="none" stroke="black"/>
              <path d="M 224,48 L 224,144" fill="none" stroke="black"/>
              <path d="M 224,208 L 224,304" fill="none" stroke="black"/>
              <path d="M 272,48 L 272,320" fill="none" stroke="black"/>
              <path d="M 296,64 L 296,144" fill="none" stroke="black"/>
              <path d="M 296,224 L 296,304" fill="none" stroke="black"/>
              <path d="M 336,64 L 336,96" fill="none" stroke="black"/>
              <path d="M 392,64 L 392,144" fill="none" stroke="black"/>
              <path d="M 392,224 L 392,304" fill="none" stroke="black"/>
              <path d="M 432,48 L 432,320" fill="none" stroke="black"/>
              <path d="M 456,144 L 456,224" fill="none" stroke="black"/>
              <path d="M 536,144 L 536,224" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 152,48 L 224,48" fill="none" stroke="black"/>
              <path d="M 80,64 L 144,64" fill="none" stroke="black"/>
              <path d="M 296,64 L 392,64" fill="none" stroke="black"/>
              <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
              <path d="M 168,80 L 224,80" fill="none" stroke="black"/>
              <path d="M 272,96 L 288,96" fill="none" stroke="black"/>
              <path d="M 336,96 L 392,96" fill="none" stroke="black"/>
              <path d="M 8,112 L 80,112" fill="none" stroke="black"/>
              <path d="M 80,128 L 144,128" fill="none" stroke="black"/>
              <path d="M 224,128 L 264,128" fill="none" stroke="black"/>
              <path d="M 392,128 L 424,128" fill="none" stroke="black"/>
              <path d="M 152,144 L 224,144" fill="none" stroke="black"/>
              <path d="M 296,144 L 392,144" fill="none" stroke="black"/>
              <path d="M 456,144 L 536,144" fill="none" stroke="black"/>
              <path d="M 8,160 L 80,160" fill="none" stroke="black"/>
              <path d="M 432,176 L 448,176" fill="none" stroke="black"/>
              <path d="M 8,192 L 80,192" fill="none" stroke="black"/>
              <path d="M 152,208 L 224,208" fill="none" stroke="black"/>
              <path d="M 80,224 L 144,224" fill="none" stroke="black"/>
              <path d="M 296,224 L 392,224" fill="none" stroke="black"/>
              <path d="M 456,224 L 536,224" fill="none" stroke="black"/>
              <path d="M 8,240 L 80,240" fill="none" stroke="black"/>
              <path d="M 168,240 L 224,240" fill="none" stroke="black"/>
              <path d="M 272,256 L 288,256" fill="none" stroke="black"/>
              <path d="M 8,272 L 80,272" fill="none" stroke="black"/>
              <path d="M 80,288 L 144,288" fill="none" stroke="black"/>
              <path d="M 224,288 L 264,288" fill="none" stroke="black"/>
              <path d="M 392,288 L 424,288" fill="none" stroke="black"/>
              <path d="M 152,304 L 224,304" fill="none" stroke="black"/>
              <path d="M 296,304 L 392,304" fill="none" stroke="black"/>
              <path d="M 8,320 L 80,320" fill="none" stroke="black"/>
              <g class="text">
                <text x="40" y="52">RU1</text>
                <text x="132" y="52">P1</text>
                <text x="196" y="68">L2RA</text>
                <text x="364" y="84">L3RA</text>
                <text x="180" y="100">L2</text>
                <text x="132" y="116">P2</text>
                <text x="188" y="116">switch</text>
                <text x="40" y="132">RU2</text>
                <text x="180" y="132">#1</text>
                <text x="348" y="132">Router</text>
                <text x="484" y="180">DHCP</text>
                <text x="492" y="196">Server</text>
                <text x="40" y="212">RU3</text>
                <text x="132" y="212">P1</text>
                <text x="492" y="212">#1</text>
                <text x="196" y="228">L2RA</text>
                <text x="180" y="260">L2</text>
                <text x="340" y="260">Baseband</text>
                <text x="132" y="276">P2</text>
                <text x="188" y="276">switch</text>
                <text x="340" y="276">Unit</text>
                <text x="40" y="292">RU4</text>
                <text x="180" y="292">#2</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
     +--------+
     |  RU1   |     P1 +-+------+     |                   |
     |        +--------| | L2RA |     |  +----+------+    |
     +--------+        | +------+     |  |    | L3RA |    |
                       |  L2    |     +--|    +------+    |
     +--------+     P2 | switch |     |  |           |    |
     |  RU2   +--------|  #1    +-----|  |   Router  +----|
     |        |        +--------+     |  +-----------+    |  +---------+
     +--------+                       |                   |  |         |
                                      |                   +--| DHCP    |
     +--------+                       |                   |  | Server  |
     |  RU3   |     P1 +-+------+     |                   |  |   #1    |
     |        +--------| | L2RA |     |  +-----------+    |  +---------+
     +--------+        | +------+     |  |           |    |
                       |  L2    |     +--| Baseband  |    |
     +--------+     P2 | switch |     |  |   Unit    |    |
     |  RU4   +--------|  #2    +-----|  |           +----|
     |        |        +--------+     |  +-----------+    |
     +--------+                       |                   |
]]></artwork>
        </artset>
      </figure>
      <t><xref target="l2_switched_fh"/> shows multiple Radio Units that are connected
to one Baseband Unit by means of a Layer 2 switched network.
The Baseband Unit is the central processing unit that handles baseband information.
A Baseband Unit is often placed rather centrally, while the Radio Units need to
be distributed to be co-located with or near the antennas.
Traffic between Radio Units and Baseband Units is both IP-based and Layer-2-based
and may pass a hierarchy of L2 switches.</t>
      <t>In order to properly address the Radio Unit, the Baseband Unit needs to associate
the Radio Unit's MAC address to the L2 switch and respective port
where the Radio Unit is connected. To realize this device configuration
in the Switched Fronthaul network, DHCPv6 can be used to discover the network Topology.</t>
      <t>With the L2 switched network between the clients and the server,
one of the clients is responsible for the configuration of the other
clients based on their topology. Updating of the software on the clients
is not possible often not possible and clients may be IPv4-only.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would also like to acknowledge interesting discussions in
this problem space with Sarah Gannon, Ines Ramadza and Siddharth Sharma.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
