RFC 6930
RADIUS Attribute for IPv6 Rapid Deployment on IPv4 Infrastructures (6rd)
RFC 6930 ๐ RADIUS Attribute for IPv6 Rapid Deployment on IPv4 Infrastructures (6rd)
okay bestie, the title block first ๐ this doc is a Standards Track RFC (ISSN 2070-1721), dated April 2013, and it's by D. Guo, S. Jiang (Ed.), R. Despres, and R. Maglione. Guo and Jiang are at Huawei Technologies Co., Ltd, Despres is at RD-IPtech, and Maglione is at Cisco Systems. The header doesn't list anything it obsoletes or updates ๐ธ
Abstract โจ
okay so 6rd (IPv6 Rapid Deployment on IPv4 Infrastructures) gives you IPv4 and IPv6 connectivity at the same time during the IPv4/IPv6 coexistence period ๐ฆ there's already a DHCP 6rd option for setting up the 6rd Customer Edge (CE), but the config info is often stored in AAA servers, while the user's config mostly gets fetched from a Broadband Network Gateway (BNG) over DHCP. so this doc defines a RADIUS attribute that carries the 6rd config from the AAA server to the BNGs. it's giving connecting the dots ๐ฅ
Status of This Memo ๐
this is an Internet Standards Track document ๐ง
it's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). more info on Internet Standards is in Section 2 of RFC 5741.
info about the current status, any errata, and how to give feedback lives at http://www.rfc-editor.org/info/rfc6930 ๐
Copyright Notice ยฉ๏ธ
Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved.
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the publication date. please actually read those, they spell out your rights and restrictions for this doc ๐
if you extract Code Components from this document, they must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License ๐
Table of Contents ๐บ๏ธ
1. Introduction ....................................................3
2. Terminology .....................................................3
3. IPv6 6rd Configuration with RADIUS ..............................4
4. Attributes ......................................................6
4.1. IPv6-6rd-Configuration Attribute ...........................6
4.2. Table of Attributes ........................................9
5. Diameter Considerations .........................................9
6. Security Considerations .........................................9
7. IANA Considerations ............................................10
8. Acknowledgments ................................................10
9. References .....................................................10
9.1. Normative References ......................................10
9.2. Informative References ....................................11
1. Introduction ๐
okay so providers are starting to roll out IPv6 and think about transitioning to it ๐ 6rd [RFC5969] gives you IPv4 and IPv6 connectivity at once during coexistence. it's used to deliver IPv6 service over legacy IPv4-only infrastructure, and it uses the Dynamic Host Configuration Protocol (DHCP) [RFC2131]. the 6rd CE uses the DHCP 6rd option [RFC5969] to discover a 6rd Border Relay and to configure an IPv6 prefix and address โจ
in lots of networks, user config is managed by Authentication, Authorization, and Accounting (AAA) servers. the Remote Authentication Dial-In User Service (RADIUS) protocol [RFC2865] is usually what AAA servers use to talk to network elements ๐ซถ in a fixed-line broadband network, the Broadband Network Gateways (BNGs) act as the access gateway for users. the BNGs are assumed to embed a DHCP server function, so they can handle any DHCP requests from hosts locally ๐
the 6rd config is stored in AAA servers, but user config mostly flows over DHCP between BNGs and hosts/CEs. so we need new RADIUS attributes to pass the info from AAA servers to BNGs. main character energy for RADIUS ๐
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 [RFC2119] ๐
the terms 6rd Customer Edge (6rd CE) and 6rd Border Relay (BR) are defined in [RFC5969]. "MAC" stands for Media Access Control ๐ฆ
3. IPv6 6rd Configuration with RADIUS ๐
okay this section is the choreography ๐ Figure 1 shows how DHCP and RADIUS work together to give the 6rd CE its 6rd config ๐ง
6rd CE BNG AAA Server
| | |
|-------DHCPDISCOVER------>| |
|(Parameter Request w/ 6rd option) |
| |--Access-Request(6rd Attr)-->|
| | |
| |<--Access-Accept(6rd Attr)---|
|<-------DHCPOFFER---------| |
| (6rd option) | |
| | |
DHCP RADIUS
Figure 1: The Cooperation between DHCP and RADIUS
When Combined with RADIUS Authentication
the BNG is a RADIUS client and a DHCP server, bestie ๐ซถ first, the 6rd CE MAY start with a DHCPDISCOVER message that includes a Parameter Request option (55) [RFC2132] with the 6rd option [RFC5969]. when the BNG gets that DHCPDISCOVER, it SHOULD start a RADIUS Access-Request message to the RADIUS server. in that message:
- the User-Name attribute (1) SHOULD be filled by the 6rd CE MAC address, and
- the User-Password attribute (2) SHOULD be filled by the shared 6rd password that has been preconfigured on the DHCP server.
the BNG asks for authentication, as defined in [RFC2865], with the IPv6-6rd-Configuration attribute (Section 4.1) in the desired attribute list ๐ if the AAA server approves the authentication request, an Access-Accept message MUST be acknowledged with the IPv6-6rd-Configuration attribute. then the BNG SHOULD reply to the 6rd CE with a DHCPOFFER message that contains a DHCP 6rd option โจ the recommended format of the MAC address is the one defined in Calling-Station-Id ([RFC3580], Section 3.20) without the SSID (Service Set Identifier) portion ๐
Figure 2 is a different scenario, the later re-authorization ๐ here the authorization isn't coupled with authentication. the 6rd-relevant authorization happens independently after the authentication process ๐ธ
6rd CE BNG AAA Server
| | |
|--------DHCPREQUEST------>| |
|(Parameter Request w/ 6rd option) |
| |--Access-Request(6rd Attr)-->|
| | |
| |<--Access-Accept(6rd Attr)---|
| | |
|<---------DHCPACK---------| |
| (6rd option) | |
| | |
DHCP RADIUS
Figure 2: The Cooperation between DHCP and RADIUS
When Decoupled from RADIUS Authentication
in this scenario, the Access-Request packet SHOULD contain a Service-Type attribute (6) with the value Authorize Only (17). so, according to [RFC5080], the Access-Request packet MUST contain a State attribute that it gets from the previous authentication process ๐ง
in both of the scenarios above, Message-Authenticator (type 80) [RFC2865] SHOULD be used to protect both the Access-Request and Access-Accept messages ๐ก๏ธ
once the BNG gets the IPv6-6rd-Configuration attribute in the initial Access-Accept, it SHOULD store the received 6rd config parameters locally. that way, when the 6rd CE sends a DHCP Request message to extend the lifetime of its assigned address, the BNG doesn't have to start a new Access-Request to the AAA server for the 6rd config. it could pull the stored parameters and use them in its reply ๐
if the BNG doesn't get the IPv6-6rd-Configuration attribute in the Access-Accept, it MAY fall back to a preconfigured default 6rd config, if there is one. if the BNG has no preconfigured default 6rd config, or if it gets an Access-Reject, the tunnel cannot be established ๐
as specified in [RFC2131], Section 4.4.5 ("Reacquisition and expiration"), if the DHCP server that got the DHCP Request message sent at time T1 hasn't responded by time T2 (typically 0.375*duration_of_lease after T1), the 6rd CE (the DHCP client) SHOULD enter the REBINDING state and try to contact any server ๐ฆ
in that situation, the secondary BNG that receives the new DHCP message MUST start a new Access-Request to the AAA server. the secondary BNG MAY include the IPv6-6rd-Configuration attribute in its Access-Request ๐ซถ
4. Attributes โจ
this section defines the IPv6-6rd-Configuration attribute, which is used in both of the scenarios above ๐ the attribute design follows [RFC6158] and refers to [RFC6929] ๐
4.1. IPv6-6rd-Configuration Attribute ๐
okay so bestie, this part is where the magic happens โจ. The spec says that multiple IPv4 addresses have to be tied to one IPv6 prefix ๐ . RADIUS doesn't have a recommended way to group a bunch of attributes together yet, so the design below is kinda the best compromise anyone could come up with ๐ซถ. Here's how the IPv6-6rd-Configuration attribute is laid out ๐ฆ:
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 | SubType1 | SubLen1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4MaskLen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubType2 | SubLen2 | Reserved | 6rdPrefixLen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ 6rdPrefix +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SubType3 | SubLen3 | 6rdBRIPv4Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 6rdBRIPv4Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
The Type is 173 ๐.
Length
The Length is 28 + n*6, which is the whole attribute length in octets ๐. Here n is the number of BR IPv4 addresses, and the minimum for n is 1 ๐ง.
SubType1
SubType1 is 1 ๐. It's the SubType number for the IPv4 Mask Length suboption.
SubLen1
SubLen1 is 6 ๐. That's the length of the IPv4 Mask Length suboption.
IPv4MaskLen
This is the number of high-order bits that are identical across all CE IPv4 addresses inside a given 6rd domain ๐. It can be any value from 0 to 32, and anything bigger than 32 is invalid ๐. Since [RFC6158], Appendix A.2.1, has forbidden 8-bit fields, a 32-bit field is used here ๐ .
SubType2
SubType2 is 2 โจ. It's the SubType number for the 6rd prefix suboption.
SubLen2
SubLen2 is 20 ๐ฆ. That's the length of the 6rd prefix suboption.
Reserved
This is set to all 0 for now, and it's reserved for future use ๐ซถ. To stay compatible with other IPv6 prefix attributes in the RADIUS protocol, the bits MUST be set to zero by the sender and MUST be ignored by the receiver ๐ฅ.
6rdPrefixLen
This is the IPv6 prefix length of the Service Provider's 6rd IPv6 prefix, counted in bits ๐ธ. The 6rdPrefixLen MUST be less than or equal to 128 ๐.
6rdPrefix
This is the Service Provider's 6rd IPv6 prefix, shown as a 16-octet IPv6 address ๐. The bits after the 6rdPrefixlen number of bits in the prefix SHOULD be set to zero โญ.
SubType3
SubType3 is 3 ๐
. It's the SubType number for the 6rd Border Relay IPv4 address suboption.
SubLen3
SubLen3 is 6 ๐. That's the length of the 6rd Border Relay IPv4 address suboption.
6rdBRIPv4Address
This is one or more IPv4 addresses of the 6rd Border Relay(s) for a given 6rd domain ๐ฆ. The maximum RADIUS attribute length of 255 octets gives us a limit of 37 IPv4 addresses ๐ญ.
Since the subtypes have values, they can show up in any order ๐ง. If multiple 6rdBRIPv4Address (subtype 3) entries appear, they are RECOMMENDED to be placed together ๐ซถ.
The IPv6-6rd-Configuration attribute is normally used in Access-Accept messages ๐. It MAY also be used in Access-Request packets as a hint for the RADIUS server ๐ธ. For example, if the BNG is preconfigured with a default 6rd configuration, those parameters MAY be inserted into the attribute ๐. The RADIUS server MAY ignore the hint from the BNG, and it MAY assign different 6rd parameters ๐ .
If the BNG includes the IPv6-6rd-Configuration attribute but the AAA server doesn't recognize it, the AAA server MUST ignore this attribute ๐.
If the BNG doesn't receive the IPv6-6rd-Configuration attribute in the Access-Accept, it MAY fall back to a preconfigured default 6rd configuration, if there is one ๐. If the BNG doesn't have any preconfigured default 6rd configuration, the 6rd tunnel cannot be established ๐.
If the BNG is pre-provisioned with a default 6rd configuration and the 6rd configuration received in the Access-Accept is different from that default, then the 6rd configuration received in the Access-Accept message MUST be used for the session ๐ฅ.
If the BNG can't support the received 6rd configuration for any reason, the tunnel SHOULD NOT be established ๐ญ.
4.2. Table of Attributes ๐
4.2. Table of Attributes
This table adds to the one in [RFC2865], Section 5.44, and it's a handy guide to how many IPv6-6rd-Configuration attributes can show up in each kind of packet ๐ .
Request Accept Reject Challenge Accounting # Attribute
Request
0-1 0-1 0 0 0-1 173 IPv6-6rd-
Configuration
0-1 0-1 0 0 0-1 1 User-Name
0-1 0 0 0 0-1 2 User-Password
0-1 0-1 0 0 0-1 6 Service-Type
0-1 0-1 0-1 0-1 0-1 80 Message-Authenticator
Here's the key for the table entries ๐:
0 This attribute MUST NOT be present in packet.
0+ Zero or more instances of this attribute MAY be present in
packet.
0-1 Zero or one instance of this attribute MAY be present in
packet.
1 Exactly one instance of this attribute MUST be present in
packet.
5. Diameter Considerations ๐ฆ
This attribute works with either RADIUS or Diameter [RFC6733] ๐ซถ. Since the attribute in this document comes from the standard RADIUS type space, Diameter entities don't need any special handling ๐ง.
6. Security Considerations ๐ฅ
In 6rd scenarios, both the CE and the BNG live inside a provider network, which can be treated as a closed network and a lower-threat environment ๐ธ. A similar consideration applies to the RADIUS message exchange between the BNG and the AAA server ๐.
In 6rd scenarios, RADIUS runs over IPv4 ๐ญ. Known security vulnerabilities of the RADIUS protocol are discussed in [RFC2607], [RFC2865], and [RFC2869] ๐. Using IPsec [RFC4301] to provide security when RADIUS is carried over IPv6 is discussed in [RFC3162] ๐.
To get unauthorized 6rd configuration information, a malicious user may use MAC address spoofing and/or a dictionary attack on the shared 6rd password that's been preconfigured on the DHCP server ๐จ. The relevant security issues are covered in Section 12 of [RFC5969] ๐.
Security issues that may arise specifically between the 6rd CE and the BNG are discussed in [RFC5969] ๐. Furthermore, generic DHCP security mechanisms can be applied to DHCP intercommunication between the 6rd CE and the BNG โจ.
Security considerations for the Diameter protocol are discussed in [RFC6733] ๐ .
7. IANA Considerations ๐
Per this document, IANA has assigned one new RADIUS Attribute Type in the "Radius Types" registry (currently located at http://www.iana.org/assignments/radius-types) for the following attribute ๐ฆ:
IPv6-6rd-Configuration (173)
8. Acknowledgments ๐ซถ
The authors would like to thank Alan DeKok, Yong Cui, Leaf Yeh, Sean Turner, Joseph Salowey, Glen Zorn, Dave Nelson, Bernard Aboba, Benoit Claise, Barry Lieba, Stephen Farrell, Adrian Farrel, Ralph Droms, and other members of the SOFTWIRE WG, RADEXT WG, AAA Doctors, and Security Directorate for valuable comments ๐.
9. References ๐
9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC
2131, March 1997.
[RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
Extensions", RFC 2132, March 1997.
[RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson,
"Remote Authentication Dial In User Service (RADIUS)", RFC
2865, June 2000.
[RFC3162] Aboba, B., Zorn, G., and D. Mitton, "RADIUS and IPv6", RFC
3162, August 2001.
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the
Internet Protocol", RFC 4301, December 2005.
[RFC5080] Nelson, D. and A. DeKok, "Common Remote Authentication
Dial In User Service (RADIUS) Implementation Issues and
Suggested Fixes", RFC 5080, December 2007.
[RFC5969] Townsley, W. and O. Troan, "IPv6 Rapid Deployment on IPv4
Infrastructures (6rd) -- Protocol Specification", RFC
5969, August 2010.
[RFC6158] DeKok, A., Ed., and G. Weber, "RADIUS Design Guidelines",
BCP 158, RFC 6158, March 2011.
[RFC6733] Fajardo, V., Ed., Arkko, J., Loughney, J., and G. Zorn,
Ed., "Diameter Base Protocol", RFC 6733, October 2012.
9.2. Informative References
[RFC2607] Aboba, B. and J. Vollbrecht, "Proxy Chaining and Policy
Implementation in Roaming", RFC 2607, June 1999.
[RFC2869] Rigney, C., Willats, W., and P. Calhoun, "RADIUS
Extensions", RFC 2869, June 2000.
[RFC3580] 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.
[RFC6929] DeKok, A. and A. Lior, "Remote Authentication Dial-In User
Service (RADIUS) Protocol Extensions", RFC 6929, April
2013.
Authors' Addresses ๐ฎ
Dayong Guo
Huawei Technologies Co., Ltd
Q14 Huawei Campus, 156 BeiQi Road,
ZhongGuan Cun, Hai-Dian District, Beijing 100095
P.R. China
EMail: guoseu@huawei.com
Sheng Jiang (Editor)
Huawei Technologies Co., Ltd
Q14 Huawei Campus, 156 BeiQi Road,
ZhongGuan Cun, Hai-Dian District, Beijing 100095
P.R. China
EMail: jiangsheng@huawei.com
Remi Despres
RD-IPtech
3 rue du President Wilson
Levallois
France
EMail: despres.remi@laposte.net
Roberta Maglione
Cisco Systems
181 Bay Street
Toronto, ON
M5J 2T3
Canada
EMail: robmgl@cisco.com
๐ฆ where this page comes from
- ietf: rfc6930 2013-04
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms