<?xml version="1.0" encoding="US-ASCII"?>
<!--used v2-->
<!-- This template is for creating an Internet Draft using xml2rfc, which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2865 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2865.xml">
<!ENTITY RFC3162 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3162.xml">
<!ENTITY RFC3315 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3315.xml">
<!ENTITY RFC3633 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3633.xml">
<!ENTITY RFC3646 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3646.xml">
<!ENTITY RFC3736 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3736.xml">
<!ENTITY RFC4303 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4303.xml">
<!ENTITY RFC4818 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4818.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY RFC6334 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6334.xml">
<!ENTITY RFC6519 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6519.xml">
<!ENTITY RFC6911 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6911.xml">
<!ENTITY RFC6929 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6929.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="std" number="7037" ipr="trust200902" submissionType="IETF" consensus="yes">

<!-- ***** FRONT MATTER ***** -->
<front>

  <title abbrev="DHCPv6 RADIUS Option"> RADIUS Option for the DHCPv6 Relay Agent</title>

    <author fullname="Leaf Y. Yeh" initials="L." surname="Yeh">
      <organization>Freelancer Technologies</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country>P. R. China</country>
        </postal>
        <email>leaf.yeh.sdo@gmail.com</email>
      </address>
    </author>
    
    <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>France Telecom</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <region></region>
          <code></code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>    
   
    <date month="October" year="2013" />
    
    <!-- Meta-data Declarations -->
    <area>Internet</area>
    <workgroup>DHC Working Group</workgroup>
    <keyword>DHCPv6</keyword>
    <keyword>RADIUS</keyword>

<!-- [rfced] FYI, we have used xml2rfc v2 (available from 
http://xml.resource.org) to convert this document to text.
-->


<abstract>
<t>The DHCPv6 RADIUS option provides a mechanism to exchange authorization and
identification information between the DHCPv6 relay agent and DHCPv6 server. This
architecture assumes that the Network Access Server (NAS) acts as both a DHCPv6
relay agent and RADIUS client. When receiving messages from the DHCPv6 clients,
the NAS consults the RADIUS server and adds the RADIUS response when forwarding
the DHCPv6 client's messages to the DHCPv6 server. The DHCPv6 server then uses
that additional information to generate an appropriate response to the DHCPv6 client's requests.</t>


</abstract>

</front>

<!-- ***** MIDDLE MATTER ***** -->

<middle>

  	
<section anchor="p1" title="Introduction">

<t>DHCPv6 provides a mechanism that allows the server to assign or delegate
both stateful and stateless configuration parameters to clients. The stateful
configuration parameters include IPv6 addresses <xref target="RFC3315"/> and IPv6
prefixes <xref target="RFC3633"/>. The stateless configuration parameters <xref
target="RFC3736"/> include, for example, DNS <xref target="RFC3646"/>, or a
Fully Qualified Domain Name (FQDN) of an Address Family Transition Router (AFTR) <xref target="RFC6334"/>. In the scenarios described in this document, the DHCPv6 server is deployed in the central part of an ISP network.</t>

      <t>RADIUS <xref target="RFC2865"/> is widely used as the centralized
authentication, authorization, and user management mechanism for service
provision in a Broadband access network. <xref target="RFC3162"/>, <xref
target="RFC4818"/>, <xref target="RFC6519"/>, and <xref target="RFC6911"/>
specify the attributes that support the service provision for IPv6-only and
IPv6-transition access. The RADIUS server authorizes the Network Access Server
(NAS) to assign an IPv6 address or prefix from the indicated pool, or to assign
an IPv6 address or prefix with an explicitly indicated value, and to indicate
other configuration parameters as per the RADIUS attributes for the subscribers.
</t> 

<t>When the NAS acts as the distributed DHCPv6 server and RADIUS client
simultaneously, it communicates with the RADIUS server after receiving a request
from the DHCPv6 client. Upon receiving the Access-Accept message from the
RADIUS server, the NAS then responds to the DHCPv6 client's requests per the
associated authorization information indicated by the RADIUS attributes in the
Access-Accept message. When NAS acts as the DHCPv6 relay agent and RADIUS
client simultaneously, and the centralized DHCPv6 server is co-located with the
RADIUS server, they may share the same database of users. However, when the
centralized DHCPv6 server is not located in the same place as the RADIUS server, a new
communication mechanism is needed for the DHCPv6 relay agent to transfer the
authorization information indicated by the RADIUS attributes to the DHCPv6
server.</t>  

</section>


<section anchor="p2" title="Terminology and Language">

<t>This document specifies a new DHCPv6 option for the DHCPv6 Relay Agent to transfer the authorization information of RADIUS attributes received in the Access-Accept message from the RADIUS server to the centralized DHCPv6 server. Definitions for terms and acronyms not specified in this document are defined in <xref target="RFC2865"/> and <xref target="RFC3315"/>.</t>

<t>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 <xref target="RFC2119"/>.</t>

</section>


<section anchor="p3" title="Network Scenarios">

<t>Figures 1 and 2 show the typical network scenarios where the communication
mechanism introduced in this document is necessary. In these scenarios, the
centralized DHCPv6 server is not co-located with the RADIUS server, but both
are in the same administrative domain. The NAS acts as the DHCPv6 relay agent
and the RADIUS client simultaneously. Figure 1 shows the sequence of DHCPv6 and
RADIUS messages for the IP over Ethernet (IPoE) access model, when the access
loop adopts the direct Ethernet encapsulation. Figure 2 shows the sequence of
DHCPv6 and RADIUS messages for the PPP over Ethernet (PPPoE) access model.</t> 

<t>The mechanism introduced in this document is a generic mechanism and might
also be employed in other network scenarios where the DHCPv6 relay agent and
the RADIUS client are located in the same device.</t>

<figure anchor="f1" title="Network Scenario and Message Sequence When Employing
DHCPv6 RADIUS Option in IPoE Access"> 
<artwork>
+-------+                   +-------+                    +-------+
|DHCPv6 |   Access Model:   |  NAS  |                    |RADIUS |
|Client |       IPoE        |       |                    |Server |
+-------+                   +-------+                    +-------+
                   RADIUS Client/DHCPv6 Relay Agent
                               
    |                           |                            |
    |---Solicit---------------->|                            |
    |                           |---Access-Request---------->|
    |                           |                            |
    |                           |&lt;--Access-Accept------------|
    |                           |(e.g. Delegated-IPv6-Prefix)|
    |                           |                            |

           DHCPv6 messages             RADIUS messages

                                                         +-------+
                                                         |DHCPv6 |
                                                         |Server |
                                                         +-------+
    |                           |                            |
    |                           |---Relay-forward----------->|
    |                           |  (OPTION_RADIUS)           |
    |                           |                            |
    |                           |&lt;--Relay-reply -------------|
    |&lt;--Advertise---------------|                            |
    |  (e.g., IA_PD)            |                            |
    |                           |                            |
    |---Request---------------->|                            |
    |  (e.g., IA_PD)            |---Relay-forward----------->|
    |                           |  (OPTION_RADIUS)           |
    |                           |                            |
    |                           |&lt;--Relay-reply -------------|
    |&lt;--Reply-------------------|                            |
    |  (e.g., IA_PD)            |                            |
    |                           |                            |

           DHCPv6 messages             DHCPv6 messages                                
</artwork>
</figure>

<figure anchor="f2" title="Network Scenario and Message Sequence When Employing
DHCPv6 RADIUS Option in PPPoE Access"> 
<artwork>

+-------+                   +-------+                    +-------+
|DHCPv6 |   Access Model:   |  NAS  |                    |RADIUS |
|Client |      PPPoE        |       |                    |Server |
+-------+                   +-------+                    +-------+
                   RADIUS Client/DHCPv6 Relay Agent
                               
    |                           |                            |
    |--PPP LCP Config-Request-->|                            |
    |                           |---Access-Request---------->|
    |                           |                            |
    |                           |&lt;--Access-Accept------------|
    |&lt;----PPP LCP Config-ACK----|(e.g. Delegated-IPv6-Prefix)|
    |                           |                            |

            PPP messages               RADIUS messages

                                                         +-------+
                                                         |DHCPv6 |
                                                         |Server |
                                                         +-------+
    |                           |                            |
    |---Solicit---------------->|                            |                                   
    |                           |---Relay-forward----------->|
    |                           |  (OPTION_RADIUS)           |
    |                           |                            |
    |                           |&lt;--Relay-reply -------------|
    |&lt;--Advertise---------------|                            |
    |  (e.g., IA_PD)            |                            |
    |                           |                            |
    |---Request---------------->|                            |
    |  (e.g., IA_PD)            |---Relay-forward----------->|
    |                           |  (OPTION_RADIUS)
    |                           |                            |
    |                           |&lt;--Relay-reply -------------|
    |&lt;--Reply-------------------|                            |
    |  (e.g., IA_PD)            |                            |
    |                           |                            |

           DHCPv6 messages             DHCPv6 messages                          
</artwork>
</figure>

<t>If the authentication or the authorization through RADIUS fails, the associated message sequences will stop. The NAS acting as the DHCPv6 relay agent will not forward the message received from the client to the DHCPv6 server. If the authentication or the authorization through RADIUS passes, the NAS MUST store the information indicated in the RADIUS attributes received in the Access-Accept message from the RADIUS server during the whole session. How the NAS manages this information during the RADIUS session is out of the scope of this document. </t>

<t>After receiving a RENEW (5) message from the DHCPv6 client, the NAS SHOULD
NOT initiate a new Access-Request/Access-Accept message exchange with the
RADIUS server. After receiving a REBIND (6) message from the DHCPv6 client, the NAS MUST initiate a new Access-Request/Access-Accept message exchange with the RADIUS server, unless RADIUS capability is disabled on the NAS.</t>

</section>


<section anchor="p4" title="DHCPv6 RADIUS Option">

<t>The OPTION_RADIUS is a DHCPv6 option used by the DHCPv6 relay agent to carry the authorization information of RADIUS attributes received in the Access-Accept message from the RADIUS server.</t>

<t>The format of the OPTION_RADIUS option is defined as follows:</t>

<figure><artwork>
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         OPTION_RADIUS         |          option-len           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            option-data (List of RADIUS Attributes)         
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   

option-code      81
option-len       Length of the option-data in octets
option-data      List of one or more RADIUS attributes
</artwork></figure>

<t>The option-data of OPTION_RADIUS is a list of one or more RADIUS attributes
received in the Access-Accept message from the RADIUS server. The format of
RADIUS attributes is defined in Section 5 of <xref target="RFC2865"/> as well
as Sections 2.1 and 2.2 of <xref target="RFC6929"/>. If multiple attributes
with the same type (including the Long Extended Type defined in Section 2.2 of
<xref target="RFC6929"/>) are present, the order of attributes with the same
type MUST be the same as that received from the RADIUS server.  The
OPTION_RADIUS can only contain the RADIUS attributes listed in the "RADIUS
Attributes Permitted in DHCPv6 RADIUS Option" registry.
</t>

<t>According to the network scenarios described in <xref target="p3" />, the
OPTION_RADIUS should appear in the RELAY-FORW (12) message relaying SOLICIT
(1), REQUEST (3), and REBIND (6) from the DHCPv6 client and may appear in the
RELAY-FORW (12) relaying any other message from the DHCPv6 client.</t>


<section anchor="s4.1" title="RADIUS Attributes Permitted in DHCPv6 RADIUS Option">

<t>The RADIUS attributes listed in the following table are the initial 
attributes registered in the "RADIUS Attributes Permitted in DHCPv6 RADIUS
Option" registry. New RADIUS attributes can be added to this list after Expert
Review <xref target="RFC5226"/>.</t> 

<figure><artwork>
Type Code  Attribute                   Reference
26         Vendor-Specific             [RFC2865]
123        Delegated-IPv6-Prefix       [RFC4818]
144        DS-Lite-Tunnel-Name         [RFC6519]
168        Framed-IPv6-Address         [RFC6911]
169        DNS-Server-IPv6-Address     [RFC6911]
171        Delegated-IPv6-Prefix-Pool  [RFC6911]
172        Stateful-IPv6-Address-Pool  [RFC6911]
</artwork></figure>

<t>Note: The RADIUS attribute's 'Length' defined in Section 5 of <xref target="RFC2865"/> includes the length of 'Type' and 'Length' fields.</t>


</section>

</section>


<section anchor="p5" title="DHCPv6 Relay Agent Behavior">

<!-- [rfced] We are having trouble parsing the following sentence.  Please let 
us know how we may clarify.

ORIGINAL:
  The DHCPv6 relay agent includes the permitted RADIUS attributes into 
  OPTION_RADIUS one by one; if multiple attributes with
  the same type are present, the order of attributes with the same type MUST be 
  the same as that received from the RADIUS server. 

SUGGESTED:
  The DHCPv6 relay agent adds the permitted RADIUS attributes into
  OPTION_RADIUS one by one; if multiple attributes with
  the same type are present, the order of attributes with the same type MUST be
  the same as that received from the RADIUS server.
-->

<t> If the Relay Agent is configured to send OPTION_RADIUS, and the
Access-Accept message from the RADIUS server contained RADIUS attributes
permitted for use in OPTION_RADIUS, the Relay Agent MUST include OPTION_RADIUS
in the RELAY-FORW (12) message. The DHCPv6 relay agent adds the permitted
RADIUS attributes into OPTION_RADIUS one by one; if multiple attributes with
the same type are present, the order of attributes with the same type MUST be
the same as that received from the RADIUS server.
</t> 

</section>


<section anchor="p6" title="DHCPv6 Server Behavior">

<t>Upon receipt of the RELAY-FORW (12) message with OPTION_RADIUS from a relay agent, the DHCPv6 server that supports OPTION_RADIUS SHOULD extract and interpret the RADIUS attributes in the OPTION_RADIUS and use that information to select configuration parameters for the requesting client. If the DHCPv6 server does not support OPTION_RADIUS, the DHCPv6 server MUST silently discard this option.</t>

</section>


<section anchor="p7" title="DHCPv6 Client Behavior">

<t>OPTION_RADIUS is only exchanged between the relay agents and the
servers. DHCPv6 clients are not aware of the usage of OPTION_RADIUS. DHCPv6
clients MUST NOT send OPTION_RADIUS and MUST ignore OPTION_RADIUS if
received.</t> 

</section>


<section anchor="p8" title="Security Considerations">

<t>Known security vulnerabilities of the DHCPv6 and RADIUS protocols may apply
to their options. Security issues related with DHCPv6 are described in Section 23
of <xref target="RFC3315"/>. Security issues related with RADIUS are described
in Section 8 of <xref target="RFC2865"/>, Section 5 of <xref
target="RFC3162"/>, and Section 11 of <xref target="RFC6929"/>.</t>

<t>The mechanism described in this document may introduce a new attack vector
against the DHCPv6 server in cases where the DHCPv6 relay agent is compromised. By
forging the RADIUS attributes contained in the OPTION_RADIUS of the RELAY-FORW
(12) messages, the attacker may influence the parameter assignment on the
DHCPv6 server for the DHCPv6 clients. However, as 
described in the <xref target="p3" />, NAS always belongs to the same administrative domain of the DHCPv6 server in the real deployment.</t>

<t>Network administrators should be aware that although RADIUS messages are
encrypted, DHCPv6 messages are always unencrypted. It is possible that some
RADIUS vendor-specific attributes might contain sensitive or confidential
information. Network administrators are strongly advised to prevent such
information from being included in DHCPv6 messages. </t>

<t>If the use of vendor-specific attributes with confidential content is
required, administrators are advised to use IPsec with encryption to protect
the confidentiality of the RADIUS attributes. Relay agents and servers
implementing this specification MUST support the use of IPsec Encapsulating
Security Payload (ESP) with encryption in transport mode, according to Section 3.1.1 of <xref target="RFC4303"/> and Section 21.1 of <xref target="RFC3315"/>.</t>

</section>


<section anchor="p9" title="IANA Considerations">

<t>IANA has assigned OPTION_RADIUS (81) in the "DHCP Option Codes" registry, as
defined in <xref target="p4" />.  In addition, IANA has created a new registry
entitled "RADIUS Attributes Permitted in DHCPv6
RADIUS Option" in the "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)"
registry, as defined in <xref target="s4.1" />. The new registry enumerates the
RADIUS Attributes Types
(http://www.iana.org/assignments/radius-types) that
are permitted for inclusion in the DHCPv6 RADIUS option. 
The allocation policy of this "RADIUS Attributes Permitted in DHCPv6 RADIUS
Option" registry is Expert Review per <xref target="RFC5226"/>. Designated
experts should carefully consider the security implications of allowing the
relay agent to include new RADIUS attributes to this
registry.</t> 

</section>


<section anchor="p10" title="Acknowledgements">

<t>Thanks to Tomek Mrugalski, Bernie Volz, Gaurav Halwasia, and Roberta
Maglione for their thorough review comments in the DHC working group mailing
list. Thanks also to Ted Lemon for his continuous encouragement and technical guidance.</t>

</section>



</middle>

<!-- ***** BACK MATTER ***** -->

<back>

<references title="Normative References">

  &RFC2119;
  &RFC2865;
  &RFC3315;
  &RFC4303; 
  &RFC4818;
  &RFC6519;
  &RFC5226;
  &RFC6911;
  &RFC6929;
  
</references>

<references title="Informative References">

  &RFC3162;
  &RFC3633;
  &RFC3646;
  &RFC3736;
  &RFC6334;
 
</references>

</back>

</rfc>

