RFC 4014 PROPOSED STANDARD DHCP · RADIUS · AUTHENTICATION

DHCP RADIUS Suboption: Remote Authentication Dial-In User Service (RADIUS) Attributes Suboption for the Dynamic Host Configuration Protocol (DHCP) Relay Agent Information Option

How a network access device hands RADIUS authorization attributes to a DHCP server through the relay agent.

On rfc-editor.org ↗
PUBLISHED
February 2005
AUTHORS
R. Droms, J. Schnizlein
STREAM
IETF
UPDATED BY
RFC 9445 — RADIUS DHCP attributes
SUBOPTION CODE
7
SUBOPTION HEADER
One code octet and one length octet
ATTRIBUTES THAT MAY BE INCLUDED
6, listed in section 4
RADIUS ATTRIBUTES THAT MUST BE INCLUDED
User-Name and Framed-Pool, if available
SUBOPTIONS PER MESSAGE
At most one RADIUS Attributes suboption
DOI
10.17487/RFC4014

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                           R. Droms
Request for Comments: 4014                                 J. Schnizlein
Category: Standards Track                                  Cisco Systems
                                                           February 2005


          Remote Authentication Dial-In User Service (RADIUS)
                     Attributes Suboption for the
              Dynamic Host Configuration Protocol (DHCP)
                     Relay Agent Information Option

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   The RADIUS Attributes suboption enables a network element to pass
   identification and authorization attributes received during RADIUS
   authentication to a DHCP server.  When the DHCP server receives a
   message from a relay agent containing a RADIUS Attributes suboption,
   it extracts the contents of the suboption and uses that information
   in selecting configuration parameters for the client.

1.  Introduction and Background

   The RADIUS Attributes suboption for the DHCP Relay Agent option
   provides a way in which a NAS can pass attributes obtained from a
   RADIUS server to a DHCP server [1].  IEEE 802.1X [2] is an example of
   a mechanism through which a NAS such as a switch or a wireless LAN
   access point can authenticate the identity of the user of a device
   before providing layer 2 network access with RADIUS as the
   Authentication Service, as specified in RFC 3580 [8].  In IEEE 802.1X
   authenticated access, a device must first exchange some
   authentication credentials with the NAS.  The NAS then supplies these
   credentials to a RADIUS server, which eventually sends either an
   Access-Accept or an Access-Reject in response to an Access-Request.
   The NAS, based on the reply of the RADIUS server, then allows or
   denies network access to the requesting device.

   Figure 1 summarizes the message exchange among the participants in
   IEEE 802.1X authentication.

                        +-----------------+
                        |Device requesting|
                        | network access  |
                        +-----------------+
                         |         ^
                         |         |
                        (1) Request for access
                         |         |
                         |        (4) Success/Failure
                         v         |
                        +-----------------+
                        |       NAS       |
                        |(IEEE 802.1X and |
                        |DHCP relay agent}|
                        +-----------------+
                           |     ^
                           |     |
                          (2) Request for authentication
                           |     |
                           |    (3) Access-Accept/Reject
                           v     |
                        +-----------------+
                        |     RADIUS      |
                        |     Server      |
                        +-----------------+

                             Figure 1

   The access device acts as an IEEE 802.1X Authenticator and adds a
   DHCP relay agent option that includes a RADIUS Attributes suboption
   to DHCP messages.  At the successful conclusion of IEEE 802.1X
   authentication, a RADIUS Access-Accept provides attributes for
   service authorizations to the NAS.  The NAS stores these attributes
   locally.  When the NAS subsequently relays DHCP messages from the
   network device, the NAS adds these attributes in a RADIUS Attributes
   suboption.  The RADIUS Attributes suboption is another suboption of
   the Relay Agent Information option [5].

   The RADIUS Attributes suboption described in this document is not
   limited to use in conjunction with IEEE 802.1X and can be used to
   carry RADIUS attributes obtained by the relay agent for any reason.
   That is, the option is not limited to use with IEEE 802.1X but is
   constrained by RADIUS semantics (see Section 4).

   The scope of applicability of this specification is such that robust
   interoperability is only guaranteed for RADIUS service
   implementations that exist within the same scope as does the DHCP
   service implementation, i.e., within a single, localized
   administrative domain.  Global interoperability of this
   specification, across administrative domains, is not required.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [3].

   Within this specification, the use of the key words "MUST", "MUST
   NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
   "RECOMMENDED", "MAY", and "OPTIONAL" is with respect to RADIUS
   clients and servers that implement the optional features of this
   specification.  The use of these key words does not create any
   normative requirements outside of that scope, and does not modify the
   base RADIUS specifications, such as RFC 2865 [4].

2.1.  DHCP Terminology

   The following terms are used as defined in RFC 2131 and RFC 3046:
   DHCP relay agent, DHCP server, DHCP client.

2.2.  RADIUS Terminology

   The following terms are used in conjunction with RADIUS:

   RADIUS server: A RADIUS server is responsible for receiving user
      connection requests, authenticating the user, and then returning
      all configuration information necessary for the client to deliver
      service to the user.

   Attribute: A Type-Length-Value tuple encapsulating data elements as
      defined in RFC 2865 [4].

   NAS:  A Network Access Server (NAS) provides access to the network
      and operates as a client of RADIUS.  The client is responsible for
      passing user information to designated RADIUS servers and then
      acting on the response that is returned.  Unlike a traditional
      dial NAS, the NAS considered here may not have a protocol such as
      PPP through which it can pass configuration information from the
      RADIUS attributes to the client.

2.3.  IEEE 802.1X Terminology

   The following terms are used as defined in the IEEE 802.1X protocol:
   Authenticator, Supplicant.

3.  RADIUS Attributes Suboption Format

   The RADIUS Attributes suboption is a new suboption for the DHCP Relay
   Agent option.

   The format of the RADIUS Attributes suboption is as follows:

        SubOpt   Len     RADIUS attributes
         code
       +-------+-----+------+------+------+------+--...-+------+
       |   7   |  N  |  o1  |  o2  |  o3  |  o4  |      |  oN  |
       +-------+-----+------+------+------+------+--...-+------+

   The RADIUS attributes are encoded according to the encoding rules in
   RFC 2865, in octets o1...oN.

   The DHCP relay agent truncates the RADIUS attributes to fit in the
   RADIUS Attributes suboption.

4.  DHCP Relay Agent Behavior

   When the DHCP relay agent receives a DHCP message from the client, it
   MAY append a DHCP Relay Agent Information option containing the
   RADIUS Attributes suboption, along with any other suboptions it is
   configured to supply.  The RADIUS Attributes suboption MUST only
   contain the attributes provided in the RADIUS Access/Accept message.
   The DHCP relay agent MUST NOT add more than one RADIUS Attributes
   suboption in a message.

   The relay agent MUST include the User-Name and Framed-Pool attributes
   in the RADIUS Attributes suboption, if they are available, and MAY
   include other attributes.

   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])

5.  DHCP Server Behavior

   When the DHCP server receives a message from a relay agent containing
   a RADIUS Attributes suboption, it extracts the contents of the
   suboption and uses that information in selecting configuration
   parameters for the client.  If the relay agent relays RADIUS
   attributes not included in the table in Section 4, the DHCP server
   SHOULD ignore them.  If the DHCP server uses attributes not specified
   here, it might result in side effects not anticipated in the existing
   RADIUS specifications.

6.  DHCP Client Behavior

   Relay agent options are exchanged only between relay agents and the
   DHCP server, so DHCP clients are never aware of their use.

7.  Security Considerations

   Message authentication in DHCP for intradomain use where the
   out-of-band exchange of a shared secret is feasible is defined in RFC
   3118 [6].  Potential exposures to attack are discussed in section 7
   of the DHCP protocol specification in RFC 2131 [1].

   The DHCP Relay Agent option depends on a trusted relationship between
   the DHCP relay agent and the server, as described in section 5 of RFC
   3046 [5].  Although the introduction of fraudulent relay-agent
   options can be prevented by a perimeter defense that blocks these
   options unless the relay agent is trusted, a deeper defense using the
   authentication option for relay agent options [9] or IPsec [10]
   SHOULD be deployed as well.

8.  IANA Considerations

   IANA has assigned the value of 7 for the DHCP Relay Agent Information
   option suboption code for this suboption.  This document does not
   define any new namespaces or other constants for which IANA must
   maintain a registry.

9.  Acknowledgements

   Expert advice from Bernard Aboba, Paul Funk, David Nelson, Ashwin
   Palekar, and Greg Weber on avoiding RADIUS entanglements is
   gratefully acknowledged.

10.  References

10.1.  Normative References

   [1]  Droms, R., "Dynamic Host Configuration Protocol", RFC 2131,
        March 1997.

   [2]  Institute of Electrical and Electronics Engineers, "Local and
        Metropolitan Area Networks: Port based Network Access Control",
        IEEE Standard 802.1X, March 2001.

   [3]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [4]  Rigney, C., Willens, S., Rubens, A., and W. Simpson, "Remote
        Authentication Dial In User Service (RADIUS)", RFC 2865, June
        2000.

   [5]  Patrick, M., "DHCP Relay Agent Information Option", RFC 3046,
        January 2001.

10.2.  Informative References

   [6]  Droms, R. and W. Arbaugh, "Authentication for DHCP Messages",
        RFC 3118, June 2001.

   [7]  Aboba, B., Zorn, G., and D. Mitton, "RADIUS and IPv6", RFC 3162,
        August 2001.

   [8]  Congdon, P., Aboba, B., Smith, A., Zorn, G., and J. Roese, "IEEE
        802.1X Remote Authentication Dial In User Service (RADIUS) Usage
        Guidelines", RFC 3580, September 2003.

   [9]  Stapp, M. and T. Lemon, "The Authentication Suboption for the
        DHCP Relay Agent Option", Work in Progress, October 2003.

   [10] Droms, R., "Authentication of DHCP Relay Agent Options Using
        IPsec", Work in Progress, September 2003.

Authors' Addresses

   Ralph Droms
   Cisco Systems
   1414 Massachusetts Avenue
   Boxborough, MA  01719
   USA

   EMail: rdroms@cisco.com


   John Schnizlein
   Cisco Systems
   9123 Loughran Road
   Fort Washington, MD  20744
   USA

   EMail: jschnizl@cisco.com

Full Copyright Statement

   Copyright (C) The Internet Society (2005).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the IETF's procedures with respect to rights in IETF Documents can
   be found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.


Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

ISO Plain Language

On this page
PROBLEMWhen a network access server authenticated a user with RADIUS, the attributes that came back in the Access-Accept were never passed to the DHCP server, so the DHCP server could not use them when choosing an address and other settings for the client.
MECHANISMThe document adds a RADIUS Attributes suboption, suboption code 7, to the DHCP Relay Agent Information option. The relay agent copies the attributes it received into it and the DHCP server reads them when selecting configuration for the client.
WHY IT MATTERSThe DHCP server can now select a pool based on the RADIUS authorization. The memo limits interoperability to a single administrative domain and was later updated by RFC 9445.

§1Introduction and Background

The RADIUS Attributes suboption for the DHCP Relay Agent option provides a way in which a NAS can pass attributes obtained from a RADIUS server to a DHCP server. IEEE 802.1X is an example of a mechanism through which a NAS, such as a switch or a wireless LAN access point, can authenticate the identity of the user of a device before providing layer 2 network access with RADIUS as the Authentication Service, as specified in RFC 3580.

In IEEE 802.1X authenticated access, a device must first exchange some authentication credentials with the NAS. The NAS then supplies these credentials to a RADIUS server, which eventually sends either an Access-Accept or an Access-Reject in response to an Access-Request. The NAS, based on the reply of the RADIUS server, then allows or denies network access to the requesting device.

The access device acts as an IEEE 802.1X Authenticator and adds a DHCP relay agent option that includes a RADIUS Attributes suboption to DHCP messages. At the successful conclusion of IEEE 802.1X authentication, a RADIUS Access-Accept provides attributes for service authorizations to the NAS. The NAS stores these attributes locally. When the NAS subsequently relays DHCP messages from the network device, the NAS adds these attributes in a RADIUS Attributes suboption. The RADIUS Attributes suboption is another suboption of the Relay Agent Information option defined in RFC 3046.

The suboption is not limited to use in conjunction with IEEE 802.1X, and can be used to carry RADIUS attributes obtained by the relay agent for any reason. The option is constrained by RADIUS semantics, as set out in section 4 of this document.

The scope of applicability of this specification is such that robust interoperability is only guaranteed for RADIUS service implementations that exist within the same scope as does the DHCP service implementation, that is, within a single, localized administrative domain. Global interoperability of this specification, across administrative domains, is not required.

Normally the access device keeps the RADIUS answer to itself and the DHCP server never hears about it. This document connects the two, so the DHCP server can take the RADIUS decision into account. It only aims to work inside one administrative domain.

THE 802.1X EXCHANGE OF FIGURE 1, WITH THE DHCP STEP ADDED
Device requesting network accessNAS (802.1X and DHCP relay agent)RADIUS serverDHCP server
  1. (1) REQUEST FOR ACCESS
  2. (2) ACCESS-REQUEST
  3. (3) ACCESS-ACCEPT
  4. (4) SUCCESS
  5. DHCP MESSAGE WITH RADIUS ATTRIBUTES SUBOPTIONThe attributes from the Access-Accept are carried in the relay agent information option.

§2Terminology

The DHCP terms used are the DHCP relay agent, the DHCP server and the DHCP client, as defined in RFC 2131 and RFC 3046.

The RADIUS terms are used in conjunction with RADIUS. A RADIUS server is responsible for receiving user connection requests, authenticating the user, and then returning all configuration information necessary for the client to deliver service to the user. An Attribute is a Type-Length-Value tuple encapsulating data elements as defined in RFC 2865. A Network Access Server, or NAS, provides access to the network and operates as a client of RADIUS. The client is responsible for passing user information to designated RADIUS servers and then acting on the response that is returned. Unlike a traditional dial NAS, the NAS considered here may not have a protocol such as PPP through which it can pass configuration information from the RADIUS attributes to the client.

The IEEE 802.1X terms used are Authenticator and Supplicant, as defined in the IEEE 802.1X protocol.

The key terms are the RADIUS server, which decides who is allowed in, the NAS, which is the device asking the RADIUS server on the user's behalf, and the Attribute, which is one labelled piece of information in a RADIUS message.

§3The RADIUS Attributes Suboption Format

The RADIUS Attributes suboption is a new suboption for the DHCP Relay Agent option. Its format is a one-octet suboption code, a one-octet length N, and then the RADIUS attributes in octets o1 through oN. The RADIUS attributes are encoded according to the encoding rules in RFC 2865. The DHCP relay agent truncates the RADIUS attributes to fit in the RADIUS Attributes suboption.

IANA has assigned the value of 7 for the DHCP Relay Agent Information option suboption code for this suboption.

The suboption is a code, a length, and then the RADIUS attributes copied straight into it. If they do not fit, the relay agent cuts them short.

THE RADIUS ATTRIBUTES SUBOPTION
RADIUS Attributes suboption
FieldNameSizeValueDescription
SUBOPT-CODESubOpt code1 byteSuboption code, assigned the value 7.
LENGTHLen1 byteLength N of the RADIUS attributes that follow.
ATTRIBUTESRADIUS attributes1 byteThe RADIUS attributes, encoded as in RFC 2865, in octets o1 to oN.

§4DHCP Relay Agent Behavior

When the DHCP relay agent receives a DHCP message from the client, it MAY append a DHCP Relay Agent Information option containing the RADIUS Attributes suboption, along with any other suboptions it is configured to supply. The RADIUS Attributes suboption MUST only contain the attributes provided in the RADIUS Access-Accept message, and the DHCP relay agent MUST NOT add more than one RADIUS Attributes suboption in a message.

The relay agent MUST include the User-Name and Framed-Pool attributes in the RADIUS Attributes suboption if they are available, and MAY include other attributes.

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, lists attributes that MAY be included: User-Name, Service-Type, Vendor-Specific, Session-Timeout, Framed-Pool and Framed-IPv6-Pool.

The relay agent copies across only what the RADIUS server actually sent in the Access-Accept, and it may send at most one such suboption per message. It must include the user name and the pool when the server supplied them.

ATTRIBUTES THAT MAY BE CARRIED IN THE SUBOPTION
  • 1User-Name — From RFC 2865. Must be included when available.
  • 6Service-Type — From RFC 2865.
  • 26Vendor-Specific — From RFC 2865.
  • 27Session-Timeout — From RFC 2865.
  • 88Framed-Pool — From RFC 2869. Must be included when available.
  • 100Framed-IPv6-Pool — From RFC 3162.

§5DHCP Server Behavior

When the DHCP server receives a message from a relay agent containing a RADIUS Attributes suboption, it extracts the contents of the suboption and uses that information in selecting configuration parameters for the client. If the relay agent relays RADIUS attributes that are not included in the table in section 4, the DHCP server SHOULD ignore them. If the DHCP server uses attributes not specified here, it might result in side effects not anticipated in the existing RADIUS specifications.

The DHCP server takes the attributes out of the suboption and uses them when choosing the client's settings. Attributes outside the listed set should be ignored, because acting on them could cause side effects nobody planned for.

§6DHCP Client Behavior

Relay agent options are exchanged only between relay agents and the DHCP server, so DHCP clients are never aware of their use.

The client never sees this. The suboption travels between the relay agent and the DHCP server only.

§7Security Considerations

Message authentication in DHCP for intradomain use, where the out-of-band exchange of a shared secret is feasible, is defined in RFC 3118. Potential exposures to attack are discussed in section 7 of the DHCP protocol specification in RFC 2131.

The DHCP Relay Agent option depends on a trusted relationship between the DHCP relay agent and the server, as described in section 5 of RFC 3046. Although the introduction of fraudulent relay-agent options can be prevented by a perimeter defense that blocks these options unless the relay agent is trusted, a deeper defense using the authentication option for relay agent options or IPsec SHOULD be deployed as well.

Anyone who can inject a relay agent option can influence what address a client gets, so the link between the relay agent and the DHCP server has to be protected, not just the edge of the network.

§8IANA Considerations

IANA has assigned the value of 7 for the DHCP Relay Agent Information option suboption code for this suboption. This document does not define any new namespaces or other constants for which IANA must maintain a registry.

The only registration needed is the number 7 for the suboption code. Nothing else was added.

§9References