<?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.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dhc-dhcpv4-over-dhcpv6-ra-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="DHCP 4o6 Relay Agent">DHCPv4-over-DHCPv6 with Relay Agent Support</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dhc-dhcpv4-over-dhcpv6-ra-04"/>
    <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="July" day="23"/>
    <area>Internet</area>
    <workgroup>Dynamic Host Configuration</workgroup>
    <keyword>dhcp</keyword>
    <abstract>
      <?line 59?>

<t>This document describes a mechanism for networks
with legacy IPv4-only clients to use services provided by
DHCPv4-over-DHCPv6 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 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 70?>

<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="draft-ietf-dhc-rfc8415bis"/> 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 Lightweight
DHCPv6 Relay Agent (LDRA) <xref target="RFC6221"/> or DHCPv6 Relay Agent (L3RA)
<xref target="draft-ietf-dhc-rfc8415bis"/> 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 specified 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 specified 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="RFC951"/> <xref target="RFC1542"/>, DHCPv4
 <xref target="RFC2131"/> <xref target="RFC2132"/>, and DHCPv6 <xref target="draft-ietf-dhc-rfc8415bis"/>.</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 specified 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="draft-ietf-dhc-rfc8415bis"/>. 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, given that the encapsulated DHCPv4-response is correct and can be
actually forwarded.</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="draft-ietf-dhc-rfc8415bis"/> 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 detail
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:</t>
        <ul spacing="normal">
          <li>
            <t>IPv4:
when using DHCP on IPv4 only the first Relay Agent <bcp14>SHOULD</bcp14>
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>
          </li>
          <li>
            <t>IPv6:
when using DHCPv6, all Relay Agents <bcp14>SHOULD</bcp14> 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>
          </li>
        </ul>
        <t>In Layer-2 networks, Lightweight DHCPv6 Relay Agents <xref target="RFC6221"/>
can be used.</t>
        <t>When provided, the topology information is available at the DHCPv6
server in form of sequence of the link-address and Interface-ID.</t>
        <t>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 Layer-2 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="576" viewBox="0 0 576 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 120,64 L 120,128" fill="none" stroke="black"/>
                <path d="M 200,64 L 200,128" fill="none" stroke="black"/>
                <path d="M 224,64 L 224,128" fill="none" stroke="black"/>
                <path d="M 240,48 L 240,64" fill="none" stroke="black"/>
                <path d="M 240,128 L 240,144" fill="none" stroke="black"/>
                <path d="M 272,48 L 272,64" fill="none" stroke="black"/>
                <path d="M 272,128 L 272,144" fill="none" stroke="black"/>
                <path d="M 304,64 L 304,128" fill="none" stroke="black"/>
                <path d="M 344,64 L 344,128" fill="none" stroke="black"/>
                <path d="M 416,64 L 416,128" fill="none" stroke="black"/>
                <path d="M 480,64 L 480,128" fill="none" stroke="black"/>
                <path d="M 496,48 L 496,64" fill="none" stroke="black"/>
                <path d="M 496,128 L 496,144" fill="none" stroke="black"/>
                <path d="M 568,64 L 568,128" fill="none" stroke="black"/>
                <path d="M 96,32 L 224,32" fill="none" stroke="black"/>
                <path d="M 288,32 L 480,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 96,64" fill="none" stroke="black"/>
                <path d="M 120,64 L 200,64" fill="none" stroke="black"/>
                <path d="M 224,64 L 304,64" fill="none" stroke="black"/>
                <path d="M 344,64 L 416,64" fill="none" stroke="black"/>
                <path d="M 480,64 L 568,64" fill="none" stroke="black"/>
                <path d="M 96,96 L 120,96" fill="none" stroke="black"/>
                <path d="M 200,96 L 224,96" fill="none" stroke="black"/>
                <path d="M 304,96 L 344,96" fill="none" stroke="black"/>
                <path d="M 416,96 L 480,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 96,128" fill="none" stroke="black"/>
                <path d="M 120,128 L 200,128" fill="none" stroke="black"/>
                <path d="M 224,128 L 304,128" fill="none" stroke="black"/>
                <path d="M 344,128 L 416,128" fill="none" stroke="black"/>
                <path d="M 480,128 L 568,128" fill="none" stroke="black"/>
                <path d="M 96,160 L 224,160" fill="none" stroke="black"/>
                <path d="M 288,160 L 480,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 224,32 C 232.83064,32 240,39.16936 240,48" fill="none" stroke="black"/>
                <path d="M 288,32 C 279.16936,32 272,39.16936 272,48" fill="none" stroke="black"/>
                <path d="M 480,32 C 488.83064,32 496,39.16936 496,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 224,160 C 232.83064,160 240,152.83064 240,144" fill="none" stroke="black"/>
                <path d="M 288,160 C 279.16936,160 272,152.83064 272,144" fill="none" stroke="black"/>
                <path d="M 480,160 C 488.83064,160 496,152.83064 496,144" fill="none" stroke="black"/>
                <g class="text">
                  <text x="124" y="52">L2</text>
                  <text x="168" y="52">Network</text>
                  <text x="356" y="52">IPv6</text>
                  <text x="408" y="52">Network</text>
                  <text x="52" y="84">DHCPv4</text>
                  <text x="156" y="84">L2</text>
                  <text x="256" y="84">4o6</text>
                  <text x="380" y="84">DHCPv6</text>
                  <text x="508" y="84">DHCP</text>
                  <text x="544" y="84">4o6</text>
                  <text x="52" y="100">Client</text>
                  <text x="156" y="100">Switch</text>
                  <text x="264" y="100">Relay</text>
                  <text x="376" y="100">Relay</text>
                  <text x="524" y="100">Server</text>
                  <text x="264" y="116">Agent</text>
                  <text x="376" y="116">Agent</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
           .-----------------.     .-------------------------.
          |    L2 Network     |   |        IPv6 Network       |
 +--------+-+  +---------+  +-+---+---+    +--------+       +-+--------+
 |  DHCPv4  |  |   L2    |  |  4o6    |    | DHCPv6 |       | DHCP 4o6 |
 |  Client  +--+ Switch  +--+  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="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,80 L 8,144" fill="none" stroke="black"/>
                <path d="M 80,48 L 80,80" fill="none" stroke="black"/>
                <path d="M 80,144 L 80,160" fill="none" stroke="black"/>
                <path d="M 96,80 L 96,144" fill="none" stroke="black"/>
                <path d="M 120,80 L 120,144" fill="none" stroke="black"/>
                <path d="M 200,80 L 200,144" fill="none" stroke="black"/>
                <path d="M 224,80 L 224,144" fill="none" stroke="black"/>
                <path d="M 240,48 L 240,80" fill="none" stroke="black"/>
                <path d="M 240,144 L 240,160" fill="none" stroke="black"/>
                <path d="M 272,48 L 272,80" fill="none" stroke="black"/>
                <path d="M 272,144 L 272,160" fill="none" stroke="black"/>
                <path d="M 296,80 L 296,144" fill="none" stroke="black"/>
                <path d="M 376,80 L 376,144" fill="none" stroke="black"/>
                <path d="M 432,80 L 432,144" fill="none" stroke="black"/>
                <path d="M 488,48 L 488,80" fill="none" stroke="black"/>
                <path d="M 488,144 L 488,160" fill="none" stroke="black"/>
                <path d="M 520,80 L 520,144" fill="none" stroke="black"/>
                <path d="M 96,32 L 224,32" fill="none" stroke="black"/>
                <path d="M 288,32 L 472,32" fill="none" stroke="black"/>
                <path d="M 8,80 L 96,80" fill="none" stroke="black"/>
                <path d="M 120,80 L 200,80" fill="none" stroke="black"/>
                <path d="M 224,80 L 376,80" fill="none" stroke="black"/>
                <path d="M 432,80 L 520,80" fill="none" stroke="black"/>
                <path d="M 96,112 L 120,112" fill="none" stroke="black"/>
                <path d="M 200,112 L 224,112" fill="none" stroke="black"/>
                <path d="M 376,112 L 432,112" fill="none" stroke="black"/>
                <path d="M 8,144 L 96,144" fill="none" stroke="black"/>
                <path d="M 120,144 L 200,144" fill="none" stroke="black"/>
                <path d="M 224,144 L 376,144" fill="none" stroke="black"/>
                <path d="M 432,144 L 520,144" fill="none" stroke="black"/>
                <path d="M 96,176 L 224,176" fill="none" stroke="black"/>
                <path d="M 288,176 L 472,176" 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 224,32 C 232.83064,32 240,39.16936 240,48" fill="none" stroke="black"/>
                <path d="M 288,32 C 279.16936,32 272,39.16936 272,48" fill="none" stroke="black"/>
                <path d="M 472,32 C 480.83064,32 488,39.16936 488,48" fill="none" stroke="black"/>
                <path d="M 96,176 C 87.16936,176 80,168.83064 80,160" fill="none" stroke="black"/>
                <path d="M 224,176 C 232.83064,176 240,168.83064 240,160" fill="none" stroke="black"/>
                <path d="M 288,176 C 279.16936,176 272,168.83064 272,160" fill="none" stroke="black"/>
                <path d="M 472,176 C 480.83064,176 488,168.83064 488,160" fill="none" stroke="black"/>
                <g class="text">
                  <text x="108" y="52">L2</text>
                  <text x="152" y="52">Network</text>
                  <text x="196" y="52">or</text>
                  <text x="348" y="52">IPv6</text>
                  <text x="400" y="52">Network</text>
                  <text x="136" y="68">IPv6-only</text>
                  <text x="196" y="68">link</text>
                  <text x="52" y="100">DHCPv4</text>
                  <text x="156" y="100">L2</text>
                  <text x="256" y="100">4o6</text>
                  <text x="332" y="100">LDRA</text>
                  <text x="460" y="100">DHCP</text>
                  <text x="496" y="100">4o6</text>
                  <text x="52" y="116">Client</text>
                  <text x="156" y="116">Switch</text>
                  <text x="264" y="116">Relay</text>
                  <text x="336" y="116">RFC6221</text>
                  <text x="476" y="116">Server</text>
                  <text x="264" y="132">Agent</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
           .-----------------.     .------------------------.
          |  L2 Network or    |   |       IPv6 Network       |
          |  IPv6-only link   |   |                          |
 +--------+-+  +---------+  +-+---+--+---------+      +------+---+
 |  DHCPv4  |  |   L2    |  |  4o6   |  LDRA   |      | DHCP 4o6 |
 |  Client  +--+ Switch  +--+  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 and to clients are steered via a 4o6RA.
This can be achieved by placing the 4o6RA in a central position that can observe all traffic
from the clients or use Network Address Translation (NAT) 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 Layer-2 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="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="draft-ietf-dhc-rfc8415bis" target="https://datatracker.ietf.org/doc/draft-ietf-dhc-rfc8415bis/">
          <front>
            <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
            <author>
              <organization/>
            </author>
            <date year="2025" month="June"/>
          </front>
        </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="RFC951">
          <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>
        <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>
      </references>
    </references>
    <?line 363?>

<section anchor="usecase">
      <name>Example Use Case: Topology Discovery for IPv4-only Radio Unit in 3GPP RAN with Switched Fronthaul</name>
      <t>In 3GPP mobile network architecture, the User Equipments (UE) are connected
via Radio Access Network (RAN). RAN is built up with Baseband Unis (BB)
and Radio Units (RU). Radio Fronthaul Network (FH) connects RU and BB, each of
RU and BB is 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"/>, where
IPv6 is used.</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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

-->

</rfc>
