RADIUS Extensions for DHCP-Configured Services
RFC 9445
Mohamed Boucadair
Orange
Rennes
35000
France
mohamed.boucadair@orange.com
Tirumaleswar Reddy.K
Nokia
India
kondtir@gmail.com
Alan DeKok
FreeRADIUS
aland@freeradius.org
August 2023
ops
opsawg
redirection
subscriber policies
differentiated service
DNS
DoH
DoT
DoQ
QUIC
Encryption
Service delivery
Service provisioning
service activation
policies
connectivity
This document specifies two new Remote Authentication Dial-In User Service (RADIUS) attributes that carry DHCP options. The specification is generic and can be applicable to any service that relies upon DHCP. Both DHCPv4- and DHCPv6-configured services are covered.
Also, this document updates RFC 4014 by relaxing a constraint on permitted RADIUS attributes in the RADIUS Attributes DHCP suboption.
Introduction
In the context of broadband services, Internet Service Providers (ISPs) usually provide DNS resolvers to their customers. To that aim, ISPs deploy dedicated mechanisms (e.g., DHCP [RFC2132] [RFC8415] and IPv6 Router Advertisement [RFC4861]) to advertise a list of DNS recursive servers to their customers. Typically, the information used to populate DHCP messages and/or IPv6 Router Advertisements relies upon specific Remote Authentication Dial-In User Service (RADIUS) [RFC2865] attributes, such as the DNS-Server-IPv6-Address Attribute specified in [RFC6911].
With the advent of encrypted DNS (e.g., DNS over HTTPS (DoH) [RFC8484], DNS over TLS (DoT) [RFC7858], or DNS over QUIC (DoQ) [RFC9250]), additional means are required to provision hosts with network-designated encrypted DNS. To fill that void, [I-D.ietf-add-dnr] leverages existing protocols such as DHCP to provide hosts with the required information to connect to an encrypted DNS resolver. However, there are no RADIUS attributes that can be used to populate the discovery messages discussed in [I-D.ietf-add-dnr]. The same concern is likely to be encountered for future services that are configured using DHCP.
This document specifies two new RADIUS attributes: DHCPv6-Options (Section 3.1) and DHCPv4-Options (Section 3.2). These attributes can include DHCP options that are listed in the "DHCPv6 Options Permitted in the RADIUS DHCPv6-Options Attribute" registry (Section 8.4.1) and the "DHCP Options Permitted in the RADIUS DHCPv4-Options Attribute" registry (Section 8.4.2). These two attributes are specified in order to accommodate both IPv4 and IPv6 deployment contexts while taking into account the constraints in Section 3.4 of [RFC6158].
The mechanism specified in this document is a generic mechanism and might be employed in network scenarios where the DHCP server and the RADIUS client are located in the same device. The new attributes can also be used in deployments that rely upon the mechanisms defined in [RFC4014] or [RFC7037], which allow a DHCP relay agent that is collocated with a RADIUS client to pass attributes obtained from a RADIUS server to a DHCP server. However, an update to [RFC4014] is required so that a DHCP relay agent can pass the DHCPv4-Options Attribute obtained from a RADIUS server to a DHCP server (Section 4).
DHCP options that are included in the new RADIUS attributes can be controlled by a deployment-specific policy. Discussing such a policy is out of scope.
This document adheres to [RFC8044] for defining the new attributes.
A sample deployment usage of the RADIUS DHCPv6-Options and DHCPv4-Options Attributes is described in Section 5.
Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
This document makes use of the terms defined in [RFC2865], [RFC8415], and [RFC8499]. The following additional terms are used:
DHCP:
refers to both DHCPv4 [RFC2132] and DHCPv6 [RFC8415].
Encrypted DNS:
refers to a scheme where DNS exchanges are transported over an encrypted channel. Examples of encrypted DNS are DoT, DoH, and DoQ.
Encrypted DNS resolver:
refers to a resolver (Section 6 of [RFC8499]) that supports encrypted DNS.
DHCP*-Options:
refers to the DHCPv4-Options and DHCPv6-Options Attributes (Section 3).
RADIUS DHCP Options Attributes
This section specifies two new RADIUS attributes for RADIUS clients and servers to exchange DHCP-encoded data. This data is then used to feed the DHCP procedure between a DHCP client and a DHCP server.
Both the DHCPv4-Options and DHCPv6-Options Attributes use the "Long Extended Type" format (Section 2.2 of [RFC6929]). The description of the fields is provided in Sections 3.1 and 3.2.
These attributes use the "Long Extended Type" format in order to permit the transport of attributes encapsulating more than 253 octets of data. DHCP options that can be included in the RADIUS DHCP*-Options Attributes are limited by the maximum packet size of 4096 bytes (Section 3 of [RFC2865]). In order to accommodate deployments with large DHCP options, RADIUS implementations are RECOMMENDED to support a packet size up to 65535 bytes. Such a recommendation can be met if RADIUS implementations support a mechanism that relaxes the limit of 4096 bytes (e.g., the mechanisms described in [RFC7499] or [RFC7930]).
The Value fields of the DHCP*-Options Attributes are encoded in the clear and not encrypted like, for example, the Tunnel-Password Attribute [RFC2868].
RADIUS implementations may support a configuration parameter to control the DHCP options that can be included in a RADIUS DHCP*-Options Attribute. Likewise, DHCP server implementations may support a configuration parameter to control the permitted DHCP options in a RADIUS DHCP*-Options Attribute. Absent explicit configuration, RADIUS implementations and DHCP server implementations SHOULD ignore non-permitted DHCP options received in a RADIUS DHCP*-Options Attribute.
RADIUS-supplied data is specific configuration data that is returned as a function of authentication and authorization checks. As such, absent any explicit configuration on the DHCP server, RADIUS-supplied data by means of the DHCP*-Options Attributes take precedence over any local configuration.
These attributes are defined with globally unique names. The naming of the attributes follows the guidelines in Section 2.7.1 of [RFC6929]. Invalid attributes are handled as per Section 2.8 of [RFC6929].
DHCPv6-Options Attribute
This attribute is of type "string" as defined in Section 3.5 of [RFC8044].
The DHCPv6-Options Attribute MAY appear in a RADIUS Access-Accept packet. It MAY also appear in a RADIUS Access-Request packet as a hint to the RADIUS server to indicate a preference. However, the server is not required to honor such a preference.
The DHCPv6-Options Attribute MAY appear in a RADIUS CoA-Request packet.
The DHCPv6-Options Attribute MAY appear in a RADIUS Accounting-Request packet.
The DHCPv6-Options Attribute MUST NOT appear in any other RADIUS packet.
The DHCPv6-Options Attribute is structured as follows:
Type
245
Length
This field indicates the total length, in octets, of all fields of this attribute, including the Type, Length, Extended-Type, and Value fields.
Extended-Type
3 (see Section 8.1)
Value
This field contains a list of DHCPv6 options (Section 21 of [RFC8415]). Multiple instances of the same DHCPv6 option MAY be included. If an option appears multiple times, each instance is considered separate, and the data areas of the options MUST NOT be concatenated or otherwise combined. Consistent with Section 17 of [RFC7227], this document does not impose any option order when multiple options are present.
The permitted DHCPv6 options are listed in the "DHCPv6 Options Permitted in the RADIUS DHCPv6-Options Attribute" registry (Section 8.4.1).
The DHCPv6-Options Attribute is associated with the following identifier: 245.3.
DHCPv4-Options Attribute
This attribute is of type "string" as defined in Section 3.5 of [RFC8044].
The DHCPv4-Options Attribute MAY appear in a RADIUS Access-Accept packet. It MAY also appear in a RADIUS Access-Request packet as a hint to the RADIUS server to indicate a preference. However, the server is not required to honor such a preference.
The DHCPv4-Options Attribute MAY appear in a RADIUS CoA-Request packet.
The DHCPv4-Options Attribute MAY appear in a RADIUS Accounting-Request packet.
The DHCPv4-Options Attribute MUST NOT appear in any other RADIUS packet.
The DHCPv4-Options Attribute is structured as follows:
Type
245
Length
This field indicates the total length, in octets, of all fields of this attribute, including the Type, Length, Extended-Type, and Value fields.
Extended-Type
4 (see Section 8.1)
Value
This field contains a list of DHCPv4 options. Multiple instances of the same DHCPv4 option MAY be included, especially for concatenation-requiring options that exceed the maximum DHCPv4 option size of 255 octets. The mechanism specified in [RFC3396] MUST be used for splitting and concatenating the instances of a concatenation-requiring option.
The permitted DHCPv4 options are listed in the "DHCP Options Permitted in the RADIUS DHCPv4-Options Attribute" registry (Section 8.4.2).
The DHCPv4-Options Attribute is associated with the following identifier: 245.4.
Passing RADIUS DHCP Options Attributes by DHCP Relay Agents to DHCP Servers
Context
The RADIUS Attributes DHCP suboption [RFC4014] enables a DHCPv4 relay agent to pass identification and authorization attributes received during RADIUS authentication to a DHCPv4 server. However, [RFC4014] defines a frozen set of RADIUS attributes that can be included in such a suboption. This limitation is suboptimal in contexts where new services are deployed (e.g., support of encrypted DNS [I-D.ietf-add-dnr]).
Section 4.2 updates [RFC4014] by relaxing that constraint and allowing additional RADIUS attributes to be tagged as permitted in the RADIUS Attributes DHCP suboption. The permitted attributes are registered in the new "RADIUS Attributes Permitted in RADIUS Attributes DHCP Suboption" registry (Section 8.3).
Updates to RFC 4014
Section 3 of RFC 4014
This document updates Section 3 of [RFC4014] as follows:
OLD:
To avoid dependencies between the address allocation and other state information between the RADIUS server and the DHCP server, the DHCP relay agent SHOULD include only the attributes in the table below in an instance of the RADIUS Attributes suboption. The table, based on the analysis in RFC 3580 [8], lists attributes that MAY be included:

           #   Attribute
         ---   ---------
           1   User-Name (RFC 2865 [3])
           6   Service-Type (RFC 2865)
          26   Vendor-Specific (RFC 2865)
          27   Session-Timeout (RFC 2865)
          88   Framed-Pool (RFC 2869)
         100   Framed-IPv6-Pool (RFC 3162 [7])

NEW:
To avoid dependencies between the address allocation and other state information between the RADIUS server and the DHCP server, the DHCP relay agent SHOULD only include the attributes in the "RADIUS Attributes Permitted in RADIUS Attributes DHCP Suboption" registry (Section 8.3 of [RFC9445]) in an instance of the RADIUS Attributes DHCP suboption. The DHCP relay agent may support a configuration parameter to control the attributes in a RADIUS Attributes DHCP suboption.
Section 4 of RFC 4014
This document updates Section 4 of [RFC4014] as follows:
OLD:
If the relay agent relays RADIUS attributes not included in the table in Section 4, the DHCP server SHOULD ignore them.
NEW:
If the relay agent relays RADIUS attributes not included in the "RADIUS Attributes Permitted in RADIUS Attributes DHCP Suboption" registry (Section 8.3 of [RFC9445]) and explicit configuration is absent, the DHCP server SHOULD ignore them.
An Example: Applicability to Encrypted DNS Provisioning
Typical deployment scenarios are similar to those described, for instance, in Section 2 of [RFC6911]. For illustration purposes, Figure 1 shows an example where a Customer Premises Equipment (CPE) is provided with an encrypted DNS resolver. This example assumes that the Network Access Server (NAS) embeds both RADIUS client and DHCPv6 server capabilities.
An Example of RADIUS IPv6 Encrypted DNS Exchange

+-------------+           +-------------+             +-------+
|     CPE     |           |     NAS     |             |  AAA  |
|DHCPv6 Client|           |DHCPv6 Server|             |Server |
|             |           |RADIUS Client|             |       |
+------+------+           +------+------+             +---+---+
       |                         |                        |
       o-----DHCPv6 Solicit----->|                        |
       |                         o----Access-Request ---->|
       |                         |                        |
       |                         |<----Access-Accept------o
       |                         |     DHCPv6-Options     |
       |<----DHCPv6 Advertise----o    (OPTION_V6_DNR)     |
       |     (OPTION_V6_DNR)     |                        |
       |                         |                        |
       o-----DHCPv6 Request----->|                        |
       |                         |                        |
       |<------DHCPv6 Reply------o                        |
       |     (OPTION_V6_DNR)     |                        |
       |                         |                        |

                DHCPv6                     RADIUS

Upon receipt of the DHCPv6 Solicit message from a CPE, the NAS sends a RADIUS Access-Request message to the Authentication, Authorization, and Accounting (AAA) server. Once the AAA server receives the request, it replies with an Access-Accept message (possibly after having sent a RADIUS Access-Challenge message and assuming the CPE is entitled to connect to the network) that carries a list of parameters to be used for this session, which includes the encrypted DNS information. Such information is encoded as OPTION_V6_DNR (144) instances [I-D.ietf-add-dnr] in the RADIUS DHCPv6-Options Attribute. These instances are then used by the NAS to complete the DHCPv6 procedure that the CPE initiated to retrieve information about the encrypted DNS service to use. The Discovery of Network-designated Resolvers (DNR) procedure defined in [I-D.ietf-add-dnr] is then followed between the DHCPv6 client and the DHCPv6 server.
Should any encrypted DNS-related information (e.g., Authentication Domain Name (ADN) and IPv6 address) change, the RADIUS server sends a RADIUS Change-of-Authorization (CoA) message [RFC5176] that carries the DHCPv6-Options Attribute with the updated OPTION_V6_DNR information to the NAS. Once that message is received and validated by the NAS, it replies with a RADIUS CoA ACK message. The NAS replaces the old encrypted DNS resolver information with the new one and sends a DHCPv6 Reconfigure message, which leads the DHCPv6 client to initiate a Renew/Reply message exchange with the DHCPv6 server.
In deployments where the NAS behaves as a DHCPv6 relay agent, the procedure discussed in Section 3 of [RFC7037] can be followed.
To that aim, the "RADIUS Attributes Permitted in DHCPv6 RADIUS Option" registry has been updated (Section 8.2). CoA-Requests can be used following the procedure specified in [RFC6977].
Figure 2 shows another example where a CPE is provided with an encrypted DNS resolver, but the CPE uses DHCPv4 to retrieve its encrypted DNS resolver.
An Example of RADIUS IPv4 Encrypted DNS Exchange

+-------------+           +-------------+             +-------+
|     CPE     |           |     NAS     |             |  AAA  |
|DHCPv4 Client|           |DHCPv4 Server|             |Server |
|             |           |RADIUS Client|             |       |
+------+------+           +------+------+             +---+---+
       |                         |                        |
       o------DHCPDISCOVER------>|                        |
       |                         o----Access-Request ---->|
       |                         |                        |
       |                         |<----Access-Accept------o
       |                         |     DHCPv4-Options     |
       |<-----DHCPOFFER----------o    (OPTION_V4_DNR)     |
       |     (OPTION_V4_DNR)     |                        |
       |                         |                        |
       o-----DHCPREQUEST-------->|                        |
       |     (OPTION_V4_DNR)     |                        |
       |                         |                        |
       |<-------DHCPACK----------o                        |
       |     (OPTION_V4_DNR)     |                        |
       |                         |                        |

               DHCPv4                      RADIUS

Other deployment scenarios can be envisaged, such as returning customized service parameters (e.g., different DoH URI Templates) as a function of the service, policies, and preferences that are set by a network administrator. How an administrator indicates its service, policies, and preferences to a AAA server is out of scope.
Security Considerations
RADIUS-related security considerations are discussed in [RFC2865].
DHCPv6-related security issues are discussed in Section 22 of [RFC8415], while DHCPv4-related security issues are discussed in Section 7 of [RFC2131]. Security considerations specific to the DHCP options that are carried in RADIUS are discussed in relevant documents that specify these options. For example, security considerations (including traffic theft) are discussed in Section 7 of [I-D.ietf-add-dnr].
RADIUS servers have conventionally tolerated the input of arbitrary data via the "string" data type (Section 3.5 of [RFC8044]). This practice allows RADIUS servers to support newer standards without software upgrades, by allowing administrators to manually create complex attribute content and then pass that content to a RADIUS server as opaque strings. While this practice is useful, it is RECOMMENDED that RADIUS servers that implement the present specification are updated to understand the format and encoding of DHCP options. Administrators can thus enter the DHCP options as options instead of manually encoded opaque strings. This recommendation increases security and interoperability by ensuring that the options are encoded correctly. It also increases usability for administrators.
The considerations discussed in Section 7 of [RFC4014] and Section 8 of [RFC7037] should be taken into account in deployments where DHCP relay agents pass the DHCP*-Options Attributes to DHCP servers. Additional considerations specific to the use of Reconfigure messages are discussed in Section 9 of [RFC6977].
Table of Attributes
The following table provides a guide as to what type of RADIUS packets may contain these attributes and in what quantity.
Table of Attributes
Access-Request | Access-Accept | Access-Reject | Challenge | # | Attribute
0+ | 0+ | 0 | 0 | 245.3 | DHCPv6-Options
0+ | 0+ | 0 | 0 | 245.4 | DHCPv4-Options
Accounting-Request | CoA-Request | CoA-ACK | CoA-NACK | # | Attribute
0+ | 0+ | 0 | 0 | 245.3 | DHCPv6-Options
0+ | 0+ | 0 | 0 | 245.4 | DHCPv4-Options
Notation for Table 1:
0
This attribute MUST NOT be present in packet.
0+
Zero or more instances of this attribute MAY be present in packet.
IANA Considerations
New RADIUS Attributes
IANA has assigned two new RADIUS attribute types in the "Radius Attribute Types" [RADIUS-Types] registry:
New RADIUS Attributes
Value | Description | Data Type | Reference
245.3 | DHCPv6-Options | string | RFC 9445
245.4 | DHCPv4-Options | string | RFC 9445
New RADIUS Attribute Permitted in DHCPv6 RADIUS Option
IANA has added the following entry to the "RADIUS Attributes Permitted in DHCPv6 RADIUS Option" subregistry in the "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" registry [DHCPv6]:
New RADIUS Attribute Permitted in DHCPv6 RADIUS Option
Type Code | Attribute | Reference
245.3 | DHCPv6-Options | RFC 9445
RADIUS Attributes Permitted in RADIUS Attributes DHCP Suboption
IANA has created a new subregistry entitled "RADIUS Attributes Permitted in RADIUS Attributes DHCP Suboption" in the "Dynamic Host Configuration Protocol (DHCP) and Bootstrap Protocol (BOOTP) Parameters" registry [BOOTP].
The allocation policy of this new subregistry is "Expert Review" (Section 4.5 of [RFC8126]). Designated experts should carefully consider the security implications of allowing a relay agent to include new RADIUS attributes in this subregistry. Additional considerations are provided in Section 8.4.3.
The initial contents of this subregistry are listed in Table 4. The Reference field includes the document that registers or specifies the attribute.
Initial Contents of RADIUS Attributes Permitted in RADIUS Attributes DHCP Suboption Registry
Type Code | Attribute | Reference
1 | User-Name | [RFC2865]
6 | Service-Type | [RFC2865]
26 | Vendor-Specific | [RFC2865]
27 | Session-Timeout | [RFC2865]
88 | Framed-Pool | [RFC2869]
100 | Framed-IPv6-Pool | [RFC3162]
245.4 | DHCPv4-Options | RFC 9445
DHCP Options Permitted in the RADIUS DHCP*-Options Attributes
DHCPv6
IANA has created a new subregistry entitled "DHCPv6 Options Permitted in the RADIUS DHCPv6-Options Attribute" in the "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)" registry [DHCPv6].
The registration policy for this new subregistry is "Expert Review" (Section 4.5 of [RFC8126]). See more details in Section 8.4.3.
The initial content of this subregistry is listed in Table 5. The Value and Description fields echo those in the "Option Codes" subregistry of [DHCPv6]. The Reference field includes the document that registers or specifies the option.
Initial Content of DHCPv6 Options Permitted in the RADIUS DHCPv6-Options Attribute Registry
Value | Description | Reference
144 | OPTION_V6_DNR | RFC 9445
DHCPv4
IANA has created a new subregistry entitled "DHCP Options Permitted in the RADIUS DHCPv4-Options Attribute" in the "Dynamic Host Configuration Protocol (DHCP) and Bootstrap Protocol (BOOTP) Parameters" registry [BOOTP].
The registration policy for this new subregistry is Expert Review (Section 4.5 of [RFC8126]). See more details in Section 8.4.3.
The initial content of this subregistry is listed in Table 6. The Tag and Name fields echo those in the "BOOTP Vendor Extensions and DHCP Options" subregistry of [BOOTP]. The Reference field includes the document that registers or specifies the option.
Initial Content of DHCPv4 Options Permitted in the RADIUS DHCPv4-Options Attribute Registry
Tag | Name | Reference
162 | OPTION_V4_DNR | RFC 9445
Guidelines for the Designated Experts
It is suggested that multiple designated experts be appointed for registry change requests.
Criteria that should be applied by the designated experts include determining whether the proposed registration duplicates existing entries and whether the registration description is clear and fits the purpose of this registry.
Registration requests are to be sent to <radius-dhcp-review@ietf.org> and are evaluated within a three-week review period on the advice of one or more designated experts. Within the review period, the designated experts will either approve or deny the registration request, communicating this decision to the review list and IANA. Denials should include an explanation and, if applicable, suggestions as to how to make the request successful.
References
Normative References
Informative References
[I-D.ietf-add-dnr]

DHCP and Router Advertisement Options for the Discovery of Network-designated Resolvers (DNR)
Mohamed Boucadair, Ed.
Orange
Tirumaleswar Reddy.K, Ed.
Nokia
Dan Wing
Citrix Systems, Inc.
Neil Cook
Open-Xchange
Tommy Jensen
Microsoft
27 April 2023
Internet-Draft draft-ietf-add-dnr-16
[RADIUS-Types]

RADIUS Types
IANA
[DHCPv6]

Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
IANA
[BOOTP]

Dynamic Host Configuration Protocol (DHCP) and Bootstrap Protocol (BOOTP) Parameters
IANA
[RFC2132]
[RFC8415]
[RFC4861]
[RFC2865]
[RFC6911]
[RFC8484]
[RFC7858]
[RFC9250]
[RFC6158]
[RFC4014]
[RFC7037]
[RFC8044]
[RFC2119]
[RFC8174]
[RFC8499]
[RFC6929]
[RFC7499]
[RFC7930]
[RFC2868]
[RFC7227]
[RFC3396]
[RFC5176]
[RFC6977]
[RFC2131]
[RFC8126]
[RFC2869]
[RFC3162]
Acknowledgements
Thanks to Christian Jacquenet, Neil Cook, Joe Clarke, Qin Wu, Dirk von-Hugo, Tom Petch, and Chongfeng Xie for the review and suggestions.
Thanks to Ben Schwartz and Bernie Volz for the comments.
Thanks to Rob Wilton for the careful AD review.
Thanks to Ralf Weber for the dnsdir reviews, Robert Sparks for the genart review, and Tatuya Jinmei for the intdir review.
Thanks to Éric Vyncke, Paul Wouters, and Warren Kumari for the IESG review.