XML source
[rdnss.git] / draft-gont-6man-slaac-dns-config-issues-00.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!DOCTYPE rfc SYSTEM "rfc2629.dtd">
4
5 <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
6
7 <?rfc toc="yes" ?>
8 <?rfc symrefs="yes" ?>
9 <?rfc strict="no" ?>
10
11 <rfc 
12         ipr="noDerivativesTrust200902"
13         category="std"
14         updates="6106"
15         docName="draft-gont-6man-slaac-dns-config-issues-00">
16   <front>
17     <title abbrev="SLAAC DNS Configuration Issues">Current issues with DNS Configuration Options for SLAAC</title>
18     <area>Internet</area>
19     <workgroup>IPv6 maintenance Working Group (6man)</workgroup>
20
21
22 <author
23         fullname="Fernando Gont"
24         initials="F."
25         surname="Gont">
26     <!-- abbrev not needed but can be used for the header
27          if the full organization name is too long -->
28         <organization abbrev="SI6 Networks / UTN-FRH">SI6 Networks / UTN-FRH</organization>
29         
30         <address>
31
32             <postal>    
33                         <street>Evaristo Carriego 2644</street>
34                 <code>1706</code><city>Haedo</city>
35                 <region>Provincia de Buenos Aires</region>
36                 <country>Argentina</country>
37             </postal>
38             <phone>+54 11 4650 8472</phone>
39
40             <email>fgont@si6networks.com</email>
41 <!--            <email>fernando@gont.com.ar</email> -->
42
43 <!--
44 <uri>http://www.cpni.gov.uk</uri>
45 <uri>http://www.gont.com.ar</uri>
46 -->
47 <uri>http://www.si6networks.com</uri>
48         <!--            If I had a phone, fax machine, and a URI, I could add the following: --->
49
50         </address>
51     </author>
52
53  
54     <date year="2012" />
55
56     <abstract>
57     <t>
58 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.
59     </t>
60     </abstract>
61   </front>
62
63   <middle>
64   
65    
66 <section title="Introduction" anchor="intro">
67 <t>
68 RFC 6106 <xref target="RFC6106"/> specifies to Neighbor Discovery (ND) <xref target="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.
69 </t>
70
71 <t>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 paramenter 'MaxRtrAdvInterval', which specifies the maximum time allowed between sending unsolicited multicast Router Advertisements from an interface. The recommended bounds (MaxRtrAdvInterval &lt;= Lifetime lt;= 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 referesh 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.
72 </t>
73
74 <t>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.
75 </t>
76
77 <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
78    NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
79    "OPTIONAL" in this document are to be interpreted as described in
80    RFC 2119 <xref target="RFC2119"/>.</t>
81
82 </section>
83
84 <section title="Solution to the problem" anchor="solution">
85
86 <t>This document proposes a number of updates to RFC 6106, such that the aforementioned issues can be mitigated.</t>
87
88 <t>The semantics of the 'Lifetime' field of the RDNSS and DNSSL options is updated as follows:
89 <list style="symbols">
90 <t>The 'Lifetime' field indicates the amount of time during which the aforementioned DNS-related information is expected to be stable.</t>
91 <t>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 <xref target="RFC6106"/>.
92 </t>
93 <t>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.
94 </t>
95 <t>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.
96 </t>
97 <t>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. 
98 </t>
99 <t>The most-recently-updated information SHOULD have higher priority over the other DNS-related information already present on the local host.</t>
100 </list>
101 </t>
102
103 <t>The rationale for the suggested change is as follows:
104 <list style="symbols">
105 <t>It is a backwards-compatible local-policy change that solves the problem described in <xref target="intro"/> without requiring changes to router software or router configuration in existing deployments (over which the user is likely to have no control at all).</t>
106 <!--
107 <t>The change in the semantics of the 'Lifetime' field of RDNSS and DNSSL options</t>
108 -->
109 <t>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.
110 <list style="hanging">
111 <t>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.
112 </t>
113 <t>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.
114 </t>
115 </list>
116 </t>
117
118 <t>The original motivation for enforcing a short expiration timeout value was to allow mobile nodes to prefer local RDNSSes to remote RDNSes. 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 <xref target="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 the new subnet to which the host has moved.</t>
119 </list>
120 </t>
121 </section>
122
123
124     <section title="Security Considerations">
125
126         <t>This document does not introduce any additional security considerations to those documented in the "Security Considerations" section of <xref target="RFC6106"/>.</t>
127
128     </section>
129
130     <section title="Acknowledgements">
131 <t>The problem discussed in this document was discovered and reported to the 6man wg mailing-list by Pavel Simerda (and also confirmed by Teemu Savolainen thereafter). The solution proposed in <xref target="solution"/> was envisioned by Fernando Gont.</t> 
132
133 <!--
134 <t>The author would like to thank (in alphabetical order) XXX for providing valuable comments on earlier versions of this document.</t>
135 -->
136     </section>
137
138
139   </middle>
140
141   <back>
142   <references title='Normative References'>
143         <?rfc include="reference.RFC.2119" ?>
144         <?rfc include="reference.RFC.2460" ?>
145         <?rfc include="reference.RFC.4861" ?>
146         <?rfc include="reference.RFC.6106" ?>
147   </references>
148
149   <references title='Informative References'>
150
151 </references>
152
153 <section title="Analysis of other possible solutions" anchor="alt-solutions">
154
155
156 <t>As part of the recent discussion on the 6man mailing-list, it has been suggested that recommended 'Lifetime' value of RDNSS and DNSSL options be increased, as one of the possible solutions to the problem described in <xref target="intro"/>. The reasons for which such approach is not recommended in this document are:
157 <list style="symbols">
158 <t>It would require an update to router software, something that might be harder to perform (if at all possible) than an update to the corresponding host software.</t>
159 <t>This 'solution' does not address the potential network configuration oscillation issue discussed in <xref target="solution"/> and <xref target="additional-notes"/>.</t>
160 </list>
161 </t>
162 </section>
163
164 <section title="Additional notes regarding RFC 6106" anchor="additional-notes">
165 <t>Section 5.2 of <xref target="RFC6106"/> states:
166 <list style="hanging">
167 <t>
168 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.
169 </t>
170 </list>
171 </t>
172
173 <t>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.
174 <list style="hanging">
175 <t>As noted in Section 4.2 of <xref target="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. 
176 </t>
177 </list>
178
179 Therefore, it would be sensible to exclude the 'Router Lifetime information when deciding about the validity or "freshness" of the DNS-related configuration information.
180 </t>
181
182 <t>Section 5.3.1 of <xref target="RFC6106"/> states:
183 <list style="hanging">
184 <t>
185 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. 
186 </t>
187 </list>
188 </t>
189 <t>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 <xref target="solution"/>.
190 </t>
191
192
193 <t>Section 6.3 of <xref target="RFC6106"/> states:
194 <list style="hanging">
195 <t>
196       Step (d): For each DNSSL domain name, if it does not exist in the
197       DNS Search List, register the DNSSL domain name and Lifetime with
198       the DNS Search List and then insert the DNSSL domain name in front
199       of the Resolver Repository.  In the case where the data structure
200       for the DNS Search List is full of DNSSL domain name entries (that
201       is, has more DNSSL domain names than the sufficient number
202       discussed in Section 5.3.1), delete from the DNS Server List the
203       entry with the shortest Expiration-time (i.e., the entry that will
204       expire first). 
205 </t>
206 </list>
207
208 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 <xref target="solution"/>.
209 </t>
210 </section>
211
212   </back>
213 </rfc>