IPv6 maintenance Working Group (6man) F. Gont Internet-Draft SI6 Networks / UTN-FRH Updates: 6106 (if approved) P. Simerda Intended status: Standards Track June 15, 2012 Expires: December 17, 2012 Current issues with DNS Configuration Options for SLAAC draft-gont-6man-slaac-dns-config-issues-00 Abstract RFC 6106 specifies two Neighbor Discovery options that can be included in Router Advertisement messages to convey information about DNS recursive servers and DNS Search Lists. Small lifetime values for the aforementioned options have been found to cause interoperability problems in those network scenarios in which these options are used to convey DNS-related information. This document analyzes the aforementioned problem, and formally updates RFC 6106 such that these issues are mitigated. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. This document may not be modified, and derivative works of it may not be created, and it may not be published except as an Internet-Draft. 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 December 17, 2012. Copyright Notice Copyright (c) 2012 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 Gont & Simerda Expires December 17, 2012 [Page 1] Internet-Draft SLAAC DNS Configuration Issues June 2012 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Possible Solutions . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Summary of possible solutions . . . . . . . . . . . . . . 4 2.2. Changing the Semantics of the 'Lifetime' field of RDNSS and DNSSL options . . . . . . . . . . . . . . . . . 4 2.3. Changing the Default Values of the 'Lifetime' field of RDNSS and DNSSL options . . . . . . . . . . . . . . . . . 6 2.4. Use Router Solicitations for active Probing . . . . . . . 7 2.5. Sanitize the received RDNSS/DNSSL 'Lifetime' Values . . . 7 3. Security Considerations . . . . . . . . . . . . . . . . . . . 9 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10 5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.1. Normative References . . . . . . . . . . . . . . . . . . . 11 5.2. Informative References . . . . . . . . . . . . . . . . . . 11 Appendix A. Additional notes regarding RFC 6106 . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14 Gont & Simerda Expires December 17, 2012 [Page 2] Internet-Draft SLAAC DNS Configuration Issues June 2012 1. Introduction RFC 6106 [RFC6106] specifies to Neighbor Discovery (ND) [RFC4861] options that can be included in Router Advertisement messages to convey information about DNS recursive servers and DNS Search Lists. Namely, the Recursive DNS Server (RDNSS) Option specifies the IPv6 addresses of recursive DNS servers, while the DNS Search List (DNSSL) Option specifies a "search list" to be used when trying to resolve a name by means of the DNS. Each of this options include a "Lifetime" field which specifies the maximum time, in seconds, during which the information included in the option can be used by the receiving system. The aforementioned "Lifetime" value is set as a function of the Neighbor Discovery parameter 'MaxRtrAdvInterval', which specifies the maximum time allowed between sending unsolicited multicast Router Advertisements from an interface. The recommended bounds (MaxRtrAdvInterval <= Lifetime <= 2*MaxRtrAdvInterval) have been found to be too short for scenarios in which some Router Advertisement messages may be lost. In such scenarios, host may fail to receive unsolicited Router Advertisements and therefore fail to refresh the expiration time of the DNS-related information previously learned through the RDNSS and DNSSL options), thus eventually discarding the aforementioned DNS- related information prematurely. Some implementations consider the lack of DNS-related information as a hard failure, thus causing configuration restart. This situation is exacerbated in those implementations in which IPv6 connectivity and IPv4 connectivity are bound together, and hence failure in the configuration of one of them causes the whole link to be restarted. Section 2 proposes a number of ALTERNATIVE solutions to the problem, such that the 6man wg can discuss both of them. It is expected that once the 6man wg converges on a preferred solution, the other ones will be removed from the document. 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]. Gont & Simerda Expires December 17, 2012 [Page 3] Internet-Draft SLAAC DNS Configuration Issues June 2012 2. Possible Solutions This section describes a number of possible ALTERNATIVE solutions to the problem, such that the 6man wg can discuss both of them. It is expected that once the 6man wg converges on a preferred solution, the other one will be removed from the document. 2.1. Summary of possible solutions Section 2.2 proposes to change the semantics of the RDNSS/DNSSL 'Lifetime', thus fixing the 'expiration' problem outlined in Section 1 and the potential of 'network configuration oscillation'. Section 2.3 proposes to increase the 'Lifetime' value at the sending routers, fixing the "expiration" problem outlined in Section 1, but without addressing the potential of 'network configuration oscillation'. Section 2.4 proposes to send Router Solicitations when expiration of RDNSS/DNSSL information is imminent, to elicit Router Advertisement messages. Section 2.5 proposes to enforce a lower limit on the received RDNSS/DNSSL 'Lifetime' values at the client side. 2.2. Changing the Semantics of the 'Lifetime' field of RDNSS and DNSSL options The semantics of the 'Lifetime' field of the RDNSS and DNSSL options is updated as follows: o The 'Lifetime' field indicates the amount of time during which the aforementioned DNS-related information is expected to be stable. o If the information received in a RDNSS or DNSSL option is already present in the corresponding data structures, the corresponding 'Expiration' time should be updated according to the value in the 'Lifetime' field of the received option. A 'Lifetime' of '0' causes the corresponding information to be discarded, as already specified in [RFC6106]. o If a host has already gathered a sufficient number of RDNSS addresses (or DNS search domain names), and additional data is received while the existing entries have not yet expired, the received RDNSS addresses (or DNS search domain names) SHOULD be ignored. o If a host receives new RDNSS addresses (or DNS search domain names), and some of the existing entries have expired, the newly- learned information SHOULD be used to replace the expired entries. Gont & Simerda Expires December 17, 2012 [Page 4] Internet-Draft SLAAC DNS Configuration Issues June 2012 o A host SHOULD flush configured DNS-related information when it has any reason to believe that its network connectivity has changed in some relevant way (e.g., there has been a "link change event"). When that happens, the host MAY send a Router Solicitation message to re-learn the corresponding DNS-related information. o The most-recently-updated information SHOULD have higher priority over the other DNS-related information already present on the local host. The rationale for the suggested change is as follows: o It is a backwards-compatible local-policy change that solves the problem described in Section 1 without requiring changes to router software or router configuration in existing deployments (over which the user is likely to have no control at all). o Since different RDNSS and DNSSL information could be sent by the same router in different Router Advertisement messages, the updated semantics of the 'Lifetime' parameter prevents oscillations in network configuration. This situation could arise for a number of reasons. For example, if the desire for different 'Lifetime' values warrants the use of different RDNSS or DNSSL options, and because of packet size issues each option must be included in a separate Router Advertisement message, each burst of RAs could cause DNS-related information to be reconfigured. Another possible scenario that could lead to the same situation is that in which there is more than one local router, and each of the local routers announces different RDNSS (or DNSSL) information. If the number of RDNSS addresses (or DNS search domain names) that the local host considers "sufficient" prevents the aggregate set of RDNSS (or DNSSL) information, the local RDNSS (or DNSSL) information would oscillate between that advertised by each of the local routers. o The original motivation for enforcing a short expiration timeout value was to allow mobile nodes to prefer local RDNSSes to remote RDNSSes. However, the recommendation in the last bullet above already allows for a timely update of the corresponding DNS- related information. Additionally, since it is already recommended by [RFC6106] to maintain some RDNSS addresses (or DNS search domain names) per source, in the typical scenarios in which a single router (per subnet) advertises configuration information, one of this 'slots' will be free (or have expired information) and readily available to be populated with information learned from Gont & Simerda Expires December 17, 2012 [Page 5] Internet-Draft SLAAC DNS Configuration Issues June 2012 the new subnet to which the host has moved. 2.3. Changing the Default Values of the 'Lifetime' field of RDNSS and DNSSL options The default RDNSS/DNSSL "Lifetime" value in current the current router solutions vary between MaxRtrAdvInterval and 2*MaxRtrAdvInterval. This means that common packet loss rates can lead to the problem described in this document. One possible approach to mitigate this issue would be to avoid 'Lifetime' values that are on the same order as MaxRtrAdvInterval. This solution would require, of course, changes in router software. When specifying a better default value, the following aspects should be considered: o IPv6 will be used on many links (including IEEE 802.11) that experience packet loss. Therefore losing a few packets in a short period of time should not invalidate DNS configuration information. o Unsolicited Router Advertisements sent on Ethernet networks result in packets that employ multicast Ethernet Destination Addresses. A number of network elements (including those that perform bridging between wireless networks and wired networks) have problems with multicasted Ethernet frames, thus typically leading to packet loss of some of those frames. Therefore, SLAAC implementations should be able to cope with devices that can lose several multicast packets in a row. The default value of AdvRDNSSLifetime and AdvDNSSLLifetime MUST be at least 5*MaxRtrAdvInterval so that the probability of hosts receiving unsolicited Router Advertisements is increased. This solution leaves out the following situations: o In those scenarios in which the involved routers cannot be updated this solution will not be applicable. This also limitation also applies to nomadic hosts that can connect to many different networks. This case will be discussed later in this document. o The affected network has a huge multicast packet loss. This unfortunately happens in some real networks. o This solution does not address the potential 'network configuration oscillation' issue described in Section 2.2. Gont & Simerda Expires December 17, 2012 [Page 6] Internet-Draft SLAAC DNS Configuration Issues June 2012 2.4. Use Router Solicitations for active Probing According to RFC 6106, hosts MAY send Router Solicitations to avoid expiry of RDNSS and DNSSL lifetimes. This technique could be employed as a "last resort" when expiration of the RDNSS and DNSSL information is imminent. Hosts SHOULD start sending multicast Router Solicitation when most of the Lifetime of the last RDNSS server is consumed. The precise time should be a randomized value chosen from 70% to 90% of the original Lifetime to avoid bursts of packets from other hosts on the network. Hosts MAY send up to MAX_RTR_SOLICITATIONS Router Solicitation messages, each separated by at least RTR_SOLICITATION_INTERVAL seconds (please see Section 6.3.7 of [RFC4861]. Problems of this approach: o If no IPv6 router responds, all previously connected hosts will repeatedly send Router Solicitations and only stop doing so when their RDNSS and DNSSL information finally expires. This could disrupt IPv4 networking in larger networks and that must be avoided. o If IPv6 router responds with unicast Router Advertisement, it may need to respond to many clients. o There is no other SLAAC information that requires or would benefit from this kind of "active probing". o This approach does not mitigate the potential 'network configuration oscillation' problem described in Section 2.2. NOTE: We should either state a very good reason to specialcase DNS timeouts or deprecate Router Solicitations in RFC 6106 entirely. Deprecation is the more favorable option in our opinion. 2.5. Sanitize the received RDNSS/DNSSL 'Lifetime' Values Another possible approach would be to enforce a lower limit on the received RDNSS/DNSSL 'Lifetime' values on the client side. The challenge this technique is the selection of a reasonable value. On the router side, it can be derived from MaxRtrAdvInterval but this value is not known to the client side. Therefore we would have to assume some maximum value of MaxRtrAdvInterval and use it to derive minimum value of lifetimes instead of the actual MaxRtrAdvInterval. Gont & Simerda Expires December 17, 2012 [Page 7] Internet-Draft SLAAC DNS Configuration Issues June 2012 It should be noted that this approach would not address the potential 'network configuration oscillation' issue described in Section 2.2. Gont & Simerda Expires December 17, 2012 [Page 8] Internet-Draft SLAAC DNS Configuration Issues June 2012 3. Security Considerations This document does not introduce any additional security considerations to those documented in the "Security Considerations" section of [RFC6106]. Gont & Simerda Expires December 17, 2012 [Page 9] Internet-Draft SLAAC DNS Configuration Issues June 2012 4. Acknowledgements Gont & Simerda Expires December 17, 2012 [Page 10] Internet-Draft SLAAC DNS Configuration Issues June 2012 5. References 5.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998. [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, September 2007. [RFC6106] Jeong, J., Park, S., Beloeil, L., and S. Madanapalli, "IPv6 Router Advertisement Options for DNS Configuration", RFC 6106, November 2010. 5.2. Informative References Gont & Simerda Expires December 17, 2012 [Page 11] Internet-Draft SLAAC DNS Configuration Issues June 2012 Appendix A. Additional notes regarding RFC 6106 Section 5.2 of [RFC6106] states: An RDNSS address or a DNSSL domain name MUST be used only as long as both the RA router Lifetime (advertised by a Router Advertisement message [RFC4861]) and the corresponding option Lifetime have not expired. This requirement could introduce problems in scenarios in which the router advertising the RDNSS or DNSSL options is not expected to be employed as a "default router", and hence the 'Router Lifetime' value of its Router Advertisement messages is set to 0. As noted in Section 4.2 of [RFC4861], the Router Lifetime applies only to the router's usefulness as a default router, and it does not apply to information contained in other message fields or options. Therefore, it would be sensible to exclude the 'Router Lifetime information when deciding about the validity or "freshness" of the DNS-related configuration information. Section 5.3.1 of [RFC6106] states: When the IPv6 host has gathered a sufficient number (e.g., three) of RDNSS addresses (or DNS search domain names), it SHOULD maintain RDNSS addresses (or DNS search domain names) by the sufficient number such that the latest received RDNSS or DNSSL is more preferred to the old ones; that is, when the number of RDNSS addresses (or DNS search domain names) is already the sufficient number, the new one replaces the old one that will expire first in terms of Lifetime. As noted earlier in this document, this policy could lead (in some scenarios) to network configuration oscillations. Therefore, it would be sensible to enforce some minimum stability of the configured information, such as that resulting from the update in Section 2.2. Section 6.3 of [RFC6106] states: Step (d): For each DNSSL domain name, if it does not exist in the DNS Search List, register the DNSSL domain name and Lifetime with the DNS Search List and then insert the DNSSL domain name in front of the Resolver Repository. In the case where the data structure for the DNS Search List is full of DNSSL domain name entries (that is, has more DNSSL domain names than the sufficient number discussed in Section 5.3.1), delete from the DNS Server List the Gont & Simerda Expires December 17, 2012 [Page 12] Internet-Draft SLAAC DNS Configuration Issues June 2012 entry with the shortest Expiration-time (i.e., the entry that will expire first). This policy could lead to the same network configuration oscillation problems as described above for the RDNSS addresses. Therefore, it would be sensible to enforce some minimum stability of the configured information, such as that resulting from the update in Section 2.2. Gont & Simerda Expires December 17, 2012 [Page 13] Internet-Draft SLAAC DNS Configuration Issues June 2012 Authors' Addresses Fernando Gont SI6 Networks / UTN-FRH Evaristo Carriego 2644 Haedo, Provincia de Buenos Aires 1706 Argentina Phone: +54 11 4650 8472 Email: fgont@si6networks.com URI: http://www.si6networks.com Pavel Simerda Phone: +420 775 996 256 Email: pavlix@pavlix.net Gont & Simerda Expires December 17, 2012 [Page 14]