Network Working Group M. Boucadair, Ed. Internet-Draft P. Levis Intended status: Standards Track J-L. Grimault Expires: June 24, 2010 France Telecom T. Savolainen G. Bajko Nokia December 21, 2009 Dynamic Host Configuration Protocol (DHCPv6) Options for Shared IP Addresses Solutions draft-boucadair-dhcpv6-shared-address-option-01 Abstract This memo defines Dynamic Host Configuration Protocol version 6 (DHCPv6) Options to be used in the context of shared IP address solutions. In some deployment scenarios, DHCP (IPv4) cannot be used to configure customer devices because only IPv6 capabilities are deployed (e.g., DS-lite context or IPv6 Port Range). Therefore, DHCPv6 may be used to convey IPv4-related configuration information such as Port Range and/or Port Extended IPv4 addresses. This document defines also a DHCPv6 Option aiming to convey the IPv6 prefix to be used to build IPv4 Embedded IPv6 addresses [I-D.ietf-behave-address-format]. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." Boucadair, et al. Expires June 24, 2010 [Page 1] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on June 24, 2010. Copyright Notice Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License. This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English. Boucadair, et al. Expires June 24, 2010 [Page 2] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. IPv4 Address Option . . . . . . . . . . . . . . . . . . . . . 5 3. Port Extended IPv4 Address DHCPv6 Option . . . . . . . . . . . 5 3.1. Option Format . . . . . . . . . . . . . . . . . . . . . . 6 3.2. Port Range Sub-Option . . . . . . . . . . . . . . . . . . 7 3.3. Delegated Random Port Range Sub-Option . . . . . . . . . . 8 4. IPv4-Embedded IPv6 Address Format Option . . . . . . . . . . . 9 5. Supported IPv4-Embedded IPv6 Address Formats Option . . . . . 12 6. Behaviour . . . . . . . . . . . . . . . . . . . . . . . . . . 12 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 8. Security Considerations . . . . . . . . . . . . . . . . . . . 14 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 10.1. Normative References . . . . . . . . . . . . . . . . . . . 15 10.2. Informative References . . . . . . . . . . . . . . . . . . 15 Appendix A. Port Mask Example . . . . . . . . . . . . . . . . . . 16 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16 Boucadair, et al. Expires June 24, 2010 [Page 3] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 1. Introduction Within the context of IPv4 address depletion, several solutions have been submitted to the IETF to propose viable alternatives to double NAT [I-D.nishitani-cgn]. Examples of these solutions are [I-D.ietf-softwire-dual-stack-lite] and [I-D.boucadair-behave-ipv6-portrange]. These solutions propose to share a given global IPv4 address between several customers. These solutions differ in the way they behave and particularly on the location of the NAT function. In [I-D.boucadair-behave-ipv6-portrange] the NAT function stays at the CPE level and none lies in the network whilst in [I-D.ietf-softwire-dual-stack-lite] the NAT function is located in the network -in the DS-lite node- while the NAT in the CPE can be deactivated. Nevertheless, [I-D.ietf-softwire-dual-stack-lite] supports the Extended Port IP address logic mainly for the enforcement of port forwarding service for instance. Therefore, dedicated means such as [I-D.bajko-pripaddrassign] are required for the provisioning of pertinent information to constrain the source port number. [I-D.bajko-pripaddrassign] specifications may be used when IPv4-enabled DHCP servers are deployed and corresponding DHCP clients enabled in customer devices, such as the CPE. Furthermore, both [I-D.ietf-softwire-dual-stack-lite] and [I-D.boucadair-behave-ipv6-portrange] assume that only IPv6 transfer capabilities are activated on the link connecting the customer's device to the access network. IPv4-in-IPv6 tunneling capabilities can be put in place to allow DHCP exchanges and therefore [I-D.bajko-pripaddrassign] can be used to provision the customer device. Nevertheless, in environments where no IPv4-enabled DHCP servers are maintained or no tunneling means are deployed to reach DHCP servers, alternative means to provision the customer's device are required. This memo is an effort to meet this requirement. Note that [I-D.dhankins-softwire-tunnel-option] can be used to provide the customer device with the IPv6 address of a DS-lite CGN or a PRR (Port Range Router) node. Concretely, this document defines the following new DHCPv6 Options [RFC3315]: 1. IPv4 address: This option is used to convey a "full" IPv4 address. 2. Port Extended IPv4 Address: This option carries an IPv4 address to be used in conjunction with an allocated Port Range. In case of Port Range allocation, several customers are assigned with the same IPv4 Address. This option defines the allowed port values Boucadair, et al. Expires June 24, 2010 [Page 4] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 to be used as source port number. This option is completely independent of the IPv4 address Option above. 3. IPv4-embedded IPv6 address Format: This option is used to provide the device with the prefix to be used to build an IPv4-embedded IPv6 address, see for intance [I-D.ietf-behave-address-format]. 4. Supported IPv4-embedded IPv6 address Formats: This option allows a DHCPv6 client to indicate the type of IPv4-embedded IPv6 address format(s) it can handle. 2. IPv4 Address Option This DHCPv6 Option carries an IPv4 address. The DHCPv6 Option has the format shown in Figure 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_IPV4_A | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address (IPv4 Address) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | preferred-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | valid-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: IPv4 Address DHCPv6 Option - option-code: OPTION_IPV4_A (To be assigned by IANA) - option-length: 12. - preferred-lifetime: The preferred lifetime for the IPv4 address in the option, expressed in units of seconds. - valid-lifetime: The valid lifetime for the IPv4 address in the option, expressed in units of seconds. 3. Port Extended IPv4 Address DHCPv6 Option Boucadair, et al. Expires June 24, 2010 [Page 5] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 3.1. Option Format The Port Extended IPv4 address DHCPv6 Option is used to specify a shared IPv4 address together with one range of ports (contiguous or not). The format of the Port Extended IPv4 address Option is provided in Figure 2. 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_PORT_EXTENDED_A | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sub-option-code | sub-option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sub-option-content | . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | preferred-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | valid-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: Port Extended IPv4 Address DHCPv6 Option - option-code: OPTION_PORT_EXTENDED_A (To be assigned by IANA) - option-length: the length of enclosed sub-option(s) + 4. - sub-option code: specifies the code of the included sub-options. Two sub-codes are defined in this document: SUB_OPTION_PORT_MASK and SUB_OPTION_DELG_RAND. - sub-option-len: length of the sub-option. - sub-option-content: content of the sub-option Boucadair, et al. Expires June 24, 2010 [Page 6] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 - preferred-lifetime: The preferred lifetime for the Port Extended IPv4 address in the option, expressed in units of seconds. - valid-lifetime: The valid lifetime for the Port Extended IPv4 address in the option, expressed in units of seconds. 3.2. Port Range Sub-Option Figure 3 provides an overview of the Port Range sub-option. This sub-option is used to notify a remote peer about an IPv4 address to be used in conjunction with an allocated Port Range. The Port Range is allocated on the form of a Port Mask to be applied when selecting a port value as a source port. The Port Range Sub Option is used to infer a set of allowed port values. A Port Mask defines a set of ports that all have in common a subset of pre-positioned bits. This set of ports is also called Port Range. A Port Mask is composed of a Port Range Value and a Port Range Mask. o The Port Range Value indicates the value of the significant bits of the Port Mask. The Port Range Value is encoded as follows: * The significant bits may take a value of 0 or 1. * All the other bits (non significant ones) are set to 0. o The Port Range Mask indicates, by the bit(s) set to 1, the position of the significant bits of the Port Range Value. This DHCPv6 Sub Option provides a way to negotiate the port range to be allocated to the peer. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUB_OPTION_PORT_MASK | sub-option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Extended IP Address (IPv4 Address) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Range Value | Port Range Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: Port Range Sub Option Boucadair, et al. Expires June 24, 2010 [Page 7] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 - sub-option-code: SUB_OPTION_PORT_MASK (To be assigned by IANA) - sub-option-len: 8. - Port Extended IP Address: specifies the shared IPv4 address - Port Range Value (PRV) (16 bits): PRV indicates the value of the significant bits of the Port Mask. - Port Range Mask (PRM) (16 bits): The Port Range Mask indicates, by the bit(s) set to 1, the position of the significant bits of the Port Range Value. An example of Port Range Mask is provided in Appendix A. 3.3. Delegated Random Port Range Sub-Option Figure 4 provides an overview of the delegated random Port Range: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SUB_OPTION_DELG_RAND | sub-option-len | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port Extended IP Address (IPv4 Address) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | function | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | starting point | number of delegated ports | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | key K (128 bits) | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Delegated Random Port Option - sub-option-code: SUB_OPTION_DELG_RAND (To be assigned by IANA) - sub-option-len: 28. - Port Extended IP Address: specifies the shared IPv4 address - Function: A 32 bit field whose value is associated with predefined encryption functions. For more information about this function, refer to [I-D.bajko-pripaddrassign]. Boucadair, et al. Expires June 24, 2010 [Page 8] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 - starting point: A 16 bit value used as an input to the specified function. - Number of delegated ports: A 16bit value specifying the number of ports delegated to the client for use as source port values. - Key K: A 128 bit key used as input to the predefined function for delegated port calculation. 4. IPv4-Embedded IPv6 Address Format Option [I-D.boucadair-behave-ipv6-portrange] defines a Port Range solution which assumes IPv6-only network for the delivery of both IPv4 and IPv6 connectivity services. The solution is based on IPv4-in-IPv6 encapsulation for the transport of IPv4 datagrams inside an IPv6-only network. For these reasons, an IPv6 prefix is required to build destination IPv4-embedded IPv6 addresses of IPv4-in-IPv6 encapsulated datagrams issued by a port-restricted device. [I-D.ietf-behave-address-format] specifies the format of IPv4 Embedded IPv6 address. Figure 5 provides an example of a structure of an IPv4-embedded IPv6 address where "Pref6" is a well-known IPv6 prefix: +----------------------------------------------------------------------...+ | Pref6 |Dest. IPv4 |Dest. | 0:0:0:0 | | |address |port | | +----------------------------------------------------------------------...+ Figure 5: Example of IPv4-Embedded IPv6 Address The IPv4-embedded IPv6 address format used by a device depends on several parameters such as the ability of the device to use a port number or not when building an IPv4-embedded IPv6 address. Hence there is a need to identify several formats. This need is covered by the IPv4-embedded IPv6 address Format Option. The IPv4-embedded IPv6 address Format Option is structured as shown in Figure 6. Boucadair, et al. Expires June 24, 2010 [Page 9] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 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_INFER_V4V6 | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | format-type | IPv6 Prefix length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | | IPv6 Prefix (Variable) | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | preferred-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | valid-lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 6: IPv4-inferred IPv6 addresses Format Option - option-code: OPTION_INFER_V4V6 (To be assigned by IANA) - option-length: Variable. - format-type: Indicates the format type of the IPv4-embedded IPv6 address. The values so far defined are the following ones: - "1": When the format-type value is set to 1, the destination addresses of IPv4-in-IPv6 datagrams issued by the device have the following structure: +-----------------------------------------------------------------------------+ | IPv6 Prefix (128 bits) | | | +-----------------------------------------------------------------------------+ Figure 7: Format Type (1) As a matter of fact, the IPv6 Prefix (128 bits long) is an IPv6 address here. The IPv4-in-IPv6 encapsulation scheme is the simple IPv4-in-IPv6 encapsulation. - "2": When the format-type value is equal to 2, the destination IPv6 addresses of IPv4-in-IPv6 datagrams issued by the device follow the following structure. This format type is Boucadair, et al. Expires June 24, 2010 [Page 10] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 defined in [I-D.boucadair-behave-ipv6-portrange]. +------------------------------------------------------------------------------+ |IPv6 Prefix (32 bits)| Dest. IPv4 | 0::0 | | | address (32 bits)| | +------------------------------------------------------------------------------+ Figure 8: Format Type (2) The IPv4-in-IPv6 encapsulation scheme is the simple IPv4-in- IPv6 encapsulation. - "3": When the format-type value is set to 3, a. if the IPv4 packet to be sent encapsulated bears a protocol with port information (case of TCP and UDP, for example), the destination IPv6 address of the IPv4-in-IPv6 datagram transmitted by the device follows the following structure : +------------------------------------------------------------------------------+ |IPv6 Prefix (32 bits)| Dest. IPv4 |Dest. Port| 0::0 | | | address (32 bits)|(16 bits) | | +------------------------------------------------------------------------------+ Figure 9: Format Type (3) b. if the IPv4 datagram to be encapsulated bears a protocol without port number (e.g. ICMP), the destination IPv6 address of the IPv4-in-IPv6 datagram issued by the device SHOULD be sent to another IPv6 destination address than the destination address depicted in Figure 9. For example, such packet without port number MAY be transmitted to a DS- lite CGN node. Another alternative is to send such packet following the Format Type (2) even if Format Type (3) has been mandated by the DHCPv6 server to the client, but this behavior is NOT RECOMMENDED. The IPv4-in-IPv6 encapsulation scheme is the simple IPv4-in- IPv6 encapsulation. - Other format-type values can be defined later. The format- type values from the value 32768 are not reserved. They can be used in a ISP scope to encode a proprietary format-type. - IPv6 Prefix: Encloses the IPv6 prefix to be used to build IPv4- embedded IPv6 addresses. When format-type 1 is used, this prefix is an IPv6 address. Boucadair, et al. Expires June 24, 2010 [Page 11] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 - preferred-lifetime: The preferred lifetime for the IPv6 Prefix in the option, expressed in units of seconds. - valid-lifetime: The valid lifetime for the IPv6 Prefix in the option, expressed in units of seconds. 5. Supported IPv4-Embedded IPv6 Address Formats Option A client MAY indicate the format-type values it can support (related to IPv4- embedded IPv6 address Formats Option) by including the Supported IPv4-embedded IPv6 address Formats Option in a DHCPv6 Solicit, Request, Renew, Rebind, Confirm or Information-request message. The order in the list MAY indicate preference in format-types, the first value being the preferred one. The Supported IPv4-embedded IPv6 address Format Option is structured as shown in Figure 10. 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_SUPPORT_INFER_V4V6 | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | format-type-1 | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | format-type-n | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 10: Supported IPv4-inferred IPv6 Address Formats Option - option-code: OPTION_SUPPORT_INFER_V4V6 (To be assigned by IANA) - option-length: permits to numerate the supported format-type values. option-length = 2 * number of format-type values. In case of an odd number of format-type values, a padding of two "x00" octets is to be placed in the ending 16 bits. - format-type-i: the values of the format-type supported by the client. 6. Behaviour A client MAY request IPv4 Address and/or Port Extended IPv4 Address and/or IPv4-embedded IPv6 address Format Option(s) by including the Boucadair, et al. Expires June 24, 2010 [Page 12] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 corresponding Option codes into an Option Request Option (as per [RFC3315]). This latter being itself included into a Solicit, Request, Renew, Rebind, Confirm or Information-request message. Doing so, the client can inform the server about options the client wishes to receive. The client MAY include IPv4 Address and/or Port Extended IPv4 Address and/or IPv4-embedded IPv6 address Format in Solicit, Request, Renew, Rebind, Confirm or Information request message as hints to the server about parameter values the client would like to be returned. In such case, the Option Request Option MUST be sent in the message and includes the corresponding Option codes. If the client sends the IPv4-embedded IPv6 address Formats as a hint to the server, the value of the format-type in the Option is the value of the format-type preferred by the client. A client MAY indicate the format-type values it can support (related to IPv4-embedded IPv6 address Format Option) by including the Supported IPv4-embedded IPv6 address Formats Option in a Solicit, Request, Renew, Rebind, Confirm or Information-request message. If in the same message the client has also included the IPv4-embedded IPv6 address Format Option as a hint to the server, then the format- type values listed in the Supported IPv4-embedded IPv6 address Formats Option has to be taken by the server as complementary information. In that case, for consistency reasons, the first format-type value indicated in the Supported IPv4-embedded IPv6 address Formats Option MUST be the same value (i.e. the preferred one) as the one in the IPv4-embedded IPv6 address Format Option. If a client receives the IPv4 Address Option in conjunction with an IPv4-embedded IPv6 address Format Option, all IPv4 datagrams MUST be encapsulated in IPv6 according to the features indicated in this latter Option, meaning that the destination IPv6 addresses MUST be IPv4-embedded addresses as specified in the Option. If a client receives the Port Extended IPv4 Address Option, the client MUST constrain the source port number of included Port Extended IPv4 Address to be within the provisioned Port Range. If a client receives the IPv4 Address Port Extended IPv4 Address Option in conjunction with the IPv4-embedded IPv6 address Format Option, all IPv4 datagrams MUST be encapsulated in IPv6 according to the features indicated in this latter Option, meaning that the destination IPv6 addresses MUST be IPv4-embedded address as specified in the Option. If a client receives a Port Extended IPv4 Address Option but no Port Range Sub-Option included, it MUST use the conveyed IPv4 address as non restricted one. If in addition, it has received an IPv4-embedded IPv6 address Format Option, all IPv4 datagrams MUST be encapsulated Boucadair, et al. Expires June 24, 2010 [Page 13] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 in IPv6 according to the features indicated in this latter Option, meaning that the destination IPv6 addresses MUST be IPv4-embedded addresses as specified in the Option. If a client receives a Port Extended IPv4 Address Option with the Port Range Sub-Option enclosed but with the IPv4 address set to "0.0.0.0", the client MUST constrain all IPv4 communications to be within the allocated Port Range. In such case, the IPv4 address the client will use is allocated by other means than by DHCPv6 Port Extended IPv4 Address Option (e.g. through DHCP (IPv4), IPv4 address derived from an IPv6 address, ... ). It is NOT RECOMMENDED that the client or the server use the IPv4 Address Option in conjunction with a Port Extended IPv4 Address option with Port Range Sub-Option present and IPv4 address set to "0.0.0.0", because the use of the Port Extended IPv4 Address Option with a correct IPv4 address is more efficient. When a peer issues a request enclosing one or more options (defined in this document), if the server does not support this (ese) option(s), the DHCPv6 server ignores the corresponding option. 7. IANA Considerations This document requests IANA to assign numbers for these DHCPv6 options: - OPTION_IPV4_A - OPTION_PORT_EXTENDED_A - OPTION_INFER_V4V6 - OPTION_SUPPORT_INFER_V4V6 And the following sub-options: - SUB_OPTION_PORT_MASK - SUB_OPTION_DELG_RAND 8. Security Considerations All security considerations described in [RFC3315] apply for this specification. Boucadair, et al. Expires June 24, 2010 [Page 14] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 9. Acknowledgements The authors would like to thank Christian JACQUENET for his review. 10. References 10.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3315, July 2003. 10.2. Informative References [I-D.bajko-pripaddrassign] Bajko, G., Savolainen, T., Boucadair, M., and P. Levis, "Port Restricted IP Address Assignment", draft-bajko-pripaddrassign-02 (work in progress), October 2009. [I-D.boucadair-behave-ipv6-portrange] Boucadair, M., Levis, P., Grimault, J., Villefranque, A., Kassi-Lahlou, M., Bajko, G., Lee, Y., Melia, T., and O. Vautrin, "Flexible IPv6 Migration Scenarios in the Context of IPv4 Address Shortage", draft-boucadair-behave-ipv6-portrange-04 (work in progress), October 2009. [I-D.dhankins-softwire-tunnel-option] Hankins, D. and T. Mrugalski, "Dynamic Host Configuration Protocol (DHCPv6) Option for Dual-Stack Lite", draft-dhankins-softwire-tunnel-option-05 (work in progress), November 2009. [I-D.ietf-behave-address-format] Huitema, C., Bao, C., Bagnulo, M., Boucadair, M., and X. Li, "IPv6 Addressing of IPv4/IPv6 Translators", draft-ietf-behave-address-format-03 (work in progress), December 2009. [I-D.ietf-softwire-dual-stack-lite] Durand, A., Droms, R., Haberman, B., Woodyatt, J., Lee, Y., and R. Bush, "Dual-stack lite broadband deployments post IPv4 exhaustion", Boucadair, et al. Expires June 24, 2010 [Page 15] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 draft-ietf-softwire-dual-stack-lite-02 (work in progress), October 2009. [I-D.nishitani-cgn] Nishitani, T., Yamagata, I., Miyakawa, S., Nakagawa, A., and H. Ashida, "Common Functions of Large Scale NAT (LSN)", draft-nishitani-cgn-03 (work in progress), November 2009. Appendix A. Port Mask Example The following figure (Figure 11) provides an example of the resulting Port Range when: - Port Range Mask is set to 0001010000000000 (5120) and - Port Range Value is set to 0000010000000000 (1024). Ports belonging to this port range must have the 4th bit (resp. the sixth one), from the left, set to 0 (resp. 1). Only these ports will be used by the peer when enforcing the configuration conveyed by DHCPv6. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0| Port Range Mask +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | (two significant bits) v v +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0| Port Range Value +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |x x x 0 x 1 x x x x x x x x x x| Usable ports (x may take a value of 0 or 1). +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 11: Example of Port Range Mask and Port Range Value Boucadair, et al. Expires June 24, 2010 [Page 16] Internet-Draft Shared IP addresses DHCPv6 Options December 2009 Authors' Addresses Mohamed Boucadair (editor) France Telecom 3, Av Francois Chateaux Rennes 35000 France Email: mohamed.boucadair@orange-ftgroup.com Pierre Levis France Telecom Email: pierre.levis@orange-ftgroup.com Jean-Luc Grimault France Telecom Email: jeanluc.grimault@orange-ftgroup.com Teemu Savolainen Nokia Email: teemu.savolainen@nokia.com Gabor Bajko Nokia Email: Gabor.Bajko@nokia.com Boucadair, et al. Expires June 24, 2010 [Page 17]