Internet Engineering Task Force | S. Bhandari |
Internet-Draft | G. Halwasia |
Intended status: Standards Track | S. Gundavelli |
Expires: August 22, 2013 | Cisco Systems |
H. Deng | |
China Mobile | |
L. Thiébaut | |
Alcatel-Lucent | |
J. Korhonen | |
Renesas Mobile | |
February 18, 2013 |
DHCPv6 class based prefix
draft-bhandari-dhc-class-based-prefix-04
This document introduces options to communicate property and associate metadata with prefixes. It extends DHCPv6 prefix delegation and address allocation using the metadata for selection of prefixes and addresses.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 22, 2013.
Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
In IPv6 a network interface can acquire multiple addresses from the same scope. In such a multi-prefix network each of the multiple prefixes can have a specific property and purpose associated with it. Example: In a mobile network a mobile device can be assigned a prefix from its home network and another from the visiting network that it is attached to. Another example is a prefix may provide free internet access without offering any quality of service guarantees while another prefix may be charged along with providing quality of service guarantees for network service access. A prefix can have well defined properties that is universal and have a metadata associated with it that communicates its local significance. The properties and metadata of prefix will be relevant for prefix delegation, source address selection as elaborated in the subsequent sections.
This document defines OPTION_PREFIX_PROPERTY option that communicates property of the prefix that is universally understood.This document defines OPTION_PREFIX_CLASS option to communicate metadata of the prefix that communicates the prefix's local significance.
This document discusses usage of OPTION_PREFIX_CLASS to request and select prefixes with specific metadata via IA_PD and IA_NA as defined in [RFC3633] and[RFC3315] respectively.This document defines the behavior of the DHCPv6 server, the DHCPv6 prefix requesting router and the DHCPv6 client to use OPTION_PREFIX_CLASS option for requesting and selecting prefixes and addresses.
The network address can be configured via DHCPv6 as defined in [RFC3315] or via Stateless Address Autoconfiguration (SLAAC) as defined in [RFC4862], additional information of a prefix can be provided via DHCPv6 or via IPv6 Router Advertisement (RA). The information provided in the options defined in this document OPTION_PREFIX_PROPERTY and OPTION_PREFIX_CLASS can be used for source address selection. Communicated property and metadata information about the prefix via IPv6 Router Advertisement (RA) will be dealt with in separate document [I-D.korhonen-dmm-prefix-properties].
In this section motivation for class based prefix delegation that qualifies the delegated prefix with additional class information is described in the context of mobile networks and home networks. The property information attached to a delegated prefix helps to distinguish a delegated IPv6 prefix and selection of the prefix by different applications using it.
In the mobile network architecture, there is a mobile router which functions as a IP network gateway and provides IP connectivity to mobile nodes. Mobile router can be the requesting router requesting delegated IPv6 prefix using DHCPv6. Mobile router can assume the role of DHCPv6 server for mobile nodes(DHCPv6 clients) attached to it. A mobile node in mobile network architecture can be associated with multiple IPv6 prefixes belonging to different domains for e.g. home address prefix, care of address prefix as specified in [RFC3775].
The delegated prefixes when seen from the mobile router perspective appear to be like any other prefix, but each prefixes have different metadata referred to as "Prefix Color" in the mobile networks. Some delegated prefixes may be topologically local and some may be remote prefixes anchored on a global anchor, but available to the local anchor by means of tunnel setup in the network between the local and global anchor. Some may be local with low latency characteristics suitable for voice call break-out, some may have global mobility support. So, the prefixes have different properties and it is required for the application using the prefix to learn about this property in order to use it intelligently. There is currently no semantics in DHCPv6 prefix delegation that can carry this information to specify properties of a delegated prefix. In this scenario, the mobile router is unable to further delegate a longer prefix intelligently based on properties of the prefix learnt. Neither is a mobile device able to learn about the property of the prefix assigned to influence source address selection. Example to determine if the prefix is a home address or care of address.
In a fixed network environment, the homenet CPE may also function as both a DHCPv6 client (requesting the IA_PD(s)) and a DHCPv6 server allocating prefixes from delegated prefix(es) to downstream home network hosts. Some service providers may wish to delegate multiple prefixes to the CPE for use by different services classes and traffic types.
Motivations for this include:
To meet these requirements, when the CPE (functioning as a DHCPv6 server) receives an IA_NA or IA_TA request from a homenet host, a mechanism is required so that the correct prefix for requested service class can be selected for allocation. Likewise for DHCPv6 clients located in the homenet, a mechanism is necessary so that the intended service class for a requested prefix can be signalled to the DHCPv6 server.
This document uses the terminology defined in [RFC2460], [RFC3315] and [RFC3633].
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 [RFC2119].
This section defines prefix property and prefix class options in IA_PD and IA_NA. This section defines the behavior of the delegating router, the requesting router and the DHCPv6 client. It discusses these options in the context of a DHCPv6 information request from a DHCPv6 client to a DHCPv6 server.
The format of the DHCPv6 prefix property and prefix class options are shown below.
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_PREFIX_PROPERTY | option-length(2) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Properties | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code: OPTION_PREFIX_PROPERTY (TBD1) option-length: 2 Properties: 16 bits maintained as OPTION_PREFIX_PROPERTY in IANA registered namespace. Each value in the registry represents a property. Multiple properties can be represented by bitwise ORing of the individual property values in this field.
Prefix Property Option
Along with the OPTION_PREFIX_PROPERTY a metadata associated with the prefix that is of local relevance is communicated using OPTION_PREFIX_CLASS defined below:
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_PREFIX_CLASS | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix Class | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ option-code: OPTION_PREFIX_CLASS (TBD2) option-length: 2 Prefix Class: 16 bit integer with the integer value of local significance.
Prefix Class Option
The model of operation of communicating prefixes to be used by a DHCPv6 server is as follows. A requesting router requests prefix(es) from the delegating router, as described in Section 2.2.1. A delegating router is provided IPv6 prefixes to be delegated to the requesting router. Examples of ways in which the delegating router is provided these prefixes are:
The delegating router chooses prefix(es) for delegation, and responds with prefix(es) to the requesting router along with additional options in the allocated prefix as described in Section 2.2.2. The requesting router is then responsible for the delegated prefix(es) after the DHCPv6 REQUEST message exchange. For example, the requesting router may create DHCPv6 server configuration pools from the delegated prefix, and function as a DHCPv6 Server. When the requesting router then receives a DHCPv6 IA_NA requests it can select the address to be allocated based on the OPTION_PREFIX_CLASS option received in IA_NA request or any of the other method as described in Section 2.3.1.
DHCPv6 requesting router can request for prefixes in the following ways:
The requesting router parses the OPTION_PREFIX_CLASS option in the OPTION_IAPREFIX option area of the corresponding IA_PD Prefix option in the ADVERTISE message. The Requesting router MUST then include all or subset of the received class based prefix(es) in the REQUEST message so that it will be responsible for the prefixes selected.
The requesting router parses and stores OPTION_PREFIX_PROPERTY if received with the prefix.
If the Delegating router supports class based prefix allocation by supporting the OPTION_PREFIX_CLASS option and it is configured to assign prefixes from different classes, it selects prefixes for class based prefix allocation in the following way:
The delegating router responds with an ADVERTISE message after populating the IP_PD option with prefixes from different classes. Along with including the IA_PD prefix options in the IA_PD option, it MAY include the OPTION_PREFIX_CLASS option in the OPTION_IAPREFIX option area of the corresponding IA_PD prefix option with the class information of the prefix.
If neither the OPTION_ORO nor the IA_PD option in the SOLICIT message include the OPTION_PREFIX_CLASS option, then the delegating router MAY allocate the prefix as specified in [RFC3633] without including the class option in the IA_PD prefix option in the response.
If OPTION_ORO option in the Solicit message includes the OPTION_PREFIX_CLASS option code but the delegating router does not support the solution described in this specification, then the delegating router acts as specified in [RFC3633]. The requesting router MUST in this case also fall back to the behavior specified in [RFC3633].
If both delegating and requesting routers support class-based prefix allocation, but the delegating router cannot offer prefixes for any other reason, it MUST respond to requesting router with appropriate status code as specified in [RFC3633]. For e.g., if no prefixes are available in the specified class then the delegating router MUST include the status code NoPrefixAvail in the response message.
In addition if the delegating router has additional property associated with the prefix it will be provided in OPTION_PREFIX_PROPERTY option.
DHCPv6 client MAY request for an IA_NA address allocation from a specific prefix class in the following way:
If DHCPv6 client receives OPTION_PREFIX_CLASS, OPTION_PREFIX_PROPERTY options in the IAaddr-options area of the corresponding IA_NA but does not support one or both of these options, it SHOULD ignore the received option(s).
The DHCPv6 server parses OPTION_PREFIX_CLASS option received and when it supports allocation within the requested OPTION_PREFIX_CLASS responds with an ADVERTISE message after populating the IA_NA option with address information from the requested prefix class. Along with including the IA Address options in the IA_NA option, it also includes the OPTION_PREFIX_CLASS option in the corresponding IAaddr-options area.
Even though the IA_NA option in the SOLICIT message does not include the OPTION_PREFIX_CLASS option, based on local policies, the DHCP server MAY select a default OPTION_PREFIX_CLASS value for the client and then SHOULD include the OPTION_PREFIX_CLASS option in the IAaddr-options area of the corresponding IA_NA it sends to the client. If both DHCP client and server support class based address allocation, but the DHCP server cannot offer addresses in the specified Usage class then the DHCP server MUST include the status code NoAddrsAvail (as defined in [RFC3315]) in the response message. If the DHCP server cannot offer addresses for any other reason, it MUST respond to client with appropriate status code as specified in [RFC3315]. In addition if the server has additional property associated with the prefix by means of configuration or learnt from DHCPv6 prefix delegation or derived via any other means it MUST be sent as OPTION_PREFIX_PROPERTY option.
Class based prefix delegation can be used by the requesting router to configure itself as a DHCPv6 server to serve its DHCPv6 clients. It can allocate longer prefixes from a delegated shorter prefix it received, for serving IA_NA and IA_PD requests. Prefix property and class can be used for source address selection by applications using the prefix for communication.
The requesting router can use the delegated prefix(es) from different classes (for example "video" (1), "guest"(2), "voice" (3) etc), for assigning the IPv6 addresses to the end hosts through DHCPv6 IA_NA based on a preconfigured mapping with OPTION_PREFIX_CLASS option, the following conditions MAY be observed:
The requesting router playing the role of a DHCPv6 server can ADVERTISE IA_NA from a class of prefix(es) thus selected.
If the requesting router, receives prefix(es) for different classes (for example "video"(1), "guest"(2), "voice"(3) etc), it can use these prefix(es) for assigning the longer IPv6 prefixes to requesting routers it serves through DHCPv6 IA_PD by assuming the role of delegating router, its behavior is explained in Section 2.2.2.
DHCPv6 IA_NA and IPv6 Stateless Address Autoconfiguration (SLAAC as defined in [RFC4862]) are two ways by IPv6 addresses can be dynamically assigned to end hosts. Making SLAAC class aware is outside the scope of this document, it is specified in [I-D.korhonen-dmm-prefix-properties].
Applications within a host can do source address selection based on the class of the prefix learnt in OPTION_PREFIX_PROPERTY and OPTION_PREFIX_CLASS using rules defined in [RFC6724].
The following sub-sections provide examples of class based prefix delegation and how it is used in a mobile network. Each of the examples will refer to the below network:
The example network consists of :
Mobile Gateway It is network entity anchoring IP traffic in the mobile core network. This entity allocates an IP address which is topologically valid in the mobile network and may act as a mobility anchor if handover between mobile and Wi-Fi is supported.
Mobile Nodes (MN) A host or router that changes its point of attachment from one network or subnetwork to another. A mobile node may change its location without changing its IP address; it may continue to communicate with other Internet nodes at any location using its (constant) IP address, assuming link-layer connectivity to a point of attachment is available.
Access Point (AP) A wireless access point, identified by a MAC address, providing service to the wired network for wireless nodes.
Access Router (AR) An IP router residing in an access network and connected to one or more Acess Point(AP)s. An AR offers IP connectivity to MNs.
WLAN controller (WLC) The entity that provides the centralized forwarding, routing function for the user traffic.
_----_ _----_ _----_ _( )_ _( )_ _( )_ (Operator-1) (Operator-2) (Operator-3) (_ _) (_ _) (_ _) -+-- -+-- '-+--' +--------+ +--------+ +--------+ | Mobile | | Mobile | | Mobile | |gateway | |gateway | |gateway | +--------+ +--------+ +--------+ | | | +-------------. | .-------------+ | | | | | | | | |P1:"global-anchor"(1) | | | +--------+ _----_ +---+ | |P2:"local-breakout"(2)_( )_ |AAA|. . . . . . . | Access |---------------------( Internet ) +---+ | Aggreg |-----------+ (_ _) | Gateway| P3:"guest"| '----' +--------+ | | | +----- Guest Access | | Network | +-------------+ | | | +-----+ | | AR | +-----+ +-----+ | WLC | * ---------* | | ( LAN ) +-----+ * ---------* / \ / \ +----+ +----+ +----+ +----+ |WiFi| |WiFi| |WiFi| |WiFi| | AP | | AP | | AP | | AP | +----+ +----+ +----+ +----+ . . / \ / \ MN1 MN2 MN3 MN4(guest)
Figure 1: Example mobile network
The Access Aggregation Gateway requests for Prefix delegation from Mobile gateway and associates the prefix received with class "global-anchor"(1). The Access Aggregation Gateway is preconfigured to provide prefixes from the following classes: "global-anchor" (1), "local-breakout"(2), "guest"(3). It has a preconfigured policy to advertise prefixes to requesting routers and mobile nodes based on the service class supported by the service provider for the requesting device. In the example mobile network, the Access Router(AR) requests class based prefix allocation by sending a DHCPv6 SOLICIT message and include OPTION_PREFIX_CLASS in the OPTION_ORO.
The Access Router (AR) receives an advertise with following prefixes in the IA_PD option:
It sends a REQUEST message with all of above prefixes and receives a REPLY message with prefixes allocated for each of the requested class.
When the Access Router(AR) receives a DHCPv6 SOLICIT requesting IA_NA from the mobile node that has mobility service enabled, it offers an IPv6 address from the prefix class "global-anchor"(1). For MN3 it advertises 3001:1::1 as the IPv6 address in OPTION_IAADDR in response to the IA_NA request.
The Mobile Node(MN4) Figure 1 sends a DHCPv6 SOLICIT message requesting IA_NA address assignment with OPTION_USER_CLASS option containing the value "guest" towards the CPE. The Access Router(AR) assumes the role of the DHCPv6 server and sends an ADVERTISE to the MN with OPTION_IA_NA containing an IPv6 address in OPTION_IAADDR from the "guest"(3) class. The IPv6 address in the OPTION_IAADDR is set to 3001:3::1. The "guest" class can also be distinguished based on a preconfigured interface or SSID advertised for MNs connecting to it.
When the Access Aggregation Gateway receives a DHCPv6 SOLICIT requesting IA_NA from MNs through WLC and it has a preconfigured profile to provide both local-breakout internet access and global-anchor, it offers an IPv6 address from the class "local-breakout" (2) and "global-anchor"(1). For MN1 it advertises 3001:2::1 and 3001:1::2 as the IPv6 address in OPTION_IAADDR in response to the IA_NA request. Applications within MN1 can choose to use the appropriate prefix based on the mobility enabled or local-breakout property attached to the prefix based on source address selection policy.
The prefixes that are globally anchored and hence have mobility can be advertised with OPTION_PREFIX_PROPERTY set to 0x0002 to convey that the prefix provides network based mobility as listed in Section 6.1. If the prefix also provides security guarantees OPTION_PREFIX_PROPERTY can be set to 0x0009 to indicated mobility and security guarantees by bitwise ORing of both the properties.
The following sub-section describes an example of class based prefix delegation in a home network environment. The network consists of the following elements:
_----+----_ _( ) ( Internet ) (_ _) '----+----' | _----+----_ +----------+ \ _( )_ | Video on | \ (Service Provider)--| Demand | \ (_ Network _) | Service | | ISP '----+----' +----------+ | Network | | +------+-----+ | | Delegating | | | Router | | +------+-----+ | | | | Customer | | Internet connection / | / | / +------+--------+ ^ \ | IPv6 | | DHCPv6 Client \ | Home gateway | \ | Device (CPE) | | DHCPv6 Server | +------+--------+ v | Home | | Network Home Network | | +-----+-------+ | | | | +----+-----+ +-----+----+ | |IPv6 Host | |IPv6 Host | | | (Set top | | (PC) | DHCPv6 Clients / | box) | | | / +----------+ +----------+ /
Simple home network with Data and Video devices
In this example, two different services are being run on the same network. The service provider wishes that traffic is sourced from different prefixes by the home network clients [I-D.jiang-v6ops-semantic-prefix]. The HGW (requesting router) has been configured to request prefix delegation from the ISPs delegating router with the usage classes "video" (1) and "internet"(2) the meaning of these being of relevance to the ISP operating this and application that are configured out of band to utilize it.
The delegating router is preconfigured to advertise prefixes with these service classes. The HGW sends two IA_PD options within the SOLICIT message, one with OPTION_PREFIX_CLASS "video" (1) and the second with "internet" (2). The HGW receives an advertise with the following prefixes in the IA_PD option:
1. P1: IA_PD Prefix option with a prefix 3001:5::/56 containing OPTION_PREFIX_CLASS set to "video" (1)
2. P2: IP_PD Prefix option with a prefix 3001:6::/56 containing OPTION_PREFIX_CLASS set to "internet" (2)
It sends a REQUEST message with all of the above prefixes and receives a REPLY message with prefixes allocated for each of the requested classes. The HGW then configures a /64 prefix from each of the delegated prefixes on its LAN interface [RFC6204] and sends out router advertisements (RAs) with the "M" and "O" bits set.
STB sends a DHCPv6 SOLICIT message with the OPTION_PREFIX_CLASS option set to "video" (1) within the IA_NA. The HGW checks the requested prefix class against the available prefixes it has been delegated and advertises 3001:5::1 to the STB. The STB then configures this address on its LAN interface and uses it for sourcing requests to the VOD service.
The PC sends a DHCPv6 SOLICIT message with the OPTION_PREFIX_CLASS option set to "internet" within the IA_NA or without OPTION_PREFIX_PROPERTY. The HGW checks the requested prefix class against the available prefixes it has been delegated and advertises 3001:6::1 to the PC or in absence of OPTION_PREFIX_CLASS in the solicit HGW is preconfigured to assign from the "internet"(2) class as the default. The PC then configures this address on its LAN interface and uses it for sourcing requests to the Internet.
The authors would like to acknowledge review and guidance received from Frank Brockners, Wojciech Dec, Richard Johnson, Erik Nordmark, Hemant Singh, Mark Townsley, Ole Troan, Bernie Volz
Authors would like to thank contributions to use cases and text for various sections received from Ian Farrer and Sindhura Bandi.
IANA is requested to assign an option code to OPTION_PREFIX_PROPERTY (TBD1) and OPTION_PREFIX_CLASS (TBD2) from the "DHCPv6 and DHCPv6 options" registry (http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml).
IANA is requested to reserve and maintain registry of OPTION_PREFIX_PROPERTY values and manage allocation of values as per as per policy defined in [RFC5226] with IETF assigned values requiring IETF consensus, RFC Required policy, any other values other than the ones listed below are not valid.
Security issues related to DHCPv6 which are described in section 23 of [RFC3315] and [RFC3633] apply for scenarios mentioned in this draft as well.
Changes from -00 to -01
Changes from -01 to -02
Changes from -02 to -03
Changes from -03 to -04
[RFC2629] | Rose, M.T., "Writing I-Ds and RFCs using XML", RFC 2629, June 1999. |
[RFC3552] | Rescorla, E. and B. Korver, "Guidelines for Writing RFC Text on Security Considerations", BCP 72, RFC 3552, July 2003. |