Softwire WG | I. Farrer |
Internet-Draft | Deutsche Telekom AG |
Updates: RFC7568 (if approved) | Q. Sun |
Intended status: Standards Track | Y. Cui |
Expires: May 19, 2017 | Tsinghua University |
November 15, 2016 |
DHCPv4 over DHCPv6 Source Address Option
draft-fsc-softwire-dhcp4o6-saddr-opt-06
DHCPv4 over DHCPv6 [RFC7341] describes a mechanism for dynamically configuring IPv4 over an IPv6-only network. For DHCPv4 over DHCPv6 to function with some IPv4-over-IPv6 softwire mechanisms and deployment scenarios, the operator must learn the /128 IPv6 address that the client will use as the source of IPv4-in-IPv6 tunnel. This address, in conjunction with the IPv4 address and the Port Set ID allocated to the DHCP 4o6 client are used to create a binding table entry in the softwire tunnel concentrator. This memo defines two DHCPv6 options used to communicate the source tunnel IPv6 address between the DHCP 4o6 client and server. It also describes a method for configuring the client with the IPv6 address of the border router so that the softwire can be established. It is designed to work in conjunction with the IPv4 address allocation process.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on May 19, 2017.
Copyright (c) 2016 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 Simplified BSD License.
Deterministic IPv4-over-IPv6 transition technologies require that elements are pre-configured with binding rules for routing traffic to clients. This places a constraint on the location of the client's tunnel endpoint: The tunnel endpoint has to be a pre-determined prefix which is usually be configured on the home gateway device. [RFC7597] describes a DHCPv6 based mechanism for provisioning such deterministic softwires.
A dynamic provisioning model, such as using DHCPv4 over DHCPv6 [RFC7341] allows much more flexibility in the location of the IPv4-over-IPv6 tunnel endpoint, as the IPv6 address is dynamically signalled back to the service provider so that the corresponding tunnel configuration in the border router (BR) can be created. The DHCP 4o6 client and tunnel client could be run on end devices attached to any routable IPv6 prefix allocated to an end-user, located anywhere within an arbitrary home network topology. Dynamic allocation also helps to optimize IPv4 resource usage as only clients which are currently active are allocated IPv4 addresses.
This document describes a mechanism for provisioning dynamically created softwires using DHCPv4 over DHCPv4 (DHCP 4o6), including proivisioning the client with the address of the softwire border router (BR) and informing the service provider of client's binding between the dynamically allocated IPv4 address and Port Set ID and the IPv6 address that the softwire Initiator will use for accessing IPv4-over-IPv6 services.
It is used with DHCP 4o6 message flows to communicate the binding over the IPv6-only network. The service provider can then use this binding information to provision other functional elements in their network accordingly, e.g. using the client's binding information to synchronise the binding table in the border router.
The mechanism described in this document is only suitable for use for provisioning softwire clients via DHCP 4o6. The options described here are only applicable within the DHCP 4o6 message exchange process. Current mechanisms suitable for extending to incorporate DHCPv4 over DHCPv6 with dynamic IPv4 address leasing include [RFC7597] and [RFC7596].
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].
The solution in this document is intended for the dynamic establishment of IPv4-over-IPv6 softwires. DHCP 4o6 [RFC7341] supports dynamically allocating (shared) IPv4 address. For a softwire to be successfully created, the IPv4 address has to be linked to the client's IPv6 tunnel source address. Within this process, the DHCP 4o6 client uses a DHCPv6 option to signal its tunnel source IPv6 address to the DHCP 4o6 server so that the operator's provisioning system can create the binding and configure the tunnel concentrator accordingly.
Two new DHCPv6 options are defined in this memo: OPTION_DHCP4O6_SADDR_HINT and OPTION_DHCP4O6_SADDR. They are intended to be used alongside the normal DHCPv4 IPv4 address allocation message flow in the context of DHCP 4o6. If a DHCP 4o6 client supports this mechanism, it MUST include the code of OPTION_DHCP4O6_SADDR_HINT in the Option Request Option (ORO) [RFC3315] when requesting IPv4 configuration through DHCP 4o6.
The communication of parameters between the client and server is a two-way process: OPTION_DHCP4O6_SADDR_HINT is optionally used by the DHCP 4o6 server to indicate to the client a preferred IPv6 prefix for binding the received IPv4 configuration and sourcing tunnel traffic. This may be necessary if there are multiple IPv6 prefixes in use in the customer network (e.g. ULAs), or if the specific IPv4-over-IPv6 transition mechanism requires the use of a particular prefix for any reason. When the client has selected an IPv6 address to bind the IPv4 configuration to, it passes the address back to the DHCP 4o6 server using OPTION_DHCP4O6_SADDR.
To configure a softwire, the initiator also requires the IPv6 address of the BR. Section 4.2 of [RFC7598] defines option 90 (OPTION_S46_BR) for this purpose, but mandates that the option can only be used when when encapsulated within one of the softwire container options: OPTION_S46_CONT_MAPE, OPTION_S46_CONT_MAPT or OPTION_S46_CONT_LW. From Section 3 of [RFC7598]:
This document updates [RFC7598] to remove this restriction for DHCPv6 option 90 (OPTION_S46_BR) allowing it to appear directly within the list of options in the client's ORO request and directly within subsequent messages sent by the DHCPv6 server.
The following diagram shows the client/server message flow and how the options defined in this document are used. In each step, the relevant DHCPv4 message is given above the arrow and the relevant options below the arrow. The DHCPv4 messages are encapsulated in DHCPv4-query or DHCPv4-response messages, and those options are included in the 'options' field of the DHCPv4-query or DHCPv4-response message.
DHCP 4o6 DHCP 4o6 Client Server | DHCPDISCOVER (DHCPv4) | Step 1 |----------------------------------------------------->| | ORO with OPTION_S46_BR, | | OPTION_DHCP4O6_SADDR_HINT(DHCPv6) | | | | DHCPOFFER (DHCPv4) | Step 2 |<-----------------------------------------------------| | OPTION_S46_BR, OPTION_DHCP4O6_SADDR_HINT | | (cipv6-prefix-hint with service provider's | | preferred prefix) (DHCPv6) | | | | DHCPREQUEST (DHCPv4) | Step 3 |----------------------------------------------------->| | OPTION_S46_BR, | | OPTION_DHCP4O6_SADDR (cipv6-bound-prefix with | | client's bound /128 IPv6 address) (DHCPv6) | | | | DHCPACK (DHCPv4) | Step 4 |<-----------------------------------------------------| | OPTION_S46_BR, | | OPTION_DHCP4O6_SADDR (cipv6-bound-prefix with | | client's bound /128 IPv6 prefix) (DHCPv6) | | |
IPv6/IPv4 Binding Message Flow
A client attempting dynamic softwire configuration includes the option code for OPTION_BR_PREFIX, OPTION_DHCP4O6_SADDR_HINT in the DHCPv6 ORO in all DHCPv4-query messages it sends.
When a DHCP 4o6 Server replies with a DHCPOFFER message, it SHOULD include OPTION_S46_BR. It MAY also include OPTION_DHCP4O6_SADDR_HINT, which is used to indicate a preferred prefix that the client should use to bind IPv4 configuration to. If this option is received, the client MUST perform a longest prefix match between cipv6-prefix-hint and all prefixes/addresses in use on the device. If a match is found, the selected prefix MUST then be used to bind the received IPv4 configuration to and source the tunnel from. If no match is found, or the client doesn't receive OPTION_DHCP4O6_SADDR_HINT the client MAY select any valid IPv6 address to use as the tunnel source.
Once the client has selected which prefix it will use, it MAY use either an existing IPv6 address that is already configured on an interface, or create a new address specifically for use as the softwire source address (e.g. using an Interface Identifier constructed as per Section 6 of [RFC7597]). If a new address is being created, the client MUST complete configuration of the new address, performing duplicate address detection (if required) before proceeding to Step 3.
OPTION_DHCP4O6_SADDR is used by the client to inform the DHCP 4o6 Server which IPv6 address the IPv4 configuration has been bound to. The client MUST put the selected IPv6 softwire source address into this option and include it in the DHCPv4-response message when it sends the DHCPREQUEST message.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_DHCP4O6_SADDR_HINT | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |cipv6-hintlen | | +-+-+-+-+-+-+-+-+ cipv6-prefix-hint . . (variable length) . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The format of DHCPv4 over DHCPv6 Source address option is defined as follows:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTION_DHCP4O6_SADDR | option-length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + cipv6-src-address + . (128 bits) . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Security considerations which are applicable to [RFC7341] are also applicable here.
IANA is requested to allocate the DHCPv6 option codes: OPTION_DHCP4O6_SADDR_HINT and OPTION_DHCP4O6_SADDR.
The authors would like to thank Ted Lemon and Lishan Li for their contributions.
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC7341] | Sun, Q., Cui, Y., Siodelski, M., Krishnan, S. and I. Farrer, "DHCPv4-over-DHCPv6 (DHCP 4o6) Transport", RFC 7341, DOI 10.17487/RFC7341, August 2014. |