draft-ietf-6man-addr-select-opt-09.txt | draft-ietf-6man-addr-select-opt-10.txt | |||
---|---|---|---|---|
6man Working Group A.M. Matsumoto | 6man Working Group A.M. Matsumoto | |||
Internet-Draft T.F. Fujisaki | Internet-Draft T.F. Fujisaki | |||
Intended status: Standards Track NTT | Intended status: Standards Track NTT | |||
Expires: October 27, 2013 T.C. Chown | Expires: November 01, 2013 T.C. Chown | |||
University of Southampton | University of Southampton | |||
April 25, 2013 | April 30, 2013 | |||
Distributing Address Selection Policy using DHCPv6 | Distributing Address Selection Policy using DHCPv6 | |||
draft-ietf-6man-addr-select-opt-09.txt | draft-ietf-6man-addr-select-opt-10.txt | |||
Abstract | Abstract | |||
RFC 6724 defines default address selection mechanisms for IPv6 that | RFC 6724 defines default address selection mechanisms for IPv6 that | |||
allow nodes to select an appropriate address when faced with multiple | allow nodes to select an appropriate address when faced with multiple | |||
source and/or destination addresses to choose between. The RFC 6724 | source and/or destination addresses to choose between. The RFC 6724 | |||
allowed for the future definition of methods to administratively | allowed for the future definition of methods to administratively | |||
configure the address selection policy information. This document | configure the address selection policy information. This document | |||
defines a new DHCPv6 option for such configuration, allowing a site | defines a new DHCPv6 option for such configuration, allowing a site | |||
administrator to distribute address selection policy overriding the | administrator to distribute address selection policy overriding the | |||
skipping to change at page 1, line 40 | skipping to change at page 1, line 40 | |||
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 October 27, 2013. | This Internet-Draft will expire on November 01, 2013. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 38 | skipping to change at page 2, line 38 | |||
RFC 6724, it is suggested that the default policy table may be | RFC 6724, it is suggested that the default policy table may be | |||
administratively configured to suit the specific needs of a site. | administratively configured to suit the specific needs of a site. | |||
This specification defines a new DHCPv6 option for such | This specification defines a new DHCPv6 option for such | |||
configuration. | configuration. | |||
Some problems have been identified with the default RFC 3484 address | Some problems have been identified with the default RFC 3484 address | |||
selection policy [RFC5220]. It is unlikely that any default policy | selection policy [RFC5220]. It is unlikely that any default policy | |||
will suit all scenarios, and thus mechanisms to control the source | will suit all scenarios, and thus mechanisms to control the source | |||
address selection policy will be necessary. Requirements for those | address selection policy will be necessary. Requirements for those | |||
mechanisms are described in [RFC5221], while solutions are discussed | mechanisms are described in [RFC5221], while solutions are discussed | |||
in [I-D.ietf-6man-addr-select-sol] and | in [I-D.ietf-6man-addr-select-considerations]. Those documents have | |||
[I-D.ietf-6man-addr-select-considerations]. Those documents have | ||||
helped shape the improvements in the default address selection | helped shape the improvements in the default address selection | |||
algorithm [RFC6724] as well as the DHCPv6 option defined in this | algorithm [RFC6724] as well as the DHCPv6 option defined in this | |||
specification. | specification. | |||
1.1. Conventions Used in This Document | 1.1. Conventions Used in This Document | |||
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 [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
skipping to change at page 3, line 14 | skipping to change at page 3, line 14 | |||
This document uses the terminology defined in [RFC2460] and the | This document uses the terminology defined in [RFC2460] and the | |||
DHCPv6 specification defined in [RFC3315] | DHCPv6 specification defined in [RFC3315] | |||
2. Address Selection options | 2. Address Selection options | |||
The Address Selection option provides the address selection policy | The Address Selection option provides the address selection policy | |||
table, and some other configuration parameters. | table, and some other configuration parameters. | |||
An Address Selection option contains zero or more policy table | An Address Selection option contains zero or more policy table | |||
options. Multiple Policy Table options in an Address Selection | options. Multiple Policy Table options in an Address Selection | |||
option constitute a single policy table. | option constitute a single policy table. When it does not contain | |||
policy table option, it is used to convey the A and P flags. | ||||
The format of the Address Selection option is given below. | The format of the Address Selection option is given 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_ADDRSEL | option-len | | | OPTION_ADDRSEL | option-len | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved |A|P| | | | Reserved |A|P| | | |||
+-+-+-+-+-+-+-+-+ POLICY TABLE OPTIONS | | +-+-+-+-+-+-+-+-+ POLICY TABLE OPTIONS | | |||
skipping to change at page 4, line 13 | skipping to change at page 4, line 22 | |||
policy table. | policy table. | |||
P: Privacy Preference flag. This flag toggles the Privacy | P: Privacy Preference flag. This flag toggles the Privacy | |||
Preference flag at client hosts, which is described in the | Preference flag at client hosts, which is described in the | |||
section 5 in RFC 6724 [RFC6724]. If this flag is set to 1, it | section 5 in RFC 6724 [RFC6724]. If this flag is set to 1, it | |||
does not change client host behavior, that is, a client will | does not change client host behavior, that is, a client will | |||
prefer temporary addresses. If set to 0, the Privacy Preference | prefer temporary addresses. If set to 0, the Privacy Preference | |||
flag is disabled, and a client will prefer public addresses. | flag is disabled, and a client will prefer public addresses. | |||
POLICY TABLE OPTIONS: Zero or more Address Selection Policy Table | POLICY TABLE OPTIONS: Zero or more Address Selection Policy Table | |||
options described below. | options described below. This option corresponds to a row in | |||
the policy table defined in the section 2.1 in RFC 6724 | ||||
[RFC6724]. | ||||
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_ADDRSEL_TABLE | option-len | | | OPTION_ADDRSEL_TABLE | option-len | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| label | precedence | prefix-len | | | | label | precedence | prefix-len | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |||
| | | | | | |||
| prefix (variable length) | | | prefix (variable length) | | |||
skipping to change at page 4, line 35 | skipping to change at page 5, line 6 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 2: Address Selection Policy Table option format | Figure 2: Address Selection Policy Table option format | |||
option-code: OPTION_ADDRSEL_TABLE (TBD). | option-code: OPTION_ADDRSEL_TABLE (TBD). | |||
option-len: The total length of the label field, precedence field, | option-len: The total length of the label field, precedence field, | |||
prefix-len field, and prefix field. | prefix-len field, and prefix field. | |||
label: An 8-bit unsigned integer; this value is for correlation of | label: An 8-bit unsigned integer; this value is for correlation of | |||
source address prefixes and destination address prefixes. | source address prefixes and destination address prefixes. This | |||
field is used to deliver a label value in RFC 6724 policy table. | ||||
precedence: An 8-bit unsigned integer; this value is used for | precedence: An 8-bit unsigned integer; this value is used for | |||
sorting destination addresses. | sorting destination addresses. This field is used to to deliver | |||
a precedence value in RFC 6724 policy table. | ||||
prefix-len: An 8-bit unsigned integer; the number of leading bits in | prefix-len: An 8-bit unsigned integer; the number of leading bits in | |||
the prefix that are valid. The value ranges from 0 to 128. | the prefix that are valid. The value ranges from 0 to 128. | |||
prefix: A variable-length field containing an IP address or the | prefix: A variable-length field containing an IP address or the | |||
prefix of an IP address. An IPv4-mapped address [RFC4291] must | prefix of an IP address. An IPv4-mapped address [RFC4291] must | |||
be used to represent an IPv4 address as a prefix value. This | be used to represent an IPv4 address as a prefix value. This | |||
field is padded with zeros up to the nearest octet boundary when | field is padded with zeros up to the nearest octet boundary when | |||
prefix6-len is not divisible by 8. This can be expressed using | prefix6-len is not divisible by 8. This can be expressed using | |||
the following equation: (prefix-len+7)/8 So the length of this | the following equation: (prefix-len+7)/8 So the length of this | |||
skipping to change at page 5, line 22 | skipping to change at page 5, line 33 | |||
2001:db8::/60 would be encoded with an prefix-len of 60, the | 2001:db8::/60 would be encoded with an prefix-len of 60, the | |||
prefix would be 8 octets and would contains octets 20 01 0d b8 | prefix would be 8 octets and would contains octets 20 01 0d b8 | |||
00 00 00 00. | 00 00 00 00. | |||
3. Processing the Policy Table option | 3. Processing the Policy Table option | |||
This section describes how to process received Policy Table option at | This section describes how to process received Policy Table option at | |||
the DHCPv6 client. | the DHCPv6 client. | |||
This option's concept is to serve as a hint for a node about how to | This option's concept is to serve as a hint for a node about how to | |||
behave in the network. So, basically, it should be up to the node's | behave in the network. Ultimately, it can be controlled by the | |||
administrator how to deal with the received policy information in the | node's administrator how to deal with the received policy | |||
way described below. | information, but the implementation SHOULD follow the way described | |||
below uniformly to ease diagnose brokenness and to reduce operational | ||||
costs. | ||||
3.1. Handling of the local policy table | 3.1. Handling of the local policy table | |||
RFC 6724 defines the default policy table. Also, users are usually | RFC 6724 defines the default policy table. Also, users are usually | |||
able to configure the policy table to satisfy their own requirements. | able to configure the policy table to satisfy their own requirements. | |||
The client implementation SHOULD provide the following choices to the | The client implementation SHOULD provide the following choices to the | |||
user: | user. The choice a SHOULD be default, as far as the policy table is | |||
not configured by the user. | ||||
a) replace the existing active policy table with the DHCPv6 | a) replace the existing active policy table with the DHCPv6 | |||
distributed policy table. | distributed policy table. | |||
b) preserve the existing active policy table, whether this be the | b) preserve the existing active policy table, whether this be the | |||
default policy table, or user configured policy. | default policy table, or user configured policy. | |||
3.2. Handling of the stale policy table | 3.2. Handling of the stale policy table | |||
When the information from the DHCP server goes stale, the policy | When the information from the DHCP server goes stale, the policy | |||
received form the DHCP server should be deprecated. | received form the DHCP server SHOULD be deprecated. | |||
The received information can be considered stale in several cases, | The received information can be considered stale in several cases, | |||
such as, when the interface goes down, the DHCP server does not | such as, when the interface goes down, the DHCP server does not | |||
respond for a certain amount of time, and the Information Refresh | respond for a certain amount of time, and the Information Refresh | |||
Time is expired. | Time is expired. | |||
3.3. Multi-interface situation | 3.3. Multi-interface situation | |||
The policy table, and other parameters specified in this document are | The policy table, and other parameters specified in this document are | |||
node-global information by their nature. One reason being that the | node-global information by their nature. One reason being that the | |||
outbound interface is usually chosen after destination address | outbound interface is usually chosen after destination address | |||
selection. So, a host cannot make use of multiple address selection | selection. So, a host cannot make use of multiple address selection | |||
policies even if they are stored per interface. | policies even if they are stored per interface. | |||
Even if the received policy from one source is merged with one from | Even if the received policy from one source is merged with one from | |||
another source, the effect of both policy are more or less changed. | another source, the effect of both policy are more or less changed. | |||
The policy table is defined as a whole, so the slightest addition/ | The policy table is defined as a whole, so the slightest addition/ | |||
deletion from the policy table brings a change in semantics of the | deletion from the policy table brings a change in semantics of the | |||
skipping to change at page 6, line 24 | skipping to change at page 6, line 43 | |||
policy. | policy. | |||
It also should be noted that absence of the distributed policy from a | It also should be noted that absence of the distributed policy from a | |||
certain network interface should not be treated as absence of policy | certain network interface should not be treated as absence of policy | |||
itself, because it may mean preference for the default address | itself, because it may mean preference for the default address | |||
selection policy. | selection policy. | |||
Under the above assumptions, how to handle received policy is | Under the above assumptions, how to handle received policy is | |||
specified below. | specified below. | |||
A node MAY use Address Selection options by default in any of the | A node SHOULD use Address Selection options by default in any of the | |||
following two cases: | following two cases: | |||
1: The host is single-homed, where the host belongs to one | 1: The host is single-homed, where the host belongs to one | |||
administrative network domain exclusively usually through one | administrative network domain exclusively usually through one | |||
active network interface. | active network interface. | |||
2: The host implements some advanced heuristics to deal with multiple | 2: The host implements some advanced heuristics to deal with multiple | |||
received policy, which is outside the scope of this document. | received policy, which is outside the scope of this document. | |||
The above restrictions do not preclude implementations from providing | The above restrictions do not preclude implementations from providing | |||
skipping to change at page 7, line 44 | skipping to change at page 8, line 17 | |||
Another threat is about privacy concern. As in the security | Another threat is about privacy concern. As in the security | |||
consideration section of RFC 6724, at least a part of, the address | consideration section of RFC 6724, at least a part of, the address | |||
selection policy stored in a host can be leaked by a packet from a | selection policy stored in a host can be leaked by a packet from a | |||
remote host. This issue will not be modified by the introduction of | remote host. This issue will not be modified by the introduction of | |||
this option, regardless of whether the host is multihomed or not. | this option, regardless of whether the host is multihomed or not. | |||
6. IANA Considerations | 6. IANA Considerations | |||
IANA is requested to assign option codes to OPTION_ADDRSEL and | IANA is requested to assign option codes to OPTION_ADDRSEL and | |||
OPTION_ADDRSEL_TABLE from the option-code space as defined in section | OPTION_ADDRSEL_TABLE from the "DHCP Option Codes" registry (http:// | |||
"DHCPv6 Options" of RFC 3315. | www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml). | |||
7. References | 7. References | |||
7.1. Normative References | 7.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 | |||
skipping to change at page 8, line 26 | skipping to change at page 8, line 45 | |||
"Default Address Selection for Internet Protocol Version 6 | "Default Address Selection for Internet Protocol Version 6 | |||
(IPv6)", RFC 6724, September 2012. | (IPv6)", RFC 6724, September 2012. | |||
7.2. Informative References | 7.2. Informative References | |||
[I-D.ietf-6man-addr-select-considerations] | [I-D.ietf-6man-addr-select-considerations] | |||
Chown, T. and A. Matsumoto, "Considerations for IPv6 | Chown, T. and A. Matsumoto, "Considerations for IPv6 | |||
Address Selection Policy Changes", draft-ietf-6man-addr- | Address Selection Policy Changes", draft-ietf-6man-addr- | |||
select-considerations-05 (work in progress), April 2013. | select-considerations-05 (work in progress), April 2013. | |||
[I-D.ietf-6man-addr-select-sol] | ||||
Matsumoto, A., Fujisaki, T., and R. Hiromi, "Solution | ||||
approaches for address-selection problems", draft-ietf- | ||||
6man-addr-select-sol-03 (work in progress), March 2010. | ||||
[RFC2460] Deering, S.E. and R.M. Hinden, "Internet Protocol, Version | [RFC2460] Deering, S.E. and R.M. Hinden, "Internet Protocol, Version | |||
6 (IPv6) Specification", RFC 2460, December 1998. | 6 (IPv6) Specification", RFC 2460, December 1998. | |||
[RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. | [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. | |||
Stevens, "Basic Socket Interface Extensions for IPv6", RFC | Stevens, "Basic Socket Interface Extensions for IPv6", RFC | |||
3493, February 2003. | 3493, February 2003. | |||
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
Architecture", RFC 4291, February 2006. | Architecture", RFC 4291, February 2006. | |||
skipping to change at page 9, line 13 | skipping to change at page 9, line 29 | |||
July 2008. | July 2008. | |||
Appendix A. Acknowledgements | Appendix A. Acknowledgements | |||
Authors would like to thank to Dave Thaler, Pekka Savola, Remi Denis- | Authors would like to thank to Dave Thaler, Pekka Savola, Remi Denis- | |||
Courmont, Francois-Xavier Le Bail, Ole Troan, Bob Hinden, Dmitry | Courmont, Francois-Xavier Le Bail, Ole Troan, Bob Hinden, Dmitry | |||
Anipko, Ray Hunter, Rui Paulo, Brian E Carpenter, Tom Petch, and the | Anipko, Ray Hunter, Rui Paulo, Brian E Carpenter, Tom Petch, and the | |||
members of 6man's address selection design team for their invaluable | members of 6man's address selection design team for their invaluable | |||
contributions to this document. | contributions to this document. | |||
Appendix B. Past Discussion | ||||
o The 'zone index' value is used to specify a particular zone for | ||||
scoped addresses. This can be used effectively to control address | ||||
selection in the site scope (e.g., to tell a node to use a | ||||
specified source address corresponding to a site-scoped multicast | ||||
address). However, in some cases such as a link-local scope | ||||
address, the value specifying one zone is only meaningful locally | ||||
within that node. There might be some cases where the | ||||
administrator knows which clients are on the network and wants | ||||
specific interfaces to be used though. However, in general case, | ||||
it is really rare case, and the field was removed. | ||||
Authors' Addresses | Authors' Addresses | |||
Arifumi Matsumoto | Arifumi Matsumoto | |||
NTT NT Lab | NTT NT Lab | |||
3-9-11 Midori-Cho | 3-9-11 Midori-Cho | |||
Musashino-shi, Tokyo 180-8585 | Musashino-shi, Tokyo 180-8585 | |||
Japan | Japan | |||
Phone: +81 422 59 3334 | Phone: +81 422 59 3334 | |||
Email: arifumi@nttv6.net | Email: arifumi@nttv6.net | |||
End of changes. 17 change blocks. | ||||
36 lines changed or deleted | 26 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/ |