idnits 2.17.1 draft-nordmark-6man-rs-refresh-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC4861, but the abstract doesn't seem to directly say this. It does mention RFC4861 though, so this could be OK. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). (Using the creation date from RFC4861, updated by this document, for RFC5378 checks: 2004-07-16) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 24, 2014) is 3466 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC2460' is defined on line 426, but no explicit reference was found in the text == Unused Reference: 'RFC5175' is defined on line 455, but no explicit reference was found in the text == Outdated reference: A later version (-06) exists of draft-ietf-6man-resilient-rs-04 ** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200) Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6man WG E. Nordmark 3 Internet-Draft Arista Networks 4 Updates: 4861 (if approved) October 24, 2014 5 Intended status: Standards Track 6 Expires: April 27, 2015 8 IPv6 Neighbor Discovery Optional Unicast RS/RA Refresh 9 draft-nordmark-6man-rs-refresh-00 11 Abstract 13 IPv6 Neighbor Discovery relies on periodic multicast Router 14 Advertisement messages to update timer values and to distribute new 15 information (such as new prefixes) to hosts. On some links the use 16 of periodic multicast messages to all host becomes expensive, and in 17 some cases it results in hosts waking up frequently. Many 18 implementations of RFC 4861 also use multicast for solicited Router 19 Advertisement messages, even though that behavior is optional. 21 This specification provides an optional mechanism for hosts and 22 routers where instead of periodic multicast Router Advertisements the 23 hosts are instructed (by the routers) to use unicast Router 24 Solicitations to request refreshed Router Advertisements. This 25 mechanism is enabled by configuring the router to include a new 26 option in the Router Advertisement in order to allow the network 27 administrator to choose host behavior based on whether periodic 28 multicast are more efficient on their link or not. The routers can 29 also tell whether the hosts are capable of the new behavior through a 30 new flag in the Router Solicitations. 32 Status of this Memo 34 This Internet-Draft is submitted in full conformance with the 35 provisions of BCP 78 and BCP 79. 37 Internet-Drafts are working documents of the Internet Engineering 38 Task Force (IETF). Note that other groups may also distribute 39 working documents as Internet-Drafts. The list of current Internet- 40 Drafts is at http://datatracker.ietf.org/drafts/current/. 42 Internet-Drafts are draft documents valid for a maximum of six months 43 and may be updated, replaced, or obsoleted by other documents at any 44 time. It is inappropriate to use Internet-Drafts as reference 45 material or to cite them other than as "work in progress." 47 This Internet-Draft will expire on April 27, 2015. 49 Copyright Notice 51 Copyright (c) 2014 IETF Trust and the persons identified as the 52 document authors. All rights reserved. 54 This document is subject to BCP 78 and the IETF Trust's Legal 55 Provisions Relating to IETF Documents 56 (http://trustee.ietf.org/license-info) in effect on the date of 57 publication of this document. Please review these documents 58 carefully, as they describe your rights and restrictions with respect 59 to this document. Code Components extracted from this document must 60 include Simplified BSD License text as described in Section 4.e of 61 the Trust Legal Provisions and are provided without warranty as 62 described in the Simplified BSD License. 64 Table of Contents 66 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 67 2. Goals and Requirements . . . . . . . . . . . . . . . . . . . . 4 68 3. Definition Of Terms . . . . . . . . . . . . . . . . . . . . . 4 69 4. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 4 70 5. New Neighbor Discovery Flags and Options . . . . . . . . . . . 5 71 5.1. Introducing a Router Solicitation Flag . . . . . . . . . . 5 72 5.2. Refresh Time option . . . . . . . . . . . . . . . . . . . 5 73 6. Conceptual Data Structures . . . . . . . . . . . . . . . . . . 6 74 7. Host Behavior . . . . . . . . . . . . . . . . . . . . . . . . 6 75 7.1. Sleep and Wakeup . . . . . . . . . . . . . . . . . . . . . 7 76 7.2. Movement . . . . . . . . . . . . . . . . . . . . . . . . . 7 77 8. Router Behavior . . . . . . . . . . . . . . . . . . . . . . . 7 78 8.1. Router and/or Interface Initialization . . . . . . . . . . 8 79 8.2. Periodic Multicast RA for unmodified hosts . . . . . . . . 8 80 8.3. Unsolicited RAs to share new information . . . . . . . . . 8 81 9. Router Advertisement Consistency . . . . . . . . . . . . . . . 9 82 10. Security Considerations . . . . . . . . . . . . . . . . . . . 9 83 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 84 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 85 13. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 9 86 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 87 14.1. Normative References . . . . . . . . . . . . . . . . . . . 10 88 14.2. Informative References . . . . . . . . . . . . . . . . . . 10 89 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11 91 1. Introduction 93 IPv6 Neighbor Discovery [RFC4861] was defined at a time when local 94 area networks had different properties than today. A common link was 95 the yellow-coax shared wire Ethernet, where a link-layer multicast 96 and unicast worked the same - send the packet on the wire and the 97 interested receivers will pick it up. Thus the network cost 98 (ignoring any processing cost on the receivers that might not 99 completely filter out Ethernet multicast addresses that they did not 100 want) and the reliability of sending a link-layer unicast and 101 multicast was the same. Furthermore, the hosts at the time was 102 always on and connected. Powering on and off the workstation/PC 103 hosts at the time was slow and disruptive process. 105 Under the above assumptions it was quite efficient to maintain the 106 shared state of the link such as the prefixes and their lifetimes 107 using periodic multicast Router Advertisement messages. It was also 108 efficient to use multicast Neighbor Solicitations for address 109 resolution as a slight improvement over the broadcast use in ARP. 110 And finally, checking for a potential duplicate IPv6 address using 111 broadcast was efficient and natural. 113 There are still links, such a satellite links, where periodic 114 multicast advertisements is the most efficient and reliable approach 115 to keep the hosts up to date. However other links have different 116 performance and reliability for multicast than for unicast (see for 117 instance [I-D.vyncke-6man-mcast-not-efficient] which discusses WiFi 118 links). Cellular networks which employ paging and support sleeping 119 hosts have different issues (see e.g., 120 [I-D.garneij-6man-nd-m2m-issues] that would benefit from having the 121 hosts wake up and request information from the routers instead of the 122 routers periodically multicasting the information. 124 Since different links types and deployments have different needs, 125 this specification provides mechanism by which the routers can 126 determine whether all the hosts support the RS refresh, and the hosts 127 only employ the RS refresh when instructed by the routers using an 128 option in the Router Advertisement. 130 The operator retains the option to use unsolicited multicast Router 131 Advertisement to announce new or removed information. That can be 132 useful for uncommon cases while allowing using a higher refresh time 133 for normal network operations. 135 The specification does not assume that all hosts on the link 136 implement the new capability. As soon as there are router(s) on a 137 link which supports these optimizations, then the updated hosts on 138 the link can sleep better, while co-existing on the same link with 139 unmodified hosts. 141 2. Goals and Requirements 143 The key goal is to allow the operator to choose whether unicast RS 144 refresh is more efficient than periodic multicast RAs, while 145 preserving the timely and scalable reconfiguration capabilities that 146 a periodic RA model provides. 148 In addition, an operator might want to be notified whether the link 149 includes hosts that do not support the new mechanism. Potential 150 router implementations can react dynamically to that information, or 151 can log events to system management when hosts appear which do not 152 implement this new capability. 154 The assumption is that host which implement this specification also 155 implement [I-D.ietf-6man-resilient-rs] as that ensures resiliency to 156 packet loss that host initialization. 158 3. Definition Of Terms 160 The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 161 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 162 document are to be interpreted as described in [RFC2119]. 164 4. Protocol Overview 166 The hosts include a new flag in the Router Solicitation message, 167 which allows the routers to report to system management whether there 168 are hosts that do not support the RS refresh on the link. 170 If the network administrator has configured the routers to send the 171 new Refresh Timer option, then the option will be included in all the 172 Router Advertisements. This option includes the time interval when 173 the hosts should unicast Router Solicitations. 175 The host maintains the value of the Refresh Timer option (RTO) by 176 recording it in the default router list. A value of zero can be used 177 to indicate that a router did not include a Refresh Timer option. 179 The host calculates a timeout after it has sent a RTO - either per 180 router or per link. If it is maintained per link then the host 181 SHOULD use the minimum Refresh Timer it has received from the routers 182 on the link. The timeout is a random value uniformly distributed 183 between 0.5 and 1.5 times the Refresh Timer value (in order to avoid 184 synchronization of the timers across hosts. [TBD: Add SYNC reference 185 from RFC 4861.] When this timer fires the host sends one unicast 186 Router Solicitation to the router (if maintained per router) or to 187 all the routers on the link (if maintained per link.) 189 5. New Neighbor Discovery Flags and Options 191 This specification introduces a option used in the RAs which both 192 indicates that the router can handle RS refresh using unicast RA, and 193 a flag for the RS that indicates to the router that the host will do 194 RS refresh if the router so wishes. 196 5.1. Introducing a Router Solicitation Flag 198 A node which implements this specification sets the R flag in all the 199 Router Solicitation messages it sends. That allows the router to 200 determine whether there are legacy hosts on the link. 202 0 1 2 3 203 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 204 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 205 | Type | Code | Checksum | 206 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 207 |R| Reserved | 208 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 210 New fields: 212 R-flag: When set indicates that the sending node is capable of 213 doing unicast RS refresh. 215 Reserved: Field is reduced from 32 bits to 31 bits. It MUST be 216 initialized to zero by the sender and MUST be ignored 217 by the receiver. 219 5.2. Refresh Time option 221 A router which implements this specification can be configured to 222 operate without periodic multicast Router Advertisements. When the 223 operator configures this mode of operation, then the router MUST 224 include this new option in the RA. 226 0 1 2 3 227 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 228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 229 | Type | Length=1 | Refresh Time | 230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 231 | Reserved | 232 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 234 Fields: 236 Type: TBD ND option code value (IANA) 238 Length: 8-bit unsigned integer. The length of the option 239 (including the type and length fields) in units of 8 240 bytes. The value 0 is invalid. Value is 1 for this 241 option. 243 Refresh Time: 16-bit unsigned integer. Units is seconds. The all- 244 ones value (65535) means infinite. 246 Reserved: 32 bits. This field is unused. It MUST be 247 initialized to zero by the sender and MUST be ignored 248 by the receiver. 250 6. Conceptual Data Structures 252 In addition to the Conceptual Data structures in [RFC4861] a host 253 records the received RTO value in the default router list. It also 254 maintains a timeout - either per link or per default router. 256 7. Host Behavior 258 See Protocol Overview section above. 260 A host implementing this specification SHOULD also implement 261 [I-D.ietf-6man-resilient-rs]. That ensures that a router that has 262 been configured to not send periodic RA messages will always receive 263 an RS from the host as the host initializes. 265 If there is no RTO in the received Router Advertisements, then the 266 host behavior does not change. However, if RTOs start appearing in 267 RAs after the initial RAs, the host SHOULD start performing RS 268 refresh. As the last router that included RTO options time out from 269 the default router list, the host SHOULD stop sending RS refresh 270 messages. 272 The host MUST join the all-nodes multicast address as in [RFC4861] 273 since the routers MAY send multicast RAs for important changes. 275 Some links might have routers with different configuration where some 276 router includes RTO in the RA and others do not. Hosts MAY make the 277 simplifying assumption that if any router on the link includes RTO 278 then the host can use RS refresh to all the routers on the link. 279 Also, the routers might advertise different refresh time, and hosts 280 MAY use the minimum of the time received from any router that remains 281 in the default router list. Note that setion (xref 282 target='consistency'/> says that routers SHOULD report such 283 inconsistences to system management. 285 7.1. Sleep and Wakeup 287 The protocol allows the sleepy nodes to complete its sleep schedule 288 without waking up due to multicast Router Advertisement messages and 289 the host is not required to wake up solely for the purposes of 290 performing RS refresh. This assumes that sleepy nodes perform a RS 291 refresh when they wake up. If hosts do wake up due to multicast RAs, 292 then the host only needs to perform a refresh on wakeup if the 293 Refresh timeout has expired while the host was sleeping. 295 7.2. Movement 297 When a host wakes up it can combine movement detecting (DNA), NUD, 298 and refreshing its prefixes etc by sending a unicast RS to each of 299 its existing default router(s). If it receives unicast RA from a 300 router, then it can mark the router as REACHABLE. 302 Note that DNA [RFC6059] specifies using NS messages since many IPv6 303 routers delay (and multicast) solicited RAs and DNA wants to avoid 304 that delay. Routers which implement this specification SHOULD 305 unicast solicited RAs, hence if a router included the RTO then the 306 host can use RS for DNA. For non-RTO routers the host MAY choose to 307 use NS for DNA as in [RFC6059]. 309 8. Router Behavior 311 See Protocol Overview section. 313 A router implementing this specification (and including RTO in the 314 RAs) SHOULD also respond to unicast RS messages (that do not have an 315 unspecified source address) with unicast RAs. If a RS message has an 316 unspecified source address then the host MAY respond with a RA 317 unicast at layer 2 (sent to the link-layer address in the SLLAO in 318 the RS, or the link-layer source address of the RS), or it MAY follow 319 the rate-limited multicast RA procedure in [RFC4861]. 321 The RECOMMENDED default configuration for routers is to have RTO 322 disabled. 324 8.1. Router and/or Interface Initialization 326 This specification does not change the initialization procedure. 327 Thus a router multicasts some initial Router Advertisements 328 (MAX_INITIAL_RTR_ADVERTISEMENTS) at system startup or interface 329 initialization as specified in [RFC4861] and its updates. 331 8.2. Periodic Multicast RA for unmodified hosts 333 By default a router MUST send periodic multicast RAs as specified in 334 [RFC4861]. A router can be configured to omit those, which can be 335 used in particular deployments. If they are omitted, then there MUST 336 be a mechanism to prevent or detect the existence of unmodified hosts 337 on the link. That be be performed at deployment time (e.g., only 338 hosts which are known to support RTO are configured with the layer 2 339 security keys), or the routers detect any RSs which do not include 340 the R-flag and report this to system management, or dynamically 341 enable periodic multicast RAs when observing at least one RS without 342 the R-flag. 344 Note that such dynamic detection is not bullet proof. If a host does 345 not implement RS refresh nor implements resilient RS 346 [I-D.ietf-6man-resilient-rs], then the host might receive a multicast 347 RA (from router initialization or the periodic multicast RAs) without 348 the router ever receiving a RS from the host. Such a host would 349 function as long as the routers are sending periodic multicast RAs. 351 8.3. Unsolicited RAs to share new information 353 When a router has new information to share (new prefixes, prefixes 354 that should be immediately deprecated, etc) it MAY multicast up to 355 MAX_INITIAL_RTR_ADVERTISEMENTS number of Router Advertisements. 357 On links where multicast is expensive the router MAY instead unicast 358 up to MAX_INITIAL_RTR_ADVERTISEMENTS number of Router Advertisements 359 to the hosts in its neighbor cache. 361 . Note that such new information is not likely to reach sleeping 362 hosts until those hosts refresh by sending a RS. 364 9. Router Advertisement Consistency 366 The routers follows section 6.2.7 in [RFC4861] by receiving RAs from 367 other routers on the link. In addition to the checks in that 368 section, the routers SHOULD verify that the RTO have the same Refresh 369 Time, and report to system management if they differ. While the host 370 will pick the lowest time and operate correctly, it is not useful to 371 use different Refresh Times for different routers. 373 10. Security Considerations 375 These optimizations are not known to introduce any new threats 376 against Neighbor Discovery beyond what is already documented for IPv6 377 [RFC3756]. 379 Section 11.2 of [RFC4861] applies to this document as well. 381 The mechanisms in this document work with SeND [RFC3971]. 383 11. IANA Considerations 385 A new flag (R-flag) in the Router Solicitation message has been 386 introduced by carving out a bit from the Reserved field. There is 387 currently no IANA registry for RS flags. Perhaps one should be 388 created? 390 This document needs a new Neighbor Discovery option type for the RTO. 392 12. Acknowledgements 394 The original idea came up in a discussion with Suresh Krishnan. 395 Comments from Erik Kline, Samita Chakrabarti, and Andrew Yourtchenko 396 have helped improve the document. 398 This document has discussed in the efficient-nd design team. 400 13. Open Issues 402 Should we update the DNA procedures [RFC6059]? We can use a 403 unicast RS with this approach since that will result in an 404 immediate unicast RA which would include any updated prefixes. 406 Would it be worth-while to try to remove unchanged information 407 from the refreshed RAs? If so it could be done by including some 408 epoch number in the RS and RA, and if the RS contains the current 409 epoch then the RA would not need to include any options except the 410 epoch number indicating that none of the options are the same as 411 before. 413 14. References 415 14.1. Normative References 417 [I-D.ietf-6man-resilient-rs] 418 Krishnan, S., Anipko, D., and D. Thaler, "Packet loss 419 resiliency for Router Solicitations", 420 draft-ietf-6man-resilient-rs-04 (work in progress), 421 October 2014. 423 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 424 Requirement Levels", BCP 14, RFC 2119, March 1997. 426 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 427 (IPv6) Specification", RFC 2460, December 1998. 429 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 430 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 431 September 2007. 433 14.2. Informative References 435 [I-D.garneij-6man-nd-m2m-issues] 436 Garneij, F., Chakrabarti, S., and S. Krishnan, "Impact of 437 IPv6 Neighbor Discovery on Cellular M2M Networks", 438 draft-garneij-6man-nd-m2m-issues-00 (work in progress), 439 July 2014. 441 [I-D.vyncke-6man-mcast-not-efficient] 442 Vyncke, E., Thubert, P., Levy-Abegnoli, E., and A. 443 Yourtchenko, "Why Network-Layer Multicast is Not Always 444 Efficient At Datalink Layer", 445 draft-vyncke-6man-mcast-not-efficient-01 (work in 446 progress), February 2014. 448 [RFC3756] Nikander, P., Kempf, J., and E. Nordmark, "IPv6 Neighbor 449 Discovery (ND) Trust Models and Threats", RFC 3756, 450 May 2004. 452 [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure 453 Neighbor Discovery (SEND)", RFC 3971, March 2005. 455 [RFC5175] Haberman, B. and R. Hinden, "IPv6 Router Advertisement 456 Flags Option", RFC 5175, March 2008. 458 [RFC6059] Krishnan, S. and G. Daley, "Simple Procedures for 459 Detecting Network Attachment in IPv6", RFC 6059, 460 November 2010. 462 Author's Address 464 Erik Nordmark 465 Arista Networks 466 Santa Clara, CA 467 USA 469 Email: nordmark@acm.org