draft-ietf-dhc-dhcp4o6-saddr-opt-01.txt   draft-ietf-dhc-dhcp4o6-saddr-opt-02.txt 
DHCWG I. Farrer DHCWG I. Farrer
Internet-Draft Deutsche Telekom AG Internet-Draft Deutsche Telekom AG
Updates: 7598 (if approved) Q. Sun Updates: 7598 (if approved) Q. Sun
Intended status: Standards Track Y. Cui Intended status: Standards Track Y. Cui
Expires: June 15, 2018 L. Sun Expires: September 18, 2018 L. Sun
Tsinghua University Tsinghua University
December 12, 2017 March 17, 2018
DHCPv4 over DHCPv6 Source Address Option DHCPv4 over DHCPv6 Source Address Option
draft-ietf-dhc-dhcp4o6-saddr-opt-01 draft-ietf-dhc-dhcp4o6-saddr-opt-02
Abstract Abstract
DHCPv4 over DHCPv6 is a mechanism for dynamically configuring IPv4 DHCPv4 over DHCPv6 is a mechanism for dynamically configuring IPv4
over an IPv6-only network. For DHCPv4 over DHCPv6 to function with over an IPv6-only network. For DHCPv4 over DHCPv6 to function with
some IPv4-over-IPv6 softwire mechanisms and deployment scenarios, the some IPv4-over-IPv6 softwire mechanisms and deployment scenarios, the
operator needs to know the /128 IPv6 address that the client will use operator needs to know the IPv6 address that the client will use as
as the source of IPv4-in-IPv6 softwire tunnel. This address, in the source of IPv4-in-IPv6 softwire tunnel. This address, in
conjunction with the clients IPv4 address and (in some deployments), conjunction with the client's IPv4 address and (in some deployments),
the Port Set ID are used to create a binding table entry in the the Port Set ID are used to create a binding table entry in the
operator's softwire tunnel concentrator. This memo defines a DHCPv6 operator's softwire tunnel concentrator. This memo defines a DHCPv6
option to convey IPv6 parameters for establishing the softwire tunnel option to convey IPv6 parameters for establishing the softwire tunnel
and a DHCPv4 option (to be used only with DHCP 4o6) to communicate and a DHCPv4 option (to be used only with DHCP 4o6) to communicate
the source tunnel IPv6 address between the DHCP 4o6 client and the source tunnel IPv6 address between the DHCP 4o6 client and
server. It is designed to work in conjunction with the IPv4 address server. It is designed to work in conjunction with the IPv4 address
allocation process. This document updates "DHCPv6 Options for allocation process. This document updates "DHCPv6 Options for
Configuration of Softwire Address and Port-Mapped Clients" to allow Configuration of Softwire Address and Port-Mapped Clients" to allow
the DHCPv6 option OPTION_S46_BR(90) to appear outside of DHCPv6 the DHCPv6 option OPTION_S46_BR (90) to appear outside of DHCPv6
softwire container options. softwire container options.
This document updates RFC7598, allowing OPTION_S46_BR (90) to be
enumerated in the DHCPv6 client's ORO request and appear directly
within subsequent messages sent by the DHCPv6 server.
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 June 15, 2018. This Internet-Draft will expire on September 18, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2018 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
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
2. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 3. Requirements Language . . . . . . . . . . . . . . . . . . . . 4
4. Solution Overview . . . . . . . . . . . . . . . . . . . . . . 4 4. Solution Overview . . . . . . . . . . . . . . . . . . . . . . 4
4.1. Updating RFC7598 to Permit the Reuse of OPTION_S46_BR(90) 4 4.1. Updating RFC7598 to Permit the Reuse of OPTION_S46_BR(90) 4
5. DHCP 4o6 IPv6/IPv4 Binding Message Flow . . . . . . . . . . . 5 5. DHCP 4o6 IPv6/IPv4 Binding Message Flow . . . . . . . . . . . 5
6. DHCP Options . . . . . . . . . . . . . . . . . . . . . . . . 6 6. DHCP Options . . . . . . . . . . . . . . . . . . . . . . . . 7
6.1. DHCPv6 Softwire Source Binding Prefix Hint Option . . . . 6 6.1. DHCPv6 Softwire Source Binding Prefix Hint Option . . . . 7
6.2. DHCPv4 over DHCPv6 Softwire Source Address Option . . . . 7 6.2. DHCPv4 over DHCPv6 Softwire Source Address Option . . . . 7
7. Client Behavior . . . . . . . . . . . . . . . . . . . . . . . 7 7. Client Behavior . . . . . . . . . . . . . . . . . . . . . . . 8
7.1. Client Initialization . . . . . . . . . . . . . . . . . . 8 7.1. Client Initialization . . . . . . . . . . . . . . . . . . 8
7.2. Renewing or Rebinding the IPv4 Address Lease and 7.2. Renewing or Rebinding the IPv4 Address Lease and
Softwire Source Address . . . . . . . . . . . . . . . . . 9 Softwire Source Address . . . . . . . . . . . . . . . . . 9
7.2.1. Changing the Bound IPv6 Softwire Source Address . . . 9 7.2.1. Changing the Bound IPv6 Softwire Source Address . . . 10
7.3. Releasing the IPv4 Address Lease and Softwire 7.3. Releasing the IPv4 Address Lease and Softwire
Source Address . . . . . . . . . . . . . . . . . . . . . 9 Source Address . . . . . . . . . . . . . . . . . . . . . 10
7.4. OPTION_S46_BIND_IPV6_PREFIX Validation Behavior . . . . . 9 7.4. OPTION_S46_BIND_IPV6_PREFIX Validation Behavior . . . . . 10
7.5. Client and Server Softwire Source Address Mismatch . . . 10 7.5. Client and Server Softwire Source Address Mismatch . . . 11
7.6. Use With Dynamic, Shared IPv4 Addresses . . . . . . . . . 10 7.6. Use With Dynamic, Shared IPv4 Addresses . . . . . . . . . 11
8. Server Behavior . . . . . . . . . . . . . . . . . . . . . . . 10 8. Server Behavior . . . . . . . . . . . . . . . . . . . . . . . 11
8.1. Changing the Bound IPv6 Source Address . . . . . . . . . 10 8.1. Changing the Bound IPv6 Source Address . . . . . . . . . 11
9. Security Considerations . . . . . . . . . . . . . . . . . . . 11 9. Security Considerations . . . . . . . . . . . . . . . . . . . 12
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
12.1. Normative References . . . . . . . . . . . . . . . . . . 11 12.1. Normative References . . . . . . . . . . . . . . . . . . 12
12.2. Informative References . . . . . . . . . . . . . . . . . 11 12.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
Deterministic IPv4-over-IPv6 transition technologies require that Deterministic IPv4-over-IPv6 transition technologies require that
elements are pre-configured with binding rules for routing traffic to elements are pre-configured with binding rules for routing traffic to
clients. This places a constraint on the choice of address used as clients. This places a constraint on the choice of address used as
the client's softwire source address: it must use a pre-determined the client's softwire source address: it must use a pre-determined
prefix which is usually configured on the home gateway device. prefix which is usually configured on the home gateway device.
[RFC7597] describes a DHCPv6 based mechanism for provisioning such [RFC7597] describes a DHCPv6 based mechanism for provisioning such
deterministic softwires. deterministic softwires.
skipping to change at page 4, line 16 skipping to change at page 4, line 16
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].
4. Solution Overview 4. Solution Overview
In order to provision a softwire, both IPv6 and IPv4 configuration In order to provision a softwire, both IPv6 and IPv4 configuration
needs to be passed to the client. To map this to the DHCP 4o6 needs to be passed to the client. To map this to the DHCP 4o6
configuration process, the IPv6 configuration is carried in DHCPv6 configuration process, the IPv6 configuration is carried in DHCPv6
options carried inside the DHCPv6 message DHCPV4-RESPONSE(21) sent by options carried inside the DHCPv6 message DHCPV4-RESPONSE (21) sent
the server. OPTION_S46_BR(90) is used to provision the remote IPv6 by the server. OPTION_S46_BR (90) is used to provision the remote
address for the softwire (see Section 4.1 below). IPv6 address for the softwire (see Section 4.1 below).
OPTION_S46_BIND_IPV6_PREFIX(TBD1), is optionally sent by the DHCP 4o6 OPTION_S46_BIND_IPV6_PREFIX (TBD1), is optionally sent by the DHCP
server to indicate to the client a preferred IPv6 prefix for binding 4o6 server to indicate to the client a preferred IPv6 prefix for
the received IPv4 configuration and sourcing tunnel traffic. This binding the received IPv4 configuration and sourcing tunnel traffic.
may be necessary if there are multiple IPv6 prefixes in use in the This may be necessary if there are multiple IPv6 prefixes in use in
customer network (e.g. ULAs), or if the specific IPv4-over-IPv6 the customer network (e.g. ULAs), or if the specific IPv4-over-IPv6
transition mechanism requires the use of a particular prefix for any transition mechanism requires the use of a particular prefix for any
reason. reason.
IPv4 configuration is carried in DHCPv4 messages (inside the DHCP 4o6 IPv4 configuration is carried in DHCPv4 messages (inside the DHCP 4o6
option OPTION_DHCPV4_MSG(87)) using the mechanism described in option OPTION_DHCPV4_MSG (87)) using the mechanism described in
[RFC7341]. [RFC7341].
In order for the client to communicate the softwire source address, a In order for the client to communicate the softwire source address, a
new DHCPv4 option OPTION_DHCP4O6_S46_SADDR(TBD2) is defined in this new DHCPv4 option OPTION_DHCP4O6_S46_SADDR (TBD2) is defined in this
document. This is included in DHCPREQUEST messages sent by the document. This is included in DHCPREQUEST messages sent by the
client and is stored by the server for the lifetime of the IPv4 client and is stored by the server for the lifetime of the IPv4
address lease. address lease.
4.1. Updating RFC7598 to Permit the Reuse of OPTION_S46_BR(90) 4.1. Updating RFC7598 to Permit the Reuse of OPTION_S46_BR(90)
Section 4.2 of [RFC7598] defines option OPTION_S46_BR(90) for Section 4.2 of [RFC7598] defines option OPTION_S46_BR(90) for
communicating remote softwire border relay(BR)'s' IPv6 address(es) to communicating remote softwire border relay (BR)'s' IPv6 address(es)
a client, but mandates that the option can only be used when to a client, but mandates that the option can only be used when
encapsulated within one of the softwire container options: encapsulated within one of the softwire container options:
OPTION_S46_CONT_MAPE(94) or OPTION_S46_CONT_LW(96). From Section 3 OPTION_S46_CONT_MAPE (94) or OPTION_S46_CONT_LW(96). From Section 3
of [RFC7598]: of [RFC7598]:
"Softwire46 DHCPv6 clients that receive provisioning options that "Softwire46 DHCPv6 clients that receive provisioning options that
are not encapsulated in container options MUST silently ignore are not encapsulated in container options MUST silently ignore
these options." these options."
This document updates [RFC7598], removing this restriction for This document updates [RFC7598], removing this restriction for
OPTION_S46_BR(90), allowing it to be enumerated in the client's ORO OPTION_S46_BR (90), allowing it to be enumerated in the client's ORO
request and appear directly within subsequent messages sent by the request and appear directly within subsequent messages sent by the
DHCPv6 server. DHCPv6 server.
5. DHCP 4o6 IPv6/IPv4 Binding Message Flow 5. DHCP 4o6 IPv6/IPv4 Binding Message Flow
The following diagram shows the relevant extensions to the DHCP 4o6 The following diagram shows the relevant extensions to the successful
IPv4 allocation client/server message flow for the softwire source DHCP 4o6 IPv4 allocation client/server message flow for the softwire
address function. source address function. The full process, including error handling
is described in Section 7.
In each step, the DHCPv6 portion of the message and any relevant In each step, the DHCPv6 portion of the message and any relevant
option is shown above the arrow. The DHCP 4o6 content of the message option is shown above the arrow. The DHCP 4o6 content of the message
and its relevant options are below the arrow. All the DHCPv4 and its relevant options are below the arrow. All the DHCPv4
messages are encapsulated in DHCPV4-QUERY(20) or DHCPV4-RESPONSE(21) messages are encapsulated in DHCPV4-QUERY (20) or DHCPV4-RESPONSE
messages. Where relevant, the necessary options and their contents (21) messages. Where relevant, the necessary options and their
are shown. contents are shown.
DHCP 4o6 DHCP 4o6 DHCP 4o6 DHCP 4o6
Client Server Client Server
| | | |
| DHCPv6 - DHCPV4-QUERY message containing | | DHCPv6 - DHCPV4-QUERY message containing |
| OPTION_ORO(6) listing (90, TBD1) | | OPTION_ORO(6) listing (90, TBD1) |
Step 1 |----------------------------------------------------->| Step 1 |----------------------------------------------------->|
| DHCPv4 - DHCPDISCOVER message | | DHCPv4 - DHCPDISCOVER message |
| | | |
| | | |
skipping to change at page 5, line 41 skipping to change at page 6, line 26
| (bind-ipv6-prefix with service provider's | | (bind-ipv6-prefix with service provider's |
| preferred prefix) | | preferred prefix) |
Step 2 |<-----------------------------------------------------| Step 2 |<-----------------------------------------------------|
| DHCPv4 - DHCPOFFER message | | DHCPv4 - DHCPOFFER message |
| | | |
| | | |
| DHCPv6 - DHCPV4-QUERY message | | DHCPv6 - DHCPV4-QUERY message |
Step 3 |----------------------------------------------------->| Step 3 |----------------------------------------------------->|
| DHCPv4 - DHCPREQUEST message containing | | DHCPv4 - DHCPREQUEST message containing |
| OPTION_DHCP4O6_S46_SADDR (softwire-ipv6-src-address | | OPTION_DHCP4O6_S46_SADDR (softwire-ipv6-src-address |
|with client's bound /128 IPv6 softwire source address)| | with client's bound IPv6 softwire source address) |
| | | |
| | | |
| DHCPv6 - DHCPV4-RESPONSE message | | DHCPv6 - DHCPV4-RESPONSE message |
Step 4 |<-----------------------------------------------------| Step 4 |<-----------------------------------------------------|
| DHCPv4 - DHCPACK message containing | | DHCPv4 - DHCPACK message containing |
| OPTION_DHCP4O6_S46_SADDR (softwire-ipv6-src-address | | OPTION_DHCP4O6_S46_SADDR (softwire-ipv6-src-address |
|with client's bound /128 IPv6 softwire source address)| | with client's bound IPv6 softwire source address) |
| | | |
IPv6/IPv4 Binding Message Flow Figure 1: IPv6/IPv4 Binding Message Flow
Step 1 The client constructs a DHCPv6 'DHCPV4-QUERY(20)' message. Step 1 The client constructs a DHCPv6 'DHCPV4-QUERY(20)' message.
This message contains two options: DHCPv6 OPTION_ORO(6) and This message contains two options: DHCPv6 OPTION_ORO (6) and
OPTION_DHCPV4_MSG(87). OPTION_ORO lists '90' (OPTION_S46_BR) OPTION_DHCPV4_MSG (87). OPTION_ORO lists '90'
and 'TBD1' (OPTION_S46_BIND_IPV6_PREFIX). OPTION_DHCPV4_MSG (OPTION_S46_BR) and 'TBD1' (OPTION_S46_BIND_IPV6_PREFIX).
contains a DHCP4 DHCPDISCOVER message. OPTION_DHCPV4_MSG contains a DHCPv4 DHCPDISCOVER message.
Step 2 The server responds with a DHCPv6 'DHCPV4-RESPONSE(20)' Step 2 The server responds with a DHCPv6 'DHCPV4-RESPONSE (21)'
message. This message contains OPTION_S46_BR(90) containing message. This message contains OPTION_S46_BR (90) containing
the IPv6 address of the BR for the client's softwire the IPv6 address of the BR for the client's softwire
configuration. The message may also, optionally contain configuration. The message may also, optionally contain
OPTION_S46_BIND_IPV6_PREFIX(TBD1). OPTION_DHCPV4_MSG OPTION_S46_BIND_IPV6_PREFIX (TBD1). OPTION_DHCPV4_MSG
contains a DHCP4 DHCPOFFER message. contains a DHCPv4 DHCPOFFER message.
Step 3 The client sends with a DHCPv6 'DHCPV4-QUERY(20)' message Step 3 The client sends with a DHCPv6 'DHCPV4-QUERY(20)' message
containing a DHCP4 DHCPREQUEST message with containing a DHCPv4 DHCPREQUEST message with
OPTION_DHCP4O6_S46_SADDR(TBD2) with the IPv6 address which OPTION_DHCP4O6_S46_SADDR (TBD2) with the IPv6 address which
the client will use as its softwire source address. the client will use as its softwire source address.
Step 4 The server sends a DHCPv6 'DHCPV4-RESPONSE(20)' message. Step 4 The server sends a DHCPv6 'DHCPV4-RESPONSE(21)' message.
OPTION_DHCPV4_MSG contains a DHCP4 DHCPACK message. OPTION_DHCPV4_MSG contains a DHCPv4 DHCPACK message.
OPTION_DHCP4O6_S46_SADDR with the client's softwire source OPTION_DHCP4O6_S46_SADDR with the client's softwire source
address is included. address is included.
6. DHCP Options 6. DHCP Options
6.1. DHCPv6 Softwire Source Binding Prefix Hint Option 6.1. DHCPv6 Softwire Source Binding Prefix Hint Option
The format of DHCPv6 Source Binding Prefix hint option is as follows: The format of DHCPv6 Source Binding Prefix hint option is as follows:
0 1 2 3 0 1 2 3
skipping to change at page 6, line 46 skipping to change at page 7, line 30
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_S46_BIND_IPV6_PREFIX | option-length | | OPTION_S46_BIND_IPV6_PREFIX | option-length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|bindprefix6-len| | |bindprefix6-len| |
+-+-+-+-+-+-+-+-+ bind-ipv6-prefix . +-+-+-+-+-+-+-+-+ bind-ipv6-prefix .
. (variable length) . . (variable length) .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Format of OPTION_S46_BIND_IPV6_PREFIX Format of OPTION_S46_BIND_IPV6_PREFIX
o option-code: OPTION_S46_BIND_IPV6_PREFIX (TBA1) o option-code: OPTION_S46_BIND_IPV6_PREFIX (TBD1)
o option-length: 1 + length of bind-ipv6-prefix, specified in bytes. o option-length: 1 + length of bind-ipv6-prefix, specified in bytes.
o bindprefix6-len: 8-bit field expressing the bit mask length of the o bindprefix6-len: 8-bit field expressing the bit mask length of the
IPv6 prefix specified in bind-ipv6-prefix. Valid values are 0 to IPv6 prefix specified in bind-ipv6-prefix. Valid values are 0 to
128. 128.
o bind-ipv6-prefix: The IPv6 prefix indicating the preferred prefix o bind-ipv6-prefix: The IPv6 prefix indicating the preferred prefix
for the client to bind the received IPv4 configuration to. The for the client to bind the received IPv4 configuration to. The
length is (bindprefix6-len + 7) / 8. The field is padded on the length is (bindprefix6-len + 7) / 8. The field is padded on the
right with zero bits up to the nearest octet boundary when bind- right with zero bits up to the next octet boundary when bind-
ipv6-prefix is not evenly divisible by 8. ipv6-prefix is not evenly divisible by 8.
OPTION_S46_BIND_IPV6_PREFIX is a singleton. Servers MUST NOT send OPTION_S46_BIND_IPV6_PREFIX is a singleton. Servers MUST NOT send
more than one instance of the OPTION_S46_BIND_IPV6_PREFIX option. more than one instance of the OPTION_S46_BIND_IPV6_PREFIX option.
6.2. DHCPv4 over DHCPv6 Softwire Source Address Option 6.2. DHCPv4 over DHCPv6 Softwire Source Address Option
The format of DHCPv4 over DHCPv6 softwire source address option is as The format of DHCPv4 over DHCPv6 softwire source address option is as
follows: follows:
skipping to change at page 7, line 29 skipping to change at page 8, line 18
| option-code (TBD) | option-length | | option-code (TBD) | option-length |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ softwire-ipv6-src-address + + softwire-ipv6-src-address +
. (128 bits) . . (128 bits) .
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Format of OPTION_DHCP4O6_S46_SADDR Format of OPTION_DHCP4O6_S46_SADDR
o option-code: OPTION_DHCP4O6_S46_SADDR (TBD2) o option-code: OPTION_DHCP4O6_S46_SADDR (TBD2)
o option-length: 16. o option-length: 16.
o softwire-ipv6-src-address: 16 bytes long; The IPv6 address that o softwire-ipv6-src-address: 16 bytes long; The IPv6 address that is
the client has bound the allocated IPv4 configuration to. associated (either being requested for binding or currently bound)
with the client's IPv4 configuration.
NB - The function of OPTION_DHCP4O6_S46_SADDR may seem similar to the NB - The function of OPTION_DHCP4O6_S46_SADDR may seem similar to the
DHCPv4 message 'chaddr' field, or the Client Identifier (61) option DHCPv4 message's 'chaddr' field, or the Client Identifier (61) option
in that it provides a lower-layer address which is unique that the in that it provides a lower-layer address which is unique that the
server can use for identifying the client. However, as both of these server can use for identifying the client. However, as both of these
are required to remain constant throughout the address lease are required to remain constant throughout the address lease
lifetime, they cannot be used with the mechanism described in this lifetime, they cannot be used with the mechanism described in this
document. This is because the client may only be able to construct document. This is because the client may only be able to construct
the IPv6 address to use as the source address after it has received the IPv6 address to use as the source address after it has received
the first DHCP-RESPONSE message from the server containing the first DHCPV4-RESPONSE message from the server containing
OPTION_S46_BIND_IPV6_PREFIX. OPTION_S46_BIND_IPV6_PREFIX.
7. Client Behavior 7. Client Behavior
A client requiring dynamic softwire configuration first enables DHCP A client requiring dynamic softwire configuration first enables DHCP
4o6 configuration using the method described in Section 5. of 4o6 configuration using the method described in Section 5. of
[RFC7341]. If OPTION_DHCP4_O_DHCP6_SERVER is received in the [RFC7341]. If OPTION_DHCP4_O_DHCP6_SERVER is received in the
corresponding REPLY message, the client MAY continue with the corresponding REPLY message, the client MAY continue with the
configuration process described below. configuration process described below.
It is also a prerequisite that the client has already obtained a It is also a prerequisite that the client has already learned a
suitable IPv6 prefix to use for its local softwire endpoint using suitable IPv6 prefix to use for its local softwire endpoint using
DHCPv6, SLAAC or another mechanism. DHCPv6, RA/PIO or another mechanism.
7.1. Client Initialization 7.1. Client Initialization
When constructing the initial DHCP 4o6 DHCPDISCOVER message, the When constructing the initial DHCP 4o6 DHCPDISCOVER message, the
client includes a DHCPv6 OPTION_ORO(6) within the options field of client includes a DHCPv6 OPTION_ORO (6) within the options field of
the DHCP-QUERY message. OPTION_ORO contains the option codes for the DHCP-QUERY message. OPTION_ORO contains the option codes for
OPTION_S46_BR (90) and OPTION_S46_BIND_IPV6_PREFIX (TBD1). OPTION_S46_BR (90) and OPTION_S46_BIND_IPV6_PREFIX (TBD1).
On receipt of the DHCP 4o6 server's reply (a DHCPV4-RESPONSE On receipt of the DHCP 4o6 server's reply (a DHCPV4-RESPONSE
containing a DHCPOFFER message), the client checks the contents of containing a DHCPOFFER message), the client checks the contents of
the DHCPv4-RESPONSE for the presence of a valid OPTION_S46_BR option. the DHCPv4-RESPONSE for the presence of a valid OPTION_S46_BR option.
If this option is not present, or does not contain at least one valid If this option is not present, or does not contain at least one valid
IPv6 address for a BR, then the client MUST discard the message, as IPv6 address for a BR, then the client MUST discard the message, as
without the address of the BR the client cannot configure the without the address of the BR the client cannot configure the
softwire and so has no interface to request IPv4 configuration for. softwire and so has no interface to request IPv4 configuration for.
The DHCP-RESPONSE message may also include The DHCPV4-RESPONSE message may also include
OPTION_S46_BIND_IPV6_PREFIX, which is used by the operator to OPTION_S46_BIND_IPV6_PREFIX, which is used by the operator to
indicate a preferred prefix that the client should use to bind IPv4 indicate a preferred prefix that the client should use to bind IPv4
configuration to. If received, the client first checks the option configuration to. If received, the client first checks the option
according to Section 7.4. If valid, the client uses this prefix as according to Section 7.4. If valid, the client uses this prefix as
the 'IPv6 binding prefix' and follows to the process described in the 'IPv6 binding prefix' and follows to the process described in
Section 5.1 of [RFC7596] in order to select an active IPv6 prefix to Section 5.1 of [RFC7596] in order to select an active IPv6 prefix to
construct the softwire. If no match is found, or the client doesn't construct the softwire. If no match is found, or the client doesn't
receive OPTION_S46_BIND_IPV6_PREFIX the client MAY select any valid receive OPTION_S46_BIND_IPV6_PREFIX the client MAY select any valid
IPv6 prefix (of a suitable scope) to use as the tunnel source. IPv6 prefix (of a suitable scope) to use as the tunnel source.
skipping to change at page 9, line 5 skipping to change at page 9, line 43
DHCPREQUEST message. OPTION_DHCP4O6_S46_SADDR is included in the DHCPREQUEST message. OPTION_DHCP4O6_S46_SADDR is included in the
options field of the DHCPREQUEST message with the IPv6 address of its options field of the DHCPREQUEST message with the IPv6 address of its
softwire source address in the softwire-ipv6-src-address field. softwire source address in the softwire-ipv6-src-address field.
When the client receives a DHCPv4 DHCPACK message from the server, it When the client receives a DHCPv4 DHCPACK message from the server, it
checks the IPv6 address in OPTION_DHCP4O6_S46_SADDR against its checks the IPv6 address in OPTION_DHCP4O6_S46_SADDR against its
active softwire source address. If they match, the allocation active softwire source address. If they match, the allocation
process has concluded. If there is a discrepancy then the process process has concluded. If there is a discrepancy then the process
described in Section 7.5 is followed. described in Section 7.5 is followed.
If the client receives a DHCPv4 DHCPNAK message from the server, then
the configuration process has been unsuccessful. The client then
restarts the process from Step 1 of Figure 1.
7.2. Renewing or Rebinding the IPv4 Address Lease and Softwire Source 7.2. Renewing or Rebinding the IPv4 Address Lease and Softwire Source
Address Address
Whenever the client attempts to extend the lease time of the IPv4 Whenever the client attempts to extend the lease time of the IPv4
address, OPTION_DHCP4O6_S46_SADDR with the IPv6 address of its address, OPTION_DHCP4O6_S46_SADDR with the IPv6 address of its
softwire source address in the softwire-ipv6-src-address field MUST softwire source address in the softwire-ipv6-src-address field MUST
be included in the DHCPREQUEST message. be included in the DHCPREQUEST message.
7.2.1. Changing the Bound IPv6 Softwire Source Address 7.2.1. Changing the Bound IPv6 Softwire Source Address
skipping to change at page 9, line 29 skipping to change at page 10, line 23
In this situation, the client MUST inform the server of the new In this situation, the client MUST inform the server of the new
address. This is done by sending a DHCPREQUEST message containing address. This is done by sending a DHCPREQUEST message containing
OPTION_DHCP4O6_S46_SADDR with the new IPv6 source address. OPTION_DHCP4O6_S46_SADDR with the new IPv6 source address.
When the client receives a DHCPv4 DHCPACK message from the server, it When the client receives a DHCPv4 DHCPACK message from the server, it
checks the IPv6 address in OPTION_DHCP4O6_S46_SADDR against its checks the IPv6 address in OPTION_DHCP4O6_S46_SADDR against its
active softwire source address. If they match, the allocation active softwire source address. If they match, the allocation
process has concluded. If there is a discrepancy then the process process has concluded. If there is a discrepancy then the process
described in Section 7.5 is followed. described in Section 7.5 is followed.
If the client receives a DHCPv4 DHCPNAK message in repsonse from the
server, then the change of the bound IPv6 Softwire source address has
been unsuccessful. In this case, the client MUST stop using the new
IPv6 source address. The client then restarts the process from Step
1 of Figure 1.
7.3. Releasing the IPv4 Address Lease and Softwire Source Address 7.3. Releasing the IPv4 Address Lease and Softwire Source Address
When the client no longer requires the IPv4 resource, it sends a When the client no longer requires the IPv4 resource, it sends a
DHCPv4 DHCPRELEASE message to the server. As the options field is DHCPv4 DHCPRELEASE message to the server. As the options field is
unused in this message type, OPTION_DHCP4O6_S46_SADDR is not unused in this message type, OPTION_DHCP4O6_S46_SADDR is not
included. included.
7.4. OPTION_S46_BIND_IPV6_PREFIX Validation Behavior 7.4. OPTION_S46_BIND_IPV6_PREFIX Validation Behavior
On receipt of the OPTION_S46_BIND_IPV6_PREFIX option, the client On receipt of the OPTION_S46_BIND_IPV6_PREFIX option, the client
skipping to change at page 9, line 51 skipping to change at page 11, line 5
o The received bindprefix6-len value is not larger than 128. o The received bindprefix6-len value is not larger than 128.
o The received bindprefix6-len value is not larger than the number o The received bindprefix6-len value is not larger than the number
of bytes sent in the bind-ipv6-prefix field. (e.g. the of bytes sent in the bind-ipv6-prefix field. (e.g. the
bindprefix6-len is 128 but the bind-ipv6-prefix has only 8 bytes). bindprefix6-len is 128 but the bind-ipv6-prefix has only 8 bytes).
For either of these cases the receiver MAY either discard the option For either of these cases the receiver MAY either discard the option
and proceed to attempt configuration as if the option had not been and proceed to attempt configuration as if the option had not been
received, or attempt to use the received values for the longest received, or attempt to use the received values for the longest
prefix match anyway. prefix match anyway.
The receiver MUST only use bits the bind-ipv6-prefix field up to the The receiver MUST only use bits from the bind-ipv6-prefix field up to
value specified in the bindprefix6-len when performing the longest the value specified in the bindprefix6-len when performing the
prefix match. bind-ipv6-prefix bits beyond this value MUST be longest prefix match. bind-ipv6-prefix bits beyond this value MUST be
ignored. ignored.
7.5. Client and Server Softwire Source Address Mismatch 7.5. Client and Server Softwire Source Address Mismatch
If the client receives a DHCPACK message with an If the client receives a DHCPACK message with an
OPTION_DHCP4O6_S46_SADDR containing an IPv6 address which differs OPTION_DHCP4O6_S46_SADDR containing an IPv6 address which differs
from its active softwire source address, the client MAY either: from its active softwire source address, the client MAY either:
o Wait for a randomised time interval and then resend a DHCPREQUEST o Wait for a randomised time interval and then resend a DHCPREQUEST
message with the correct softwire source address, OR message with the correct softwire source address, OR
skipping to change at page 11, line 5 skipping to change at page 11, line 51
8.1. Changing the Bound IPv6 Source Address 8.1. Changing the Bound IPv6 Source Address
In the event that the server receives a DHCPREQUEST message for an In the event that the server receives a DHCPREQUEST message for an
active IPv4 lease containing a OPTION_DHCP4O6_S46_SADDR with an IPv6 active IPv4 lease containing a OPTION_DHCP4O6_S46_SADDR with an IPv6
address which differs from the address which is currently stored, the address which differs from the address which is currently stored, the
server updates the stored softwire source address with the new server updates the stored softwire source address with the new
address supplied by the client, and sends a DHCPACK message address supplied by the client, and sends a DHCPACK message
containing the updated softwire source address in containing the updated softwire source address in
OPTION_DHCP4O6_S46_SADDR. OPTION_DHCP4O6_S46_SADDR.
The server MAY implement a policy enforcing a minimum time interval
between a client updating its softwire source IPv6 address. If a
client attempts to update the softwire source IPv6 address before the
minimum time has expired, the server can either silently drop the
client's message or send back a DHCPACK message containing the
exisiting IPv6 address binding in OPTION_DHCP4O6_S46_SADDR.
9. Security Considerations 9. Security Considerations
Security considerations which are applicable to [RFC7341] are also Security considerations which are applicable to [RFC7341] are also
applicable here. applicable here.
10. IANA Considerations 10. IANA Considerations
IANA is requested to allocate a new DHCPv6 option code for IANA is requested to assign the OPTION_DHCP4O6_S46_SADDR option code
OPTION_S46_BIND_IPV6_PREFIX from the DHCPv6 Option Codes registry and from the "BOOTP Vendor Extensions and DHCP Options" registry
a new DHCPv4 option code for OPTION_DHCP4O6_S46_SADDR from the BOOTP maintained at http://www.iana.org/assignments/bootp-dhcp-parameters.
Vendor Extensions and DHCP Options registry.
IANA is requested to assign the OPTION_S46_BIND_IPV6_PREFIX option
code from the DHCPv6 "Option Codes" registry maintained at
http://www.iana.org/assignments/dhcpv6-parameters.
11. Acknowledgements 11. Acknowledgements
The authors would like to thank Ted Lemon, Lishan Li, Tatuya Jinmei The authors would like to thank Ted Lemon, Lishan Li, Tatuya Jinmei,
and Jonas Gorski for their contributions and comments. Jonas Gorski and Razvan Becheriu for their contributions and
comments.
12. References 12. References
12.1. Normative References 12.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, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
 End of changes. 43 change blocks. 
80 lines changed or deleted 107 lines changed or added

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