RFC 3162
RADIUS and IPv6
RFC 3162: RADIUS and IPv6 π
Network Working Group πΈ Authors: B. Aboba (Microsoft), G. Zorn (Cisco Systems), D. Mitton (Circular Logic UnLtd.) π Category: Standards Track β¨ Date: August 2001 π Obsoletes / Updates: the title block doesn't list any RFCs it obsoletes or updates π¦
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 (2001). All Rights Reserved. π
Abstract π¦
okay so this doc is all about running RADIUS (Remote Authentication Dial In User Service) over IPv6 π«Ά It also covers the RADIUS attributes used to support IPv6 network access, so you can actually get online with it. π
1. Introduction π
Okay bestie, this doc is about running RADIUS [4]-[8] over IPv6 [13], plus the RADIUS attributes that make IPv6 network access work. β¨
Here's the tea. A NAS sending a RADIUS Access-Request may not know a-priori whether the host will be using IPv4, IPv6, or both. π For example, inside PPP, IPv6CP [11] happens after LCP. That means address assignment doesn't happen until after RADIUS authentication and authorization is completely done. It's giving sequencing drama π
So the IPv6 attributes in this doc MAY be sent along with IPv4-related attributes in the same RADIUS message, and the NAS will decide which attributes to use. π§ The NAS SHOULD only allocate addresses and prefixes that the client can actually use, though. No hoarding! For example, there's no need for the NAS to reserve an IPv4 address for a host that only supports IPv6. Likewise, a host only using IPv4 or 6to4 [12] doesn't need an IPv6 prefix allocated. π
The NAS can provide IPv6 access natively, or through other methods like IPv6 within IPv4 tunnels [15] or 6over4 [14]. The method doesn't change RADIUS usage per se. The one exception: if you want an IPv6 within IPv4 tunnel opened to a particular location, you should use tunnel attributes, as described in [6], [7]. πΈ
1.1. Requirements language π
Here's how the key words in this document get read. The words "MAY", "MUST, "MUST NOT", "optional", "recommended", "SHOULD", and "SHOULD NOT" are to be interpreted as described in [1]. π
2. Attributes π·
2.1. NAS-IPv6-Address π¦
Description
This Attribute indicates the identifying IPv6 Address of the NAS which is requesting authentication of the user. It SHOULD be unique to the NAS within the scope of the RADIUS server. NAS-IPv6-Address is only used in Access-Request packets. NAS-IPv6-Address and/or NAS-IP-Address MAY be present in an Access-Request packet. However, if neither attribute is present, then NAS-Identifier MUST be present. π«Ά
Here's the layout. The fields are transmitted from left to right. β¨
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 | Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 95 for NAS-IPv6-Address π₯
Length: 18 π«
Address: the Address field is 16 octets. π
3.2. Framed-Interface-Id π§
Description
This Attribute indicates the IPv6 interface identifier to be configured for the user. It MAY be used in Access-Accept packets. If the Interface-Identifier IPv6CP option [11] has been successfully negotiated, this Attribute MUST be included in an Access-Request packet as a hint by the NAS to the server that it would prefer that value. It is recommended, but not required, that the server honor the hint. π
The layout is the same left-to-right transmission deal. π
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 | Interface-Id
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Interface-Id
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Interface-Id |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 96 for Framed-Interface-Id π
Length: 10 π
Interface-Id: the Interface-Id field is 8 octets. π¦
2.3. Framed-IPv6-Prefix πΈ
Description
This Attribute indicates an IPv6 prefix (and corresponding route) to be configured for the user. It MAY be used in Access-Accept packets, and it 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 prefix(es), but the server is not required to honor the hint. Since it is assumed that the NAS will plumb a route corresponding to the prefix, it is not necessary for the server to also send a Framed-IPv6-Route attribute for the same prefix. π₯
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 | Reserved | Prefix-Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Prefix
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Prefix
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Prefix
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Prefix |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 97 for Framed-IPv6-Prefix π
Length: at least 4 and no larger than 20. π
Reserved: this field is reserved and MUST be present, and it is always set to zero. β
Prefix-Length: the length of the prefix, in bits. At least 0 and no larger than 128. π§
Prefix: the Prefix field is up to 16 octets in length. Bits outside of the Prefix-Length, if included, must be zero. π
2.4. Login-IPv6-Host π·
Description
This Attribute indicates the system with which to connect the user, when the Login-Service Attribute is included. It MAY be used in Access-Accept packets. It MAY be used in an Access-Request packet as a hint to the server that the NAS would prefer to use that host, but the server is not required to honor the hint. π
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 | Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 98 for Login-IPv6-Host π¦
Length: 18 β¨
Address: the Address field is 16 octets in length. The value 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF indicates that the NAS SHOULD allow the user to select an address or name to be connected to. The value 0 indicates that the NAS SHOULD select a host to connect the user to. Other values indicate the address the NAS SHOULD connect the user to. π«Ά
2.5. Framed-IPv6-Route π
Description
This Attribute provides routing information to be configured for the user on the NAS. It is used in the Access-Accept packet and can appear multiple times. πΈ
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Text ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 99 for Framed-IPv6-Route π₯
Length: >=3 π
Text: the Text field is one or more octets, and its contents are implementation dependent. The field is not NUL (hex 00) terminated. It is intended to be human readable and MUST NOT affect operation of the protocol. π
For IPv6 routes, it SHOULD contain a destination prefix, optionally followed by a slash and a decimal length specifier stating how many high order bits of the prefix to use. That is followed by a space, a gateway address, a space, and one or more metrics (encoded in decimal) separated by spaces. Prefixes and addresses are formatted as described in [16]. For example:
"2000:0:0:106::/64 2000::106:a00:20ff:fe99:a998 1"
Whenever the gateway address is the IPv6 unspecified address, the IP address of the user SHOULD be used as the gateway address. The unspecified address can be expressed in any of the acceptable formats described in [16]. For example:
"2000:0:0:106::/64 :: 1"
2.6. Framed-IPv6-Pool β
Description
This Attribute contains the name of an assigned pool that SHOULD be used to assign an IPv6 prefix for the user. If a NAS does not support multiple prefix pools, the NAS MUST ignore this Attribute. π§
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | String...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 100 for Framed-IPv6-Pool π
Length: >= 3 π·
String: the string field contains the name of an assigned IPv6 prefix pool configured on the NAS. The field is not NUL (hex 00) terminated. π
That's part 1 of the RFC 3162 glow-up done, bestie! π More is coming in part 2, so stay tuned π
3. Table of Attributes β¨
okay so this table is basically your cheat sheet πΈ it tells you which attributes can show up in which kinds of packets, and how many of each you're allowed to bring π
Request Accept Reject Challenge Accounting # Attribute
Request
0-1 0 0 0 0-1 95 NAS-IPv6-Address
0-1 0-1 0 0 0-1 96 Framed-Interface-Id
0+ 0+ 0 0 0+ 97 Framed-IPv6-Prefix
0+ 0+ 0 0 0+ 98 Login-IPv6-Host
0 0+ 0 0 0+ 99 Framed-IPv6-Route
0 0-1 0 0 0-1 100 Framed-IPv6-Pool
4. References π¦
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March, 1997.
[2] Yergeau, F., "UTF-8, a transformation format of Unicode and ISO 10646", RFC 2044, October 1996.
[3] Aboba, B. and J. Vollbrecht, "Proxy Chaining and Policy Implementation in Roaming", RFC 2607, June 1999.
[4] Rigney, C., Rubens, A., Simpson, W. and S. Willens, "Remote Authentication Dial In User Service (RADIUS)", RFC 2865, June 2000.
[5] Rigney, C., "RADIUS Accounting", RFC 2866, June 2000.
[6] Zorn, G., Mitton, D. and B. Aboba, "RADIUS Accounting Modifications for Tunnel Protocol Support", RFC 2867, June 2000.
[7] Zorn, G., Leifer, D., Rubens, A., Shriver, J., Holdrege, M. and I. Goyret, "RADIUS Attributes for Tunnel Protocol Support", RFC 2868, June 2000.
[8] Rigney, C., Willats, W. and P. Calhoun, "RADIUS Extensions", RFC 2869, June 2000.
[9] Kent S. and R. Atkinson, "Security Architecture for the Internet Protocol", RFC 2401, November 1998.
[10] Alvestrand, H. and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
[11] Haskin, D. and E. Allen, "IP Version 6 over PPP", RFC 2472, December 1998.
[12] Carpenter, B. and K. Moore, "Connection of IPv6 Domains via IPv4 Clouds", RFC 3056, February 2001.
[13] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998.
[14] Carpenter, B. and C. Jung, "Transmission of IPv6 over IPv4 Domains without Explicit Tunnels", RFC 2529, March 1999.
[15] Gilligan, R. and E. Nordmark, "Transition Mechanisms for IPv6 Hosts and Routers", RFC 2893, August 2000.
[16] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 2373, July 1998.
5. Security Considerations π₯
okay bestie, this part is SERIOUS so pay attention π this doc is about using RADIUS for authentication, authorization and accounting in IPv6-enabled networks. RADIUS can run over IPv4 or over IPv6 there. The known security vulnerabilities of RADIUS are covered in [3], [4] and [8], so go read those too π
IPSEC [9] is mandatory to implement for IPv6, so RADIUS implementations that support IPv6 will typically run over IPSEC. When RADIUS is running over IPSEC and certificates are used for authentication, it may be desirable to skip managing RADIUS shared secrets, so you can get the better scalability of public key infrastructure β¨
here's the tea π« within RADIUS, a shared secret hides attributes like User-Password [4] and Tunnel-Password [7]. The shared secret also gets used to compute the Response Authenticator [4] and the Message-Authenticator attribute [8]. So in RADIUS, the shared secret is doing confidentiality AND integrity protection AND authentication all at once π§ that means only IPSEC ESP with a non-null transform can give you security good enough to replace RADIUS application-layer security. If you're using IPSEC AH or ESP null, you'll typically still need to configure a RADIUS shared secret π
where RADIUS runs over IPSEC ESP with a non-null transform, the secret shared between the NAS and the RADIUS server MAY NOT be configured. in that case, a shared secret of zero length MUST be assumed. π
6. IANA Considerations π
this document needs six new RADIUS attribute numbers assigned, one for each of these:
NAS-IPv6-AddressFramed-Interface-IdFramed-IPv6-PrefixLogin-IPv6-HostFramed-IPv6-RouteFramed-IPv6-Pool
check section 3 for the registered list of numbers π
7. Acknowledgments π«Ά
the authors want to shout out Jun-ichiro itojun Hagino of IIJ Research Laboratory, Darran Potter of Cisco, and Carl Rigney of Lucent for their contributions to this doc. thank you queens π
8. Authors' Addresses π
Bernard Aboba
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
Phone: +1 425 936 6605
Fax: +1 425 936 7329
EMail: bernarda@microsoft.com
Glen Zorn
Cisco Systems, Inc.
500 108th Avenue N.E., Suite 500
Bellevue, WA 98004
Phone: +1 425 471 4861
EMail: gwz@cisco.com
Dave Mitton
Circular Logic UnLtd.
733 Turnpike Street #154
North Andover, MA 01845
Phone: 978 683-1814
Email: david@mitton.com
Full Copyright Statement β
the legal bit stays word-for-word, no edits, because it's not my place to change it π
Copyright (C) The Internet Society (2001). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS 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.
Acknowledgement π
funding for the RFC Editor function is currently provided by the Internet Society. and that's the whole doc, bestie π¦β¨
π¦ where this page comes from
- ietf: rfc3162 2001-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms