draft-ietf-dhc-pd-exclude-01.txt   draft-ietf-dhc-pd-exclude-02.txt 
Dynamic Host Configuration (DHC) J. Korhonen, Ed. Dynamic Host Configuration (DHC) J. Korhonen, Ed.
Internet-Draft Nokia Siemens Networks Internet-Draft Nokia Siemens Networks
Updates: 3633 (if approved) T. Savolainen Updates: 3633 (if approved) T. Savolainen
Intended status: Standards Track Nokia Intended status: Standards Track Nokia
Expires: July 16, 2011 S. Krishnan Expires: December 22, 2011 S. Krishnan
Ericsson Ericsson
O. Troan O. Troan
Cisco Systems, Inc Cisco Systems, Inc
January 12, 2011 June 20, 2011
Prefix Exclude Option for DHCPv6-based Prefix Delegation Prefix Exclude Option for DHCPv6-based Prefix Delegation
draft-ietf-dhc-pd-exclude-01.txt draft-ietf-dhc-pd-exclude-02.txt
Abstract Abstract
This specification defines an optional mechanism to allow exclusion This specification defines an optional mechanism to allow exclusion
of one specific prefix from a delegated prefix set when using DHCPv6- of one specific prefix from a delegated prefix set when using DHCPv6-
based prefix delegation. based prefix delegation. The new mechanism updates RFC 3633.
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 July 16, 2011. This Internet-Draft will expire on December 22, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 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 16 skipping to change at page 2, line 16
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Requirements and Terminology . . . . . . . . . . . . . . . . . 3 2. Requirements and Terminology . . . . . . . . . . . . . . . . . 3
3. Problem Background . . . . . . . . . . . . . . . . . . . . . . 3 3. Problem Background . . . . . . . . . . . . . . . . . . . . . . 3
4. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.1. Prefix Delegation with Excluded Prefixes . . . . . . . . . 4 4.1. Prefix Delegation with Excluded Prefixes . . . . . . . . . 4
4.2. Prefix Exclude Option . . . . . . . . . . . . . . . . . . . 4 4.2. Prefix Exclude Option . . . . . . . . . . . . . . . . . . . 4
5. Delegating Router Solicitation . . . . . . . . . . . . . . . . 5 5. Delegating Router Solicitation . . . . . . . . . . . . . . . . 6
5.1. Requesting Router . . . . . . . . . . . . . . . . . . . . . 6 5.1. Requesting Router . . . . . . . . . . . . . . . . . . . . . 6
5.2. Delegating Router . . . . . . . . . . . . . . . . . . . . . 6 5.2. Delegating Router . . . . . . . . . . . . . . . . . . . . . 7
6. Requesting Router Initiated Prefix Delegation . . . . . . . . . 6 6. Requesting Router Initiated Prefix Delegation . . . . . . . . . 7
6.1. Requesting Router . . . . . . . . . . . . . . . . . . . . . 7 6.1. Requesting Router . . . . . . . . . . . . . . . . . . . . . 7
6.2. Delegating Router . . . . . . . . . . . . . . . . . . . . . 7 6.2. Delegating Router . . . . . . . . . . . . . . . . . . . . . 8
7. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 7. Security Considerations . . . . . . . . . . . . . . . . . . . . 8
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9
10.1. Normative References . . . . . . . . . . . . . . . . . . . 8 10.1. Normative References . . . . . . . . . . . . . . . . . . . 9
10.2. Informative References . . . . . . . . . . . . . . . . . . 8 10.2. Informative References . . . . . . . . . . . . . . . . . . 9
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9
1. Introduction 1. Introduction
This specification defines an optional mechanism and the related This specification defines an optional mechanism and the related
DHCPv6 option to allow exclusion of one specific prefix from a DHCPv6 option to allow exclusion of one specific prefix from a
delegated prefix set when using DHCPv6-based prefix delegation. delegated prefix set when using DHCPv6-based prefix delegation.
The prefix exclusion mechanism is targeted to deployments where The prefix exclusion mechanism is targeted to deployments where
DHCPv6-based prefix delegation is used but a single aggregatable DHCPv6-based prefix delegation is used but a single aggregatable
route/prefix has to represents one customer, instead of using one route/prefix has to represent one customer, instead of using one
prefix for the link between the delegating router and the requesting prefix for the link between the delegating router and the requesting
router and another prefix for the customer network. The mechanism router and another prefix for the customer network. The mechanism
defined in this specification allows a delegating router to use a defined in this specification allows a delegating router to use a
prefix out of the delegated prefix set on the link through which it prefix out of the delegated prefix set on the link through which it
exchanges DHCPv6 messages with the requesting router. exchanges DHCPv6 messages with the requesting router.
2. Requirements and Terminology 2. Requirements and Terminology
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
skipping to change at page 5, line 6 skipping to change at page 5, line 6
o option-code: OPTION_PD_EXCLUDE (TBD1). o option-code: OPTION_PD_EXCLUDE (TBD1).
o option-len: 1 + length of IPv6 subnet ID in octets. A valid o option-len: 1 + length of IPv6 subnet ID in octets. A valid
option-len is between 2 and 17. option-len is between 2 and 17.
o prefix-len: The length of the excluded prefix in bits. The o prefix-len: The length of the excluded prefix in bits. The
prefix-len MUST be between 'OPTION_IAPREFIX prefix-length'+1 and prefix-len MUST be between 'OPTION_IAPREFIX prefix-length'+1 and
128. 128.
o IPv6 subnet ID: A variable length IPv6 subnet ID up to 128 bits. o IPv6 subnet ID: A variable length IPv6 subnet ID up to 128 bits.
The subnet ID contains prefix-len minus 'OPTION_IAPREFIX prefix-
length' bits extracted from the excluded prefix starting from the The IPv6 subnet ID contains prefix-len minus 'OPTION_IAPREFIX prefix-
bit position 'OPTION_IAPREFIX prefix-length'. The extracted length' bits extracted from the excluded prefix starting from the bit
subnet ID MUST be left shifted to start from a full octet position 'OPTION_IAPREFIX prefix-length'. The extracted subnet ID
boundary, i.e. left shift of 'OPTION_IAPREFIX prefix-length' mod 8 MUST be left shifted to start from a full octet boundary, i.e. left
bits. The subnet ID MUST be zero padded to the next full octet shift of 'OPTION_IAPREFIX prefix-length' mod 8 bits. The subnet ID
boundary. MUST be zero padded to the next full octet boundary.
The encoding of the IPv6 subnet ID can be expressed in a C-like
pseudo code as shown below:
uint128_t p1; // the delegated IPv6 prefix
uint128_t p2; // the excluded IPv6 prefix
uint16_t a; // the OPTION_IAPREFIX prefix-length
uint8_t b; // the excluded IPv6 prefix length
uint8_t s;
// sanity checks
s = 128-a; // size of non-prefix bits
assert(b>a); // b must be at least a+1
assert(p1>>s == p2>>s); // p1 and p2 must share a common
// prefix of 'a' bits
// calculate the option content
uint16_t c = b-a-1; // the IPv6_subnet_ID_length-1 in bits
uint16_t d = (c/8)+1; // the IPv6_subnet_ID_length in octets
uint128_t p = p2<<a; // p is the IPv6 subnet ID that has the
// common p1 prefix left shifted out to
// a full octet boundary (trailing bits
// are zeroed)
// populate the option
uint8_t* id = &OPTION_PD_EXCLUDE.IPv6_subnet_ID;
OPTION_PD_EXCLUDE.option_len = d+1;
OPTION_PD_EXCLUDE.prefix_len = b;
while (d-- > 0) {
*id++ = p>>120;
p <<= 8;
}
The OPTION_PD_EXCLUDE option MUST only be included in the The OPTION_PD_EXCLUDE option MUST only be included in the
OPTION_IAPREFIX IAprefix-options [RFC3633] field. The OPTION_IAPREFIX IAprefix-options [RFC3633] field.
OPTION_PD_EXCLUDE option MUST be located before the possible Status
Code option in the IAprefix-options field.
Any prefix excluded from the delegated prefix MUST be contained in Any prefix excluded from the delegated prefix MUST be contained in
OPTION_PD_EXCLUDE options within the corresponding OPTION_IAPREFIX. OPTION_PD_EXCLUDE options within the corresponding OPTION_IAPREFIX.
The prefix included in the OPTION_PD_EXCLUDE option share the same The prefix included in the OPTION_PD_EXCLUDE option share the same
preferred-lifetime and valid-lifetime as the delegated prefix in the preferred-lifetime and valid-lifetime as the delegated prefix in the
encapsulating OPTION_IAPREFIX option. encapsulating OPTION_IAPREFIX option.
The prefix in the OPTION_PD_EXCLUDE option MUST be part of the The prefix in the OPTION_PD_EXCLUDE option MUST be part of the
delegated prefix in the OPTION_IAPREFIX. For example, the requesting delegated prefix in the OPTION_IAPREFIX. For example, the requesting
skipping to change at page 5, line 45 skipping to change at page 6, line 31
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_PD_EXCLUDE | 2 | | OPTION_PD_EXCLUDE | 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 64 |0|1|1|1|1|0|0|0| | 64 |0|1|1|1|1|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
^ ^ ^ ^
| | | |
| +- 3 zero padded bits follow | +- 3 zero padded bits follow
| |
+- using C syntax: (0xef & 0x1f) << (59 % 8) +- using C syntax: 0xef << (59 % 8)
Note: 59 mod 8 = 3 Note: 59 mod 8 = 3
5. Delegating Router Solicitation 5. Delegating Router Solicitation
The requesting router locates and selects a delegating router in the The requesting router locates and selects a delegating router in the
same way as described in Section 11 [RFC3633]. This specification same way as described in Section 11 [RFC3633]. This specification
only describes the additional steps required by the use of only describes the additional steps required by the use of
OPTION_PD_EXCLUDE option. OPTION_PD_EXCLUDE option.
5.1. Requesting Router 5.1. Requesting Router
If the requesting router implements the solution described in If the requesting router implements the solution described in
Section 4.1 then the requesting router SHOULD include the Section 4.1 then the requesting router SHOULD include the
OPTION_PD_EXCLUDE option code in the OPTION_ORO option in the Solicit OPTION_PD_EXCLUDE option code in the OPTION_ORO option in Solicit
message. messages.
Once receiving Advertise message, the requesting router uses the Once receiving Advertise message, the requesting router uses the
prefix(es) received in OPTION_PD_EXCLUDE in addition to the prefix(es) received in OPTION_PD_EXCLUDE in addition to the
advertised prefixes to choose the delegating router to respond to. advertised prefixes to choose the delegating router to respond to.
If Advertise message did not include OPTION_PD_EXCLUDE option, then If Advertise message did not include OPTION_PD_EXCLUDE option, then
the requesting router MUST fall back to normal [RFC3633] behavior. the requesting router MUST fall back to normal [RFC3633] Section 11.1
behavior.
5.2. Delegating Router 5.2. Delegating Router
If the OPTION_ORO option in the Solicit message includes the If the OPTION_ORO option in the Solicit message includes the
OPTION_PD_EXCLUDE option code, then the delegating router knows that OPTION_PD_EXCLUDE option code, then the delegating router knows that
the requesting router supports the solution defined in this the requesting router supports the solution defined in this
specification. If the Solicit message also contains an IA_PD option, specification. If the Solicit message also contains an IA_PD option,
the delegating router can delegate to the requesting router a prefix the delegating router can delegate to the requesting router a prefix
which includes the prefix already assigned to the requesting router's which includes the prefix already assigned to the requesting router's
uplink interface. The delegating router includes the prefix uplink interface. The delegating router includes the prefix
originally or to be assigned to the requesting router in the originally or to be assigned to the requesting router in the
OPTION_PD_EXCLUDE option within the OPTION_IAPREFIX IAprefix-option OPTION_PD_EXCLUDE option within the OPTION_IAPREFIX IAprefix-option
in the Advertise message. in the Advertise message.
If the OPTION_ORO option in the Solicit message does not include the If the OPTION_ORO option in the Solicit message does not include the
OPTION_PD_EXCLUDE option code, then the delegating router MUST fall OPTION_PD_EXCLUDE option code, then the delegating router MUST fall
back to normal [RFC3633] behavior. back to normal [RFC3633] Section 11.2 behavior.
If the OPTION_ORO option in the Solicit message includes the If the OPTION_ORO option in the Solicit message includes the
OPTION_PD_EXCLUDE option code but the delegating router does not OPTION_PD_EXCLUDE 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 normal [RFC3633] behavior. router MUST in this case also fall back to normal [RFC3633] behavior.
6. Requesting Router Initiated Prefix Delegation 6. Requesting Router Initiated Prefix Delegation
The procedures described in the following sections are aligned with The procedures described in the following sections are aligned with
Section 12 of [RFC3633]. In this specification we only describe the Section 12 of [RFC3633]. In this specification we only describe the
additional steps required by the use of OPTION_PD_EXCLUDE option. additional steps required by the use of OPTION_PD_EXCLUDE option.
6.1. Requesting Router 6.1. Requesting Router
The requesting router behavior regarding the use of the The requesting router behavior regarding the use of the
OPTION_PD_EXCLUDE option is more or less identical to step described OPTION_PD_EXCLUDE option is more or less identical to step described
in Section 5.1. The only difference really is different used DHCPv6 in Section 5.1. The only difference really is different used DHCPv6
messages. messages. The requesting router SHOULD include the OPTION_PD_EXCLUDE
option code in the OPTION_ORO option in DHCPv6 messages as described
in Section 22.7 of [RFC3315].
The requesting router uses a Release message to return the delegated The requesting router uses a Release message to return the delegated
prefix(es) to a delegating router. The prefix(es) to be released prefix(es) to a delegating router. The prefix(es) to be released
MUST be included in the IA_PDs along with the excluded prefix MUST be included in the IA_PDs along with the excluded prefix
included in the OPTION_PD_EXCLUDE option. The requesting router MUST included in the OPTION_PD_EXCLUDE option. The requesting router MUST
NOT use the OPTION_PD_EXCLUDE option to introduce additional excluded NOT use the OPTION_PD_EXCLUDE option to introduce additional excluded
prefix in the Release message that it originally got a valid binding prefix in the Release message that it originally got a valid binding
for. for.
The requesting router must create sink routes for the delegated The requesting router must create sink routes for the delegated
skipping to change at page 8, line 9 skipping to change at page 8, line 42
A new DHCPv6 Option Code is reserved from DHCPv6 registry for DHCP A new DHCPv6 Option Code is reserved from DHCPv6 registry for DHCP
Option Codes. Option Codes.
OPTION_PD_EXCLUDE is set to TBD1 OPTION_PD_EXCLUDE is set to TBD1
9. Acknowledgements 9. Acknowledgements
Authors would like to thank Ralph Droms, Frank Brockners, Ted Lemon, Authors would like to thank Ralph Droms, Frank Brockners, Ted Lemon,
Julien Laganier, Fredrik Garneij, Sri Gundavelli, Mikael Abrahamsson, Julien Laganier, Fredrik Garneij, Sri Gundavelli, Mikael Abrahamsson,
Behcet Sarikaya, Jyrki Soini and Deng Hui for their valuable comments Behcet Sarikaya, Jyrki Soini, Deng Hui, Stephen Jacob and Tomek
and discussions. Mrugalski for their valuable comments and discussions.
10. References 10. References
10.1. Normative References 10.1. Normative References
[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.
[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.
[RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
 End of changes. 19 change blocks. 
35 lines changed or deleted 71 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/