| rfc9928.original.md | rfc9928.md | |||
|---|---|---|---|---|
| --- | --- | |||
| title: "DHCPv4-over-DHCPv6 with Relay Agent Support" | title: "DHCPv4 over DHCPv6 with Relay Agent Support" | |||
| abbrev: "DHCP 4o6 Relay Agent" | abbrev: "DHCP 4o6 Relay Agent" | |||
| number: 0000 | number: 9928 | |||
| category: std | category: std | |||
| docname: draft-ietf-dhc-dhcpv4-over-dhcpv6-ra | docname: draft-ietf-dhc-dhcpv4-over-dhcpv6-ra | |||
| submissiontype: IETF | submissiontype: IETF | |||
| number: 0000 | date: February 2026 | |||
| date: 2025-09 | ||||
| consensus: true | consensus: true | |||
| ipr: trust200902 | ipr: trust200902 | |||
| pi: [toc, symrefs, sortrefs] | ||||
| v: 3 | v: 3 | |||
| lang: en | ||||
| area: "INT" | area: "INT" | |||
| workgroup: "dhc" | workgroup: "dhc" | |||
| keyword: | keyword: | |||
| - dhcp | - dhcp | |||
| author: | author: | |||
| - | - | |||
| ins: C. Porfiri | ins: C. Porfiri | |||
| name: Claudio Porfiri | name: Claudio Porfiri | |||
| organization: Ericsson | organization: Ericsson | |||
| skipping to change at line 43 ¶ | skipping to change at line 44 ¶ | |||
| email: jari.arkko@ericsson.com | email: jari.arkko@ericsson.com | |||
| - | - | |||
| ins: M. Kühlewind | ins: M. Kühlewind | |||
| name: Mirja Kühlewind | name: Mirja Kühlewind | |||
| organization: Ericsson | organization: Ericsson | |||
| email: mirja.kuehlewind@ericsson.com | email: mirja.kuehlewind@ericsson.com | |||
| normative: | normative: | |||
| RFC6221: | RFC6221: | |||
| RFC7341: | RFC7341: | |||
| I-D.ietf-dhc-rfc8415bis: | RFC9915: | |||
| informative: | informative: | |||
| RFC0951: | RFC0951: | |||
| RFC1542: | RFC1542: | |||
| RFC2131: | RFC2131: | |||
| RFC2132: | RFC2132: | |||
| RFC7969: | RFC7969: | |||
| --- abstract | --- abstract | |||
| This document describes a mechanism for networks | This document describes a mechanism for networks | |||
| with legacy IPv4-only clients to use services provided by | with legacy IPv4-only clients to use services provided by | |||
| DHCPv4-over-DHCPv6 in a Relay Agent. | DHCPv4 over DHCPv6 in a Relay Agent. | |||
| RFC7341 specifies use of DHCPv4-over-DHCPv6 in the client only. | RFC 7341 specifies the use of DHCPv4 over DHCPv6 in the client only. | |||
| This document specifies a RFC7341-based approach that | This document specifies an approach based on RFC 7341 that | |||
| allows a Relay Agent to implement the DHCP 4o6 encapsulation and | allows a Relay Agent to implement the DHCP 4o6 encapsulation and | |||
| decapsulation of DHCPv4 messages in DHCPv6 messages on behalf of a | decapsulation of DHCPv4 messages in DHCPv6 messages on behalf of a | |||
| DHCPv4 client. | DHCPv4 client. | |||
| --- middle | --- middle | |||
| # Introduction {#introduction} | # Introduction {#introduction} | |||
| {{RFC7341}} describes a transport mechanism for carrying DHCPv4 {{RFC2131}} | {{RFC7341}} describes a transport mechanism for carrying DHCPv4 {{RFC2131}} | |||
| messages using DHCPv6 {{I-D.ietf-dhc-rfc8415bis}} for dynamic provisioning | messages using DHCPv6 {{RFC9915}} for dynamic provisioning | |||
| of IPv4 addresses and other DHCPv4 specific configuration parameters | of IPv4 addresses and other DHCPv4-specific configuration parameters | |||
| across IPv6-only networks. The deployment of {{RFC7341}} requires support in | across IPv6-only networks. The deployment of {{RFC7341}} requires support in | |||
| DHCP clients and at the DHCPv6 server. | DHCP clients and at the DHCPv6 server. | |||
| However, if a client is embedded in a host that only supports IPv4 | However, if a client is embedded in a host that only supports IPv4 | |||
| and cannot easily be replaced or updated (which could be due to any | and cannot easily be replaced or updated (which could be due to any | |||
| number of technical or business reasons), this approach does not | number of technical or business reasons), this approach does not | |||
| work. | work. | |||
| <!-- [rfced] Please review the text below. We were unable to find "L3RA" used in | ||||
| [draft-ietf-dhc-rfc8415bis] (now published as RFC 9915). | ||||
| Original: | ||||
| Similarly, the specifications for DHCPv6 Relay Agents such as | ||||
| Lightweight DHCPv6 Relay Agent (LDRA) [RFC6221] or DHCPv6 Relay Agent | ||||
| (L3RA) [draft-ietf-dhc-rfc8415bis] do not foresee the possibility to | ||||
| handle legacy DHCPv4, other than implementing DHCP 4o6 in the client. | ||||
| --> | ||||
| Similarly, the specifications for DHCPv6 Relay Agents such as Lightweight | Similarly, the specifications for DHCPv6 Relay Agents such as Lightweight | |||
| DHCPv6 Relay Agent (LDRA) {{RFC6221}} or DHCPv6 Relay Agent (L3RA) | DHCPv6 Relay Agent (LDRA) {{RFC6221}} or DHCPv6 Relay Agent (L3RA) | |||
| {{I-D.ietf-dhc-rfc8415bis}} do not foresee the possibility to handle legacy DHCPv4, | {{RFC9915}} do not foresee the possibility to handle legacy DHCPv4, | |||
| other than implementing DHCP 4o6 in the client. | other than implementing DHCP 4o6 in the client. | |||
| This document specifies an {{RFC7341}} based solution that can be | This document specifies a solution based on {{RFC7341}} that can be | |||
| implemented in intermediate nodes such as switches or routers, | implemented in intermediate nodes such as switches or routers, | |||
| without putting any requirements on clients. No new protocols or extensions are neede d; | without putting any requirements on clients. No new protocols or extensions are neede d; | |||
| instead, this document specifies a new use case for {{RFC7341}} that allows | instead, this document specifies a new use case for {{RFC7341}} that allows | |||
| a Relay Agent to perform the DHCP 4o6 encapsulation and decapsulation instead of | a Relay Agent to perform the DHCP 4o6 encapsulation and decapsulation instead of | |||
| the client. | the client. | |||
| ## Applicability Scope {#applicability} | ## Applicability Scope {#applicability} | |||
| The mechanisms described in this document apply to the configuration phase | The mechanisms described in this document apply to the configuration phase | |||
| of hosts that need to receive an IPv4 address when a DHCP server for IPv4 {{RFC2131}} is not | of hosts that need to receive an IPv4 address when a DHCP server for IPv4 {{RFC2131}} is not | |||
| reachable directly from the host. Furthermore, the host is unable to implement | reachable directly from the host. Furthermore, the host is unable to implement | |||
| a DHCP client conformant to {{RFC7341}} as it is connected to an IPv4-only | a DHCP client conformant to {{RFC7341}}, as it is connected to an IPv4-only | |||
| network. But there is a DHCPv6 server that can provide IPv4 addresses by means of | network. However, there is a DHCPv6 server that can provide IPv4 addresses by means o | |||
| f | ||||
| the mechanisms specified in {{RFC7341}}. | the mechanisms specified in {{RFC7341}}. | |||
| <!-- [rfced] Section 2: | ||||
| a) May we adjust the items in this list to appear in alphabetical order? | ||||
| b) May we make these list items consistent as follows? | ||||
| Original: | ||||
| * DHCP: If not otherwise specified, DHCP refers to DHCPv4 and/or | ||||
| DHCPv6. | ||||
| * DHCPv4: DHCP as defined in [RFC2131]. | ||||
| * DHCPv4 over DHCPv6 (or 4o6): The architecture, the procedures, and | ||||
| the protocols specified in the DHCPv4-over-DHCPv6 document | ||||
| [RFC7341]. | ||||
| * DHCP Relay Agent: This is a concept in all of the following | ||||
| protocols, although the details differ between them: BOOTP | ||||
| [RFC951] [RFC1542], DHCPv4 [RFC2131] [RFC2132], and DHCPv6 | ||||
| [draft-ietf-dhc-rfc8415bis]. | ||||
| * Lightweight DHCPv6 Relay Agent (or LDRA): This is an extension of | ||||
| the original DHCPv6 Relay Agent specification, to allow layer- | ||||
| 2-only devices to perform a Relay Agent function [RFC6221]. | ||||
| * DHCPv4 over DHCPv6 Relay Agent (or 4o6RA): Refers to a Relay Agent | ||||
| that implements the 4o6 transport as specified in this document. | ||||
| Perhaps: | ||||
| DHCP: | ||||
| Refers to DHCPv4 and/or DHCPv6 if not otherwise specified. | ||||
| DHCPv4: | ||||
| Refers to DHCP as defined in [RFC2131]. | ||||
| DHCPv4 over DHCPv6 (DHCP 4o6): | ||||
| Refers to the architecture, the procedures, and the protocols specified in | ||||
| the DHCPv4-over-DHCPv6 document [RFC7341]. | ||||
| (etc.) | ||||
| --> | ||||
| # Conventions and Definitions | # Conventions and Definitions | |||
| The following terms and acronyms are used in this document: | The following terms and abbreviations are used in this document: | |||
| * DHCP: | {:vspace} | |||
| If not otherwise specified, DHCP refers to DHCPv4 and/or DHCPv6. | DHCP: | |||
| : If not otherwise specified, DHCP refers to DHCPv4 and/or DHCPv6. | ||||
| * DHCPv4: | DHCPv4: | |||
| DHCP as defined in {{RFC2131}}. | : DHCP as defined in {{RFC2131}}. | |||
| * DHCPv4 over DHCPv6 (or 4o6): | DHCPv4 over DHCPv6 (DHCP 4o6): | |||
| The architecture, the procedures, and the protocols specified in the | : The architecture, the procedures, and the protocols specified in the | |||
| DHCPv4-over-DHCPv6 document {{RFC7341}}. | DHCPv4-over-DHCPv6 document {{RFC7341}}. | |||
| * DHCP Relay Agent: | DHCP Relay Agent: | |||
| This is a concept in all of the following protocols, although the details differ | : This is a concept in all of the following protocols, although the details differ | |||
| between them: BOOTP {{RFC951}} {{RFC1542}}, DHCPv4 | between them: the Bootstrap Protocol (BOOTP) {{RFC0951}} {{RFC1542}}, DHCPv4 | |||
| {{RFC2131}} {{RFC2132}}, and DHCPv6 {{I-D.ietf-dhc-rfc8415bis}}. | {{RFC2131}} {{RFC2132}}, and DHCPv6 {{RFC9915}}. | |||
| * Lightweight DHCPv6 Relay Agent (or LDRA): | Lightweight DHCPv6 Relay Agent (LDRA): | |||
| This is an extension of the original DHCPv6 Relay Agent specification, to allow | : This is an extension of the original DHCPv6 Relay Agent specification, to allow | |||
| layer-2-only devices to perform a Relay Agent function {{RFC6221}}. | Layer 2 (L2) only devices to perform a Relay Agent function {{RFC6221}}. | |||
| * DHCPv4 over DHCPv6 Relay Agent (or 4o6RA): | DHCPv4-over-DHCPv6 Relay Agent (4o6RA): | |||
| Refers to a Relay Agent that implements the 4o6 | : Refers to a Relay Agent that implements the 4o6 | |||
| transport as specified in this document. | transport as specified in this document. | |||
| {::boilerplate bcp14-tagged} | {::boilerplate bcp14-tagged} | |||
| # DHCPv4 over DHCPv6 Relay Agent (4o6RA) | # DHCPv4-over-DHCPv6 Relay Agent (4o6RA) | |||
| This document assumes a network, where IPv4-only hosts are connected | This document assumes a network where IPv4-only hosts are connected | |||
| to a network that supports IPv6 and limited IPv4 services. | to a network that supports IPv6 and limited IPv4 services. | |||
| To address such a network setup, this document extends | To address such a network setup, this document extends | |||
| DHCPv6 Relay Agents with DHCPv4-over-DHCPv6, as shown in {{fig_4o6RA}}. | DHCPv6 Relay Agents with DHCPv4 over DHCPv6, as shown in {{fig_4o6RA}}. | |||
| ~~~aasvg | ~~~aasvg | |||
| .-----------. .-----------. | .-----------. .-----------. | |||
| | | | | | | | | | | |||
| +--------+-+ L2 +-+-----------+-+ IPv6 +-+--------+ | +--------+-+ L2 +-+-----------+-+ IPv6 +-+--------+ | |||
| | DHCPv4 | Network | DHCPv6 | Network | DHCP 4o6 | | | DHCPv4 | Network | DHCPv6 | Network | DHCP 4o6 | | |||
| | Client +---------+ Relay Agent +---------+ Server | | | Client +---------+ Relay Agent +---------+ Server | | |||
| | | | with 4o6RA | | | | | | | with 4o6RA | | | | |||
| +--------+-+ +-+-----------+-+ +-+--------+ | +--------+-+ +-+-----------+-+ +-+--------+ | |||
| | | | | | | | | | | |||
| '-----------' '-----------' | '-----------' '-----------' | |||
| ~~~ | ~~~ | |||
| {: #fig_4o6RA title="Architecture Example with Legacy DHCP Client" artwork-align="cen ter"} | {: #fig_4o6RA title="Architecture Example with Legacy DHCP Client" artwork-align="cen ter"} | |||
| This document specifies the encapsulation | This document specifies the encapsulation | |||
| and decapsulation specified in {{RFC7341}} to be performed in the Relay Agent | and decapsulation specified in {{RFC7341}} to be performed in the Relay Agent | |||
| without requiring any changes on the DHCPv4 client. | without requiring any changes on the DHCPv4 client. | |||
| In this case it is up to the Relay Agent to provide the full DHCP | 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 | 4o6 support, and the legacy DHCPv4 client is not aware that it is being served | |||
| via a DHCP 4o6 service. | via a DHCP 4o6 service. | |||
| As the 4o6RA acts as a DHCP 4o6 client, all prerequisites and configuration | As the 4o6RA acts as a DHCP 4o6 client, all prerequisites and configurations | |||
| that apply to the DHCP client in {{Section 5 of RFC7341}} are also applied to the 4o6 RA. | that apply to the DHCP client in {{Section 5 of RFC7341}} are also applied to the 4o6 RA. | |||
| As the 4o6RA takes the role of the client in respect to {{RFC7341}}, | As the 4o6RA takes the role of the client in respect to {{RFC7341}}, | |||
| it is responsible for determining a suitable interface where it acts as a | it is responsible for determining a suitable interface where it acts as a | |||
| DHCPv6 client, and it is responsible for locating a suitable DHCPv6 | DHCPv6 client, and it is responsible for locating a suitable DHCPv6 | |||
| server or relay agent and obtain the necessary IPv6 configuration.. | server or Relay Agent and obtaining the necessary IPv6 configuration. | |||
| As specified in {{RFC7341}}, the 4o6RA, acting as 4o6 client, therefore has to reques t | As specified in {{RFC7341}}, the 4o6RA, acting as 4o6 client, therefore has to reques t | |||
| the DHCP 4o6 Server Address option from the server by sending the | the DHCP 4o6 Server Address option from the server by sending the | |||
| Option Request option as described in {{I-D.ietf-dhc-rfc8415bis}} | Option Request option as described in {{RFC9915}} | |||
| before it can use the 4o6 transport. | before it can use the 4o6 transport. | |||
| To maintain interoperability with existing DHCPv6 relays and servers, | To maintain interoperability with existing DHCPv6 relays and servers, | |||
| the message format is unchanged from {{I-D.ietf-dhc-rfc8415bis}}. The 4o6RA implement | the message format is unchanged from {{RFC9915}}. The 4o6RA implements | |||
| s | the same message types as a DHCPv6 Relay Agent (see {{Section 6 of RFC7341}}). | |||
| the same message types as a DHCPv6 Relay Agent {{Section 6 of RFC7341}}. | ||||
| However, in this specification, the 4o6RA, instead of the client, creates the DHCPV4- QUERY Message | 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. | and encapsulates the DHCP request message received from the legacy DHCPv4 client. | |||
| When DHCPV4-RESPONSE Message is received by the 4o6 Relay Agent, | When the DHCPV4-RESPONSE message is received by the 4o6 Relay Agent, | |||
| it looks for the DHCPv4 Message option within this message. | 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, | If this option is not found or the DHCPv4-RESPONSE message is not well-formed, | |||
| it MUST be discarded. | it MUST be discarded. | |||
| If the DHCPv4 Message option is present and correct, the 4o6RA MUST extract the DHCPv | If the DHCPv4 message option is present and correct, the 4o6RA MUST extract the DHCPv | |||
| 4 | 4 | |||
| message and forward the encapsulated DHCPv4-response to the requesting DHCPv4 | message and forward the encapsulated DHCPv4-RESPONSE to the requesting DHCPv4 | |||
| client, given that the encapsulated DHCPv4-response is correct and can be | client, given that the encapsulated DHCPv4-RESPONSE is correct and can be | |||
| actually forwarded. | actually forwarded. | |||
| Layer-2 Relay Agents receiving DHCPV4-QUERY or DHCPV4-RESPONSE messages | Layer 2 (L2) Relay Agents receiving DHCPV4-QUERY or DHCPV4-RESPONSE messages | |||
| MUST handle them as specified in {{Section 6 of RFC6221}}. | MUST handle them as specified in {{Section 6 of RFC6221}}. | |||
| In any given environment, DHCPv6 servers to which DHCPV4-QUERY | In any given environment, DHCPv6 servers to which DHCPV4-QUERY | |||
| requests are routed are expected to be compliant with 4o6 according | requests are routed are expected to be compliant with 4o6 according | |||
| to {{RFC7341}}. No additional requirements on DHCPv6 servers are set | to {{RFC7341}}. No additional requirements on DHCPv6 servers are set | |||
| by this specification. | by this specification. | |||
| ## Intermediate relays | ## Intermediate Relays | |||
| Intermediate relays shall behave according to section 10 of {{RFC7341}}. | Intermediate relays shall behave according to {{Section 10 of RFC7341}}. | |||
| ## 4o6RA and Topology Discovery {#topology_considerations} | ## 4o6RA and Topology Discovery {#topology_considerations} | |||
| In some networks, the configuration of a host may depend on the topology. | In some networks, the configuration of a host may depend on the topology. | |||
| However, when a new host attaches to a network, it may be unaware | However, when a new host attaches to a network, it may be unaware | |||
| of the topology and, consequently, how it has to be configured. | of the topology and, consequently, how it has to be configured. | |||
| DHCPv4 {{RFC2131}} and DHCPv6 {{I-D.ietf-dhc-rfc8415bis}} specifications | DHCPv4 {{RFC2131}} and DHCPv6 {{RFC9915}} specifications | |||
| describe how addresses can be allocated to clients based on network | describe how addresses can typically be allocated to clients based on network | |||
| topology information provided by a DHCP relay, typically. | topology information provided by a DHCP relay. | |||
| Address/prefix allocation decisions are integral to the allocation of | Address/prefix allocation decisions are integral to the allocation of | |||
| addresses and prefixes in DHCP, as described in detail | addresses and prefixes in DHCP, as described in detail | |||
| in {{RFC7969}}. This specification aims to guarantee that the 4o6RA does not | in {{RFC7969}}. This specification aims to guarantee that the 4o6RA does not | |||
| break any legacy capability when used for topology discovery. | break any legacy capability when used for topology discovery. | |||
| Topology discovery as described in {{RFC7969}} differs between | Topology discovery as described in {{RFC7969}} differs between | |||
| IPv4 and IPv6: | IPv4 and IPv6 as follows: | |||
| * IPv4: | * IPv4: When using DHCP on IPv4, only the first Relay Agent SHOULD | |||
| when using DHCP on IPv4 only the first Relay Agent SHOULD | set the giaddr field ({{Section 3.1 of RFC7969}}). Thus, in a | |||
| set the giaddr field (section 3.1 of {{RFC7969}}). Thus, in a | network that has more than one Relay Agent, only part of the topology | |||
| network that has more than one Relay Agent only part of the topology | ||||
| is transported via DHCPv4. | is transported via DHCPv4. | |||
| * IPv6: | * IPv6: When using DHCPv6, all Relay Agents SHOULD send | |||
| when using DHCPv6, all Relay Agents SHOULD send | link-address and Interface-ID options that provide | |||
| link-address and Interface-ID options, that provide | ||||
| information about the complete path | information about the complete path | |||
| between the DHCPv6 client and the DHCPv6 server to the DHCPv6 server. | between the DHCPv6 client and the DHCPv6 server to the DHCPv6 server. | |||
| In Layer-2 networks, Lightweight DHCPv6 Relay Agents {{RFC6221}} | In Layer 2 networks, Lightweight DHCPv6 Relay Agents (LDRAs) {{RFC6221}} | |||
| can be used. | can be used. | |||
| When provided, the topology information is available at the DHCPv6 | When provided, the topology information is available at the DHCPv6 | |||
| server in the form of a sequence of the link-address field and Interface-ID option. | server in the form of a sequence of the link-address field and Interface-ID option. | |||
| Then, topology information for the given IP address | Then, topology information for the given IP address | |||
| can be obtained from the DHCPv6 server and used for configuration | can be obtained from the DHCPv6 server and used for configuration | |||
| or other purposes. | or other purposes. | |||
| {{RFC7341}} enables the client to use DHCPv6 for topology discovery | {{RFC7341}} enables the client to use DHCPv6 for topology discovery | |||
| even within a DHCPv4 context, as the DHCPv6 Relay Agent knows | even within a DHCPv4 context, as the DHCPv6 Relay Agent knows | |||
| the interface where the encapsulated DHCP request is received. | the interface where the encapsulated DHCP request is received. | |||
| As shown in {{fig_4o6RA_RA}}, however, the introduction of 4o6 at | However, as shown in {{fig_4o6RA_RA}}, the introduction of 4o6 at | |||
| the edge of the IPv6 network hides the Layer-2 network from the DHCPv6 RA. | the edge of the IPv6 network hides the Layer 2 network from the DHCPv6 RA. | |||
| As such, moving 4o6 to a intermediate node rather than performing it at the client br | As such, moving 4o6 to an intermediate node rather than performing it at the client b | |||
| eaks | reaks | |||
| the topology propagation, as 4o6RA-only solutions does not provide any interface | the topology propagation, as 4o6RA-only solutions do not provide any interface | |||
| information in the encapsulated message. | information in the encapsulated message. | |||
| ~~~aasvg | ~~~aasvg | |||
| .-----------------. .-------------------------. | .-----------------. .-------------------------. | |||
| | L2 Network | | IPv6 Network | | | L2 Network | | IPv6 Network | | |||
| +--------+-+ +---------+ +-+---+---+ +--------+ +-+--------+ | +--------+-+ +---------+ +-+---+---+ +--------+ +-+--------+ | |||
| | DHCPv4 | | L2 | | 4o6 | | DHCPv6 | | DHCP 4o6 | | | DHCPv4 | | L2 | | 4o6 | | DHCPv6 | | DHCP 4o6 | | |||
| | Client +--+ Switch +--+ Relay +----+ Relay +-------+ Server | | | Client +--+ Switch +--+ Relay +----+ Relay +-------+ Server | | |||
| | | | | | Agent | | Agent | | | | | | | | | Agent | | Agent | | | | |||
| +--------+-+ +---------+ +-+---+---+ +--------+ +-+--------+ | +--------+-+ +---------+ +-+---+---+ +--------+ +-+--------+ | |||
| | | | | | | | | | | |||
| '-----------------' '-------------------------' | '-----------------' '-------------------------' | |||
| ~~~ | ~~~ | |||
| {: #fig_4o6RA_RA title="Broken topology information" artwork-align="center"} | {: #fig_4o6RA_RA title="Broken Topology Information" artwork-align="center"} | |||
| In order to provide full topology information, it is RECOMMENDED that | In order to provide full topology information, it is RECOMMENDED that | |||
| any implementation of 4o6RA be combined | any implementation of 4o6RA be combined | |||
| with an LDRA implementation {{RFC6221}} in a back-to-back structure, and that the | with an LDRA implementation {{RFC6221}} in a back-to-back structure and that the | |||
| LDRA implementation includes a mechanism to obtain interface information that | LDRA implementation includes a mechanism to obtain interface information that | |||
| can be used to provide the Interface-ID option to outgoing | can be used to provide the Interface-ID option to outgoing | |||
| DHCPV4-QUERY messages, as specified in Section 5.3.2 of {{RFC6221}}. | DHCPV4-QUERY messages, as specified in {{Section 5.3.2 of RFC6221}}. | |||
| The internal mechanisms to exchange interface information, | The internal mechanisms to exchange interface information, | |||
| their format and whether the interface information contains an indication that a 4o6R | their format, and whether the interface information contains an indication that a 4o6 | |||
| A | RA | |||
| is involved are out of the scope for this document. | is involved, are out of the scope for this document. | |||
| The resulting architecture is shown in {{fig_4o6LDRA}} where | The resulting architecture is shown in {{fig_4o6LDRA}} where | |||
| the Relay Agent is implementing 4o6RA and LDRA, and has an internal interface to | the Relay Agent is implementing 4o6RA and LDRA and has an internal interface to | |||
| propagate topology information from 4o6RA to LDRA. | propagate topology information from 4o6RA to LDRA. | |||
| ~~~aasvg | ~~~aasvg | |||
| .-----------------. .------------------------. | .-----------------. .------------------------. | |||
| | L2 Network or | | IPv6 Network | | | L2 Network or | | IPv6 Network | | |||
| | IPv6-only link | | | | | IPv6-Only Link | | | | |||
| +--------+-+ +---------+ +-+---+--+---------+ +------+---+ | +--------+-+ +---------+ +-+---+--+---------+ +------+---+ | |||
| | DHCPv4 | | L2 | | 4o6 | LDRA | | DHCP 4o6 | | | DHCPv4 | | L2 | | 4o6 | LDRA | | DHCP 4o6 | | |||
| | Client +--+ Switch +--+ Relay + RFC6221 +------+ Server | | | Client +--+ Switch +--+ Relay + RFC 6221+------+ Server | | |||
| | | | | | Agent | | | | | | | | | | Agent | | | | | |||
| +--------+-+ +---------+ +-+---+--+---------+ +------+---+ | +--------+-+ +---------+ +-+---+--+---------+ +------+---+ | |||
| | | | | | | | | | | |||
| '-----------------' '------------------------' | '-----------------' '------------------------' | |||
| ~~~ | ~~~ | |||
| {: #fig_4o6LDRA title="Topology information preserved with LDRA" artwork-align="cente r"} | {: #fig_4o6LDRA title="Topology Information Preserved with LDRA" artwork-align="cente r"} | |||
| In a simple case, where the same node hosts the 4o6RA and the DHCP4o6 server, | In a simple case, where the same node hosts the 4o6RA and the DHCP 4o6 server, | |||
| it might be enough to only use 4o6RA, as shown in {{fig_4o6RAserver}}. | it might be enough to only use 4o6RA, as shown in {{fig_4o6RAserver}}. | |||
| <!-- [rfced] Per Section 3.6 of RFC 7322 ("RFC Style Guide"), abbreviations | ||||
| should be expanded upon first use. How and where should "CPE" be expanded as | ||||
| it appears in Figure 4? | ||||
| Original: | ||||
| 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 Figure 4. | ||||
| Perhaps: | ||||
| In a simple case, where the same node hosts the 4o6RA and the DHCP 4o6 | ||||
| server, it might be enough to only use 4o6RA, as shown in Figure 4, where | ||||
| CPE stands for "Customer Premises Equipment". | ||||
| --> | ||||
| ~~~aasvg | ~~~aasvg | |||
| .-----------. | .-----------. | |||
| | L2 Network | | | L2 Network | | |||
| +--------+-+ +-+------+----------+ | +--------+-+ +-+------+----------+ | |||
| | DHCP | | 4o6 | DHCP 4o6 | | | DHCP | | 4o6 | DHCP 4o6 | | |||
| | Client +---------+ Relay + Server | | | Client +---------+ Relay + Server | | |||
| | on CPE | | Agent | | | | on CPE | | Agent | | | |||
| +--------+-+ +-+------+----------+ | +--------+-+ +-+------+----------+ | |||
| | | | | | | |||
| '-----------' | '-----------' | |||
| ~~~ | ~~~ | |||
| {: #fig_4o6RAserver title="Topology information preserved by 4o6 Relay Agent in DHCP server" artwork-align="center"} | {: #fig_4o6RAserver title="Topology Information Preserved by 4o6 Relay Agent in DHCP Server" artwork-align="center"} | |||
| # Deployment Considerations | # Deployment Considerations | |||
| As clients are unaware of the presence of 4o6RA, the network | As clients are unaware of the presence of 4o6RA, the network | |||
| deployment needs to ensure that all DHCPv4 broadcast and unicast messages to and | deployment needs to ensure that all DHCPv4 broadcast and unicast messages to and | |||
| from clients are steered via a 4o6RA. | from clients are steered via a 4o6RA. | |||
| This can be achieved by placing the 4o6RA in a central position | This can be achieved by placing the 4o6RA in a central position | |||
| that can intercept all traffic from the clients or by using Network Address | that can intercept all traffic from the clients or by using Network Address | |||
| Translation (NAT) with the 4o6RA address for unicast messages. | Translation (NAT) with the 4o6RA address for unicast messages. | |||
| <!-- [rfced] Security Considerations: | ||||
| a) Would the following adjustment clarify what "the 4o6 DHCP specification" | ||||
| refers to? | ||||
| b) Please note that we have changed "4o6 DHCP" to "DHCP 4o6" in this | ||||
| section for consistency with the rest of the document. | ||||
| Original: | ||||
| This document does not change anything else in the 4o6 DHCP specification | ||||
| and therefore the security considerations of [RFC7341] still apply. | ||||
| Perhaps: | ||||
| This document does not change anything else in the DHCP 4o6 specification [RFC7341 | ||||
| ]; | ||||
| therefore, the security considerations of that document still apply. | ||||
| --> | ||||
| # Security Considerations {#seccons} | # Security Considerations {#seccons} | |||
| This document specifies the applicability of 4o6 DHCP in a scenario where legacy IPv4 clients are | This document specifies the applicability of DHCP 4o6 in a scenario where legacy IPv4 clients are | |||
| connected to 4o6 DHCP Relay Agents that perform the encapsulation and decapsulation. This document | 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 | does not change anything else in the DHCP 4o6 specification; therefore, the | |||
| security considerations of {{RFC7341}} still apply. | security considerations of {{RFC7341}} still apply. | |||
| Specifically, since the legacy IPv4 client is not aware of the encapsulation and deca psulation, | Specifically, since the legacy IPv4 client is not aware of the encapsulation and deca psulation, | |||
| it is 4o6RA has to provide the protections that are specficed in the security | 4o6RA has to provide the protections that are specified in the security | |||
| considerations in {{Section 12 of RFC7341}}. | considerations in {{Section 12 of RFC7341}}. | |||
| The mechanisms defined here differ from {{RFC7341}} as they allow the DHCP client | The mechanisms defined here differ from {{RFC7341}} as they allow the DHCP client | |||
| to send and receive DHCPv4 messages, whereas in {{RFC7341}} the client | to send and receive DHCPv4 messages, whereas in {{RFC7341}}, the client | |||
| only sends DHCPv6 messages. This makes it possible that in improperly configured | 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, | 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. | DHCPv4 messages could reach a DHCPv4 server without using the 4o6RA. | |||
| While this can cause erroneous state in both clients and servers | While this can cause erroneous state in both clients and servers | |||
| and potentially even lead to misconfigurations that impact reachability, | and potentially even lead to misconfigurations that impact reachability, | |||
| this is seen as a deployment error rather than a security concern. | 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, | Further, even though this mechanism may be used for attacks from within the network, | |||
| this is not a new concern introduced by this specification. | this is not a new concern introduced by this specification. | |||
| More generally, legacy IPv4 clients are not aware of this mechanism, however, even | 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 | when DHCP 4o6 is used, the client does not have any control about the | |||
| information provided by the Relay agent. | information provided by the Relay Agent. | |||
| As such this change does not raise any additional security concerns. | As such, this change does not raise any additional security concerns. | |||
| # IANA Considerations | # IANA Considerations | |||
| This document has no IANA actions. | This document has no IANA actions. | |||
| --- back | --- back | |||
| # Example Use Case: Topology Discovery for IPv4-only Radio Unit in 3GPP RAN with Swit | <!-- [rfced] Appendix A: Please review our questions and suggested updates to | |||
| ched Fronthaul {#usecase} | the text below, including the following items: | |||
| In 3GPP mobile network architecture, the User Equipments (UE) are connected | a) Should the abbreviation for "Baseband Units (BB)" be updated to "Baseband Units (B | |||
| via Radio Access Network (RAN). RAN is built up with Baseband Units (BB) | BUs)" | |||
| and Radio Units (RU). Radio Fronthaul Network (FH) connects RU and BB, each of | as seen in the text below? If so, please note that we would also update instances of | |||
| RU and BB is an IP host, they may support IPv4 only, IPv6 only or both | "BB"/"BBs" to "BBU"/"BBUs" accordingly throughout the rest of this section as well. | |||
| b) Should the abbreviation for "Radio Fronthaul Network (FH)" be adjusted for | ||||
| clarity? | ||||
| Original: | ||||
| In 3GPP mobile network architecture, the User Equipments (UE) are | ||||
| connected via Radio Access Network (RAN). RAN is built up with | ||||
| Baseband Units (BB) and Radio Units (RU). Radio Fronthaul Network | ||||
| (FH) connects RU and BB, each of RU and BB is an IP host, they may | ||||
| support IPv4 only, IPv6 only or both depending on the vendor and the | ||||
| model. | ||||
| Perhaps: | ||||
| In 3GPP mobile network architecture, the User Equipment (UE) is | ||||
| connected via a Radio Access Network (RAN). RAN is built up with | ||||
| Baseband Units (BBUs) and Radio Units (RUs). A radio Fronthaul (FH) network | ||||
| connects RUs and BBUs. Each RU and BBU is an IP host, and they may | ||||
| support IPv4 only, IPv6 only, or both, depending on the vendor and the | ||||
| model. | ||||
| --> | ||||
| # Example Use Case: Topology Discovery for IPv4-Only Radio Unit in 3GPP RAN with Swit | ||||
| ched Fronthaul {#usecase} | ||||
| In 3GPP mobile network architecture, the User Equipment (UE) is connected | ||||
| via Radio Access Network (RAN). RAN is built up with Baseband Units (BBs) | ||||
| and Radio Units (RUs). Radio Fronthaul Network (FH) connects RUs and BBs. Each | ||||
| RU and BB is an IP host, and they may support IPv4 only, IPv6 only, or both, | ||||
| depending on the vendor and the model. | depending on the vendor and the model. | |||
| Each RU is unique as it is tied to a set of antennas, and each antenna | Each RU is unique as it is tied to a set of antennas, and each antenna | |||
| is serving a specific Cell and Sector. | is serving a specific Cell and Sector. | |||
| Each RU is configured by the BB depending on the Cell and Sectors it serves. | 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. | However, that dependency is only specified by the cabling between RUs and antennas. | |||
| BB can be cabled to RU directly or via a Layer-2 switched network. | BBs can be cabled to RUs directly or via a Layer 2 switched network. | |||
| ~~~aasvg | ~~~aasvg | |||
| +--------+ | +--------+ | |||
| | RU2 +-----+ | | RU2 +-----+ | |||
| | | | | | | | | |||
| +--------+ | | +--------+ | | |||
| | | | | |||
| +--------+ | | +--------+ | | |||
| | RU3 | | | | RU3 | | | |||
| | +--+ | +-----------+ | | +--+ | +-----------+ | |||
| skipping to change at line 385 ¶ | skipping to change at line 509 ¶ | |||
| +--------+ +-----| Unit | | +--------+ +-----| Unit | | |||
| | RU4 +--+ +--| | | | RU4 +--+ +--| | | |||
| | | | +-----------+ | | | | +-----------+ | |||
| +--------+ | | +--------+ | | |||
| | | | | |||
| +--------+ | | +--------+ | | |||
| | RU2 +-----+ | | RU2 +-----+ | |||
| | | | | | | |||
| +--------+ | +--------+ | |||
| ~~~ | ~~~ | |||
| {: #bb_connected_to_ru title="3GPP RAN where RU are cabled directly to BB" artwork-al ign="center"} | {: #bb_connected_to_ru title="3GPP RAN Where RUs Are Cabled Directly to BB" artwork-a lign="center"} | |||
| In {{bb_connected_to_ru}} BB is directly cabled to a set of RUs, the | In {{bb_connected_to_ru}}, the BB is directly cabled to a set of RUs, and the | |||
| BB can recognize the relationship between RUs and Cell/Sectors | BB can recognize the relationship between RUs and Cell/Sectors | |||
| based on the cabling between the RUs and antennas. | based on the cabling between the RUs and antennas. | |||
| When BBs and RUs are connected via a Layer-2 switched network, | When BBs and RUs are connected via a Layer 2 switched network, | |||
| the added level of complexity requires the BBs to have a deeper | the added level of complexity requires the BBs to have a deeper | |||
| knowledge of the topology in order to properly configure the RUs, | knowledge of the topology in order to properly configure the RUs, | |||
| involving knowledge of all the cabling in the switched network. | involving knowledge of all the cabling in the switched network. | |||
| Examples for switched networks are shown in section 3 of {{RFC7969}} | Examples for switched networks are shown in {{Section 3 of RFC7969}} | |||
| and demonstrate the different levels of complexity. | and demonstrate the different levels of complexity. | |||
| An example of a FH is depicted in {{l2_switched_fh}}. | An example of a FH is depicted in {{l2_switched_fh}}. | |||
| ~~~aasvg | ~~~aasvg | |||
| +--------+ | +--------+ | |||
| | RU1 | P1 +-+------+ | | | | RU1 | P1 +-+------+ | | | |||
| | +--------| | L2RA | | +----+------+ | | | +--------| | L2RA | | +----+------+ | | |||
| +--------+ | +------+ | | | L3RA | | | +--------+ | +------+ | | | L3RA | | | |||
| | L2 | +--| +------+ | | | L2 | +--| +------+ | | |||
| +--------+ P2 | switch | | | | | | +--------+ P2 | Switch | | | | | | |||
| | RU2 +--------| #1 +-----| | Router +----| | | RU2 +--------| #1 +-----| | Router +----| | |||
| | | +--------+ | +-----------+ | +---------+ | | | +--------+ | +-----------+ | +---------+ | |||
| +--------+ | | | | | +--------+ | | | | | |||
| | +--| DHCP | | | +--| DHCP | | |||
| +--------+ | | | Server | | +--------+ | | | Server | | |||
| | RU3 | P1 +-+------+ | | | #1 | | | RU3 | P1 +-+------+ | | | #1 | | |||
| | +--------| | L2RA | | +-----------+ | +---------+ | | +--------| | L2RA | | +-----------+ | +---------+ | |||
| +--------+ | +------+ | | | | | +--------+ | +------+ | | | | | |||
| | L2 | +--| Baseband | | | | L2 | +--| Baseband | | | |||
| +--------+ P2 | switch | | | Unit | | | +--------+ P2 | Switch | | | Unit | | | |||
| | RU4 +--------| #2 +-----| | +----| | | RU4 +--------| #2 +-----| | +----| | |||
| | | +--------+ | +-----------+ | | | | +--------+ | +-----------+ | | |||
| +--------+ | | | +--------+ | | | |||
| ~~~ | ~~~ | |||
| {: #l2_switched_fh title="3GPP RAN with Layer-2 Switched Fronthaul Example" artwork-a lign="center"} | {: #l2_switched_fh title="3GPP RAN with Layer 2 Switched Fronthaul Example" artwork-a lign="center"} | |||
| If IPv6 is used and all RU are capable of DHCPv6 in {{l2_switched_fh}}, | If IPv6 is used and all RUs are capable of DHCPv6 in {{l2_switched_fh}}, | |||
| DHCP topology knowledge can be used for solving the RU configuration problem. | DHCP topology knowledge can be used for solving the RU configuration problem. | |||
| Such solution would use the topology discovery mechanisms described in section 3.2 | Such solution would use the topology discovery mechanisms described in {{Section 3.2 | |||
| of {{RFC7969}}. | of RFC7969}}. | |||
| If RU are capable of IPv4 only but implement a 4o6 client according to {{RFC7341}}, t he same topology discovery mechanisms are applicable. | If RUs are capable of IPv4 only but implement a 4o6 client according to {{RFC7341}}, the same topology discovery mechanisms are applicable. | |||
| If RU are capable of IPV4 only and cannot implement a 4o6 client according to {{RFC73 | If RUs are capable of IPv4 only and cannot implement a 4o6 client according to {{RFC7 | |||
| 41}}, | 341}}, | |||
| the topology discovery mechanisms described in section 3.2 | the topology discovery mechanisms described in {{Section 3.2 | |||
| of {{RFC7969}} can be used by introducing 4o6RA in the switches as decribed in this d | of RFC7969}} can be used by introducing 4o6RA in the switches as described in this do | |||
| ocument. | cument. | |||
| # Acknowledgments | # Acknowledgments | |||
| {:numbered="false"} | {:numbered="false"} | |||
| The authors would also like to acknowledge interesting discussions in | The authors would like to acknowledge interesting discussions in | |||
| this problem space with Sarah Gannon, Ines Ramadza, and Siddharth Sharma | this problem space with {{{Sarah Gannon}}}, {{{Ines Ramadza}}}, and {{{Siddharth Shar | |||
| as well as reviews and comments provided by Eric Vyncke, Mohamed Boucadair, | ma}}}, | |||
| David Lamparter, Michael Richardson, Alan DeKok, Dale Worley, Paul Wouters, | as well as reviews and comments provided by {{{Éric Vyncke}}}, {{{Mohamed Boucadair}} | |||
| Deb Cooley, Erik Kline, Ketan Talaulikar, Mike Bishop and Roman Danyliw. | }, | |||
| {{{David Lamparter}}}, {{{Michael Richardson}}}, {{{Alan DeKok}}}, {{{Dale Worley}}}, | ||||
| {{{Paul Wouters}}}, | ||||
| {{{Deb Cooley}}}, {{{Erik Kline}}}, {{{Ketan Talaulikar}}}, {{{Mike Bishop}}}, and {{ | ||||
| {Roman Danyliw}}}. | ||||
| <!-- [rfced] Terminology and Abbreviations: | ||||
| a) We note that the phrase "4o6" appears a few times by itself throughout this | ||||
| document. For consistency and context, should these instances be updated to "DHCP 4o6 | ||||
| "? | ||||
| We have provided a few examples below: | ||||
| the 4o6 transport | ||||
| are expected to be compliant with 4o6 | ||||
| the introduction of 4o6 at the edge | ||||
| moving 4o6 to a intermediate node | ||||
| a 4o6 client | ||||
| b) We note the following phrases appear after their abbreviations are | ||||
| introduced. For consistency, should these terms (on the left) be updated to | ||||
| their abbreviated form (on the right) after first use? | ||||
| Expansion -> Abbreviation | ||||
| DHCPv4-over-DHCPv6 -> DHCP 4o6 | ||||
| 4o6 Relay Agent -> 4o6RA | ||||
| Layer 2 -> L2 | ||||
| c) FYI - We have added expansions for abbreviations upon first use | ||||
| per Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each | ||||
| expansion in the document carefully to ensure correctness. | ||||
| Bootstrap Protocol (BOOTP) | ||||
| Layer 2 (L2) | ||||
| --> | ||||
| <!-- [rfced] Please review the "Inclusive Language" portion of the online | ||||
| Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
| and let us know if any changes are needed. Updates of this nature typically | ||||
| result in more precise language, which is helpful for readers. | ||||
| Note that our script did not flag any words in particular, but this should | ||||
| still be reviewed as a best practice. --> | ||||
| End of changes. 74 change blocks. | ||||
| 114 lines changed or deleted | 240 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||