V6OPS B. Liu
Internet-Draft S. Jiang
Intended status: Informational Huawei Technologies
Expires: January 7, 2016 X. Gong
W. Wang
BUPT University
E. Rey
ERNW GmbH
July 6, 2015

DHCPv6/SLAAC Interaction Problems on Address and DNS Configuration
draft-ietf-v6ops-dhcpv6-slaac-problem-05

Abstract

The IPv6 Neighbor Discovery (ND) Protocol includes an ICMPv6 Router Advertisement (RA) message. The RA message contains three flags, indicating the availability of address auto-configuration mechanisms and other configuration. These are the M, O, and A flags. These flags by definition are advisory, not prescriptive.

This document describes divergent host behaviors observed in popular operating systems. It also discusses operational problems that divergent behaviors might cause.

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 January 7, 2016.

Copyright Notice

Copyright (c) 2015 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.


Table of Contents

1. Introduction

IPv6 [RFC2460] hosts invoke Neighbor Discovery (ND) [RFC4861] procedures in order to discover which auto-configuration mechanisms are available to them. The following is a list of auto-configuration mechanisms:

ICMPv6 [RFC4443] Router Advertisement (RA) message. Routers periodically broadcast the RA message to all on-link nodes. They also unicast RA messages in response to solicitations. The RA message contains:

ND specifies an

The M flag indicates that addresses are available from DHCPv6. The O flag indicates that other configuration information (e.g., DNS-related information) is available from DHCPv6. The PIO (Prefix Information Option) includes a prefix, an A (Autonomous) flag and other fields. The A flag indicates that the prefix can be used for SLAAC. The M and O flags are advisory, not prescriptive (although A flag is also advisory in definition in standard, it is quite prescriptive in implementations). For example, the M flag indicates that addresses are available from DHCPv6. It does not indicate that hosts are required to acquire addresses from DHCPv6. Similar statements can be made about the O flag.

Because of the advisory definition of the flags, in some cases different operating systems appear divergent behaviors. This document analyzes possible divergent host behaviors might happen (some of the possible divergent behaviors are already observed in popular operating systems) and the operational problems might caused by divergent behaviors.

2. The M, O and A Flags

This section briefly reviews how the M, O and A flags are defined in [RFC4861].

2.1. Flags Definition

2.2. Flags Relationship

Per [RFC4861], "If the M flag is set, the O flag is redundant and can be ignored because DHCPv6 will return all available configuration information.".

M/O flags semantics are independent of A flag's. The M/O flags indicate that addresses or other configuration are available from DHCPv6, regardless of the A flag setting. Vice versa, The A flag indicates that the prefix can be used by SLAAC, regardless of the M/O flags settings.

3. Behavior Ambiguity Analysis

The flags definition ambiguity means, on interpreting the same messages, different hosts might behave differently. Thus it could be un-controlled or un-predictable for administrators on some operations. The ambiguity is summarized as the following aspects.

1) Dependency between DHCPv6 and RA

In standards, behavior of DHCPv6 and Neighbor Discovery protocols is specified respectively. But it is not clear that whether there should be any dependency between them. More specifically, it is unclear whether RA (with M=1) is required to trigger DHCPv6; in other words, It is unclear whether hosts should initiate DHCPv6 by themselves If there are no RAs at all.

2) Overlapped configuration between DHCPv6 and RA

When address and DNS configuration are both available from DHCPv6 and RA, it is not clear how to deal with the overlapped information. Should the hosts accept all the information? Which one should be in the higher priority?
For DNS configuration, [RFC6106] clearly specifies "In the case where the DNS options of RDNSS and DNSSL can be obtained from multiple sources, such as RA and DHCP, the IPv6 host SHOULD keep some DNS options from all sources" and "the DNS information from DHCP takes precedence over that from RA for DNS queries" (Section 5.3.1 of [RFC6106]). But for address configuration, there's no such guidance.

3) Interpretation on Flags Transition

When flags are in transition, e.g. the host is already SLAAC-configured, then M flag changes from FALSE to TRUE, it is not clear whether the host should start DHCPv6 or not; or vise versa, the host is already both SLAAC/DHCPv6 configured, then M flag change from TRUE to FALSE, it is also not clear whether the host should turn DHCPv6 off or not.
Transition might caused by the same source that changes the previous configuration; or cause by another source which has different configuration.

4) Relationship between Address Configuring Method and Address Lifetime

When one address configuration method is off, that is, the A flag or M flag changes from TRUE to FALSE, it is not clear whether the host should immediately release the corresponding address(es) or just retain it(them) until expired.

5) Relationship between the Flags

The semantics of the flags seems not totally independent, but the standards didn't clearly clarify it. For example, can A flag influence the behavior of O flag? (Specifically, when A and M flags are FALSE and O flag is TRUE, it is not clear whether the host should initiate a stand-alone stateless DHCPv6 session.)

Divergent behaviors on all the five aspects have been observed among some popular operating systems as described in Section 4 below.

4. Observed Divergent Host Behaviors

The authors tested several popular operating systems in order to determine what behaviors the M, O and A flag elicit. In some cases, the M, O and A flags elicit divergent behaviors. The table below characterizes those cases. For test details, please refer to Appendix A.

The divergence contains two aspect: one is regarding to address auto-configuration; the other is regarding to DNS configuration.

Divergent Behaviors on Address Auto-Configuration
Host State Input Behavior
Host has not acquired any addresses No RA Some popular operating systems acquire addresses from DHCPv6. Others do not.
Host has acquired addresses from DHCPv6 only (M = 1) RA with M =0 Some operating systems release DHCPv6 addresses immediately. Some release DHCPv6 addresses when they expire.
Host has acquired addresses from SLAAC only (A=1) RA with M = 1 Some operating systems acquire DHCPv6 addresses immediately. Others do so only if their SLAAC addresses expire and cannot be refreshed.





Divergent Behaviors on DNS Configuration
Host State Input Behavior
Host has not acquired any addresses or information RA with M=0, O=1, no RDNSS; A DHCPv6 server on the same link providing RDNSS (regardless of address provisioning) Some popular operating systems acquire RDNNS from DHCPv6, regardless of the A flag setting. Others do so, but only if A=1.
Host has not acquired any addresses or information RA with M=0/1, A=1, O=1 and an RDNSS is advertised;A DHCPv6 server on the same link providing IPv6 addresses and RDNSS (Only for those operations systems which support [RFC6106]) 1) getting RDNSS from both the RAs and the DHCPv6 server, and the RDNSS obtained from the router has a higher priority. 2) getting RDNSS from both, but the RDNSS obtained from the DHCPv6 server has a higher priority. 3) getting an RDNSS from the router, and a "domain search list" information from the DHCPv6 server- but not RDNSS information.
Host has acquired address and RDNSS from the first router (M=0, O=0, A=1 and RDNSS advertised) Another router advertising M=1, O=1, no prefix information; A DHCPv6 server on the same link providing IPv6 addresses and RDNSS (Only for those operations systems which support [RFC6106]) 1) never get any information (IPv6 address or RDNSS) from the DHCPv6 server. 2) When receiving an RA from router 2, getting an IPv6 address and RDNSS from the DHCPv6 server while retaining the address and RDNSS obtained from the RAs of the first router. The RDNSS obtained from the first router has a higher priority; when they receive again RAs from the first router, they lose/forget the information (IPv6 address and RDNSS) obtained from the DHCPv6 server.
Host has acquired address and RDNSS from the first router (M=1, O=1, no PIO or RDNSS advertised) Another router advertising M=0, O=0, A=1, and RNDSS (Only for those operations systems which support [RFC6106]) 1) When they receive RAs from the second router, they get address(es) and RDNSS from these RAs. At the same time, the IPv6 address and the RDNSS obtained from the DHCPv6 server are gone. When they receives again an RA from the first router, they perform the DHCPv6 Confirm/Reply procedure and they get an IPv6 address and RDNSS from the DHCPv6 server while retaining the ones obtained from the RAs of the second router. Moreover, the RDNSS from router 1 has higher priority than the one from DHCPv6. 2) When it receives RAs from the second router, it also gets information from it, but it does not lose the information obtained from the DHCPv6 server. It retains both. It only gets "Domain Search list" from the DHCPv6 server-no RDNSS information. When it receives RAs from the first router, there is no change; it retains all the obtained information. 3) When it gets RAs from the second router, it also gets a SLAAC IPv6 address but no RDNSS information from the RAs of this router. It also does not lose any information obtained from DHCPv6. When it gets RAs from the first router again, the situation does not change (IPv6 addresses from both the DHCPv6 and SLAAC process are retained, but RDNSS information only from the DHCPv6 server).

5. Operational Problems

This section describes operational issues caused by the divergent behaviors, described above.

5.1. Inappropriate Sources

Some operating systems base their decision to acquire configuration information upon inappropriate sources. For example, some operating systems acquire other configuration information if M=0, O=1, and A=1, but not if M=0, O=1 and A=0. In other words, on some operating systems, it is impossible to acquire other information from DHCPv6 (stateless DHCPv6 configuration) unless addresses are acquired from either DHCPv6 or SLAAC.

5.2. Renumbering Issues

According to [RFC6879] a renumbering exercise can include the following steps:

Section 4, renumbering operations would have the following limitations:

Ideally, these steps could be initiated by broadcasting RA message onto the subnetwork that is being renumbered. Sadly, this is not possible, because the RA message may elicit a different behavior from each host. According to

6. Security Considerations

(Note: the security considerations for specific operating systems are based on the detailed test results as described in Appendix A.)

An attacker, without having to install a rogue router, can install a rogue DHCPv6 server and provide IPv6 addresses to Windows 8.1 systems. This can allow her to interact with these systems in a different scope, which, for instance, is not monitored by an IDPS system.

If you want to perform MiTM using a rogue DNS while legitimate RAs with the O flag set are sent to enforce the use of a DHCPv6 server, you can spoof RAs with the same settings with the legitimate prefix (in order to remain undetectable) but advertising YOUR (attacker's) DNS using RDNSS. In this case, Fedora 21, Centos 7 and Ubuntu 14.04 will use the rogue RDNSS (advertised by the RAs) as a first option.

Fedora 21 and Centos 7 behaviour cannot be explored for a MiTM attack using a rogue DNS information either, since the one obtained by the RAs of the first router has a higher priority.

The behaviour of Fedora 21, Centos 7 and Windows 7 can be exploited for DoS purposes. A rogue IPv6 router not only provides its own information to the clients, but it also removes the previous obtained (legitimate) information. The Fedora and Centos behaviour can also be exploited for MiTM purposes by advertising rogue RDNSS by RAs which include RDNSS information.

7. IANA Considerations

This draft does not request any IANA action.

8. Acknowledgements

The authors wish to acknowledge BNRC-BUPT (Broad Network Research Centre in Beijing University of Posts and Telecommunications) for their testing efforts. Special thanks to Xudong Shi, Longyun Yuan and Xiaojian Xue for their extraordinary effort.

Special thanks to Ron Bonica who made a lot of significant contribution to this draft, including draft editing and presentations which dramatically improved this work.

The authors also wish to acknowledge Brian E Carpenter, Ran Atkinson, Mikael Abrahamsson, Tatuya Jinmei, Mark Andrews and Mark Smith for their helpful comments.

9. References

9.1. Normative References

[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998.
[RFC4443] Conta, A., Deering, S. and M. Gupta, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", RFC 4443, March 2006.
[RFC4861] Narten, T., Nordmark, E., Simpson, W. and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, September 2007.
[RFC4862] Thomson, S., Narten, T. and T. Jinmei, "IPv6 Stateless Address Autoconfiguration", RFC 4862, September 2007.
[RFC6106] Jeong, J., Park, S., Beloeil, L. and S. Madanapalli, "IPv6 Router Advertisement Options for DNS Configuration", RFC 6106, November 2010.

9.2. Informative References

[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.
[RFC3736] Droms, R., "Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6", RFC 3736, April 2004.
[RFC4192] Baker, F., Lear, E. and R. Droms, "Procedures for Renumbering an IPv6 Network without a Flag Day", RFC 4192, September 2005.
[RFC6879] Jiang, S., Liu, B. and B. Carpenter, "IPv6 Enterprise Network Renumbering Scenarios, Considerations, and Methods", RFC 6879, February 2013.

Appendix A. Test Results

The authors from two orgnizations tested different scenarios independent of each other. The following text decribes the two test sets respectively.

A.1. Test Set 1

A.1.1. Test Environment

The test environment was replicated on a single server using VMware. For simplicity of operation, only one host was run at a time. Network elements were as follows:

A.1.2. Address Auto-configuration Behavior in the Initial State

The bullet list below describes host behavior in the initial state, when the host has not yet acquired any auto-configuration information. Each bullet item represents an input and the behavior elicited by that input.

As showed above, four inputs result in divergent behaviors.

A.1.3. Address Auto-configuration Behavior in State Transitions

The bullet list below describes behavior elicited during state transitions. The value x can represents both 0 and 1.

A.2. Test Set 2

A.2.1. Test Environment

This test was built on real devices. All the devices are located on the same link.

A.2.2. Address/DNS Auto-configuration Behavior of Using Only One IPv6 Router and a DHCPv6 Server

In these scenarios there is two one router and, unless otherwise specified, one DHCPv6 server on the same link. The behaviour of the router and of the DHCPv6 server remain unchanged during the tests.

Case 1: One Router with the Management Flag not Set and a DHCPv6 Server

Case 2: One Router with Conflicting Parameters and a DHCPv6 Server

Case 3: Same as Case 2 but Without a DHCPv6 Server

Case 4: All Flags are Set and a DHCPv6 Server is Present

Case 5: All Flags are Set and There is No DHCPv6 Server is Present

Case 6: A Prefix is Advertised by RAs but the 'A' flag is not Set

A.2.3. Address/DNS Auto-configuration Behavior of Using Two IPv6 Router and a DHCPv6 Server

these scenarios there are two routers on the same link. At first, only one router is present (resembling the "legitimate router)", while the second one joins the link after the clients first configured by the RAs of the first router. Our goal is to examine the behaviour of the clients during the interchange of the RAs from the two different routers.

Case 7: Router 1 Advertising M=0, O=0 and RDNSS, and then Router 2 advertising M=1, O=1 while DHCPv6 is Present

Case 8: (Router 2) Initially M=1, O=1 and DHCPv6, then 2nd Router (Router 1) Rogue RAs Using M=0, O=0 and RDNSS Provided

Authors' Addresses

Bing Liu Huawei Technologies Q14, Huawei Campus, No.156 Beiqing Road Hai-Dian District, Beijing, 100095, P.R. China EMail: leo.liubing@huawei.com
Sheng Jiang Huawei Technologies Q14, Huawei Campus, No.156 Beiqing Road Hai-Dian District, Beijing, 100095, P.R. China EMail: jiangsheng@huawei.com
Xiangyang Gong BUPT University No.3 Teaching Building Beijing University of Posts and Telecommunications (BUPT) No.10 Xi-Tu-Cheng Rd. Hai-Dian District, Beijing, P.R. China EMail: xygong@bupt.edu.cn
Wendong Wang BUPT University No.3 Teaching Building Beijing University of Posts and Telecommunications (BUPT) No.10 Xi-Tu-Cheng Rd. Hai-Dian District, Beijing, P.R. China EMail: wdwang@bupt.edu.cn
Enno Rey ERNW GmbH EMail: erey@ernw.de