| < draft-bhandari-dhc-class-based-prefix-01.txt | draft-bhandari-dhc-class-based-prefix-02.txt > | |||
|---|---|---|---|---|
| Internet Engineering Task Force S. Bhandari | Internet Engineering Task Force S. Bhandari | |||
| Internet-Draft G. Halwasia | Internet-Draft G. Halwasia | |||
| Intended status: Standards Track S. Bandi | Intended status: Standards Track S. Bandi | |||
| Expires: September 13, 2012 S. Gundavelli | Expires: January 17, 2013 S. Gundavelli | |||
| Cisco Systems | Cisco Systems | |||
| H. Deng | H. Deng | |||
| China Mobile | China Mobile | |||
| March 12, 2012 | L. Thiebaut | |||
| Alcatel-Lucent | ||||
| July 16, 2012 | ||||
| DHCPv6 class based prefix | DHCPv6 class based prefix | |||
| draft-bhandari-dhc-class-based-prefix-01 | draft-bhandari-dhc-class-based-prefix-02 | |||
| Abstract | Abstract | |||
| DHCPv6 defines class based allocation of IA_NA and IA_TA IPv6 | DHCPv6 defines class based allocation of IA_NA and IA_TA IPv6 | |||
| addresses. This document extends DHCPv6 prefix delegation with class | addresses. This document extends DHCPv6 prefix delegation with class | |||
| based prefix allocation. It defines a new prefix class option to | based prefix allocation. It defines a new usage class option to | |||
| classify a prefix. It defines the behavior of a DHCPv6 client | classify a prefix. It defines the behavior of a DHCPv6 client | |||
| requesting a prefix to include the class of the prefix to be | requesting a prefix to include the class of the prefix to be | |||
| allocated and the DHCPv6 server behavior to select and offer a prefix | allocated and the DHCPv6 server behavior to select and offer a prefix | |||
| from a given class. It discusses how IA_NA can be requested and | from a given class. It discusses how IA_NA can be requested and | |||
| assigned from a specific prefix class. | assigned from a specific usage class. | |||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on September 13, 2012. | This Internet-Draft will expire on January 17, 2013. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 19 ¶ | skipping to change at page 2, line 22 ¶ | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.3. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 1.3. Requirements Language . . . . . . . . . . . . . . . . . . 4 | |||
| 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. Prefix Class Option in IA_PD . . . . . . . . . . . . . . . 4 | 2.1. Usage Class Option . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Consideration for different DHCPv6 entities . . . . . . . 5 | 2.2. Consideration for different DHCPv6 entities . . . . . . . 6 | |||
| 2.2.1. Requesting Router Behavior . . . . . . . . . . . . . . 5 | 2.2.1. Requesting Router Behavior . . . . . . . . . . . . . . 6 | |||
| 2.2.2. Delegating Router Behavior . . . . . . . . . . . . . . 6 | 2.2.2. Delegating Router Behavior . . . . . . . . . . . . . . 7 | |||
| 2.2.3. DHCPv6 Client Behavior for IA_NA allocation . . . . . 7 | 2.2.3. DHCPv6 Client Behavior for IA_NA allocation . . . . . 7 | |||
| 2.3. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 2.3. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 2.3.1. Class based prefix and IA_NA allocation . . . . . . . 7 | 2.3.1. OPTION_USAGE_CLASS Values . . . . . . . . . . . . . . 8 | |||
| 2.3.2. Class based prefix and IA_PD allocation . . . . . . . 8 | 2.3.2. Class based prefix and IA_NA allocation . . . . . . . 8 | |||
| 2.3.3. Class based prefix and SLAAC . . . . . . . . . . . . . 8 | 2.3.3. Class based prefix and IA_PD allocation . . . . . . . 9 | |||
| 3. Example Application . . . . . . . . . . . . . . . . . . . . . 8 | 2.3.4. Class based prefix and SLAAC . . . . . . . . . . . . . 9 | |||
| 3.1. Class based prefix delegation . . . . . . . . . . . . . . 11 | 2.3.5. Class based prefix and applications . . . . . . . . . 9 | |||
| 3.2. IPv6 address assignment from class based prefix . . . . . 11 | 3. Example Application . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12 | 3.1. Class based prefix delegation . . . . . . . . . . . . . . 12 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 3.2. IPv6 address assignment from class based prefix . . . . . 12 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 5.1. OPTION_USAGE_CLASS values . . . . . . . . . . . . . . . . 13 | ||||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | ||||
| 7. Change History (to be removed prior to publication as an | 7. Change History (to be removed prior to publication as an | |||
| RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 12 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . . 13 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 15 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 1. Introduction | 1. Introduction | |||
| DHCPv6 based prefix delegation as defined in [RFC3633] is a mechanism | DHCPv6 based prefix delegation as defined in [RFC3633] is a mechanism | |||
| for the delegation of IPv6 prefixes using DHCPv6 options. Through | for the delegation of IPv6 prefixes using DHCPv6 options. Through | |||
| these options, a delegating router can delegate prefixes to | these options, a delegating router can delegate prefixes to | |||
| authorized requesting routers. If the requesting router has to | authorized requesting routers. If the requesting router has to | |||
| function as a DHCPv6 server there needs to be additional information | function as a DHCPv6 server there needs to be additional information | |||
| in the delegated prefix that helps the requesting router to select | in the delegated prefix that helps the requesting router to select | |||
| the address allocation for the DHCPv6 client it serves, from one of | the address allocation for the DHCPv6 client it serves, from one of | |||
| the available delegated prefixes. | the available delegated prefixes. | |||
| One way to select an address or longer prefix (from a delegated | One way to select an address or longer prefix (from a delegated | |||
| prefix) to be allocated by a requesting router playing the role of a | prefix) to be allocated by a requesting router playing the role of a | |||
| DHCPv6 server is by introducing additional options in IA_PD to be | DHCPv6 server is by introducing additional options in IA_PD to be | |||
| matched with options for address selection in the DHCPv6 SOLICIT | matched with options for address selection in the DHCPv6 SOLICIT | |||
| message. [RFC3315] defines the OPTION_USER_CLASS option which is | message. [RFC3315] defines the OPTION_USER_CLASS option which is | |||
| used for selecting address for assignment. This document introduces | used for selecting address for assignment. This document introduces | |||
| OPTION_PREFIX_CLASS option in IA_PD option for the purpose of | OPTION_USAGE_CLASS option in IA_PD option for the purpose of | |||
| selecting a prefix for further delegation either via IA_NA or IA_PD | selecting a prefix for further delegation either via IA_NA or IA_PD | |||
| DHCPv6 request. It defines the behavior of the DHCPv6 server, the | DHCPv6 request. It defines the behavior of the DHCPv6 server, the | |||
| DHCPv6 prefix requesting router and the DHCPv6 client to use this | DHCPv6 prefix requesting router and the DHCPv6 client to use this | |||
| option. | option. | |||
| In IPv6 a network interface can acquire multiple addresses from the | ||||
| same scope. In this case application need to have additional | ||||
| information about the prefix configured on the interface for source | ||||
| address selection. Since 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). | ||||
| 1.1. Motivation | 1.1. Motivation | |||
| In this section motivation for class based prefix delegation that | In this section motivation for class based prefix delegation that | |||
| qualifies the delegated prefix with additional class information is | qualifies the delegated prefix with additional class information is | |||
| described in the context of mobile networks. The class information | described in the context of mobile networks. The class information | |||
| attached to a delegated prefix helps to distinguish property of a | attached to a delegated prefix helps to distinguish property of a | |||
| delegated IPv6 prefix and selection of the prefix by different | delegated IPv6 prefix and selection of the prefix by different | |||
| applications using it. | applications using it. | |||
| In the mobile network architecture, there is a mobile router which | In the mobile network architecture, there is a mobile router which | |||
| skipping to change at page 4, line 27 ¶ | skipping to change at page 4, line 37 ¶ | |||
| and [RFC3633]. | and [RFC3633]. | |||
| 1.3. Requirements Language | 1.3. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| 2. Overview | 2. Overview | |||
| This section defines Prefix Class option in IA_PD and IA_NA to aid | This section defines usage class option in IA_PD and IA_NA to aid | |||
| class based prefix delegation and address assignment. This section | class based prefix delegation and address assignment. This section | |||
| defines the behavior of the delegating router, the requesting router | defines the behavior of the delegating router, the requesting router | |||
| and the DHCPv6 client. | and the DHCPv6 client. | |||
| 2.1. Prefix Class Option in IA_PD | 2.1. Usage Class Option | |||
| The format of the DHCPv6 Prefix Class option is shown below. | The format of the DHCPv6 usage class option is shown below. | |||
| 0 1 2 3 | 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 | 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 | | | OPTION_USAGE_CLASS | option-length(2) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | prefix-class | | | Class | ~ | |||
| | (variable length) | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ~ | |||
| ~ Vendor Class Data (Optional,variable length) ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| option-code: OPTION_PREFIX_CLASS (TBD) | option-code: OPTION_USAGE_CLASS (TBD) | |||
| option-length: length of prefix-class | option-length: 2 + Length of Vendor class information | |||
| prefix-class: Prefix class (binary string). | if present | |||
| Class: 16 bit numeric value maintained as | ||||
| OPTION_USAGE_CLASS enumeration in | ||||
| IANA registered namespace | ||||
| Vendor Class Data: If the value of Class (3) indicates it is | ||||
| vendor specified additional vendor | ||||
| specified data of variable length will be | ||||
| attached in the form specified 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_USAGE_CLASS | option-length(2) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Class | Enterprise ID | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Enterprise ID(4) | Vendor Class length(2) | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| ~ Vendor Class Data (Variable length) ~ | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Enterprise ID: The vendor's 32-bit Enterprise Number as | ||||
| registered with IANA [IANAEnterprise] | ||||
| Vendor Class Length: 2, length of vendor class data that follows | ||||
| Vendor Class Data: Binary data as defined by the vendor. | ||||
| For e.g. 3gpp can specify this data to be | ||||
| Application providers network domain string | ||||
| The class values are maintained in OPTION_USAGE_CLASS values | ||||
| enumeration explained in Section Section 2.3.1. | ||||
| 2.2. Consideration for different DHCPv6 entities | 2.2. Consideration for different DHCPv6 entities | |||
| The model of operation of communicating prefixes to be used by a | The model of operation of communicating prefixes to be used by a | |||
| DHCPv6 server is as follows. A requesting router requests prefix(es) | DHCPv6 server is as follows. A requesting router requests prefix(es) | |||
| from the delegating router, as described in Section 2.2.1. A | from the delegating router, as described in Section 2.2.1. A | |||
| delegating router is provided IPv6 prefixes to be delegated to the | delegating router is provided IPv6 prefixes to be delegated to the | |||
| requesting router. Examples of ways in which the delegating router | requesting router. Examples of ways in which the delegating router | |||
| is provided these prefixes are: | is provided these prefixes are: | |||
| skipping to change at page 5, line 43 ¶ | skipping to change at page 6, line 30 ¶ | |||
| The delegating router chooses prefix(es) for delegation, and responds | The delegating router chooses prefix(es) for delegation, and responds | |||
| with prefix(es) to the requesting router along with additional | with prefix(es) to the requesting router along with additional | |||
| options in the allocated prefix as described in Section 2.2.2. The | options in the allocated prefix as described in Section 2.2.2. The | |||
| requesting router is then responsible for the delegated prefix(es) | requesting router is then responsible for the delegated prefix(es) | |||
| after the DHCPv6 REQUEST message exchange. For example, the | after the DHCPv6 REQUEST message exchange. For example, the | |||
| requesting router may create DHCPv6 server configuration pools from | requesting router may create DHCPv6 server configuration pools from | |||
| the delegated prefix, and function as a DHCPv6 Server. When the | the delegated prefix, and function as a DHCPv6 Server. When the | |||
| requesting router then receives a DHCPv6 IA_NA requests it can select | requesting router then receives a DHCPv6 IA_NA requests it can select | |||
| the address to be allocated based on the OPTION_USER_CLASS or | the address to be allocated based on the OPTION_USER_CLASS or | |||
| OPTION_PREFIX_CLASS options received in IA_NA request or any of the | OPTION_USAGE_CLASS options received in IA_NA request or any of the | |||
| other methods as described in Section 2.3.1. | other methods as described in Section 2.3.1. | |||
| 2.2.1. Requesting Router Behavior | 2.2.1. Requesting Router Behavior | |||
| DHCPv6 requesting router can request for prefixes in the following | DHCPv6 requesting router can request for prefixes in the following | |||
| ways: | ways: | |||
| o In the SOLICIT message within the IA_PD Prefix option, it MAY | o In the SOLICIT message within the IA_PD Prefix option, it MAY | |||
| include OPTION_PREFIX_CLASS requesting prefix delegation for the | include OPTION_USAGE_CLASS requesting prefix delegation for the | |||
| specific class indicated in the OPTION_PREFIX_CLASS option. It | specific class indicated in the OPTION_USAGE_CLASS option. It can | |||
| can include multiple IA_PD Prefix options to indicate it's | include multiple IA_PD Prefix options to indicate it's preference | |||
| preference for more than one prefix class. | for more than one usage class. | |||
| o In the SOLICIT message include an OPTION_ORO option with the | o In the SOLICIT message include an OPTION_ORO option with the | |||
| OPTION_PREFIX_CLASS option code to request prefixes from all the | OPTION_USAGE_CLASS option code to request prefixes from all the | |||
| classes that the DHCPv6 server can provide to this requesting | classes that the DHCPv6 server can provide to this requesting | |||
| Router. | Router. | |||
| The requesting router parses the OPTION_PREFIX_CLASS option in | The requesting router parses the OPTION_USAGE_CLASS option in | |||
| theOPTION_IAPREFIX option area of the corresponding IA_PD Prefix | theOPTION_IAPREFIX option area of the corresponding IA_PD Prefix | |||
| option in the ADVERTISE message. The Requesting router MUST then | option in the ADVERTISE message. The Requesting router MUST then | |||
| include all or subset of the received class based prefix(es) in the | include all or subset of the received class based prefix(es) in the | |||
| REQUEST message so that it will be responsible for the prefixes | REQUEST message so that it will be responsible for the prefixes | |||
| selected. | selected. | |||
| 2.2.2. Delegating Router Behavior | 2.2.2. Delegating Router Behavior | |||
| If the Delegating router supports class based prefix allocation by | If the Delegating router supports class based prefix allocation by | |||
| supporting the OPTION_PREFIX_CLASS option and it is configured to | supporting the OPTION_USAGE_CLASS option and it is configured to | |||
| assign prefixes from different classes, it selects prefixes for class | assign prefixes from different classes, it selects prefixes for class | |||
| based prefix allocation in the following way: | based prefix allocation in the following way: | |||
| o If requesting router includes OPTION_PREFIX_CLASS within the IA_PD | o If requesting router includes OPTION_USAGE_CLASS within the IA_PD | |||
| Prefix option, it selects prefixes to be offered from that | Prefix option, it selects prefixes to be offered from that | |||
| specific class. | specific class. | |||
| o If requesting router includes OPTION_PREFIX_CLASS within | o If requesting router includes OPTION_USAGE_CLASS within | |||
| OPTION_ORO, then based on its configuration and policy it MAY | OPTION_ORO, then based on its configuration and policy it MAY | |||
| offer prefixes from multiple classes available. | offer prefixes from multiple classes available. | |||
| The delegating router responds with an ADVERTISE message after | The delegating router responds with an ADVERTISE message after | |||
| populating the IP_PD option with prefixes from different prefix | populating the IP_PD option with prefixes from different usage | |||
| classes. Along with including the IA_PD prefix options in the IA_PD | classes. Along with including the IA_PD prefix options in the IA_PD | |||
| option, it also includes the OPTION_PREFIX_CLASS option in the | option, it also includes the OPTION_USAGE_CLASS option in the | |||
| OPTION_IAPREFIX option area of the corresponding IA_PD prefix option. | OPTION_IAPREFIX option area of the corresponding IA_PD prefix option. | |||
| If neither the OPTION_ORO nor the IA_PD option in the SOLICIT message | If neither the OPTION_ORO nor the IA_PD option in the SOLICIT message | |||
| include the OPTION_PREFIX_CLASS option, then the delegating router | include the OPTION_USAGE_CLASS option, then the delegating router MAY | |||
| MAY allocate the prefix as specified in [RFC3633] without including | allocate the prefix as specified in [RFC3633] without including the | |||
| the class option in the IA_PD prefix option in the response. | class option in the IA_PD prefix option in the response. | |||
| If OPTION_ORO option in the Solicit message includes the | If OPTION_ORO option in the Solicit message includes the | |||
| OPTION_PREFIX_CLASS option code but the delegating router does not | OPTION_USAGE_CLASS option code but the delegating router does not | |||
| support the solution described in this specification, then the | support the solution described in this specification, then the | |||
| delegating router acts as specified in [RFC3633]. The requesting | delegating router acts as specified in [RFC3633]. The requesting | |||
| router MUST in this case also fall back to the behavior specified in | router MUST in this case also fall back to the behavior specified in | |||
| [RFC3633]. | [RFC3633]. | |||
| If both delegating and requesting routers support class-based prefix | If both delegating and requesting routers support class-based prefix | |||
| allocation, but the delegating router cannot offer prefixes for any | allocation, but the delegating router cannot offer prefixes for any | |||
| other reason, it MUST respond to requesting router with appropriate | other reason, it MUST respond to requesting router with appropriate | |||
| status code as specified in [RFC3633]. For e.g., if no prefixes are | status code as specified in [RFC3633]. For e.g., if no prefixes are | |||
| available in the specified class then the delegating router MUST | available in the specified class then the delegating router MUST | |||
| include the status code NoPrefixAvail in the response message. | include the status code NoPrefixAvail in the response message. | |||
| 2.2.3. DHCPv6 Client Behavior for IA_NA allocation | 2.2.3. DHCPv6 Client Behavior for IA_NA allocation | |||
| DHCPv6 client MAY request for an IA_NA address allocation from a | DHCPv6 client MAY request for an IA_NA address allocation from a | |||
| specific prefix class in the following way: | specific usage class in the following way: | |||
| o In the SOLICIT message within the IA_NA option, it MAY include the | o In the SOLICIT message within the IA_NA option, it MAY include the | |||
| OPTION_PREFIX_CLASS requesting address to be allocated from a | OPTION_USAGE_CLASS requesting address to be allocated from a | |||
| specific prefix class indicated in that option. | specific usage class indicated in that option. | |||
| The DHCPv6 server parses OPTION_PREFIX_CLASS option received and | The DHCPv6 server parses OPTION_USAGE_CLASS option received and | |||
| includes it in option area of corresponding OPTION_IA_NA in ADVERTISE | includes it in option area of corresponding OPTION_IA_NA in ADVERTISE | |||
| message. | message. | |||
| 2.3. Usage | 2.3. Usage | |||
| Class based prefix delegation can be used by the requesting router to | Class based prefix delegation can be used by the requesting router to | |||
| configure itself as a DHCPv6 server to serve its DHCPv6 clients. It | configure itself as a DHCPv6 server to serve its DHCPv6 clients. It | |||
| can allocate longer prefixes from a delegated shorter prefix it | can allocate longer prefixes from a delegated shorter prefix it | |||
| received, for serving IA_NA and IA_PD requests. | received, for serving IA_NA and IA_PD requests. | |||
| 2.3.1. Class based prefix and IA_NA allocation | 2.3.1. OPTION_USAGE_CLASS Values | |||
| Following values will be allocated from the IANA maintained | ||||
| OPTION_USAGE_CLASS registry: | ||||
| o global-anchor(1) - Prefix is globally anchored and hence would | ||||
| allow mobility. | ||||
| o local-breakout(2) - Prefix is managed in a local-breakout domain | ||||
| and hence has limited mobility. | ||||
| o Vendor-specfied-class(3) - Prefix class is specified by the | ||||
| vendor, Vendor class data in the option that follows will provide | ||||
| more information. | ||||
| New values of OPTION_USAGE_CLASS can be assigned and registered with | ||||
| IANA as per policy detailed in section Section 5.1. | ||||
| 2.3.2. Class based prefix and IA_NA allocation | ||||
| The requesting router can use the delegated prefix(es) from different | The requesting router can use the delegated prefix(es) from different | |||
| classes (for example "video", "guest", "voice" etc), for assigning | classes (for example "video", "guest", "voice" etc), for assigning | |||
| the IPv6 addresses to the end hosts through DHCPv6 IA_NA based on a | the IPv6 addresses to the end hosts through DHCPv6 IA_NA based on a | |||
| preconfigured mapping with OPTION_PREFIX_CLASS option, the following | preconfigured mapping with OPTION_USAGE_CLASS option, the following | |||
| conditions MAY be observed: | conditions MAY be observed: | |||
| o It MAY have a pre-configured mapping between the prefix class and | o It MAY have a pre-configured mapping between the usage class and | |||
| OPTION_USER_CLASS option received in IA_NA. | OPTION_USER_CLASS option received in IA_NA. | |||
| o It MAY match the OPTION_PREFIX_CLASS if the IA_NA request received | o It MAY match the OPTION_USAGE_CLASS if the IA_NA request received | |||
| contains OPTION_PREFIX_CLASS. | contains OPTION_USAGE_CLASS. | |||
| o It MAY map OPTION_PREFIX_CLASS option to the OPTION_USER_CLASS | ||||
| option by string matching of both these option values. | ||||
| o It MAY have a pre-configured mapping between the prefix class and | o It MAY have a pre-configured mapping between the usage class and | |||
| the client DUID received in DHCPv6 message. | the client DUID received in DHCPv6 message. | |||
| o It MAY have a pre-configured mapping between the prefix class and | o It MAY have a pre-configured mapping between the usage class and | |||
| its network interface on which the IA_NA request was received. | its network interface on which the IA_NA request was received. | |||
| The requesting router playing the role of a DHCPv6 server can | The requesting router playing the role of a DHCPv6 server can | |||
| ADVERTISE IA_NA from a class of prefix(es) thus selected. | ADVERTISE IA_NA from a class of prefix(es) thus selected. | |||
| 2.3.2. Class based prefix and IA_PD allocation | 2.3.3. Class based prefix and IA_PD allocation | |||
| If the requesting router, receives prefix(es) for different classes | If the requesting router, receives prefix(es) for different classes | |||
| (for example "video", "guest", "voice" etc), it can use these | (for example "video", "guest", "voice" etc), it can use these | |||
| prefix(es) for assigning the longer IPv6 prefixes to requesting | prefix(es) for assigning the longer IPv6 prefixes to requesting | |||
| routers it serves through DHCPv6 IA_PD by assuming the role of | routers it serves through DHCPv6 IA_PD by assuming the role of | |||
| delegating router, its behavior is explained in Section 2.2.2. | delegating router, its behavior is explained in Section 2.2.2. | |||
| 2.3.3. Class based prefix and SLAAC | 2.3.4. Class based prefix and SLAAC | |||
| DHCPv6 IA_NA and IPv6 Stateless Address Autoconfiguration (SLAAC as | DHCPv6 IA_NA and IPv6 Stateless Address Autoconfiguration (SLAAC as | |||
| defined in [RFC4862]) are two ways by IPv6 addresses can be | defined in [RFC4862]) are two ways by IPv6 addresses can be | |||
| dynamically assigned to end hosts. Making SLAAC class aware is | dynamically assigned to end hosts. Making SLAAC class aware is | |||
| outside the scope of this document. | outside the scope of this document, it is specified in | |||
| [I-D.korhonen-dmm-prefix-properties]. | ||||
| 2.3.5. Class based prefix and applications | ||||
| Applications within a host can do source address selection based on | ||||
| the class of the prefix learnt in OPTION_USAGE_CLASS using rules | ||||
| defined in [RFC3484]. | ||||
| 3. Example Application | 3. Example Application | |||
| The following sub-sections provide examples of class based prefix | The following sub-sections provide examples of class based prefix | |||
| delegation and how it is used in a mobile network. Each of the | delegation and how it is used in a mobile network. Each of the | |||
| examples will refer to the below network: | examples will refer to the below network: | |||
| The example network consists of : | The example network consists of : | |||
| Mobile Gateway It is network entity anchoring IP traffic in the | Mobile Gateway It is network entity anchoring IP traffic in the | |||
| skipping to change at page 10, line 19 ¶ | skipping to change at page 11, line 19 ¶ | |||
| (_ _) (_ _) (_ _) | (_ _) (_ _) (_ _) | |||
| -+-- -+-- '-+--' | -+-- -+-- '-+--' | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | Mobile | | Mobile | | Mobile | | | Mobile | | Mobile | | Mobile | | |||
| |gateway | |gateway | |gateway | | |gateway | |gateway | |gateway | | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | | | | | | | | |||
| +-------------. | .-------------+ | +-------------. | .-------------+ | |||
| | | | | | | | | |||
| | | | | | | | | |||
| | | |P1:"global-anchor" | | | |P1:"global-anchor"(1) | |||
| | | | | | | | | |||
| +--------+ _----_ | +--------+ _----_ | |||
| +---+ | |P2:"local-breakout"_( )_ | +---+ | |P2:"local-breakout"(2)_( )_ | |||
| |AAA|. . . . . . . | Access |------------------( Internet ) | |AAA|. . . . . . . | Access |---------------------( Internet ) | |||
| +---+ | Aggreg |-----------+ (_ _) | +---+ | Aggreg |-----------+ (_ _) | |||
| | Gateway| P3:"guest"| '----' | | Gateway| P3:"guest"| '----' | |||
| +--------+ | | +--------+ | | |||
| | | +----- Guest Access | | | +----- Guest Access | |||
| | | Network | | | Network | |||
| | +-------------+ | | +-------------+ | |||
| | | | | | | |||
| | +-----+ | | +-----+ | |||
| | | AR | | | | AR | | |||
| +-----+ +-----+ | +-----+ +-----+ | |||
| | WLC | * ---------* | | WLC | * ---------* | |||
| | | ( LAN ) | | | ( LAN ) | |||
| skipping to change at page 11, line 8 ¶ | skipping to change at page 12, line 8 ¶ | |||
| +----+ +----+ +----+ +----+ | +----+ +----+ +----+ +----+ | |||
| . . | . . | |||
| / \ / \ | / \ / \ | |||
| MN1 MN2 MN3 MN4(guest) | MN1 MN2 MN3 MN4(guest) | |||
| Figure 1 | Figure 1 | |||
| 3.1. Class based prefix delegation | 3.1. Class based prefix delegation | |||
| The Access Aggregation Gateway requests for Prefix delegation from | The Access Aggregation Gateway requests for Prefix delegation from | |||
| Mobile gateway and associates the prefix received with prefix class | Mobile gateway and associates the prefix received with usage class | |||
| "global-anchor". The Access Aggregation Gateway is preconfigured to | "global-anchor"(1). The Access Aggregation Gateway is preconfigured | |||
| provide prefixes from the following classes: "global-anchor", "local- | to provide prefixes from the following classes: "global-anchor" (1), | |||
| breakout", "guest". It has a preconfigured policy to advertise | "local-breakout"(2), "guest"(x). It has a preconfigured policy to | |||
| prefixes to requesting routers and mobile nodes based on the service | advertise prefixes to requesting routers and mobile nodes based on | |||
| class supported by the service provider for the requesting device. | the service class supported by the service provider for the | |||
| In the example mobile network, the Access Router(AR) requests class | requesting device. In the example mobile network, the Access | |||
| based prefix allocation by sending a DHCPv6 SOLICIT message and | Router(AR) requests class based prefix allocation by sending a DHCPv6 | |||
| include OPTION_PREFIX_CLASS in the OPTION_ORO. | SOLICIT message and include OPTION_USAGE_CLASS in the OPTION_ORO. | |||
| The Access Router (AR) receives an advertise with following prefixes | The Access Router (AR) receives an advertise with following prefixes | |||
| in the IA_PD option: | in the IA_PD option: | |||
| 1. P1: IA_PD Prefix option with a prefix 3001::1::/64 containing | 1. P1: IA_PD Prefix option with a prefix 3001::1::/64 containing | |||
| OPTION_PREFIX_CLASS set to "global-anchor" | OPTION_USAGE_CLASS set to "global-anchor"(1) | |||
| 2. P2: IA_PD Prefix option with a prefix 3001::2::/64 containing | 2. P2: IA_PD Prefix option with a prefix 3001::2::/64 containing | |||
| OPTION_PREFIX_CLASS set to "local-breakout" | OPTION_USAGE_CLASS set to "local-breakout"(2) | |||
| 3. P3: IA_PD Prefix option with a prefix 3001::3::/64 containing | 3. P3: IA_PD Prefix option with a prefix 3001::3::/64 containing | |||
| OPTION_PREFIX_CLASS set to "guest" | OPTION_USAGE_CLASS set to "guest"(x) | |||
| It sends a REQUEST message with all of above prefixes and receives a | It sends a REQUEST message with all of above prefixes and receives a | |||
| REPLY message with prefixes allocated for each of the requested | REPLY message with prefixes allocated for each of the requested | |||
| class. | class. | |||
| 3.2. IPv6 address assignment from class based prefix | 3.2. IPv6 address assignment from class based prefix | |||
| When the Access Router(AR) receives a DHCPv6 SOLICIT requesting IA_NA | When the Access Router(AR) receives a DHCPv6 SOLICIT requesting IA_NA | |||
| from the mobile node that has mobility service enabled, it offers an | from the mobile node that has mobility service enabled, it offers an | |||
| IPv6 address from the prefix class "global-anchor". For MN3 it | IPv6 address from the usage class "global-anchor"(1). For MN3 it | |||
| advertises 3001::1::1 as the IPv6 address in OPTION_IAADDR in | advertises 3001::1::1 as the IPv6 address in OPTION_IAADDR in | |||
| response to the IA_NA request. | response to the IA_NA request. | |||
| The Mobile Node(MN4) Figure 1 sends a DHCPv6 SOLICIT message | The Mobile Node(MN4) Figure 1 sends a DHCPv6 SOLICIT message | |||
| requesting IA_NA address assignment with OPTION_USER_CLASS option | requesting IA_NA address assignment with OPTION_USER_CLASS option | |||
| containing the value "guest" towards the CPE. The Access Router(AR) | containing the value "guest" towards the CPE. The Access Router(AR) | |||
| assumes the role of the DHCPv6 server and sends an ADVERTISE to the | 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 | MN with OPTION_IA_NA containing an IPv6 address in OPTION_IAADDR from | |||
| the "guest" prefix class. The IPv6 address in the OPTION_IAADDR is | the "guest" usage class. The IPv6 address in the OPTION_IAADDR is | |||
| set to 3001::3::1. The "guest" class can also be distinguished based | set to 3001::3::1. The "guest" class can also be distinguished based | |||
| on a preconfigured interface or SSID advertised for MNs connecting to | on a preconfigured interface or SSID advertised for MNs connecting to | |||
| it. | it. | |||
| When the Access Aggregation Gateway receives a DHCPv6 SOLICIT | When the Access Aggregation Gateway receives a DHCPv6 SOLICIT | |||
| requesting IA_NA from MNs through WLC and it has a preconfigured | requesting IA_NA from MNs through WLC and it has a preconfigured | |||
| profile to provide both local-breakout internet access and global- | profile to provide both local-breakout internet access and global- | |||
| anchor, it offers an IPv6 address from the prefix class "local- | anchor, it offers an IPv6 address from the usage class "local- | |||
| breakout" and "global-anchor". For MN1 it advertises 3001::2::1 and | breakout" (2) and "global-anchor"(1). For MN1 it advertises | |||
| 3001::1::2 as the IPv6 address in OPTION_IAADDR in response to the | 3001::2::1 and 3001::1::2 as the IPv6 address in OPTION_IAADDR in | |||
| IA_NA request. Applications within MN1 can choose to use the | response to the IA_NA request. Applications within MN1 can choose to | |||
| appropriate prefix based on the mobility enabled or local-breakout | use the appropriate prefix based on the mobility enabled or local- | |||
| property. | breakout property attached to the prefix based on source address | |||
| selection policy. | ||||
| 4. Acknowledgements | 4. Acknowledgements | |||
| The authors would like to acknowledge review and guidance received | The authors would like to acknowledge review and guidance received | |||
| from Frank Brockners, Wojciech Dec, Richard Johnson, Erik Nordmark, | from Frank Brockners, Wojciech Dec, Richard Johnson, Erik Nordmark, | |||
| Hemant Singh, Mark Townsley, Ole Troan, Bernie Volz | Hemant Singh, Mark Townsley, Ole Troan, Bernie Volz | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| IANA is requested to assign an option code to OPTION_PREFIX_CLASS | IANA is requested to assign an option code to OPTION_USAGE_CLASS from | |||
| from the "DHCPv6 and DHCPv6 options" registry (http://www.iana.org/ | the "DHCPv6 and DHCPv6 options" registry (http://www.iana.org/ | |||
| assignments/dhcpv6-parameters/dhcpv6-parameters.xml). | assignments/dhcpv6-parameters/dhcpv6-parameters.xml). | |||
| 5.1. OPTION_USAGE_CLASS values | ||||
| IANA is requested to reserve and maintain registry of | ||||
| OPTION_USAGE_CLASS values and manage allocation of values in the | ||||
| following way as per as per policy defined in [RFC5226]: | ||||
| 1. Values 1 to 8191 ( 0x0001 - 0x1FFF) - IETF assigned class with | ||||
| IETF consensus, RFC Required policy | ||||
| 2. Values 8192 to 16368 (0x2000 - 0x3ff0) - Vendor defined class | ||||
| assigned on a First Come First Served allocation policy | ||||
| 3. Values 16369 to 16383 (0x3ff1 - 0x3fff) - Experimental usage | ||||
| reserved for Private Use | ||||
| Following values will be allocated from this registry as explained in | ||||
| section Section 2.3.1: | ||||
| o global-anchor(1) - Prefix is globally anchored and hence would | ||||
| allow mobility. | ||||
| o local-breakout(2) - Prefix is managed in a local-breakout domain | ||||
| and hence has limited mobility. | ||||
| o Vendor-specfied-class(3) - Prefix class is vendor specified. | ||||
| 6. Security Considerations | 6. Security Considerations | |||
| Security issues related to DHCPv6 which are described in section 23 | Security issues related to DHCPv6 which are described in section 23 | |||
| of [RFC3315] and [RFC3633] apply for scenarios mentioned in this | of [RFC3315] and [RFC3633] apply for scenarios mentioned in this | |||
| draft as well. | draft as well. | |||
| 7. Change History (to be removed prior to publication as an RFC) | 7. Change History (to be removed prior to publication as an RFC) | |||
| Changes from -00 to -01 | Changes from -00 to -01 | |||
| a. Modified motivation section to focus on mobile networks | a. Modified motivation section to focus on mobile networks | |||
| b. Modified example with a mobile network and class based prefix | b. Modified example with a mobile network and class based prefix | |||
| delegation in it | delegation in it | |||
| Changes from -00 to -02 | ||||
| a. Modified option format to be enumerated values | ||||
| b. Added IANA section to request managing of registry for the | ||||
| enumerated values | ||||
| c. Added initial values for the class | ||||
| d. Added section for applications to select address with a specific | ||||
| property | ||||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [I-D.korhonen-dmm-prefix-properties] | ||||
| Korhonen, J., Patil, B., Gundavelli, S., Seite, P., and D. | ||||
| Liu, "IPv6 Prefix Mobility Management Properties", | ||||
| draft-korhonen-dmm-prefix-properties-02 (work in | ||||
| progress), July 2012. | ||||
| [IANAEnterprise] | ||||
| IANA, "Private Enterprise Numbers, | ||||
| http://www.iana.org/assignments/enterprise-numbers". | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | |||
| (IPv6) Specification", RFC 2460, December 1998. | (IPv6) Specification", RFC 2460, December 1998. | |||
| [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | |||
| "Remote Authentication Dial In User Service (RADIUS)", | "Remote Authentication Dial In User Service (RADIUS)", | |||
| RFC 2865, June 2000. | RFC 2865, June 2000. | |||
| [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., | [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., | |||
| and M. Carney, "Dynamic Host Configuration Protocol for | and M. Carney, "Dynamic Host Configuration Protocol for | |||
| IPv6 (DHCPv6)", RFC 3315, July 2003. | IPv6 (DHCPv6)", RFC 3315, July 2003. | |||
| [RFC3484] Draves, R., "Default Address Selection for Internet | ||||
| Protocol version 6 (IPv6)", RFC 3484, February 2003. | ||||
| [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic | [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic | |||
| Host Configuration Protocol (DHCP) version 6", RFC 3633, | Host Configuration Protocol (DHCP) version 6", RFC 3633, | |||
| December 2003. | December 2003. | |||
| [RFC3775] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support | [RFC3775] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support | |||
| in IPv6", RFC 3775, June 2004. | in IPv6", RFC 3775, June 2004. | |||
| [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | |||
| Address Autoconfiguration", RFC 4862, September 2007. | Address Autoconfiguration", RFC 4862, September 2007. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | ||||
| IANA Considerations Section in RFCs", BCP 26, RFC 5226, | ||||
| May 2008. | ||||
| 8.2. Informative References | 8.2. Informative References | |||
| [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, | [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, | |||
| June 1999. | June 1999. | |||
| [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC | [RFC3552] Rescorla, E. and B. Korver, "Guidelines for Writing RFC | |||
| Text on Security Considerations", BCP 72, RFC 3552, | Text on Security Considerations", BCP 72, RFC 3552, | |||
| July 2003. | July 2003. | |||
| Authors' Addresses | Authors' Addresses | |||
| skipping to change at page 14, line 29 ¶ | skipping to change at page 17, line 4 ¶ | |||
| Phone: +91 80 4426 2347 | Phone: +91 80 4426 2347 | |||
| Email: sinb@cisco.com | Email: sinb@cisco.com | |||
| Sri Gundavelli | Sri Gundavelli | |||
| Cisco Systems | Cisco Systems | |||
| 170 West Tasman Drive | 170 West Tasman Drive | |||
| San Jose, CA 95134 | San Jose, CA 95134 | |||
| USA | USA | |||
| Email: sgundave@cisco.com | Email: sgundave@cisco.com | |||
| Hui Deng | Hui Deng | |||
| China Mobile | China Mobile | |||
| 53A, Xibianmennei Ave., Xuanwu District | 53A, Xibianmennei Ave., Xuanwu District | |||
| Beijing 100053 | Beijing 100053 | |||
| China | China | |||
| Email: denghui02@gmail.com | Email: denghui02@gmail.com | |||
| Laurent Thiebaut | ||||
| Alcatel-Lucent | ||||
| France | ||||
| Email: laurent.thiebaut@alcatel-lucent.com | ||||
| End of changes. 56 change blocks. | ||||
| 99 lines changed or deleted | 219 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||