Internet DRAFT - draft-wing-behave-dhcpv6-reconfigure
draft-wing-behave-dhcpv6-reconfigure
BEHAVE Working Group D. Wing
Internet-Draft T. Reddy
Intended status: Standards Track P. Patil
Expires: May 3, 2012 Cisco
October 31, 2011
DHCPv6 Dynamic Re-Configuration
draft-wing-behave-dhcpv6-reconfigure-01
Abstract
Some networks are expected to support IPv4-only, dual-stack, and
IPV6-only hosts at the same time. This makes prioritizing the DNS
servers for hosts tricky due to a heterogeneous mix of protocol
stacks causing optimal behavior to occur only when the host stack re-
initializes. The networks infrastructure is usually well equipped to
be aware of single/dual-stack nature of hosts. This specification
extends DHCPv6 so that the DHCPv6 Relay Agent can dynamically
influence the priority of DNS servers provided to the host, so that
the host can use the optimal DNS server for resolution.
Status of this Memo
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 3, 2012.
Copyright Notice
Copyright (c) 2011 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
Wing, et al. Expires May 3, 2012 [Page 1]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Protocol overview . . . . . . . . . . . . . . . . . . . . . . 4
4.1. Message . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. Relay Reconfigure option . . . . . . . . . . . . . . . . . 5
5. DHCPv6 Relay Agent Behaviour . . . . . . . . . . . . . . . . . 7
6. DHCPv6 Server Behaviour . . . . . . . . . . . . . . . . . . . 7
7. Host Tracking . . . . . . . . . . . . . . . . . . . . . . . . 8
8. Security Considerations . . . . . . . . . . . . . . . . . . . 9
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9
10.1. Normative References . . . . . . . . . . . . . . . . . . . 9
10.2. Informative References . . . . . . . . . . . . . . . . . . 10
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 10
Wing, et al. Expires May 3, 2012 [Page 2]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
1. Introduction
The default address selection rules [RFC3484] prefers IPv6 over IPv4.
If a dual-stack host is configured to use a DNS64 server, that DNS64
server will synthesize a AAAA response if there is an A record.
Thus, the dual-stack host will always use IPv6 if a DNS lookup was
involved, even if IPv4 could have been used more optimally. If NAT44
and NAT64 are deployed on the same network, , it is preferable to use
NAT44 over NAT64 because of scale, performance and application
incompatibility issues (e.g., FTP) [RFC6384]. At the same time,
native IPv6 can still be preferred over IPv4. The DHCPv6 Relay Agent
can observe host characteristics on a network to determine if the
host is IPV4-only, dual-stack or IPV6-only and also determine
transitions from single to dual-stack or vice-versa. In this
document we propose a specification that allows the DHCPv6 Relay
Agent to influence the DHCPv6 Server to send appropriately
prioritized DNS Servers to the client as per host characteristics.
2. Terminology
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 [RFC2119].
'normal' DNS server : DNS server using an IPv4-mapped IPv6 address
(that is, an IPv6 address starting with ::ffff:/96 IPv4-mapped
prefix). Hosts can communicate with 'normal' DNS server only using
IPv4 packets [RFC6052], section 4.2.
DNS64 server : DNS server using a normal IPv6 address and synthesizes
AAAA records from A records [RFC6147]
3. Mechanism
This document describes a new DHCPv6 Message and Option that is to be
used by the DHCPv6 Relay Agent to indicate to the DHCPv6 Server of
the priority of DNS servers to be provided to the specified host.
The DHCPv6 Server then sends a Reconfigure message to the host
providing updated/re-ordered DNS server list as suggested by the
Relay Agent. The idea is for the DHCPv6 Relay Agent to dynamically
send the reconfigure message based on host characteristics.
1. *IPv6-only transition to Dual-Stack* In case a host is IPv6-only
to start off, it is provided a DNS64 Server. When transitioning
to dual-stack, a IPv4 DNS Server is assigned as a consequence of
obtaining an IPv4 Address. The DHCPv6 Relay Agent can detect
Wing, et al. Expires May 3, 2012 [Page 3]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
this and send RELAY-RECONFIG message Section 4.1 to the DHCPv6
Server indicating that the host needs to be needs to be provided
with "normal" DNS Server followed by DNS64 server. In lieu of
this mechanism, the host would continue to use the DNS64 server
until the host stack Re-initializes.
2. *Dual-Stack to IPv6-only* In case a host is dual-stack, it is
provided with "normal" DNS followed by DNS64 server. When
transitioning to IPv6-only, the DHCPv6 Relay Agent can detect
this and send a RELAY-RECONFIG message to the DHCPv6 Server
indicating that the host needs to be assigned a DNS64 server
only. Without this, the host will continue to use the "normal"
DNS Server which is inaccessible and eventually time out to fail
over to the DNS64 Server. This means that the host will take
additional time to fully initialize causing delays in connection.
3. *IPv4-only transition to Dual-Stack* In case a host is IPv4-only
to start off, it is provided IPv4 DNS Server. When transitioning
to dual-Stack, DNS64 server is also provided as a consequence of
obtaining IPv6 address(s). The DHCPv6 Relay Agent can detect
this and send RELAY-RECONFIG message to the DHCPv6 Server
indicating that the host needs to be provided with "normal" DNS
Server followed by DNS64 server.
4. *Dual-Stack to IPv4-only* In case a host is dual-stack, it is
provided with "normal" DNS followed by DNS64 server. When
transitioning to IPv4-only, no change is required because the
host continues to use "normal" server.
4. Protocol overview
To realize the mechanism described above, this document extends the
DHCPv6 protocol allowing the DHCPv6 relay-agent to inform DHCPv6
server to initiate a reconfigure message with the client, resulting
in the client to initiate Renew/Reply or information-request/Reply
transaction with the server to receive updated/new configuration
information.
Wing, et al. Expires May 3, 2012 [Page 4]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
DHCPv6 Client DHCPv6 Relay Agent DHCPv6 Server
| | |
| |----------------------------->|
| | DHCPv6 Relay-supplied |
| | Reconfigure message |
| | |
| | |
|<--------------------------------------------------|
| | DHCPv6 Reconfigure |
| | |
|--------------------|----------------------------->|
| DHCPv6 Information-request |
| | |
|<--------------------------------------------------|
| DHCPv6 Reply |
| | |
Figure 1: Message Flow
4.1. Message
The RELAY-RECONFIG message uses the Client/Server message formats
described in [RFC3315], section 6.
RELAY-RECONFIG - A Relay Agent sends a RELAY-RECONFIG message to
DHCPv6 server so that server can update configuration information
based on the details in the Relay Reconfigure option. DHCPv6 server
will subsequently initiate Reconfigure message with the client to
propagate the new configuration information.
4.2. Relay Reconfigure option
The Relay Reconfigure option is used only in a RELAY-RECONFIG message
and identifies the query being performed. The option includes the
reconf-type, client-key and option(s) to provide data needed for the
DHCPv6 server to initiate Reconfigure message with the client.
The Relay Reconfigure option is defined below:
Wing, et al. Expires May 3, 2012 [Page 5]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
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_RELAY_RECONF | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| reconf-type | client-key | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. client-key-options .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Info-flags | Reserved1 |
-----------------------------------------------------------------
Figure 2: Relay Reconfigure option message format
option-len: Length of the option.
reconf-type: 5 for Renew message, 11 for Information-request
message.
client-key: 8-bit unsigned integer. The client-key indicates the
key to identify the client.
client-key-options: 8-bit unsigned integer. This option can contain
either OPTION_IAADDR or OPTION_CLIENTID. The server identifies
the client either using IPv6 address assigned to the client using
OPTION_IAADDR option or using DHCP Unique Identifier (DUID) of the
client in OPTION_CLIENTID option [RFC3315].
client-key values are defined below -
+------+--------------------------------
|Value | Name |
+------+--------------------------------
| 0x01 | IDENTIFY_CLIENT_BY_ADDRESS |
| 0x02 | IDENTIFY_CLIENT_BY_CLIENTID |
+------+--------------------------------
Figure 3: client-key values
Info-flag values are defined below -
Wing, et al. Expires May 3, 2012 [Page 6]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
+------+--------------------------------
|Value | Name |
+------+--------------------------------
| 0x01 | IPV6_DNS64_SERV_ONLY |
| 0x02 | IPV6_HIG_PROI_NORM_SERV |
+------+--------------------------------
Figure 4: Info-flag values
1: *IPV6_DNS64_DNS_SERV_ONLY* Provide only DNS64 address list to the
client.
2: *IPV6_HIG_PROI_NORM_SERV* Provide DNS address list in this order
to the client - first "normal" DNS servers, second DNS64 servers.
5. DHCPv6 Relay Agent Behaviour
Relay Agent and clients MUST discard any received RELAY-RECONFIG
messages. DHCPv6 relay agents that implement this specification MUST
be configurable for sending the RELAY-RECONFIG message. Relay agents
SHOULD have separate configuration for client-key in
OPTION_RELAY_RECONF option . The Relay Agent sets the "msg-type"
field to RELAY-RECONFIG. The Relay Agent generates a transaction ID
and inserts this value in the "transaction-id" field. The Relay
Agent MUST include OPTION_RELAY_RECONF option and set the reconf-
type, client-key, client-key-options accordingly. The Relay Agent
detects host characteristics using mechanisms discussed in Section 7.
For host transition from IPv6-only to dual-Stack or IPv4-only to
dual-stack Relay Agent will set Info-flags with
IPV6_HIG_PROI_NORM_SERV and for host transition from dual-stack to
IPv6 only Relay-Agent will set Info-flags with IPV6_DNS64_SERV_ONLY.
The Relay Reconfigure option is a general and extendable frame work
such that in future based on changes to host/network characteristics,
Relay agent can dynamically inform the DHCPv6 server to update the
host with other configuration information.
6. DHCPv6 Server Behaviour
Servers MUST discard any received RELAY-RECONFIG messages that meet
any of the following conditions :
o the message does not include OPTION_RELAY_RECONF option.
o DUID or IPv6 address in client-key-options does not match server
binding to identify the client.
Wing, et al. Expires May 3, 2012 [Page 7]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
Client will have to indicate with a Reconfigure Accept option in the
Solicit message that it will accept the Reconfigure message. Server
can have administrative policy that it will only respond to a client
willing to accept a Reconfigure message. If the client does not
indicate that it will accept Reconfigure message in the Solicit
message then the server will discard the Solicit Message.
Upon receiving RELAY-RECONFIG message containing the Relay
Reconfigure Option, the DHCPv6 server processing is described below
depending on the Info-flag values:
o *IPV6_DNS64_SERV_ONLY* The DHCPv6 server will select only IPv6
addresses list of DNS64 recursive name servers to be sent to the
client. The DHCPv6 server would send Reconfigure message to
inform the client that the server has updated configuration
information and then the client would initiate Information-
request/replay transaction with the server. The updated
configuration will now be sent as part of Information-request
reply by the DHCPv6 server.
o *IPV6_HIG_PROI_NORM_SERV* The DHCPv6 server will select DNS
servers in this order, first is the normal DNS servers and the
second is the DNS64 servers. The DHCPv6 server would send
Reconfigure message to the client to inform the client that the
server has updated configuration information and then the client
would initiate Information-request/replay transaction with the
server. The updated configuration will now be sent as part of
Information-request reply by the DHCPv6 server. The order of DNS
servers provided by option OPTION_DNS_SERVERS determines the
preference for use by the DNS client resolver [RFC3646] thus
ensuring higher priority for normal DNS server list followed by
DNS64 servers.
DHCPv6 server will use mechanism described [RFC3315], section 19.1 to
create and send Reconfigure message.
7. Host Tracking
Relay Agents can actively keep track of all IPv4/IPv6 addresses and
associated lease times assigned to hosts via the respective DHCP
servers. This enables Relay Agents to detect transitions from single
to dual-stack and vice-versa efficiently. In addition to this
technique, which is to be primarily used, transitions can also be
detected using snooping mechanisms. Network devices today use
mechanisms such as ARP and NDP snooping to determine host
characteristics such as IPv4/IPv6 - MAC bindings. IPv4/IPv6 and MAC
counters are also used to determine host liveliness. These
Wing, et al. Expires May 3, 2012 [Page 8]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
mechanisms help determine if a particular IP is inactive. Relay
Agents can leverage these to potentially detect IP address inactivity
to determine if a particular host has reverted to using a single
stack even though it initially had dual-stack capabilities.
Similarly, it can also detect active dual-stack usage after long
periods of single-stack activity.
8. Security Considerations
The RELAY-RECONFIG is exchanged only between the DHCPv6 relay agent
and DHCPv6 server, section 21.1 of [RFC3315] provides details on
securing DHCPv6 messages sent between servers and relay agents. And
section 23 of [RFC3315] provides general DHCPv6 security
considerations.
9. IANA Considerations
IANA is requested to assign new DHCPv6 Message types to RELAY-
RECONFIG from the msg-type space as defined in section "DHCP Message
Types" of [RFC3315]. IANA is requested to assign new option codes to
OPTION_RELAY_RECONF from the option-code space as defined in section
"DHCPv6 Options" of [RFC3315].
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.
[RFC3484] Draves, R., "Default Address Selection for Internet
Protocol version 6 (IPv6)", RFC 3484, February 2003.
[RFC3646] Droms, R., "DNS Configuration options for Dynamic Host
Configuration Protocol for IPv6 (DHCPv6)", RFC 3646,
December 2003.
[RFC6052] Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X.
Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052,
October 2010.
Wing, et al. Expires May 3, 2012 [Page 9]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
[RFC6147] Bagnulo, M., Sullivan, A., Matthews, P., and I. van
Beijnum, "DNS64: DNS Extensions for Network Address
Translation from IPv6 Clients to IPv4 Servers", RFC 6147,
April 2011.
[RFC6384] van Beijnum, I., "An FTP Application Layer Gateway (ALG)
for IPv6-to-IPv4 Translation", RFC 6384, October 2011.
10.2. Informative References
[I-D.wing-behave-dns64-config]
Wing, D., "IPv6-only and Dual Stack Hosts on the Same
Network with DNS64", draft-wing-behave-dns64-config-03
(work in progress), February 2011.
[RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
Host Configuration Protocol (DHCP) version 6", RFC 3633,
December 2003.
[RFC5007] Brzozowski, J., Kinnear, K., Volz, B., and S. Zeng,
"DHCPv6 Leasequery", RFC 5007, September 2007.
Authors' Addresses
Dan Wing
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, California 95134
USA
Email: dwing@cisco.com
Tirumaleswar Reddy
Cisco Systems, Inc.
Cessna Business Park, Varthur Hobli
Sarjapur Marathalli Outer Ring Road
Bangalore, Karnataka 560103
India
Email: tireddy@cisco.com
Wing, et al. Expires May 3, 2012 [Page 10]
Internet-Draft dhcpv6_dynamic_reconfig October 2011
Prashanth Patil
Cisco Systems, Inc.
Cessna Business Park, Varthur Hobli
Sarjapur Marthalli Outer Ring Road
Bangalore, Karnataka 560103
India
Email: praspati@cisco.com
Wing, et al. Expires May 3, 2012 [Page 11]