<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

<rfc category="std" ipr="full3978" docName="draft-lourdelet-radext-ipv6-dhcp-00.txt">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<front>
  <title abbrev="IPv6 RADIUS attributes for DHCP">
    IPv6 RADIUS attributes for DHCP based networks
  </title>

  <author fullname="Benoit Lourdelet" initials="B.L." surname="Lourdelet">
    <organization>Cisco Systems, Inc.</organization>
    <address>
      <postal>
        <street>Village ent. GreenSide, Bat T3,</street>
        <street>400, Av de Roumanille,</street>
        <city>06410 BIOT - Sophia-Antipolis Cedex</city>
        <country>France</country>
      </postal>
      <phone>+33 4 97 23 26 23</phone>
      <email>blourdel@cisco.com</email>
    </address>
  </author>

  <date/>

  <abstract>
  <t> This document specifies RADIUS [RFC2865] attributes supporting IPv6 network access
   to complement [RFC3162] in DHCP environments. It addresses the need to dynamically advertise DNS Server addresses and 
   one or multiple IPv6 addresses via DHCPv6.</t>
  </abstract>
</front>

<middle>

<section title="Requirements notation">

<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 title="Introduction">

<t>This document specifies RADIUS attributes used to support DHCP based IPv6 
   access networks : DNS Server IPv6 address and IPv6 addresses. </t>
</section>

<section title="Deployment scenario">

<t>The attributes defined in this document are targeted at enhancing the IPv6 access deployment scenarios
involving DHCPv6 [RFC3315].</t>

<t>The IPv6-Address attribute is used by a router
 fulfilling DHCPv6 Server function for individual addresses
 when it receives configuration information from a RADIUS server, as illustrated in the following message sequence.</t>

<figure><artwork align="left"><![CDATA[
 Router/Host (DHCPv6 Client)  Router (DHCPv6 Server)  RADIUS Server
    |                           |                                |
    |--Solicit(Address)-------->|                                |
    |                           |-----Request------------------->|
    |                           |<---------Accept(IPv6-Address)--|
    |<-Advertise(Address)-------|                                |
    |---Request(Address)------->|                                |
    |<---Reply(Address)---------|                                |


]]></artwork></figure>

<t> This attributes offers an entire IPv6 address to the DHCPv6 Server in contrast to Interface-id  [RFC3162] that offers only 64 bits.
Even concatenated with Framed-IPv6 prefix [RFC3162] to make a 128 bit IPv6 address, this does not address
scenarios where there is a need to offer multiple addresses or off-link IPv6 addresses 
that are not part of the prefix stored in the Framed-IPv6-Prefix attribute.
Storing the IPv6 address in the subscriber RADIUS profile is particularly useful as the Service Provider will know 
in advance the customers uplink IPv6 address, hence facilitating management or security policy implementation.</t>

<t>The IPv6-DNS  attribute is used by a router
 fulfilling DHCPv6 Server function for individual addresses
 when it receives configuration information from a RADIUS server, as illustrated in the following message sequence.</t>

<figure><artwork align="left"><![CDATA[
 Router/Host (DHCPv6 Client)  Router (DHCPv6 Server)    RADIUS Server
     |                            |                                |
     |--Solicit (DNS)------------>|                                |
     |                            |-Request----------------------->|
     |                            |<-------Accept(Ipv6-DNS)--------|
     |<-Advertise(DNS)------------|                                |
     |-Request(DNS)-------------->|                                |
     |<--Reply(DNS)---------------|                                |
    
               
]]></artwork></figure>

<t>The attributes offer the capability to specify IPv6 DNS Server address
 on a subscriber basis instead of hardcoding
the value on the DHCP Server on a pool basis. This is particularly useful 
in wholesale scenarios where the list of DNS Servers to provide depends 
on the subscriber itself.</t>

</section>

<section title="IPv6-Address Attribute">


<t>This Attribute indicates an IPv6 Address that is assigned to the uplink 
      of the user equipment.
      This attribute will be mapped to Non-temporary Addresses option in DHCPv6.
      It MAY be used in Access-Accept packets, and can appear multiple times.
      It MAY be used in an Access-Request packet as a hint by the NAS to the server that it
      would prefer these IPv6 address(es), but the server is not required to
      honor the hint.  Since it is assumed that the NAS, when necessary will add a
      route corresponding to the address, it is not necessary for the
      server to also send a host Framed-IPv6-Route attribute for the same
      address.</t>
  
<t>A summary of the IPv6-Address Attribute format is shown below.
The fields are transmitted from left to right.</t>

<figure><artwork align="left"><![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |    Length     |             IPv6-Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                             IPv6-Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                            IPv6-Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                            IPv6-Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          IPv6-Address           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  
Type

 x for IPv6-Address

Length

 18 

IPv6-Address

 The IPv6-Address field is 16 octets.
]]></artwork></figure>

</section>

<section title="IPv6-DNS Attribute"> 

<t>  The IPv6-DNS Attribute contains an
      ordered list of addresses of the Domain Name Service (DNS) Servers to
      be used by the DHCPv6 Client. This attribute is mapped into the DNS Recursive Name Server option [RFC3646].
      This attribute MAY be included in both Access-Accept and Accounting-Request packets.</t>

<t>A summary of the IPv6-DNS Attribute format is given
   below.  The fields are transmitted left to right.</t>

<figure><artwork align="left"><![CDATA[
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Type         |    Length     |           IPv6-Address-1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                            IPv6-Address-1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                            IPv6-Address-1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                            IPv6-Address-1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          IPv6-Address-1        |     IPv6-Address-2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          IPv6-Address-2 ....................
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
Type
   y  for IPv6-DNS

Length
   2 + number of DNS Servers

IPv6-Address(es)
   Each IPv6-Address in the list is 16 octets in length. 
   It contains the IPv6 addresses of the DNS servers.
]]></artwork></figure>

</section>

<section title="Table of attributes"> 

<t> The following table provides a guide to which attributes may be found
   in which kinds of packets, and in what quantity.</t>

<figure><artwork align="left"><![CDATA[
   Request Accept Reject Challenge Accounting  #  Attribute
                                   Request
   0-1     0-1     0      0         0-1         x  IPv6-Address
   0       0-1     0      0         0-1         y  IPv6-DNS
]]></artwork></figure> 


</section>

<section title="Security Considerations">

<t>  Security considerations do not differ from the one expressed in RFC3162.</t>

</section>


<section title="IANA Considerations">

<t>This document requires the assignment of two new RADIUS attribute
   numbers for the following attributes:</t>
<figure><artwork align="left"><![CDATA[
      	IPv6-Address
     	IPv6-DNS
]]></artwork></figure>	

</section>

</middle>

<back>

<references title='Normative References'>

   <?rfc include="reference.RFC.3162" ?>
   <?rfc include="reference.RFC.3315" ?>
   <?rfc include="reference.RFC.3646" ?>

</references>   

<references title='Informative References'>

   <?rfc include="reference.RFC.2119" ?>

   <?rfc include="reference.RFC.2865" ?>

</references>

</back>

</rfc>
