| < draft-bhandari-dhc-class-based-prefix-02.txt | draft-bhandari-dhc-class-based-prefix-03.txt > | |||
|---|---|---|---|---|
| skipping to change at page 1, line 15 ¶ | skipping to change at page 1, line 15 ¶ | |||
| Intended status: Standards Track S. Bandi | Intended status: Standards Track S. Bandi | |||
| Expires: January 17, 2013 S. Gundavelli | Expires: January 17, 2013 S. Gundavelli | |||
| Cisco Systems | Cisco Systems | |||
| H. Deng | H. Deng | |||
| China Mobile | China Mobile | |||
| L. Thiebaut | L. Thiebaut | |||
| Alcatel-Lucent | Alcatel-Lucent | |||
| July 16, 2012 | July 16, 2012 | |||
| DHCPv6 class based prefix | DHCPv6 class based prefix | |||
| draft-bhandari-dhc-class-based-prefix-02 | draft-bhandari-dhc-class-based-prefix-03 | |||
| 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 usage 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 | |||
| skipping to change at page 2, line 22 ¶ | 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. Usage Class Option . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Usage Class Option . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.2. Consideration for different DHCPv6 entities . . . . . . . 6 | 2.2. Consideration for different DHCPv6 entities . . . . . . . 6 | |||
| 2.2.1. Requesting Router Behavior . . . . . . . . . . . . . . 6 | 2.2.1. Requesting Router Behavior for IA_PD allocation . . . 6 | |||
| 2.2.2. Delegating Router Behavior . . . . . . . . . . . . . . 7 | 2.2.2. Delegating Router Behavior for IA_PD allocation . . . 7 | |||
| 2.2.3. DHCPv6 Client Behavior for IA_NA allocation . . . . . 7 | 2.2.3. DHCPv6 Client Behavior for IA_NA allocation . . . . . 7 | |||
| 2.2.4. DHCPv6 Server Behavior for IA_NA allocation . . . . . 8 | ||||
| 2.3. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 2.3. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 2.3.1. OPTION_USAGE_CLASS Values . . . . . . . . . . . . . . 8 | 2.3.1. OPTION_USAGE_CLASS Values . . . . . . . . . . . . . . 8 | |||
| 2.3.2. Class based prefix and IA_NA allocation . . . . . . . 8 | 2.3.2. Class based prefix and IA_NA allocation . . . . . . . 9 | |||
| 2.3.3. Class based prefix and IA_PD allocation . . . . . . . 9 | 2.3.3. Class based prefix and IA_PD allocation . . . . . . . 9 | |||
| 2.3.4. Class based prefix and SLAAC . . . . . . . . . . . . . 9 | 2.3.4. Class based prefix and SLAAC . . . . . . . . . . . . . 9 | |||
| 2.3.5. Class based prefix and applications . . . . . . . . . 9 | 2.3.5. Class based Information-Request . . . . . . . . . . . 10 | |||
| 3. Example Application . . . . . . . . . . . . . . . . . . . . . 9 | 2.3.6. Class based prefix and applications . . . . . . . . . 10 | |||
| 3. Example Application . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 3.1. Class based prefix delegation . . . . . . . . . . . . . . 12 | 3.1. Class based prefix delegation . . . . . . . . . . . . . . 12 | |||
| 3.2. IPv6 address assignment from class based prefix . . . . . 12 | 3.2. IPv6 address assignment from class based prefix . . . . . 12 | |||
| 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 | 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5.1. OPTION_USAGE_CLASS values . . . . . . . . . . . . . . . . 13 | 5.1. OPTION_USAGE_CLASS values . . . . . . . . . . . . . . . . 13 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 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) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | RFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | |||
| skipping to change at page 3, line 21 ¶ | skipping to change at page 3, line 21 ¶ | |||
| 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. But the OPTION_USER_CLASS | |||
| OPTION_USAGE_CLASS option in IA_PD option for the purpose of | option is only loosely defined and it can hardly be used in mobile | |||
| selecting a prefix for further delegation either via IA_NA or IA_PD | environment where a DHCPv6 client, the DHCPv6 server or requesting | |||
| DHCPv6 request. It defines the behavior of the DHCPv6 server, the | router and the delegating Router may belong to different | |||
| DHCPv6 prefix requesting router and the DHCPv6 client to use this | organizations. | |||
| option. | ||||
| This document introduces 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 DHCPv6 request. It defines the behavior of the | ||||
| DHCPv6 server, the DHCPv6 prefix requesting router and the DHCPv6 | ||||
| client to use this option. | ||||
| In IPv6 a network interface can acquire multiple addresses from the | In IPv6 a network interface can acquire multiple addresses from the | |||
| same scope. In this case application need to have additional | same scope. In this case application need to have additional | |||
| information about the prefix configured on the interface for source | information about the prefix configured on the interface for source | |||
| address selection. Since the network address can be configured via | address selection. Since the network address can be configured via | |||
| DHCPv6 as defined in [RFC3315] or via Stateless Address | DHCPv6 as defined in [RFC3315] or via Stateless Address | |||
| Autoconfiguration (SLAAC) as defined in [RFC4862], additional | Autoconfiguration (SLAAC) as defined in [RFC4862], additional | |||
| information of a prefix can be provided via DHCPv6 or via IPv6 Router | information of a prefix can be provided via DHCPv6 or via IPv6 Router | |||
| Advertisement (RA). | Advertisement (RA). | |||
| skipping to change at page 4, line 40 ¶ | skipping to change at page 4, line 44 ¶ | |||
| 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 usage 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. It defines also usage class option in the | |||
| context of a DHCP information request from a DHCP client to a DHCP | ||||
| server. | ||||
| 2.1. Usage Class Option | 2.1. Usage Class Option | |||
| The format of the DHCPv6 usage 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_USAGE_CLASS | option-length(2) | | | OPTION_USAGE_CLASS | option-length(2) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Class | ~ | | Class | ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ~ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ~ | |||
| ~ Vendor Class Data (Optional,variable length) ~ | ~ Vendor Class Data (Optional,variable length) ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 6, line 33 ¶ | skipping to change at page 6, line 33 ¶ | |||
| 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_USAGE_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 for IA_PD allocation | |||
| 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_USAGE_CLASS requesting prefix delegation for the | include OPTION_USAGE_CLASS requesting prefix delegation for the | |||
| specific class indicated in the OPTION_USAGE_CLASS option. It can | specific class indicated in the OPTION_USAGE_CLASS option. It can | |||
| include multiple IA_PD Prefix options to indicate it's preference | include multiple IA_PD Prefix options to indicate it's preference | |||
| for more than one usage class. | for more than one usage class. | |||
| skipping to change at page 7, line 7 ¶ | skipping to change at page 7, line 7 ¶ | |||
| 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_USAGE_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 for IA_PD allocation | |||
| If the Delegating router supports class based prefix allocation by | If the Delegating router supports class based prefix allocation by | |||
| supporting the OPTION_USAGE_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_USAGE_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. | |||
| skipping to change at page 8, line 9 ¶ | skipping to change at page 8, line 9 ¶ | |||
| 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 usage 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_USAGE_CLASS requesting address to be allocated from a | OPTION_USAGE_CLASS requesting address to be allocated from a | |||
| specific usage class indicated in that option. | specific usage class indicated in that option. | |||
| The DHCPv6 server parses OPTION_USAGE_CLASS option received and | If DHCPv6 client receives OPTION_USAGE_CLASS option in the IAaddr- | |||
| includes it in option area of corresponding OPTION_IA_NA in ADVERTISE | options area of the corresponding IA_NA but does not support this | |||
| message. | option, it SHOULD ignore the received option. | |||
| 2.2.4. DHCPv6 Server Behavior for IA_NA allocation | ||||
| The DHCPv6 server parses OPTION_USAGE_CLASS option received and when | ||||
| it supports allocation within the requested OPTION_USAGE_CLASS | ||||
| responds with an ADVERTISE message after populating the IA_NA option | ||||
| with address information from the requested Usage class. Along with | ||||
| including the IA Address options in the IA_NA option, it also | ||||
| includes the OPTION_USAGE_CLASS option in the corresponding IAaddr- | ||||
| options area. | ||||
| Even though the IA_NA option in the SOLICIT message does not include | ||||
| the OPTION_USAGE_CLASS option, based on local policies, the DHCP | ||||
| server MAY select a default OPTION_USAGE_CLASS value for the client | ||||
| and then SHOULD include the OPTION_USAGE_CLASS option in the IAaddr- | ||||
| options area of the corresponding IA_NA it sends to the client. If | ||||
| both DHCP client and server support Usage-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 requesting router with appropriate status code as | ||||
| specified in [RFC3315]. | ||||
| 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. OPTION_USAGE_CLASS Values | 2.3.1. OPTION_USAGE_CLASS Values | |||
| skipping to change at page 9, line 30 ¶ | skipping to change at page 10, line 5 ¶ | |||
| delegating router, its behavior is explained in Section 2.2.2. | delegating router, its behavior is explained in Section 2.2.2. | |||
| 2.3.4. 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, it is specified in | outside the scope of this document, it is specified in | |||
| [I-D.korhonen-dmm-prefix-properties]. | [I-D.korhonen-dmm-prefix-properties]. | |||
| 2.3.5. Class based prefix and applications | 2.3.5. Class based Information-Request | |||
| A DHCP client MAY include OPTION_USAGE_CLASS in the Information | ||||
| request message to indicate that the requested configuration | ||||
| information (such as a list of available DNS servers) may be | ||||
| associated with a specific Usage Class.The server responds to the | ||||
| client with the requested Options whose values are determined based | ||||
| on the received OPTION_USAGE_CLASS. Even though the Information | ||||
| request message does not include the OPTION_USAGE_CLASS option, based | ||||
| on local policies, the DHCP server MAY select a default | ||||
| OPTION_USAGE_CLASS value for the client and then SHOULD include the | ||||
| OPTION_USAGE_CLASS option Information Response it sends to the | ||||
| client. | ||||
| 2.3.6. Class based prefix and applications | ||||
| Applications within a host can do source address selection based on | Applications within a host can do source address selection based on | |||
| the class of the prefix learnt in OPTION_USAGE_CLASS using rules | the class of the prefix learnt in OPTION_USAGE_CLASS using rules | |||
| defined in [RFC3484]. | 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: | |||
| End of changes. 13 change blocks. | ||||
| 20 lines changed or deleted | 67 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/ | ||||