<?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.29 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dhc-dhcpv4-over-dhcpv6-ra-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="DHCP 4o6 Relay Agent">DHCPv4-over-DHCPv6 (DHCP 4o6) with Relay Agent Support</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dhc-dhcpv4-over-dhcpv6-ra-02"/>
    <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.kuehlewind@ericsson.com</email>
      </address>
    </author>
    <date year="2025" month="May" day="23"/>
    <area>Internet</area>
    <workgroup>Dynamic Host Configuration</workgroup>
    <keyword>dhcp</keyword>
    <abstract>
      <?line 56?>

<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 encapsulation
and decapsulation in an intermediate node rather than 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-ietf-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/draft-dhc-dhcpv4-over-dhcpv6-ra"/>.</t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7341"/> describes a transport mechanism for carrying DHCPv4 <xref target="RFC2131"/>
messages using DHCPv6 <xref target="RFC8415"/> for dynamic provisioning
of IPv4 addresses and other DHCPv4 specific configuration parameters
across IPv6-only networks. The deployment of <xref target="RFC7341"/> requires support in
DHCP clients and at the DHCPv6 server.
However, if a client is embedded in a host that 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 DHCPv4,
other than implementing DHCP 4o6 in the client.</t>
      <t>This document specifies an <xref target="RFC7341"/>-based solution that can be
implemented in intermediate nodes such as 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 DHCP 4o6 encapsulation and decapsulation instead of
the client.</t>
      <section anchor="applicability">
        <name>Applicability Scope</name>
        <t>The mechanisms described in this document apply to the configuration phase
of hosts that need to receive an IPv4 address but a DHCP server for IPv4 <xref target="RFC2131"/> is not
reachable directly from the host. Furthermore, the host is unable to implement
a DHCP client conformant to <xref target="RFC7341"/> as it is connected to an IPv4-only
network. But there is a DHCPv6 server that can provide IPv4 addresses by means of
the mechanisms described in <xref target="RFC7341"/>.</t>
      </section>
    </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>DHCP:
If not otherwise specified, DHCP refers to DHCPv4 and/or DHCPv6.</t>
        </li>
        <li>
          <t>DHCPv4:
 DHCP as defined in <xref target="RFC2131"/>.</t>
        </li>
        <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:
 This is a concept in all of the following protocols, although the details differ
 between them: BOOTP <xref target="RFC0951"/> <xref target="RFC1542"/>, DHCPv4
 <xref target="RFC2131"/> <xref target="RFC2132"/>, and DHCPv6 <xref target="RFC8415"/>.</t>
        </li>
        <li>
          <t>Lightweight DHCPv6 Relay Agent (or LDRA):
 This is an extension of the original DHCPv6 Relay Agent,
 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):
 Refers to a Relay Agent that implements the 4o6
 specified in this document.</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 assumes a network, where IPv4-only hosts are connected
to a network that supports IPv6 and limited IPv4 services.</t>
      <t>To address such a network setup, this document extends
DHCPv6 Relay Agents with DHCPv4-over-DHCPv6, as shown in <xref target="fig_4o6RA"/>.</t>
      <figure anchor="fig_4o6RA">
        <name>Architecture Example 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
without requiring any changes on the DHCPv4 client.
In this case it is up to the Relay Agent to provide the full DHCP
4o6 support and the legacy DHCPv4 client is not aware that it is being served
via a DHCP 4o6 service.
As the 4o6RA acts as a DHCP 4o6 client, all prerequisites and configuration
that apply to the DHCP client in <xref section="5" sectionFormat="of" target="RFC7341"/> are also applied to the 4o6RA.</t>
      <t>As the 4o6RA takes the role of the client in respect to <xref target="RFC7341"/>,
it also takes the responsibility for finding a suitable interface; that can be
a network interface or another Relay Agent.</t>
      <t>To maintain interoperability with existing DHCPv6 relays and servers,
the message format is unchanged from <xref target="RFC8415"/>. The 4o6RA implements
the same message types as a DHCPv6 Relay Agent <xref section="6" sectionFormat="of" target="RFC7341"/>.</t>
      <t>However, in this specification, the 4o6RA, instead of the client, 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 or the DHCPv4-RESPONSE message is not well-formed,
it <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 requesting DHCPv4 client.</t>
      <t>Layer 2 Relay Agents receiving DHCPV4-QUERY or DHCPV4-RESPONSE messages
<bcp14>MUST</bcp14> handle them as specified in <xref section="6" sectionFormat="of" target="RFC6221"/>.</t>
      <t>DHCPv6 servers are expected to be compliant with 4o6 according to <xref target="RFC7341"/>.
No additional requirements on DHCPv6 servers are set by this specification.</t>
      <section anchor="intermediate-relays">
        <name>Intermediate relays</name>
        <t>Intermediate relays shall behave according to section 10 of <xref target="RFC7341"/>.</t>
      </section>
      <section anchor="topology_considerations">
        <name>4o6RA and Topology Discovery</name>
        <t>In some networks the configuration of a host may depend on the
topology.  However, when the new host attaches to a
network, it may be unaware of the topology and respectively how it
has to be configured.</t>
        <t>DHCPv4 <xref target="RFC2131"/> and DHCPv6 <xref target="RFC3315"/> specifications
describe how addresses can be allocated to clients based on network
topology information provided by a DHCP relay, typically.</t>
        <t>Address/prefix allocation decisions are integral to the allocation of
addresses and prefixes in DHCP, as described in details
in <xref target="RFC7969"/>. This specification aims to guarantee that the 4o6RA does not
break any legacy capability when used for topology discovery.</t>
        <t>Topology discovery as described in <xref target="RFC7969"/> differs between
IPv4 and IPv6 as for IPv4 only the first Relay Agent can
set the giaddr field (section 3.1 of <xref target="RFC7969"/>). Thus in a
network that has more than one Relay Agent only part of the topology
is transported via DHCPv4.</t>
        <t>When using DHCPv6, all Relay Agents can send
link-address and Interface-ID options, that provide
information about the complete path
between the DHCPv6 client and the DHCPv6 server to the DHCPv6 server.</t>
        <t>In L2 networks, Lightweight DHCPv6 Relay Agents <xref target="RFC6221"/>
can be used. Then, topology information for the given IP address
can be obtained from the DHCPv6 server and used for configuration
or other purposes.</t>
        <t><xref target="RFC7341"/> enables the client to use DHCPv6 for topology discovery
even within an DHCPv4 context, as the DHCPv6 Relay Agent knows
the interface where the encapsulated DHCP request is received.
As shown in <xref target="fig_4o6RA_RA"/>, the introduction of 4o6 at the
edge of the IPv6 network, however, hides the L2 network from the DHCPv6 RA.
As such, moving 4o6 in a intermediate node rather than performing it 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="216" y="100">Relay</text>
                  <text x="328" y="100">Relay</text>
                  <text x="476" y="100">Server</text>
                  <text x="216" y="116">Agent</text>
                  <text x="328" y="116">Agent</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.     .-------------------------.
          | L2 Network  |   |        IPv6 Network       |
 +--------+-+         +-+---+---+    +--------+       +-+--------+
 |  DHCPv4  |         |  4o6    |    | DHCPv6 |       | DHCP 4o6 |
 |  Client  +---------+  Relay  +----+ Relay  +-------+  Server  |
 |          |         |  Agent  |    | Agent  |       |          |
 +--------+-+         +-+---+---+    +--------+       +-+--------+
          |             |   |                           |
           '-----------'     '-------------------------'

]]></artwork>
          </artset>
        </figure>
        <t>In order to preserve the topology information, it is <bcp14>RECOMMENDED</bcp14> 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>
        <t>The resulting architecture is shown in <xref target="fig_4o6LDRA"/> where
the Relay Agent is implementing 4o6RA and LDRA, and has an internal interface to
propagate topology information from 4o6RA to LDRA.</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="216" y="100">Relay</text>
                  <text x="288" y="100">RFC6221</text>
                  <text x="428" y="100">Server</text>
                  <text x="216" y="116">Agent</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.     .---------------------------.
          | L2 Network  |   |          IPv6 Network       |
 +--------+-+         +-+---+--+---------+      +----------+
 |  DHCPv4  |         |  4o6   |  LDRA   |      | DHCP 4o6 |
 |  Client  +---------+  Relay + RFC6221 +------+  Server  |
 |          |         |  Agent |         |      |          |
 +--------+-+         +-+---+--+---------+      +----------+
          |             |   |                             |
           '-----------'     '---------------------------'

]]></artwork>
          </artset>
        </figure>
        <t>In a simple case, where the same node hosts the 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 Relay Agent 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="216" y="100">Relay</text>
                  <text x="292" y="100">Server</text>
                  <text x="36" y="116">on</text>
                  <text x="64" y="116">CPE</text>
                  <text x="216" y="116">Agent</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
           .-----------.
          | L2 Network  |
 +--------+-+         +-+------+----------+
 |   DHCP   |         |  4o6   | DHCP 4o6 |
 |  Client  +---------+  Relay +  Server  |
 |  on CPE  |         |  Agent |          |
 +--------+-+         +-+------+----------+
          |             |
           '-----------'

]]></artwork>
          </artset>
        </figure>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>As clients are not aware of the presence of 4o6RA, the network deployment needs to ensure that
all DHCPv4 broadcast and unicast messages from clients are steered to a 4o6RA.
This can be achieved by placing the 4o6RA in a central position that can observe all traffic
from the clients or use address translation with the 4o6RA address for unicast
messages.</t>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>This document specifies the applicability of 4o6 DHCP in a scenario where legacy IPv4 clients are
connected to 4o6 DHCP Relay Agents that perform the encapsulation and decapsulation. This document
does not change anything else in the 4o6 DHCP specification and therefore the
security considerations of <xref target="RFC7341"/> still apply.</t>
      <t>The mechanisms defined here differ from <xref target="RFC7341"/> as they allow the DHCP client
to send and receive DHCPv4 messages, whereas in <xref target="RFC7341"/> the client
only sends DHCPv6 messages. This makes it possible that in improperly configured
networks where the client is located on the same L2 scope of a DHCPv4 server,
DHCPv4 messages could reach a DHCPv4 server without using the 4o6RA.
While this can cause erroneous state in both clients and servers
and potentially even lead to misconfigurations that impact reachability,
this is seen as a deployment error rather than a security concern.
Further, even though this mechanism may be used for attacks from within the network,
this is not a new concern introduced by this specification.</t>
      <t>More generally, legacy IPv4 clients are not aware of this mechanism, however, even
when DHCP 4o6 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="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="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="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>
        <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>
      </references>
    </references>
    <?line 346?>

<section anchor="usecase">
      <name>Example Use Case: Topology Discovery for IPv4-only Radio Unit in the RAN Switched Fronthaul</name>
      <t>The Radio Fronthaul Network (FH) is built up with Radio Units (RU) and
Baseband Units (BB), each being an IP host.
Each RU is unique as it is tied to a set of antennas, and each antenna
is serving a specific Cell and Sector.
Each RU is configured by the BB depending on the Cell and Sectors it serves.
However, that dependency is only specified by the cabling between RU and antennas.</t>
      <t>If BB is directly cabled to a set of RUs, the
BB can recognize the relationship between RUs and Cell/Sectors
based on the cabling between the RUs and antennas.</t>
      <t>The introduction of a switched network between RUs and BBs has
added a level of complexity that requires the BBs to have a deeper
knowledge of the topology in order to properly configure the RUs,
involving knowledge of all the cabling in the switched network.</t>
      <t>Examples for switched networks are shown in section 3 of <xref target="RFC7969"/>
and demonstrate the different levels of complexity.
An example of a FH is depicted in <xref target="l2_switched_fh"/>.</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>Among the various alternatives, DHCP topology knowledge can be used
for solving the RU configuration problem when the FH is IPv6. Such solution
would use the topology discovery mechanisms described in section 3.2
of <xref target="RFC7969"/>. The same mechanisms are applicable when RUs are connected via IPv4 and
implement 4o6 according to <xref target="RFC7341"/>.</t>
      <t>In order to extend the solution described above also to the case where
RUs are using IPv4 but cannot support <xref target="RFC7341"/>,
the mechanisms described in this document can be used by introducing 4o6RA in
the switches.</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
as well as reviews and comments provided by Eric Vyncke, Mohamed Boucadair,
David Lamparter, Michael Richardson, and Alan DeKok.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
X24cV1il13+14A39H/CWPFBQQgAA

-->

</rfc>
