idnits 2.17.1 draft-ietf-6man-enhanced-dad-02.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 RFC4862, but the abstract doesn't seem to directly say this. It does mention RFC4862 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 RFC4862, updated by this document, for RFC5378 checks: 2004-02-10) -- 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 (February 5, 2013) is 4097 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: 'RFC2119' is defined on line 435, but no explicit reference was found in the text == Outdated reference: A later version (-07) exists of draft-ietf-6man-impatient-nud-05 ** Obsolete normative reference: RFC 1247 (Obsoleted by RFC 1583) Summary: 1 error (**), 0 flaws (~~), 4 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group R. Asati 3 Internet-Draft H. Singh 4 Updates: 4862 (if approved) W. Beebee 5 Intended status: Standards Track Cisco Systems, Inc. 6 Expires: August 9, 2013 E. Dart 7 Lawrence Berkeley National 8 Laboratory 9 W. George 10 Time Warner Cable 11 C. Pignataro 12 Cisco Systems, Inc. 13 February 5, 2013 15 Enhanced Duplicate Address Detection 16 draft-ietf-6man-enhanced-dad-02 18 Abstract 20 Appendix A of the IPv6 Duplicate Address Detection (DAD) document in 21 RFC 4862 discusses Loopback Suppression and DAD. However, RFC 4862 22 does not settle on one specific automated means to detect loopback of 23 Neighbor Discovery (ND of RFC 4861) messages used by DAD. Several 24 service provider communities have expressed a need for automated 25 detection of looped backed ND messages used by DAD. This document 26 includes mitigation techniques and then outlines the Enhanced DAD 27 algorithm to automate detection of looped back IPv6 ND messages used 28 by DAD. For network loopback tests, the Enhanced DAD algorithm 29 allows IPv6 to self-heal after a loopback is placed and removed. 30 Further, for certain access networks the document automates resolving 31 a specific duplicate address conflict. 33 Status of this Memo 35 This Internet-Draft is submitted in full conformance with the 36 provisions of BCP 78 and BCP 79. 38 Internet-Drafts are working documents of the Internet Engineering 39 Task Force (IETF). Note that other groups may also distribute 40 working documents as Internet-Drafts. The list of current Internet- 41 Drafts is at http://datatracker.ietf.org/drafts/current/. 43 Internet-Drafts are draft documents valid for a maximum of six months 44 and may be updated, replaced, or obsoleted by other documents at any 45 time. It is inappropriate to use Internet-Drafts as reference 46 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on August 9, 2013. 50 Copyright Notice 52 Copyright (c) 2013 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (http://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the Simplified BSD License. 65 Table of Contents 67 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 68 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 69 3. Operational Mitigation Options . . . . . . . . . . . . . . . . 4 70 3.1. Disable DAD on Interface . . . . . . . . . . . . . . . . . 5 71 3.2. Dynamic Disable/Enable of DAD Using Layer 2 Protocol . . . 5 72 3.3. Operational Considerations . . . . . . . . . . . . . . . . 6 73 4. The Enhanced DAD Algorithm . . . . . . . . . . . . . . . . . . 6 74 4.1. General Rules . . . . . . . . . . . . . . . . . . . . . . 7 75 4.2. Processing Rules for Senders . . . . . . . . . . . . . . . 7 76 4.3. Processing Rules for Receivers . . . . . . . . . . . . . . 8 77 4.4. Impact on SEND . . . . . . . . . . . . . . . . . . . . . . 8 78 4.5. Changes to RFC 4862 . . . . . . . . . . . . . . . . . . . 8 79 5. Actions to Perform on Detecting a Genuine Duplicate . . . . . 9 80 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 81 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 82 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 9 83 9. Normative References . . . . . . . . . . . . . . . . . . . . . 10 84 Appendix A. Changes from the -01 version . . . . . . . . . . . . 10 85 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 87 1. Terminology 89 o DAD-failed state - Duplication Address Detection failure as 90 specified in [RFC4862]. Failure also includes if the Target 91 Address is optimistic. Optimistic DAD is specified in [RFC4429]. 93 o Looped back message - also referred to as a reflected message. 94 The message sent by the sender is received by the sender due to 95 the network or a Upper Layer Protocol on the sender looping the 96 message back. 98 o Loopback - A function in which the router's interface (or the 99 circuit to which the router's interface is connected) is looped 100 back or connected to itself. Loopback causes packets sent by the 101 interface to be received by the interface, and results in 102 interface unavailability for regular data traffic forwarding. See 103 more details in section 9.1 of [RFC1247]. The Loopback function 104 is commonly used in an interface context to gain information on 105 the quality of the interface, by employing mechanisms such as 106 ICMPv6 pings, bit-error tests, etc. In a circuit context, it is 107 used in wide area environments including optical dense wave 108 division multiplexing (DWDM) and SONET/SDH for fault isolation 109 (e.g. by placing a loopback at different geographic locations 110 along the path of a wide area circuit to help locate a circuit 111 fault). The Loopback function may be employed locally or 112 remotely. 114 o NS(DAD) - shorthand notation to denote an NS with unspecified IPv6 115 source-address issued during DAD. 117 2. Introduction 119 Appendix A of [RFC4862] discusses Loopback Suppression and Duplicate 120 Address Detection (DAD). However, [RFC4862] does not settle on one 121 specific automated means to detect loopback of ND messages used by 122 DAD. One specific DAD message is a Neighbor Solicitation (NS), 123 specified in [RFC4861]. The NS is issued by the network interface of 124 an IPv6 node for DAD. Another message involved in DAD is a Neighbor 125 Advertisement (NA). The Enhanced DAD algorithm proposed in this 126 document focuses on detecting an NS looped back to the transmitting 127 interface during the DAD operation. Detecting a looped back NA is of 128 no use because no problems with DAD will occur if a node receives a 129 looped back NA. Detection of any other looped back ND messages 130 outside of the DAD operation is not critical and thus this document 131 does not cover such detection. The document also includes a 132 Mitigation section that discusses means already available to mitigate 133 the loopback problem. 135 Recently, service providers have reported a problem with DAD that is 136 caused by looped back NS messages. The following is a description of 137 the circumstances under which the problem arises. Loopback testing 138 for troubleshooting purposes is underway on a circuit connected to an 139 interface on a router. The interface on the router is enabled for 140 IPv6. The interface issues a NS for the IPv6 link-local address DAD. 141 The NS is reflected back to the router interface due to the loopback 142 condition of the circuit, and the router interface enters a DAD- 143 failed state. After the circuit troubleshooting has concluded and 144 the loopback condition is removed, IPv4 will return to operation 145 without further manual intervention. However, IPv6 will remain in 146 DAD-failed state until manual intervention on the router restores 147 IPv6 to operation. 149 There are other conditions which will also trigger similar problems 150 with DAD Loopback. While the following example is not a common 151 configuration, it has occurred in a large service provider network. 152 It is necessary to address it in the proposed solution because the 153 trigger scenario has the potential to cause significant IPv6 service 154 outages when it does occur. Two broadband modems in the same 155 location are served by the same service provider and both modems are 156 served by one access concentrator and one layer 3 interface on the 157 access concentrator. The two modems have the Ethernet ports of each 158 modem connected to a network hub. The access concentrator serving 159 the modems is the first-hop IPv6 router for the modems. The access 160 concentrator also supports proxying of DAD messages. Each modem is 161 enabled for at least data services. The network interface of the 162 access concentrator serving the two broadband modems is enabled for 163 IPv6 and the interface issues a NS(DAD) message for the IPv6 link- 164 local address. The NS message reaches one modem first and this modem 165 sends the message to the network hub which sends the message to the 166 second modem which forwards the message back to the access 167 concentrator. The looped back NS message causes the network 168 interface on the access concentrator to be in a DAD-failed state. 169 Such a network interface typically serves up to 100 thousand 170 broadband modems causing all the modems (and hosts behind the modems) 171 to fail to get IPv6 online on the access network. Additionally, it 172 may be tedious for the access concentrator to find out which of the 173 six thousand or more homes looped back the DAD message. Clearly 174 there is a need for automated detection of looped back NS messages 175 during DAD operations by a node. 177 3. Operational Mitigation Options 179 Two mitigation options are described below. The mechanisms do not 180 require any change to existing implementations. 182 3.1. Disable DAD on Interface 184 One can disable DAD on an interface and then there is no NS(DAD) 185 issued to be looped back. DAD is disabled by setting the interface's 186 DupAddrDetectTransmits variable to zero. While this mitigation may 187 be the simplest the mitigation has three drawbacks. 189 It would likely require careful analysis of configuration on such 190 point-to-point interfaces, a one-time manual configuration on each of 191 such interfaces, and more importantly, genuine duplicates in the link 192 will not be detected. 194 A Service Provider router such as an access concentrator or network 195 core router SHOULD support this mitigation strategy. 197 3.2. Dynamic Disable/Enable of DAD Using Layer 2 Protocol 199 It is possible that one or more layer 2 protocols include provisions 200 to detect the existence of a loopback on an interface circuit, 201 usually by comparing protocol data sent and received. For example, 202 PPP uses magic number (section 6.4 of [RFC1661]) to detect a loopback 203 on an interface. 205 When a layer 2 protocol detects that a loopback is present on an 206 interface circuit, the device MUST temporarily disable DAD on the 207 interface, and when the protocol detects that a loopback is no longer 208 present (or the interface state has changed), the device MUST 209 (re-)enable DAD on that interface. 211 This solution requires no protocol changes. This solution SHOULD be 212 enabled by default, and MUST be a configurable option. 214 This mitigation has several benefits. They are 216 1. It leverages layer 2 protocol's built-in loopback detection 217 capability, if available. 219 2. It scales better since it relies on an event-driven model which 220 requires no additional state or timer. This may be a significant 221 scaling consideration on devices with hundreds or thousands of 222 interfaces that may be in loopback for long periods of time (such 223 as while awaiting turn-up or during long-duration intrusive bit 224 error rate tests). 226 3.3. Operational Considerations 228 The mitigation options discussed in the document do not require the 229 devices on both ends of the circuit to support the mitigation 230 functionality simultaneously, and do not propose any capability 231 negotiation. The mitigation options discussed in this document are 232 effective for unidirectional circuit or interface loopback (i.e. the 233 the loopback is placed in one direction on the circuit, rendering the 234 other direction non-operational). 236 The mitigation options may not be effective for the bidirectional 237 loopback (i.e. the loopback is placed in both directions of the 238 circuit interface, so as to identify the faulty segment) if only one 239 device followed a mitigation option specified in this document, since 240 the other device would follow current behavior and disable IPv6 on 241 that interface due to DAD until manual intervention restores it. 243 This is nothing different from what happens today (without the 244 solutions proposed by this document) in case of unidirectional 245 loopback. Hence, it is expected that an operator would resort to 246 manual intervention for the devices not compliant with this document, 247 as usual. 249 4. The Enhanced DAD Algorithm 251 The Enhanced DAD algorithm covers detection of a looped back NS(DAD) 252 message. The document proposes use of the Nonce Option specified in 253 the SEND document of [RFC3971]. The nonce is a random number as 254 specified in [RFC3971]. If SEND is enabled on the router and the 255 router also supports the Enhanced DAD algorithm (specified in this 256 document), there is integration with the Enhanced DAD algorithm and 257 SEND. See more details in the Impact on SEND section. Since a nonce 258 is used only once, DAD for each IPv6 address of an interface uses a 259 different nonce. 261 When the IPv6 network interface issues a NS(DAD) message, the 262 interface includes the Nonce Option in the NS(DAD) message and saves 263 the nonce in local store. Subsequently if the interface receives an 264 identical NS(DAD) message, the interface logs a system management 265 message, updates any statistics counter, and drops the looped back 266 NS(DAD). Additionally the interface continues to issue subsequent 267 probes until a termination condition (to be defined) is detected. 268 The DupAddrDetectTransmits value is ignored by the algorithm on 269 detection of a looped back NS(DAD). Note [RFC4861] already 270 randomizes issuing the first probe and issues up to three probes; 271 note [I-D.ietf-6man-impatient-nud] has intentions to change probe 272 behavior of [RFC4861]. Additionally, certain networks take a few 273 minutes to loop back a packet to a sender. Hence a variable is 274 needed to help the interface decide how long to wait for the DAD 275 process to complete. For example, [RFC4862] waits for two seconds to 276 see if any message is received to signal a DAD failure, and if not, 277 DAD is completed. This document defines a new variable in 278 WAIT_TIME_LOOPBACK. For example, WAIT_TIME_LOOPBACK is two seconds 279 for [RFC4862] behavior and five minutes for another network. The 280 interface also uses an exponentially backoff algorithm (pick one of 281 several available) to issue probes. 283 If the interface receives a NS(DAD) message with a different nonce 284 but TargetAddress matches a tentative or optimistic address on the 285 interface, the interface logs a DAD-failed system management message, 286 updates any statistics, and behaves identical to the behavior 287 specified in [RFC4862] for DAD failure. 289 Six bytes of random nonce is sufficiently large for nonce collisions. 290 However if there is a collision because two nodes generated the same 291 random nonce (that are using the same Target address in their 292 NS(DAD)), then the algorithm will incorrectly detect a looped back 293 NS(DAD) when the NS(DAD) was issued to signal a genuine duplicate. 294 Since each looped back NS(DAD) event is logged to system management, 295 the administrator of the network will have to intervene manually. 297 The algorithm is capable of detecting any ND solicitation (NS and 298 Router Solicitation) or advertisement (NA and Router Advertisement) 299 that is looped back. However, saving a nonce and nonce related data 300 for all ND messages has impact on memory of the node and also adds 301 the algorithm state to a substantially larger number of ND messages. 302 Therefore this document does not recommend using the algorithm 303 outside of the DAD operation by an interface on a node. 305 4.1. General Rules 307 If an IPv6 node implements the Enhanced DAD algorithm, the node MUST 308 implement detection of looped back NS(DAD) messages during DAD for an 309 interface address. 311 4.2. Processing Rules for Senders 313 If a node has been configured to use the Enhanced DAD algorithm, when 314 sending a NS(DAD) for a tentative or optimistic interface address the 315 sender MUST generate a random nonce associated with the interface 316 address, MUST save the nonce, and MUST include the nonce in the Nonce 317 Option included in the NS(DAD). If a looped back NS(DAD) is detected 318 by the interface, the interface ignores the DupAddrDetectTransmits 319 and issues subsequent probes forever in an exponential backoff 320 transmission until a termination condition is detected. 322 4.3. Processing Rules for Receivers 324 If the node has been configured to use the Enhanced DAD algorithm and 325 an interface on the node receives any NS(DAD) message where the 326 target address matches the interface address (in tentative or 327 optimistic state), the receiver compares the nonce, if any, is 328 included in the message with any saved nonce on the receiving 329 interface. If a match is found, the node SHOULD log a system 330 management message, SHOULD update any statistics counter, and MUST 331 drop the received message. If the received NS(DAD) message includes 332 a nonce and no match is found with any saved nonce, the node SHOULD 333 log a system management message for DAD-failed and SHOULD update any 334 statistics counter. TODO: Define termination condition. 336 4.4. Impact on SEND 338 The SEND document uses the Nonce Option in the context of matching an 339 NA with an NS. However, no text in SEND has an explicit mention of 340 detecting looped back ND messages. If this document updates 341 [RFC4862], SEND should be updated to integrate with the Enhanced DAD 342 algorithm. A minor update to SEND would be to explicitly mention 343 that the nonce in SEND is also used by SEND to detect looped back NS 344 messages during DAD operations by the node. In a mixed SEND 345 environment with SEND and unsecured nodes, the lengths of the nonce 346 used by SEND and unsecured nodes MUST be identical. 348 4.5. Changes to RFC 4862 350 The following text is added to [RFC4862]. 352 A network interface of an IPv6 node SHOULD implement the Enhanced DAD 353 algorithm. For example, if the interface on an IPv6 node is 354 connected to a circuit that supports loopback testing, then the node 355 should implement the Enhanced DAD algorithm that allows the IPv6 356 interface to self-heal after loopback testing is ended on the 357 circuit. Another example is when the IPv6 interface resides on an 358 access concentrator running DAD Proxy. The interface supports up to 359 100 thousand IPv6 clients (broadband modems) connected to the 360 interface. If the interface performs DAD for its IPv6 link-local 361 address and if the DAD probe is reflected back to the interface, the 362 interface is stuck in DAD failed state and IPv6 services to the 100 363 thousand clients is denied. Disabling DAD for such an IPv6 interface 364 on an access concentrator is not an option because the network also 365 needs to detect genuine duplicates in the interface downstream 366 network. The Enhanced DAD algorithm also facilitates detecting a 367 genuine duplicate for the interface on the access concentrator. See 368 the Actions to Perform on Detecting a Genuine Duplicate section of 369 the Enhanced DAD document. 371 5. Actions to Perform on Detecting a Genuine Duplicate 373 As described in paragraphs above the nonce can also serve to detect 374 genuine duplicates even when the network has potential for looping 375 back ND messages. When a genuine duplicate is detected, the node 376 follows the manual intervention specified in section 5.4.5 of 377 [RFC4862]. However, in certain networks such as an access network if 378 the genuine duplicate matches the tentative or optimistic IPv6 379 address of a network interface of the access concentrator, automated 380 actions are proposed. 382 One access network is a cable broadband deployment where the access 383 concentrator is the first-hop IPv6 router to several thousand 384 broadband modems. The router also supports proxying of DAD messages. 385 The network interface on the access concentrator initiates DAD for an 386 IPv6 address and detects a genuine duplicate due to receiving an 387 NS(DAD) or an NA message. On detecting such a duplicate the access 388 concentrator logs a system management message, drops the received ND 389 message, and blocks the modem on whose layer 2 service identifier the 390 NS(DAD) or NA message was received on. 392 The network described above follows a trust model where a trusted 393 router serves un-trusted IPv6 host nodes. Operators of such networks 394 have a desire to take automated action if a network interface of the 395 trusted router has a tentative or optimistic address duplicate with a 396 host served by trusted router interface. Any other network that 397 follows the same trust model MAY use the automated actions proposed 398 in this section. 400 6. Security Considerations 402 The nonce can be exploited by a rogue deliberately changing the nonce 403 to fail the looped back detection specified by the Enhanced DAD 404 algorithm. SEND is recommended for this exploit. For any mitigation 405 suggested in the document such as disabling DAD has an obvious 406 security issue before a remote node on the link can issue reflected 407 NS(DAD) messages. Again, SEND is recommended for this exploit. 409 7. IANA Considerations 411 None. 413 8. Acknowledgements 415 Thanks (in alphabetical order by first name) to Dmitry Anipko, Eric 416 Levy-Abegnoli, Erik Nordmark, Fred Templin, Michael Sinatra, Ray 417 Hunter, Suresh Krishnan, and Tassos Chatzithomaoglou for their 418 guidance and review of the document. Thanks to Thomas Narten for 419 encouraging this work. Thanks to Steinar Haug and Scott Beuker for 420 describing the use cases. 422 9. Normative References 424 [I-D.ietf-6man-impatient-nud] 425 Nordmark, E. and I. Gashinsky, "Neighbor Unreachability 426 Detection is too impatient", 427 draft-ietf-6man-impatient-nud-05 (work in progress), 428 October 2012. 430 [RFC1247] Moy, J., "OSPF Version 2", RFC 1247, July 1991. 432 [RFC1661] Simpson, W., "The Point-to-Point Protocol (PPP)", STD 51, 433 RFC 1661, July 1994. 435 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 436 Requirement Levels", BCP 14, RFC 2119, March 1997. 438 [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure 439 Neighbor Discovery (SEND)", RFC 3971, March 2005. 441 [RFC4429] Moore, N., "Optimistic Duplicate Address Detection (DAD) 442 for IPv6", RFC 4429, April 2006. 444 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 445 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 446 September 2007. 448 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 449 Address Autoconfiguration", RFC 4862, September 2007. 451 Appendix A. Changes from the -01 version 453 1. Changed the algorithm in section 4 and other sections to not 454 suppress subsequent probes and instead probe forever subject to a 455 termination condition. 457 2. Minor edits were made for more clarified text. 459 Authors' Addresses 461 Rajiv Asati 462 Cisco Systems, Inc. 463 7025 Kit Creek road 464 Research Triangle Park, NC 27709-4987 465 USA 467 Email: rajiva@cisco.com 468 URI: http://www.cisco.com/ 470 Hemant Singh 471 Cisco Systems, Inc. 472 1414 Massachusetts Ave. 473 Boxborough, MA 01719 474 USA 476 Phone: +1 978 936 1622 477 Email: shemant@cisco.com 478 URI: http://www.cisco.com/ 480 Wes Beebee 481 Cisco Systems, Inc. 482 1414 Massachusetts Ave. 483 Boxborough, MA 01719 484 USA 486 Phone: +1 978 936 2030 487 Email: wbeebee@cisco.com 488 URI: http://www.cisco.com/ 490 Eli Dart 491 Lawrence Berkeley National Laboratory 492 1 Cyclotron Road, Berkeley, CA 94720 493 USA 495 Email: dart@es.net 496 URI: http://www.es.net/ 497 Wes George 498 Time Warner Cable 499 13820 Sunrise Valley Drive 500 Herndon, VA 20171 501 USA 503 Email: wesley.george@twcable.com 505 Carlos Pignataro 506 Cisco Systems, Inc. 507 7200-12 Kit Creek Road 508 Research Triangle Park, NC 27709 509 USA 511 Email: cpignata@cisco.com 512 URI: http://www.cisco.com/