idnits 2.17.1 draft-ietf-6lo-rfc6775-update-12.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: ---------------------------------------------------------------------------- == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 60 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 3 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (February 20, 2018) is 2256 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) == Missing Reference: 'Perlman83' is mentioned on line 1501, but not defined == Missing Reference: 'IEEEstd802154' is mentioned on line 1735, but not defined == Outdated reference: A later version (-23) exists of draft-ietf-6lo-ap-nd-05 == Outdated reference: A later version (-20) exists of draft-ietf-6lo-backbone-router-05 == Outdated reference: A later version (-22) exists of draft-ietf-6lo-nfc-09 == Outdated reference: A later version (-30) exists of draft-ietf-6tisch-architecture-13 == Outdated reference: A later version (-15) exists of draft-ietf-mboned-ieee802-mcast-problems-01 -- Obsolete informational reference (is this intentional?): RFC 4941 (Obsoleted by RFC 8981) Summary: 1 error (**), 0 flaws (~~), 9 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6lo P. Thubert, Ed. 3 Internet-Draft cisco 4 Updates: 6775 (if approved) E. Nordmark 5 Intended status: Standards Track Zededa 6 Expires: August 24, 2018 S. Chakrabarti 7 Verizon 8 C. Perkins 9 Futurewei 10 February 20, 2018 12 An Update to 6LoWPAN ND 13 draft-ietf-6lo-rfc6775-update-12 15 Abstract 17 This specification updates RFC 6775 - 6LoWPAN Neighbor Discovery, to 18 clarify the role of the protocol as a registration technique, 19 simplify the registration operation in 6LoWPAN routers, as well as to 20 provide enhancements to the registration capabilities and mobility 21 detection for different network topologies including the backbone 22 routers performing proxy Neighbor Discovery in a low power network. 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at https://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on August 24, 2018. 41 Copyright Notice 43 Copyright (c) 2018 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (https://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Internet-Draft An Update to 6LoWPAN ND February 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2. Applicability of Address Registration Options . . . . . . . . 3 62 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 4. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 6 64 4.1. Extended Address Registration Option (EARO) . . . . . . . 7 65 4.2. Transaction ID . . . . . . . . . . . . . . . . . . . . . 7 66 4.2.1. Comparing TID values . . . . . . . . . . . . . . . . 8 67 4.3. Registration Unique ID . . . . . . . . . . . . . . . . . 9 68 4.4. Extended Duplicate Address Messages . . . . . . . . . . . 10 69 4.5. Registering the Target Address . . . . . . . . . . . . . 10 70 4.6. Link-Local Addresses and Registration . . . . . . . . . . 11 71 4.7. Maintaining the Registration States . . . . . . . . . . . 12 72 5. Detecting Enhanced ARO Capability Support . . . . . . . . . . 14 73 6. Extended ND Options And Messages . . . . . . . . . . . . . . 14 74 6.1. Enhanced Address Registration Option (EARO) . . . . . . . 14 75 6.2. Extended Duplicate Address Message Formats . . . . . . . 17 76 6.3. New 6LoWPAN Capability Bits in the Capability Indication 77 Option . . . . . . . . . . . . . . . . . . . . . . . . . 18 78 7. Backward Compatibility . . . . . . . . . . . . . . . . . . . 19 79 7.1. Discovering the capabilities of an ND peer . . . . . . . 19 80 7.1.1. Using the "E" Flag in the 6CIO . . . . . . . . . . . 19 81 7.1.2. Using the "T" Flag in the EARO . . . . . . . . . . . 19 82 7.2. Legacy 6LoWPAN Node . . . . . . . . . . . . . . . . . . . 20 83 7.3. Legacy 6LoWPAN Router . . . . . . . . . . . . . . . . . . 20 84 7.4. Legacy 6LoWPAN Border Router . . . . . . . . . . . . . . 21 85 8. Security Considerations . . . . . . . . . . . . . . . . . . . 21 86 9. Privacy Considerations . . . . . . . . . . . . . . . . . . . 23 87 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 88 10.1. ARO Flags . . . . . . . . . . . . . . . . . . . . . . . 24 89 10.2. ICMP Codes . . . . . . . . . . . . . . . . . . . . . . . 24 90 10.3. New ARO Status values . . . . . . . . . . . . . . . . . 25 91 10.4. New 6LoWPAN capability Bits . . . . . . . . . . . . . . 26 92 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 93 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 94 12.1. Normative References . . . . . . . . . . . . . . . . . . 27 95 12.2. Informative References . . . . . . . . . . . . . . . . . 28 96 12.3. External Informative References . . . . . . . . . . . . 31 97 Appendix A. Applicability and Requirements Served . . . . . . . 32 98 Appendix B. Requirements . . . . . . . . . . . . . . . . . . . . 33 100 Internet-Draft An Update to 6LoWPAN ND February 102 B.1. Requirements Related to Mobility . . . . . . . . . . . . 33 103 B.2. Requirements Related to Routing Protocols . . . . . . . . 33 104 B.3. Requirements Related to the Variety of Low-Power Link 105 types . . . . . . . . . . . . . . . . . . . . . . . . . . 34 106 B.4. Requirements Related to Proxy Operations . . . . . . . . 35 107 B.5. Requirements Related to Security . . . . . . . . . . . . 35 108 B.6. Requirements Related to Scalability . . . . . . . . . . . 37 109 B.7. Matching Requirements with Specifications . . . . . . . . 37 110 Appendix C. Subset of a 6LoWPAN Glossary . . . . . . . . . . . . 38 111 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 113 1. Introduction 115 The scope of this draft is an IPv6 Low Power Networks including star 116 and mesh topologies. This specification modifies and extends the 117 behavior and protocol elements of "Neighbor Discovery Optimization 118 for IPv6 over Low-Power Wireless Personal Area Networks" (6LoWPAN ND) 119 [RFC6775] to enable additional capabilities and enhancements such as: 121 o Support for indicating mobility vs retry (T-bit) 123 o Simplify the registration flow for link-local addresses 125 o Enhancement to Address Registration Option (ARO) 127 o Permitting registration of a target address 129 o Clarification of support of privacy and temporary addresses 131 The applicability of 6LoWPAN ND registration is discussed in 132 Section 2, and new extensions and updates to [RFC6775] are presented 133 in Section 4. Considerations on Backward Compatibility, Security and 134 Privacy are also elaborated upon in Section 7, Section 8 and in 135 Section 9, respectively. 137 2. Applicability of Address Registration Options 139 The purpose of the Address Registration Option (ARO) in the legacy 140 6LoWPAN ND specification is to facilitate duplicate address detection 141 (DAD) for hosts as well as populate Neighbor Cache Entries (NCE) 142 [RFC4861] in the routers. This reduces the reliance on multicast 143 operations, which are often as intrusive as broadcast, in IPv6 ND 144 operations. 146 With this specification, a failed or useless registration can be 147 detected for reasons other than address duplication. Examples 148 include: the router having run out of space; a registration bearing a 149 stale sequence number perhaps denoting a movement of the host after 151 Internet-Draft An Update to 6LoWPAN ND February 153 the registration was placed; a host misbehaving and attempting to 154 register an invalid address such as the unspecified address 155 [RFC4291]; or a host using an address which is not topologically 156 correct on that link. 158 In such cases the host will receive an error to help diagnose the 159 issue and may retry, possibly with a different address, and possibly 160 registering to a different router, depending on the returned error. 161 The ability to return errors to address registrations is not intended 162 to be used to restrict the ability of hosts to form and use multiple 163 addresses, as recommended in "Host Address Availability 164 Recommendations" [RFC7934]. 166 In particular, the freedom to form and register addresses is needed 167 for enhanced privacy; each host may register a number of addresses 168 using mechanisms such as "Privacy Extensions for Stateless Address 169 Autoconfiguration (SLAAC) in IPv6" [RFC4941]. 171 In IPv6 ND [RFC4861], a router must have enough storage to hold 172 neighbor cache entries for all the addresses to which it may forward. 173 A router using the Address Registration mechanism also needs enough 174 storage to hold NCEs for all the addresses that may be registered to 175 it, regardless of whether or not they are actively communicating. 176 The number of registrations supported by a 6LoWPAN Router (6LR) or 177 6LoWPAN Border Router (6LBR) must be clearly documented. 179 A network administrator should deploy updated 6LR/6LBRs to support 180 the number and type of devices in their network, based on the number 181 of IPv6 addresses that those devices require and their address 182 renewal rate and behavior. 184 3. Terminology 186 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 187 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 188 document are to be interpreted as described in [RFC2119]. 190 The Terminology used in this document is consistent with and 191 incorporates that described in Terms Used in Routing for Low-Power 192 and Lossy Networks (LLNs). [RFC7102]. 194 Other terms in use in LLNs are found in Terminology for Constrained- 195 Node Networks [RFC7228]. 197 Readers are expected to be familiar with all the terms and concepts 198 that are discussed in 200 o "Neighbor Discovery for IP version 6" [RFC4861], 202 Internet-Draft An Update to 6LoWPAN ND February 204 o "IPv6 Stateless Address Autoconfiguration" [RFC4862], 206 o "Problem Statement and Requirements for IPv6 over Low-Power 207 Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606], 209 o "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): 210 Overview, Assumptions, Problem Statement, and Goals" [RFC4919], 212 o "Neighbor Discovery Optimization for Low-power and Lossy Networks" 213 [RFC6775] and 215 o "Multi-link Subnet Support in IPv6" 216 [I-D.ietf-ipv6-multilink-subnets], 218 as well as the following terminology: 220 Backbone Link: An IPv6 transit link that interconnects two or more 221 Backbone Routers. It is expected to be a higher speed device 222 speed compared to the LLN in order to carry the traffic that is 223 required to federate multiple segments of the potentially large 224 LLN into a single IPv6 subnet. 226 Backbone Router: A logical network function in an IPv6 router that 227 federates a LLN over a Backbone Link. In order to do so, the 228 Backbone Router (6BBR) proxies the 6LoWPAN ND operations 229 detailed in the document onto the matching operations that run 230 over the backbone, typically IPv6 ND. Note that 6BBR is a 231 logical function, just like 6LR and 6LBR, and that a same 232 physical router may operate all three. 234 Extended LLN: The aggregation of multiple LLNs as defined in 235 [RFC4919], interconnected by a Backbone Link via Backbone 236 Routers, and forming a single IPv6 MultiLink Subnet. 238 Registration: The process during which a 6LN registers its 239 address(es) with the Border Router so the 6BBR can serve as 240 proxy for ND operations over the Backbone. 242 Binding: The association between an IP address with a MAC address, a 243 port and/or other information about the node that owns the IP 244 address. 246 Registered Node: The node for which the registration is performed, 247 and which owns the fields in the EARO option. 249 Registering Node: The node that performs the registration to the 250 6BBR, which may proxy for the registered node. 252 Internet-Draft An Update to 6LoWPAN ND February 254 Registered Address: An address owned by the Registered Node node 255 that was or is being registered. 257 legacy: a 6LN, a 6LR or a 6LBR that supports [RFC6775] but not this 258 specification. 260 updated: a 6LN, a 6LR or a 6LBR that supports this specification. 262 4. Updating RFC 6775 264 This specification introduces the Extended Address Registration 265 Option (EARO) based on the ARO as defined [RFC6775]; in particular a 266 "T" flag is added that MUST be set in NS messages when this 267 specification is used, and echoed in NA messages to confirm that the 268 protocol is supported. 270 The extensions to the ARO option are used in the Duplicate Address 271 Request (DAR) and Duplicate Address Confirmation (DAC) messages, so 272 as to convey the additional information all the way to the 6LBR. In 273 turn the 6LBR may proxy the registration using IPv6 ND over a 274 backbone as illustrated in Figure 1. Note that this specification 275 avoids the extended DAR flow for Link Local Addresses in a Route-Over 276 [RFC6606] mesh. 278 6LN 6LR 6LBR 6BBR 279 | | | | 280 | NS(EARO) | | | 281 |--------------->| | | 282 | | Extended DAR | | 283 | |-------------->| | 284 | | | | 285 | | | proxy NS(EARO) | 286 | | |--------------->| 287 | | | | NS(DAD) 288 | | | | ------> 289 | | | | 290 | | | | 291 | | | proxy NA(EARO) | 292 | | |<---------------| 293 | | Extended DAC | | 294 | |<--------------| | 295 | NA(EARO) | | | 296 |<---------------| | | 297 | | | | 299 Figure 1: (Re-)Registration Flow 301 Internet-Draft An Update to 6LoWPAN ND February 303 In order to support various types of link layers, it is RECOMMENDED 304 to allow multiple registrations, including for privacy / temporary 305 addresses, and provide new mechanisms to help clean up stale 306 registration states as soon as possible. 308 Section 5 of [RFC6775] specifies how a 6LN bootstraps an interface 309 and locates available 6LRs; a Registering Node SHOULD prefer 310 registering to a 6LR that is found to support this specification, as 311 discussed in Section 7.1, over a legacy one. 313 4.1. Extended Address Registration Option (EARO) 315 The Extended ARO (EARO) deprecates the ARO and is backward compatible 316 with it. More details on backward compatibility can be found in 317 Section 7. 319 The semantics of the ARO are modified as follows: 321 o The address that is being registered with a Neighbor Solicitation 322 (NS) with an EARO is now the Target Address, as opposed to the 323 Source Address as specified in [RFC6775] (see Section 4.5). This 324 change enables a 6LBR to use one of its addresses as source to the 325 proxy-registration of an address that belongs to a LLN Node to a 326 6BBR. This also limits the use of an address as source address 327 before it is registered and the associated DAD process is 328 complete. 330 o The Unique ID in the EARO Option is not required to be a MAC 331 address (see Section 4.3). 333 o The specification introduces a Transaction ID (TID) field in the 334 EARO (see Section 4.2). The TID MUST be provided by a node that 335 supports this specification and a new "T" flag MUST be set to 336 indicate so. 338 o Finally, this specification introduces new status codes to help 339 diagnose the cause of a registration failure (see Table 1). 341 4.2. Transaction ID 343 The Transaction ID (TID) is a sequence number that is incremented 344 with each re-registration. The TID is used to detect the freshness 345 of the registration request and useful to detect one single 346 registration by multiple 6LoWPAN border routers (e.g., 6LBRs and 347 6BBRs) supporting the same 6LoWPAN. The TID may also be used by the 348 network to track the sequence of movements of a node in order to 349 route to the current (freshest known) location of a moving node. 351 Internet-Draft An Update to 6LoWPAN ND February 353 When a Registered Node is registered with multiple 6BBRs in parallel, 354 the same TID SHOULD be used, to enable the 6BBRs to determine that 355 the registrations are the same, and distinguish that situation from a 356 movement. 358 4.2.1. Comparing TID values 360 The TID is a sequence counter and its operation is the exact match of 361 the path sequence specified in RPL, the IPv6 Routing Protocol for 362 Low-Power and Lossy Networks [RFC6550] specification. 364 In order to keep this document self-contained and yet compatible, the 365 text below is an exact copy from section 7.2. "Sequence Counter 366 Operation" of [RFC6550]. 368 A TID is deemed to be fresher than another when its value is greater 369 per the operations detailed in this section. 371 The TID range is subdivided in a 'lollipop' fashion ([Perlman83]), 372 where the values from 128 and greater are used as a linear sequence 373 to indicate a restart and bootstrap the counter, and the values less 374 than or equal to 127 used as a circular sequence number space of size 375 128 as in [RFC1982]. Consideration is given to the mode of operation 376 when transitioning from the linear region to the circular region. 377 Finally, when operating in the circular region, if sequence numbers 378 are detected to be too far apart then they are not comparable, as 379 detailed below. 381 A window of comparison, SEQUENCE_WINDOW = 16, is configured based on 382 a value of 2^N, where N is defined to be 4 in this specification. 384 For a given sequence counter, 386 1. The sequence counter SHOULD be initialized to an implementation 387 defined value which is 128 or greater prior to use. A 388 recommended value is 240 (256 - SEQUENCE_WINDOW). 390 2. When a sequence counter increment would cause the sequence 391 counter to increment beyond its maximum value, the sequence 392 counter MUST wrap back to zero. When incrementing a sequence 393 counter greater than or equal to 128, the maximum value is 255. 394 When incrementing a sequence counter less than 128, the maximum 395 value is 127. 397 3. When comparing two sequence counters, the following rules MUST be 398 applied: 400 Internet-Draft An Update to 6LoWPAN ND February 402 1. When a first sequence counter A is in the interval [128..255] 403 and a second sequence counter B is in [0..127]: 405 1. If (256 + B - A) is less than or equal to 406 SEQUENCE_WINDOW, then B is greater than A, A is less than 407 B, and the two are not equal. 409 2. If (256 + B - A) is greater than SEQUENCE_WINDOW, then A 410 is greater than B, B is less than A, and the two are not 411 equal. 413 For example, if A is 240, and B is 5, then (256 + 5 - 240) is 414 21. 21 is greater than SEQUENCE_WINDOW (16), thus 240 is 415 greater than 5. As another example, if A is 250 and B is 5, 416 then (256 + 5 - 250) is 11. 11 is less than SEQUENCE_WINDOW 417 (16), thus 250 is less than 5. 419 2. In the case where both sequence counters to be compared are 420 less than or equal to 127, and in the case where both 421 sequence counters to be compared are greater than or equal to 422 128: 424 1. If the absolute magnitude of difference between the two 425 sequence counters is less than or equal to 426 SEQUENCE_WINDOW, then a comparison as described in 427 [RFC1982] is used to determine the relationships greater 428 than, less than, and equal. 430 2. If the absolute magnitude of difference of the two 431 sequence counters is greater than SEQUENCE_WINDOW, then a 432 desynchronization has occurred and the two sequence 433 numbers are not comparable. 435 4. If two sequence numbers are determined to be not comparable, i.e. 436 the results of the comparison are not defined, then a node should 437 give precedence to the sequence number that was most recently 438 incremented. Failing this, the node should select the sequence 439 number in order to minimize the resulting changes to its own 440 state. 442 4.3. Registration Unique ID 444 The Registration Unique ID (RUID) enables a duplicate address 445 registration to be distinguished from a double registration or a 446 movement. An ND message from the 6BBR over the Backbone that is 447 proxied on behalf of a Registered Node must carry the most recent 448 EARO option seen for that node. A NS/NA with an EARO and a NS/NA 450 Internet-Draft An Update to 6LoWPAN ND February 452 without a EARO thus represent different nodes; if they relate to a 453 same target then an address duplication is likely. 455 The Registration Unique ID in [RFC6775] is a EUI-64 globally unique 456 address configured at a Lower Layer, under the assumption that 457 duplicate EUI-64 addresses are avoided. 459 With this specification, the Registration Unique ID is allowed to be 460 extended to different types of identifier, as long as the type is 461 clearly indicated. For instance, the type can be a cryptographic 462 string and used to prove the ownership of the registration as 463 discussed in "Address Protected Neighbor Discovery for Low-power and 464 Lossy Networks" [I-D.ietf-6lo-ap-nd]. In order to support the flows 465 related to the proof of ownership, this specification introduces new 466 status codes "Validation Requested" and "Validation Failed" in the 467 EARO. 469 The Registering Node SHOULD store the unique ID, or a way to generate 470 that ID, in persistent memory. Otherwise, if a reboot causes a loss 471 of memory, re-registering the same address could be impossible until 472 the 6LBR times out the previous registration. 474 4.4. Extended Duplicate Address Messages 476 In order to map the new EARO content in the DAR/DAC messages, a new 477 TID field is added to the Extended DAR (EDAR) and the Extended DAC 478 (EDAC) messages as a replacement to a Reserved field, and an odd 479 value of the ICMP Code indicates support for the TID, to transport 480 the "T" flag. 482 In order to prepare for future extensions, and though no option has 483 been defined for the Duplicate Address messages, implementations 484 SHOULD expect ND options after the main body, and SHOULD ignore them. 486 As for the EARO, the Extended Duplicate Address messages are backward 487 compatible with the legacy versions, and remarks concerning backwards 488 compatibility for the protocol between the 6LN and the 6LR apply 489 similarly between a 6LR and a 6LBR. 491 4.5. Registering the Target Address 493 The Registering Node is the node that performs the registration to 494 the 6BBR. As in [RFC6775], it may be the Registered Node as well, in 495 which case it registers one of its own addresses, and indicates its 496 own MAC Address as Source Link Layer Address (SLLA) in the NS(EARO). 498 This specification adds the capability to proxy the registration 499 operation on behalf of a Registered Node that is reachable over a LLN 501 Internet-Draft An Update to 6LoWPAN ND February 503 mesh. In that case, if the Registered Node is reachable from the 504 6BBR over a Mesh-Under mesh, the Registering Node indicates the MAC 505 Address of the Registered Node as SLLA in the NS(EARO). If the 506 Registered Node is reachable over a Route-Over mesh from the 507 Registering Node, the SLLA in the NS(ARO) is that of the Registering 508 Node. This enables the Registering Node to attract the packets from 509 the 6BBR and route them over the LLN to the Registered Node. 511 In order to enable the latter operation, this specification changes 512 the behavior of the 6LN and the 6LR so that the Registered Address is 513 found in the Target Address field of the NS and NA messages as 514 opposed to the Source Address. With this convention, a TLLA option 515 indicates the link-layer address of the 6LN that owns the address, 516 whereas the SLLA Option in a NS message indicates that of the 517 Registering Node, which can be the owner device, or a proxy. 519 The Registering Node is reachable from the 6LR, and is also the one 520 expecting packets for the 6LN. Therefore, it MUST place its own Link 521 Layer Address in the SLLA Option that MUST always be placed in a 522 registration NS(EARO) message. This maintains compatibility with 523 legacy 6LoWPAN ND [RFC6775]. 525 4.6. Link-Local Addresses and Registration 527 Considering that LLN nodes are often not wired and may move, there is 528 no guarantee that a Link-Local address stays unique between a 529 potentially variable and unbounded set of neighboring nodes. 531 Compared to [RFC6775], this specification only requires that a Link- 532 Local address is unique from the perspective of the two nodes that 533 use it to communicate (e.g. the 6LN and the 6LR in an NS/NA 534 exchange). This simplifies the DAD process in Route-Over Mode for 535 Link-Local addresses, and there is no exchange of Duplicate Address 536 messages between the 6LR and a 6LBR for Link-Local addresses. 538 In more details: 540 An exchange between two nodes using Link-Local addresses implies that 541 they are reachable over one hop and that at least one of the 2 nodes 542 acts as a 6LR. A node MUST register a Link-Local address to a 6LR in 543 order to obtain reachability from that 6LR beyond the current 544 exchange, and in particular to use the Link-Local address as source 545 address to register other addresses, e.g. global addresses. 547 If there is no collision with an address previously registered to 548 this 6LR by another 6LN, then the Link-Local address is unique from 549 the standpoint of this 6LR and the registration is acceptable. 550 Alternatively, two different 6LRs might expose the same Link-Local 552 Internet-Draft An Update to 6LoWPAN ND February 554 address but different link-layer addresses. In that case, a 6LN MUST 555 only interact with at most one of the 6LRs. 557 The DAD process between the 6LR and a 6LBR, which is based on an 558 exchange of Duplicate Address messages, does not need to take place 559 for Link-Local addresses. 561 When registering to a 6LR that conforms this specification, a node 562 MUST use a Link-Local address as the source address of the 563 registration, whatever the type of IPv6 address that is being 564 registered. That Link-Local Address MUST be either an address that 565 is already registered to the 6LR, or the address that is being 566 registered. 568 When a Registering Node does not have an already-Registered Address, 569 it MUST register a Link-Local address, using it as both the Source 570 and the Target Address of an NS(EARO) message. In that case, it is 571 RECOMMENDED to use a Link-Local address that is (expected to be) 572 globally unique, e.g., derived from a globally unique hardware MAC 573 address. An EARO option in the response NA indicates that the 6LR 574 supports this specification. 576 Since there is no Duplicate Address exchange for Link-Local 577 addresses, the 6LR may answer immediately to the registration of a 578 Link-Local address, based solely on its existing state and the Source 579 Link-Layer Option that MUST be placed in the NS(EARO) message as 580 required in [RFC6775]. 582 A node needs to register its IPv6 Global Unicast IPv6 Addresses 583 (GUAs) to a 6LR in order to establish global reachability for these 584 addresses via that 6LR. When registering with an updated 6LR, a 585 Registering Node does not use its GUA as Source Address, in contrast 586 to a node that complies to [RFC6775]. For non-Link-Local addresses, 587 the Duplicate Address exchange MUST conform to [RFC6775], but the 588 extended formats described in this specification for the DAR and the 589 DAC are used to relay the extended information in the case of an 590 EARO. 592 4.7. Maintaining the Registration States 594 This section discusses protocol actions that involve the Registering 595 Node, the 6LR and the 6LBR. It must be noted that the portion that 596 deals with a 6LBR only applies to those addresses that are registered 597 to it; as discussed in Section 4.6, this is not the case for Link- 598 Local addresses. The registration state includes all data that is 599 stored in the router relative to that registration, in particular, 600 but not limited to, an NCE in a 6LR. 6LBRs and 6BBRs may store 601 additional registration information in more complex data structures 603 Internet-Draft An Update to 6LoWPAN ND February 605 and use protocols that are out of scope of this document to keep them 606 synchronized when they are distributed. 608 When its Neighbor Cache is full, a 6LR cannot accept a new 609 registration. In that situation, the EARO is returned in a NA 610 message with a Status of 2, and the Registering Node may attempt to 611 register to another 6LR. 613 If the registry in the 6LBR is saturated, the LBR cannot guarantee 614 that a new address is effectively not a duplicate. In that case, the 615 6LBR replies to a EDAR message with a EDAC message that carries a new 616 Status Code indicating "6LBR Registry saturated" Table 1. Note: this 617 code is used by 6LBRs instead of Status 2 when responding to a 618 Duplicate Address message exchange and passed on to the Registering 619 Node by the 6LR. There is no point for the node to retry this 620 registration immediately via another 6LR, since the problem is global 621 to the network. The node may either abandon that address, de- 622 register other addresses first to make room, or keep the address in 623 TENTATIVE state and retry later. 625 A node renews an existing registration by sending a new NS(EARO) 626 message for the Registered Address. In order to refresh the 627 registration state in the 6LBR, the registration MUST be reported to 628 the 6LBR. 630 A node that ceases to use an address SHOULD attempt to de-register 631 that address from all the 6LRs to which it has registered the 632 address, which is achieved using an NS(EARO) message with a 633 Registration Lifetime of 0. 635 A node that moves away from a particular 6LR SHOULD attempt to de- 636 register all of its addresses registered to that 6LR and register to 637 a new 6LR with an incremented TID. When/if the node shows up 638 elsewhere, an asynchronous NA(EARO) or EDAC message with a status of 639 3 "Moved" SHOULD be used to clean up the state in the previous 640 location. For instance, as described in 641 [I-D.ietf-6lo-backbone-router], the "Moved" status can be used by a 642 6BBR in a NA(EARO) message to indicate that the ownership of the 643 proxy state on the Backbone was transferred to another 6BBR, as the 644 consequence of a movement of the device. The receiver of the message 645 SHOULD propagate the status down the chain towards the Registered 646 node (e.g. reversing an existing RPL [RFC6550] path) and then clean 647 up its state. 649 Upon receiving a NS(EARO) message with a Registration Lifetime of 0 650 and determining that this EARO is the freshest for a given NCE (see 651 Section 4.2), a 6LR cleans up its NCE. If the address was registered 652 to the 6LBR, then the 6LR MUST report to the 6LBR, through a 654 Internet-Draft An Update to 6LoWPAN ND February 656 Duplicate Address exchange with the 6LBR, indicating the null 657 Registration Lifetime and the latest TID that this 6LR is aware of. 659 Upon receiving the Extended DAR message, the 6LBR evaluates if this 660 is the most recent TID it has received for that particular registry 661 entry. If so, then the entry is scheduled to be removed, and the 662 EDAR is answered with a EDAC message bearing a Status of 0 663 ("Success"). Otherwise, a Status 3 ("Moved") is returned instead, 664 and the existing entry is maintained. 666 When an address is scheduled to be removed, the 6LBR SHOULD keep its 667 entry in a DELAY state for a configurable period of time, so as to 668 protect a mobile node that de-registered from one 6LR and did not 669 register yet to a new one, or the new registration did not reach yet 670 the 6LBR due to propagation delays in the network. Once the DELAY 671 time is passed, the 6LBR silently removes its entry. 673 5. Detecting Enhanced ARO Capability Support 675 The "Generic Header Compression for IPv6 over 6LoWPANs" [RFC7400] 676 introduces the 6LoWPAN Capability Indication Option (6CIO) to 677 indicate a node's capabilities to its peers. 679 Section 6.3 defines new flags for the 6CIO to signal support for 680 EARO, as well as the node's capability to act as a 6LR, 6LBR and 681 6BBR. Section 7.1.1 specifies how the "E" flag can be used to 682 provide backward compatibility. 684 The 6CIO is typically sent in a Router Solicitation (RS) message. 685 When used to signal capabilities per this specification, the 6CIO is 686 typically present in Router Advertisement (RA) messages but can also 687 be present in RS, Neighbor Solicitation (NS) and Neighbor 688 Advertisement (NA) messages. 690 6. Extended ND Options And Messages 692 This specification does not introduce new options, but it modifies 693 existing ones and updates the associated behaviors as specified in 694 the following subsections. 696 6.1. Enhanced Address Registration Option (EARO) 698 The Address Registration Option (ARO) is defined in section 4.1. of 699 [RFC6775]. 701 The Enhanced Address Registration Option (EARO) updates the ARO 702 option within Neighbor Discovery NS and NA messages between a 6LN and 703 its 6LR. On the other hand, the Extended Duplicate Address messages, 705 Internet-Draft An Update to 6LoWPAN ND February 707 EDAR and EDAC, replace the DAR and DAC messages so as to transport 708 the new information between 6LRs and 6LBRs across LLN meshes such as 709 6TiSCH networks. 711 An NS message with an EARO option is a registration if and only if it 712 also carries an SLLAO option. The EARO option also used in NS and NA 713 messages between Backbone Routers [I-D.ietf-6lo-backbone-router] over 714 the Backbone link to sort out the distributed registration state; in 715 that case, it does not carry the SLLAO option and is not confused 716 with a registration. 718 When using the EARO option, the address being registered is found in 719 the Target Address field of the NS and NA messages. 721 The EARO extends the ARO and is indicated by the "T" flag set. The 722 format of the EARO option is as follows: 724 0 1 2 3 725 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 726 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 727 | Type | Length = 2 | Status | Reserved | 728 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 729 | Reserved |T| TID | Registration Lifetime | 730 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 731 | | 732 + Registration Unique ID (EUI-64 or equivalent) + 733 | | 734 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 736 Figure 2: EARO 738 Option Fields 740 Type: 33 742 Length: 8-bit unsigned integer. The length of the option in 743 units of 8 bytes. Always 2. 745 Status: 8-bit unsigned integer. Indicates the status of a 746 registration in the NA response. MUST be set to 0 in 747 NS messages. See Table 1 below. 749 +-------+-----------------------------------------------------------+ 750 | Value | Description | 751 +-------+-----------------------------------------------------------+ 752 | 0..2 | See [RFC6775]. Note: a Status of 1 "Duplicate Address" | 753 | | applies to the Registered Address. If the Source Address | 754 | | conflicts with an existing registration, "Duplicate | 756 Internet-Draft An Update to 6LoWPAN ND February 758 | | Source Address" should be used. | 759 | | | 760 | 3 | Moved: The registration failed because it is not the | 761 | | freshest. This Status indicates that the registration is | 762 | | rejected because another more recent registration was | 763 | | done, as indicated by a same OUI and a more recent TID. | 764 | | One possible cause is a stale registration that has | 765 | | progressed slowly in the network and was passed by a more | 766 | | recent one. It could also indicate a OUI collision. | 767 | | | 768 | 4 | Removed: The binding state was removed. This may be | 769 | | placed in an asynchronous NS(ARO) message, or as the | 770 | | rejection of a proxy registration to a Backbone Router | 771 | | | 772 | 5 | Validation Requested: The Registering Node is challenged | 773 | | for owning the Registered Address or for being an | 774 | | acceptable proxy for the registration. This Status is | 775 | | expected in asynchronous messages from a registrar (6LR, | 776 | | 6LBR, 6BBR) to indicate that the registration state is | 777 | | removed, for instance due to a movement of the device. | 778 | | | 779 | 6 | Duplicate Source Address: The address used as source of | 780 | | the NS(ARO) conflicts with an existing registration. | 781 | | | 782 | 7 | Invalid Source Address: The address used as source of the | 783 | | NS(ARO) is not a Link-Local address as prescribed by this | 784 | | document. | 785 | | | 786 | 8 | Registered Address topologically incorrect: The address | 787 | | being registered is not usable on this link, e.g. it is | 788 | | not topologically correct | 789 | | | 790 | 9 | 6LBR Registry saturated: A new registration cannot be | 791 | | accepted because the 6LBR Registry is saturated. Note: | 792 | | this code is used by 6LBRs instead of Status 2 when | 793 | | responding to a Duplicate Address message exchange and | 794 | | passed on to the Registering Node by the 6LR. | 795 | | | 796 | 10 | Validation Failed: The proof of ownership of the | 797 | | registered address is not correct. | 798 +-------+-----------------------------------------------------------+ 800 Table 1: EARO Status 802 Reserved: This field is unused. It MUST be initialized to zero 803 by the sender and MUST be ignored by the receiver. 805 Internet-Draft An Update to 6LoWPAN ND February 807 T: One bit flag. Set if the next octet is a used as a 808 TID. 810 TID: 1-byte integer; a transaction id that is maintained 811 by the node and incremented with each transaction. 812 The node SHOULD maintain the TID in a persistent 813 storage. 815 Registration Lifetime: 16-bit integer; expressed in minutes. 0 816 means that the registration has ended and the 817 associated state should be removed. 819 Registration Unique IDentifier (OUI): A globally unique identifier 820 for the node associated. This can be the EUI-64 821 derived IID of an interface, or some provable ID 822 obtained cryptographically. 824 6.2. Extended Duplicate Address Message Formats 826 The Duplicate Address Request (DAR) and the Duplicate Address 827 Confirmation (DAC) messages are defined in section 4.4 of [RFC6775]. 828 Those messages follow a common base format, which enables information 829 from the ARO to be transported over multiple hops. 831 The Duplicate Address Messages are extended to adapt to the Extended 832 ARO format, as follows: 834 Internet-Draft An Update to 6LoWPAN ND February 836 0 1 2 3 837 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 838 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 839 | Type | Code | Checksum | 840 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 841 | Status | TID | Registration Lifetime | 842 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 843 | | 844 + Registration Unique ID (EUI-64 or equivalent) + 845 | | 846 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 847 | | 848 + + 849 | | 850 + Registered Address + 851 | | 852 + + 853 | | 854 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 856 Figure 3: Duplicate Address Messages Format 858 Modified Message Fields 860 Code: The ICMP Code as defined in [RFC4443]. The ICMP Code 861 MUST be set to 1 with this specification. An odd 862 value of the ICMP Code indicates that the TID field 863 is present and obeys this specification. 865 TID: 1-byte integer; same definition and processing as the 866 TID in the EARO option as defined in Section 6.1. 868 Registration Unique IDentifier (OUI): 8 bytes; same definition and 869 processing as the OUI in the EARO option as defined 870 in Section 6.1. 872 6.3. New 6LoWPAN Capability Bits in the Capability Indication Option 874 This specification defines new capability bits for use in the 6CIO, 875 which was introduced by [RFC7400] for use in IPv6 ND RA messages. 877 Routers that support this specification MUST set the "E" flag and 6LN 878 SHOULD favor 6LR routers that support this specification over those 879 that do not. Routers that are capable of acting as 6LR, 6LBR and 880 6BBR SHOULD set the "L", "B" and "P" flags, respectively. In 881 particular, the function 6LR is often collocated with that of 6LBR. 883 Internet-Draft An Update to 6LoWPAN ND February 885 Those flags are not mutually exclusive and if a router is capable of 886 performing multiple functions, it SHOULD set all the related flags. 888 0 1 2 3 889 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 890 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 891 | Type | Length = 1 | Reserved |L|B|P|E|G| 892 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 893 | Reserved | 894 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 896 Figure 4: New capability Bits L, B, P, E in the 6CIO 898 Option Fields 900 Type: 36 902 L: Node is a 6LR, it can take registrations. 904 B: Node is a 6LBR. 906 P: Node is a 6BBR, proxying for nodes on this link. 908 E: This specification is supported and applied. 910 7. Backward Compatibility 912 7.1. Discovering the capabilities of an ND peer 914 7.1.1. Using the "E" Flag in the 6CIO 916 If the 6CIO is used in an ND message and the sending node supports 917 this specification, then the "E" Flag MUST be set. 919 A router that supports this specification SHOULD indicate that with a 920 6CIO. 922 If the Registering Node receives a 6CIO in a Router Advertisement 923 message, then the setting of the "E" Flag indicates whether or not 924 this specification is supported. 926 7.1.2. Using the "T" Flag in the EARO 928 One alternate way for a 6LN to discover the router's capabilities is 929 to first register a Link Local address, placing the same address in 930 the Source and Target Address fields of the NS message, and setting 931 the "T" Flag. The node may for instance register an address that is 933 Internet-Draft An Update to 6LoWPAN ND February 935 based on EUI-64. For such an address, DAD is not required and using 936 the SLLAO option in the NS is actually more consistent with existing 937 ND specifications such as the "Optimistic Duplicate Address Detection 938 (ODAD) for IPv6" [RFC4429]. 940 Once its first registration is complete, the node knows from the 941 setting of the "T" Flag in the response whether the router supports 942 this specification. If support is verified, the node may register 943 other addresses that it owns, or proxy-register addresses on behalf 944 some another node, indicating those addresses being registered in the 945 Target Address field of the NS messages, while using one of its own 946 previously registered addresses as source. 948 A node that supports this specification MUST always use an EARO as a 949 replacement to an ARO in its registration to a router. This is 950 harmless since the "T" flag and TID field are reserved in [RFC6775], 951 and are ignored by a legacy router. A router that supports this 952 specification answers an ARO with an ARO and answers an EARO with an 953 EARO. 955 This specification changes the behavior of the peers in a 956 registration flow. To enable backward compatibility, a 6LN that 957 registers to a 6LR that is not known to support this specification 958 MUST behave in a manner that is compatible with [RFC6775]. A 6LN can 959 achieve that by sending a NS(EARO) message with a Link-Local Address 960 used as both Source and Target Address, as described in Section 4.6. 961 Once the 6LR is known to support this specification, the 6LN MUST 962 obey this specification. 964 7.2. Legacy 6LoWPAN Node 966 A legacy 6LN will use the Registered Address as source and will not 967 use an EARO option. An updated 6LR MUST accept that registration if 968 it is valid per [RFC6775], and it MUST manage the binding cache 969 accordingly. The updated 6LR MUST then use the legacy Duplicate 970 Address messages as specified in [RFC6775] to indicate to the 6LBR 971 that the TID is not present in the messages. 973 The main difference with [RFC6775] is that Duplicate Address exchange 974 for DAD is avoided for Link-Local addresses. In any case, the 6LR 975 SHOULD use an EARO in the reply, and may use any of the Status codes 976 defined in this specification. 978 7.3. Legacy 6LoWPAN Router 980 The first registration by an updated 6LN MUST be for a Link-Local 981 address, using that Link-Local address as source. A legacy 6LR will 983 Internet-Draft An Update to 6LoWPAN ND February 985 not make a difference and treat that registration as if the 6LN was a 986 legacy node. 988 An updated 6LN will always use an EARO option in the registration NS 989 message, whereas a legacy 6LR will always reply with an ARO option in 990 the NA message. From that first registration, the updated 6LN can 991 determine whether or not the 6LR supports this specification. 993 After detecting a legacy 6LR, an updated 6LN SHOULD attempt to find 994 an alternate 6LR that is updated for a reasonable time that depends 995 on the type of device and the expected deployment. 997 An updated 6LN SHOULD use an EARO in the request regardless of the 998 type of 6LR, legacy or updated, which implies that the "T" flag is 999 set. 1001 If an updated 6LN moves from an updated 6LR to a legacy 6LR, the 1002 legacy 6LR will send a legacy DAR message, which can not be compared 1003 with an updated one for freshness. 1005 Allowing legacy DAR messages to replace a state established by the 1006 updated protocol in the 6LBR would be an attack vector and that 1007 cannot be the default behavior. 1009 But if legacy and updated 6LRs coexist temporarily in a network, then 1010 it makes sense for an administrator to install a policy that allows 1011 so, and the capability to install such a policy should be 1012 configurable in a 6LBR though it is out of scope for this document. 1014 7.4. Legacy 6LoWPAN Border Router 1016 With this specification, the Duplicate Address messages are extended 1017 to transport the EARO information. Similarly to the NS/NA exchange, 1018 updated 6LBR devices always use the Extended Duplicate Address 1019 messages and all the associated behavior so they can always be 1020 differentiated from legacy ones. 1022 Note that a legacy 6LBR will accept and process an EDAR message as if 1023 it was a legacy DAR, so legacy support of DAD is preserved. 1025 8. Security Considerations 1027 This specification extends [RFC6775], and the security section of 1028 that draft also applies to this as well. In particular, it is 1029 expected that the link layer is sufficiently protected to prevent a 1030 rogue access, either by means of physical or IP security on the 1031 Backbone Link and link layer cryptography on the LLN. 1033 Internet-Draft An Update to 6LoWPAN ND February 1035 This specification also expects that the LLN MAC provides secure 1036 unicast to/from the Backbone Router and secure Broadcast from the 1037 Backbone Router in a way that prevents tampering with or replaying 1038 the RA messages. 1040 This specification recommends using privacy techniques (see 1041 Section 9), and protection against address theft such as provided by 1042 "Address Protected Neighbor Discovery for Low-power and Lossy 1043 Networks" [I-D.ietf-6lo-ap-nd], which guarantees the ownership of the 1044 Registered Address using a cryptographic RUID. 1046 The registration mechanism may be used by a rogue node to attack the 1047 6LR or the 6LBR with a Denial-of-Service attack against the registry. 1048 It may also happen that the registry of a 6LR or a 6LBR is saturated 1049 and cannot take any more registration, which effectively denies the 1050 requesting a node the capability to use a new address. In order to 1051 alleviate those concerns, Section 4.7 provides a number of 1052 recommendations that ensure that a stale registration is removed as 1053 soon as possible from the 6LR and 6LBR. In particular, this 1054 specification recommends that: 1056 o A node that ceases to use an address SHOULD attempt to de-register 1057 that address from all the 6LRs to which it is registered. See 1058 Section 4.2 for the mechanism to avoid replay attacks and avoiding 1059 the use of stale registration information. 1061 o The Registration lifetimes SHOULD be individually configurable for 1062 each address or group of addresses. The nodes SHOULD be 1063 configured with a Registration Lifetime that reflects their 1064 expectation of how long they will use the address with the 6LR to 1065 which it is registered. In particular, use cases that involve 1066 mobility or rapid address changes SHOULD use lifetimes that are 1067 larger yet of a same order as the duration of the expectation of 1068 presence. 1070 o The router (6LR or 6LBR) SHOULD be configurable so as to limit the 1071 number of addresses that can be registered by a single node, as 1072 identified at least by MAC address and preferably by security 1073 credentials. When that maximum is reached, the router should use 1074 a Least-Recently-Used (LRU) algorithm to clean up the addresses, 1075 keeping at least one Link-Local address. The router SHOULD 1076 attempt to keep one or more stable addresses if stability can be 1077 determined, e.g. from the way the IID is formed or because they 1078 are used over a much longer time span than other (privacy, 1079 shorter-lived) addresses. Address lifetimes SHOULD be 1080 individually configurable. 1082 Internet-Draft An Update to 6LoWPAN ND February 1084 o In order to avoid denial of registration for the lack of 1085 resources, administrators should take great care to deploy 1086 adequate numbers of 6LRs to cover the needs of the nodes in their 1087 range, so as to avoid a situation of starving nodes. It is 1088 expected that the 6LBR that serves a LLN is a more capable node 1089 then the average 6LR, but in a network condition where it may 1090 become saturated, a particular deployment should distribute the 1091 6LBR functionality, for instance by leveraging a high speed 1092 Backbone and Backbone Routers to aggregate multiple LLNs into a 1093 larger subnet. 1095 The LLN nodes depend on the 6LBR and the 6BBR for their operation. A 1096 trust model must be put in place to ensure that the right devices are 1097 acting in these roles, so as to avoid threats such as black-holing, 1098 or bombing attack whereby an impersonated 6LBR would destroy state in 1099 the network by using the "Removed" Status code. This trust model 1100 could be at a minimum based on a Layer-2 access control, or could 1101 provide role validation as well (see Req5.1 in Appendix B.5). 1103 9. Privacy Considerations 1105 As indicated in section Section 2, this protocol does not aim at 1106 limiting the number of IPv6 addresses that a device can form. A host 1107 should be able to form and register any address that is topologically 1108 correct in the subnet(s) advertised by the 6LR/6LBR. 1110 This specification does not mandate any particular way for forming 1111 IPv6 addresses, but it discourages using EUI-64 for forming the 1112 Interface ID in the Link-Local address because this method prevents 1113 the usage of "SEcure Neighbor Discovery (SEND)" [RFC3971] and 1114 "Cryptographically Generated Addresses (CGA)" [RFC3972], and that of 1115 address privacy techniques. 1117 "Privacy Considerations for IPv6 Adaptation-Layer Mechanisms" 1118 [RFC8065] explains why privacy is important and how to form privacy- 1119 aware addresses. All implementations and deployment must consider 1120 the option of privacy addresses in their own environment. 1122 The IPv6 address of the 6LN in the IPv6 header can be compressed 1123 statelessly when the Interface Identifier in the IPv6 address can be 1124 derived from the Lower Layer address. When it is not critical to 1125 benefit from that compression, e.g. the address can be compressed 1126 statefully, or it is rarely used and/or it is used only over one hop, 1127 then privacy concerns should be considered. In particular, new 1128 implementations should follow the IETF "Recommendation on Stable IPv6 1129 Interface Identifiers" [RFC8064] This RFC recommends the use of "A 1130 Method for Generating Semantically Opaque Interface Identifiers with 1132 Internet-Draft An Update to 6LoWPAN ND February 1134 IPv6 Stateless Address Autoconfiguration (SLAAC)" [RFC7217] for 1135 generating Interface Identifiers to be used in SLAAC. 1137 10. IANA Considerations 1139 Note to RFC Editor: please replace "This RFC" throughout this 1140 document by the RFC number for this specification once it is 1141 attributed. 1143 IANA is requested to make a number of changes under the "Internet 1144 Control Message Protocol version 6 (ICMPv6) Parameters" registry, as 1145 follows. 1147 10.1. ARO Flags 1149 IANA is requested to create a new subregistry for "ARO Flags". This 1150 specification defines 8 positions, bit 0 to bit 7, and assigns bit 7 1151 for the "T" flag in Section 6.1. The policy is "IETF Review" or 1152 "IESG Approval" [RFC8126]. The initial content of the registry is as 1153 shown in Table 2. 1155 New subregistry for ARO Flags under the "Internet Control Message 1156 Protocol version 6 (ICMPv6) [RFC4443] Parameters" 1158 +-------------+--------------+-----------+ 1159 | ARO Status | Description | Document | 1160 +-------------+--------------+-----------+ 1161 | 0..6 | Unassigned | | 1162 | | | | 1163 | 7 | "T" Flag | This RFC | 1164 +-------------+--------------+-----------+ 1166 Table 2: new ARO Flags 1168 10.2. ICMP Codes 1170 IANA is requested to create a new entry in the ICMPv6 "Code" Fields 1171 subregistry of the Internet Control Message Protocol version 6 1172 (ICMPv6) Parameters for the ICMP codes related to the ICMP type 157 1173 and 158 Duplicate Address Request (shown in Table 3) and Confirmation 1174 (shown in Table 4), respectively, as follows: 1176 Internet-Draft An Update to 6LoWPAN ND February 1178 New entries for ICMP types 157 DAR message 1180 +-------+----------------------+------------+ 1181 | Code | Name | Reference | 1182 +-------+----------------------+------------+ 1183 | 0 | Original DAR message | RFC 6775 | 1184 | | | | 1185 | 1 | Extended DAR message | This RFC | 1186 +-------+----------------------+------------+ 1188 Table 3: new ICMPv6 Code Fields 1190 New entries for ICMP types 158 DAC message 1192 +-------+----------------------+------------+ 1193 | Code | Name | Reference | 1194 +-------+----------------------+------------+ 1195 | 0 | Original DAC message | RFC 6775 | 1196 | | | | 1197 | 1 | Extended DAC message | This RFC | 1198 +-------+----------------------+------------+ 1200 Table 4: new ICMPv6 Code Fields 1202 10.3. New ARO Status values 1204 IANA is requested to make additions to the Address Registration 1205 Option Status Values Registry as follows: 1207 Internet-Draft An Update to 6LoWPAN ND February 1209 Address Registration Option Status Values Registry 1211 +-------------+-----------------------------------------+-----------+ 1212 | ARO Status | Description | Document | 1213 +-------------+-----------------------------------------+-----------+ 1214 | 3 | Moved | This RFC | 1215 | | | | 1216 | 4 | Removed | This RFC | 1217 | | | | 1218 | 5 | Validation Requested | This RFC | 1219 | | | | 1220 | 6 | Duplicate Source Address | This RFC | 1221 | | | | 1222 | 7 | Invalid Source Address | This RFC | 1223 | | | | 1224 | 8 | Registered Address topologically | This RFC | 1225 | | incorrect | | 1226 | | | | 1227 | 9 | 6LBR registry saturated | This RFC | 1228 | | | | 1229 | 10 | Validation Failed | This RFC | 1230 +-------------+-----------------------------------------+-----------+ 1232 Table 5: New ARO Status values 1234 10.4. New 6LoWPAN capability Bits 1236 IANA is requested to make additions to the Subregistry for "6LoWPAN 1237 capability Bits" as follows: 1239 Subregistry for "6LoWPAN capability Bits" under the "Internet Control 1240 Message Protocol version 6 (ICMPv6) Parameters" 1242 +-----------------+----------------------+-----------+ 1243 | Capability Bit | Description | Document | 1244 +-----------------+----------------------+-----------+ 1245 | 11 | 6LR capable (L bit) | This RFC | 1246 | | | | 1247 | 12 | 6LBR capable (B bit) | This RFC | 1248 | | | | 1249 | 13 | 6BBR capable (P bit) | This RFC | 1250 | | | | 1251 | 14 | EARO support (E bit) | This RFC | 1252 +-----------------+----------------------+-----------+ 1254 Table 6: New 6LoWPAN capability Bits 1256 Internet-Draft An Update to 6LoWPAN ND February 1258 11. Acknowledgments 1260 Kudos to Eric Levy-Abegnoli who designed the First Hop Security 1261 infrastructure upon which the first backbone router was implemented. 1262 Many thanks to Sedat Gormus, Rahul Jadhav and Lorenzo Colitti for 1263 their various contributions and reviews. Also many thanks to Thomas 1264 Watteyne for his early implementation of a 6LN that was instrumental 1265 to the early tests of the 6LR, 6LBR and Backbone Router. 1267 12. References 1269 12.1. Normative References 1271 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1272 Requirement Levels", BCP 14, RFC 2119, 1273 DOI 10.17487/RFC2119, March 1997, 1274 . 1276 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1277 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 1278 2006, . 1280 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 1281 Control Message Protocol (ICMPv6) for the Internet 1282 Protocol Version 6 (IPv6) Specification", STD 89, 1283 RFC 4443, DOI 10.17487/RFC4443, March 2006, 1284 . 1286 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 1287 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 1288 DOI 10.17487/RFC4861, September 2007, 1289 . 1291 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 1292 Address Autoconfiguration", RFC 4862, 1293 DOI 10.17487/RFC4862, September 2007, 1294 . 1296 [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 1297 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 1298 DOI 10.17487/RFC6282, September 2011, 1299 . 1301 [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. 1302 Bormann, "Neighbor Discovery Optimization for IPv6 over 1303 Low-Power Wireless Personal Area Networks (6LoWPANs)", 1304 RFC 6775, DOI 10.17487/RFC6775, November 2012, 1305 . 1307 Internet-Draft An Update to 6LoWPAN ND February 1309 [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for 1310 IPv6 over Low-Power Wireless Personal Area Networks 1311 (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November 1312 2014, . 1314 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 1315 Writing an IANA Considerations Section in RFCs", BCP 26, 1316 RFC 8126, DOI 10.17487/RFC8126, June 2017, 1317 . 1319 12.2. Informative References 1321 [I-D.chakrabarti-nordmark-6man-efficient-nd] 1322 Chakrabarti, S., Nordmark, E., Thubert, P., and M. 1323 Wasserman, "IPv6 Neighbor Discovery Optimizations for 1324 Wired and Wireless Networks", draft-chakrabarti-nordmark- 1325 6man-efficient-nd-07 (work in progress), February 2015. 1327 [I-D.delcarpio-6lo-wlanah] 1328 Vega, L., Robles, I., and R. Morabito, "IPv6 over 1329 802.11ah", draft-delcarpio-6lo-wlanah-01 (work in 1330 progress), October 2015. 1332 [I-D.ietf-6lo-ap-nd] 1333 Thubert, P., Sarikaya, B., and M. Sethi, "Address 1334 Protected Neighbor Discovery for Low-power and Lossy 1335 Networks", draft-ietf-6lo-ap-nd-05 (work in progress), 1336 January 2018. 1338 [I-D.ietf-6lo-backbone-router] 1339 Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- 1340 backbone-router-05 (work in progress), January 2018. 1342 [I-D.ietf-6lo-nfc] 1343 Choi, Y., Hong, Y., Youn, J., Kim, D., and J. Choi, 1344 "Transmission of IPv6 Packets over Near Field 1345 Communication", draft-ietf-6lo-nfc-09 (work in progress), 1346 January 2018. 1348 [I-D.ietf-6tisch-architecture] 1349 Thubert, P., "An Architecture for IPv6 over the TSCH mode 1350 of IEEE 802.15.4", draft-ietf-6tisch-architecture-13 (work 1351 in progress), November 2017. 1353 [I-D.ietf-ipv6-multilink-subnets] 1354 Thaler, D. and C. Huitema, "Multi-link Subnet Support in 1355 IPv6", draft-ietf-ipv6-multilink-subnets-00 (work in 1356 progress), July 2002. 1358 Internet-Draft An Update to 6LoWPAN ND February 1360 [I-D.ietf-mboned-ieee802-mcast-problems] 1361 Perkins, C., McBride, M., Stanley, D., Kumari, W., and J. 1362 Zuniga, "Multicast Considerations over IEEE 802 Wireless 1363 Media", draft-ietf-mboned-ieee802-mcast-problems-01 (work 1364 in progress), February 2018. 1366 [I-D.perkins-intarea-multicast-ieee802] 1367 Perkins, C., Stanley, D., Kumari, W., and J. Zuniga, 1368 "Multicast Considerations over IEEE 802 Wireless Media", 1369 draft-perkins-intarea-multicast-ieee802-03 (work in 1370 progress), July 2017. 1372 [I-D.popa-6lo-6loplc-ipv6-over-ieee19012-networks] 1373 Popa, D. and J. Hui, "6LoPLC: Transmission of IPv6 Packets 1374 over IEEE 1901.2 Narrowband Powerline Communication 1375 Networks", draft-popa-6lo-6loplc-ipv6-over- 1376 ieee19012-networks-00 (work in progress), March 2014. 1378 [I-D.struik-lwip-curve-representations] 1379 Struik, R., "Alternative Elliptic Curve Representations", 1380 draft-struik-lwip-curve-representations-00 (work in 1381 progress), October 2017. 1383 [RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, 1384 DOI 10.17487/RFC1982, August 1996, 1385 . 1387 [RFC3610] Whiting, D., Housley, R., and N. Ferguson, "Counter with 1388 CBC-MAC (CCM)", RFC 3610, DOI 10.17487/RFC3610, September 1389 2003, . 1391 [RFC3810] Vida, R., Ed. and L. Costa, Ed., "Multicast Listener 1392 Discovery Version 2 (MLDv2) for IPv6", RFC 3810, 1393 DOI 10.17487/RFC3810, June 2004, 1394 . 1396 [RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, 1397 "SEcure Neighbor Discovery (SEND)", RFC 3971, 1398 DOI 10.17487/RFC3971, March 2005, 1399 . 1401 [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", 1402 RFC 3972, DOI 10.17487/RFC3972, March 2005, 1403 . 1405 [RFC4429] Moore, N., "Optimistic Duplicate Address Detection (DAD) 1406 for IPv6", RFC 4429, DOI 10.17487/RFC4429, April 2006, 1407 . 1409 Internet-Draft An Update to 6LoWPAN ND February 1411 [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 1412 over Low-Power Wireless Personal Area Networks (6LoWPANs): 1413 Overview, Assumptions, Problem Statement, and Goals", 1414 RFC 4919, DOI 10.17487/RFC4919, August 2007, 1415 . 1417 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 1418 Extensions for Stateless Address Autoconfiguration in 1419 IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007, 1420 . 1422 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 1423 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 1424 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 1425 Low-Power and Lossy Networks", RFC 6550, 1426 DOI 10.17487/RFC6550, March 2012, 1427 . 1429 [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem 1430 Statement and Requirements for IPv6 over Low-Power 1431 Wireless Personal Area Network (6LoWPAN) Routing", 1432 RFC 6606, DOI 10.17487/RFC6606, May 2012, 1433 . 1435 [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and 1436 Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January 1437 2014, . 1439 [RFC7217] Gont, F., "A Method for Generating Semantically Opaque 1440 Interface Identifiers with IPv6 Stateless Address 1441 Autoconfiguration (SLAAC)", RFC 7217, 1442 DOI 10.17487/RFC7217, April 2014, 1443 . 1445 [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for 1446 Constrained-Node Networks", RFC 7228, 1447 DOI 10.17487/RFC7228, May 2014, 1448 . 1450 [RFC7428] Brandt, A. and J. Buron, "Transmission of IPv6 Packets 1451 over ITU-T G.9959 Networks", RFC 7428, 1452 DOI 10.17487/RFC7428, February 2015, 1453 . 1455 [RFC7668] Nieminen, J., Savolainen, T., Isomaki, M., Patil, B., 1456 Shelby, Z., and C. Gomez, "IPv6 over BLUETOOTH(R) Low 1457 Energy", RFC 7668, DOI 10.17487/RFC7668, October 2015, 1458 . 1460 Internet-Draft An Update to 6LoWPAN ND February 1462 [RFC7934] Colitti, L., Cerf, V., Cheshire, S., and D. Schinazi, 1463 "Host Address Availability Recommendations", BCP 204, 1464 RFC 7934, DOI 10.17487/RFC7934, July 2016, 1465 . 1467 [RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu, 1468 "Recommendation on Stable IPv6 Interface Identifiers", 1469 RFC 8064, DOI 10.17487/RFC8064, February 2017, 1470 . 1472 [RFC8065] Thaler, D., "Privacy Considerations for IPv6 Adaptation- 1473 Layer Mechanisms", RFC 8065, DOI 10.17487/RFC8065, 1474 February 2017, . 1476 [RFC8105] Mariager, P., Petersen, J., Ed., Shelby, Z., Van de Logt, 1477 M., and D. Barthel, "Transmission of IPv6 Packets over 1478 Digital Enhanced Cordless Telecommunications (DECT) Ultra 1479 Low Energy (ULE)", RFC 8105, DOI 10.17487/RFC8105, May 1480 2017, . 1482 [RFC8163] Lynn, K., Ed., Martocci, J., Neilson, C., and S. 1483 Donaldson, "Transmission of IPv6 over Master-Slave/Token- 1484 Passing (MS/TP) Networks", RFC 8163, DOI 10.17487/RFC8163, 1485 May 2017, . 1487 [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., 1488 Przygienda, T., and S. Aldrin, "Multicast Using Bit Index 1489 Explicit Replication (BIER)", RFC 8279, 1490 DOI 10.17487/RFC8279, November 2017, 1491 . 1493 12.3. External Informative References 1495 [IEEEstd802154] 1496 IEEE, "IEEE Standard for Low-Rate Wireless Networks", 1497 IEEE Standard 802.15.4, DOI 10.1109/IEEE 1498 P802.15.4-REVd/D01, June 2017, 1499 . 1501 [Perlman83] 1502 Perlman, R., "Fault-Tolerant Broadcast of Routing 1503 Information", North-Holland Computer Networks 7: 395-405, 1504 1983, . 1507 Internet-Draft An Update to 6LoWPAN ND February 1509 Appendix A. Applicability and Requirements Served 1511 This specification extends 6LoWPAN ND to provide a sequence number to 1512 the registration and serves the requirements expressed Appendix B.1 1513 by enabling the mobility of devices from one LLN to the next based on 1514 the complementary work in the "IPv6 Backbone Router" 1515 [I-D.ietf-6lo-backbone-router] specification. 1517 In the context of the the TimeSlotted Channel Hopping (TSCH) mode of 1518 IEEE Std. 802.15.4 [IEEEstd802154], the "6TiSCH architecture" 1519 [I-D.ietf-6tisch-architecture] introduces how a 6LoWPAN ND host could 1520 connect to the Internet via a RPL mesh Network, but this requires 1521 additions to the 6LoWPAN ND protocol to support mobility and 1522 reachability in a secured and manageable environment. This 1523 specification details the new operations that are required to 1524 implement the 6TiSCH architecture and serves the requirements listed 1525 in Appendix B.2. 1527 The term LLN is used loosely in this specification to cover multiple 1528 types of WLANs and WPANs, including Low-Power Wi-Fi, BLUETOOTH(R) Low 1529 Energy, IEEE Std.802.11AH and IEEE Std.802.15.4 wireless meshes, so 1530 as to address the requirements discussed in Appendix B.3. 1532 This specification can be used by any wireless node to associate at 1533 Layer-3 with a 6BBR and register its IPv6 addresses to obtain routing 1534 services including proxy-ND operations over the Backbone, effectively 1535 providing a solution to the requirements expressed in Appendix B.4. 1537 This specification is extended by "Address Protected Neighbor 1538 Discovery for Low-power and Lossy Networks" [I-D.ietf-6lo-ap-nd] to 1539 providing a solution to some of the security-related requirements 1540 expressed in Appendix B.5. 1542 "Efficiency aware IPv6 Neighbor Discovery Optimizations" 1543 [I-D.chakrabarti-nordmark-6man-efficient-nd] suggests that 6LoWPAN ND 1544 [RFC6775] can be extended to other types of links beyond IEEE Std. 1545 802.15.4 for which it was defined. The registration technique is 1546 beneficial when the Link-Layer technique used to carry IPv6 multicast 1547 packets is not sufficiently efficient in terms of delivery ratio or 1548 energy consumption in the end devices, in particular to enable 1549 energy-constrained sleeping nodes. The value of such extension is 1550 especially apparent in the case of mobile wireless nodes, to reduce 1551 the multicast operations that are related to IPv6 ND ([RFC4861], 1552 [RFC4862]) and affect the operation of the wireless medium 1553 [I-D.ietf-mboned-ieee802-mcast-problems] 1554 [I-D.perkins-intarea-multicast-ieee802]. This serves the scalability 1555 requirements listed in Appendix B.6. 1557 Internet-Draft An Update to 6LoWPAN ND February 1559 Finally Appendix B.7 provides a matching of requirements with the 1560 specifications that serves them. 1562 Appendix B. Requirements 1564 This section lists requirements that were discussed at 6lo for an 1565 update to 6LoWPAN ND. This specification meets most of them, but 1566 those listed in Appendix B.5 which are deferred to a different 1567 specification such as [I-D.ietf-6lo-ap-nd], and those related to 1568 multicast. 1570 B.1. Requirements Related to Mobility 1572 Due to the unstable nature of LLN links, even in a LLN of immobile 1573 nodes a 6LN may change its point of attachment to a 6LR, say 6LR-a, 1574 and may not be able to notify 6LR-a. Consequently, 6LR-a may still 1575 attract traffic that it cannot deliver any more. When links to a 6LR 1576 change state, there is thus a need to identify stale states in a 6LR 1577 and restore reachability in a timely fashion. 1579 Req1.1: Upon a change of point of attachment, connectivity via a new 1580 6LR MUST be restored in a timely fashion without the need to de- 1581 register from the previous 6LR. 1583 Req1.2: For that purpose, the protocol MUST enable to differentiate 1584 between multiple registrations from one 6LoWPAN Node and 1585 registrations from different 6LoWPAN Nodes claiming the same address. 1587 Req1.3: Stale states MUST be cleaned up in 6LRs. 1589 Req1.4: A 6LoWPAN Node SHOULD also be capable to register its Address 1590 concurrently to multiple 6LRs. 1592 B.2. Requirements Related to Routing Protocols 1594 The point of attachment of a 6LN may be a 6LR in an LLN mesh. IPv6 1595 routing in a LLN can be based on RPL, which is the routing protocol 1596 that was defined at the IETF for this particular purpose. Other 1597 routing protocols than RPL are also considered by Standard Defining 1598 Organizations (SDO) on the basis of the expected network 1599 characteristics. It is required that a 6LoWPAN Node attached via ND 1600 to a 6LR would need to participate in the selected routing protocol 1601 to obtain reachability via the 6LR. 1603 Next to the 6LBR unicast address registered by ND, other addresses 1604 including multicast addresses are needed as well. For example a 1605 routing protocol often uses a multicast address to register changes 1607 Internet-Draft An Update to 6LoWPAN ND February 1609 to established paths. ND needs to register such a multicast address 1610 to enable routing concurrently with discovery. 1612 Multicast is needed for groups. Groups may be formed by device type 1613 (e.g. routers, street lamps), location (Geography, RPL sub-tree), or 1614 both. 1616 The Bit Index Explicit Replication (BIER) Architecture [RFC8279] 1617 proposes an optimized technique to enable multicast in a LLN with a 1618 very limited requirement for routing state in the nodes. 1620 Related requirements are: 1622 Req2.1: The ND registration method SHOULD be extended so that the 6LR 1623 is able to advertise the Address of a 6LoWPAN Node over the selected 1624 routing protocol and obtain reachability to that Address using the 1625 selected routing protocol. 1627 Req2.2: Considering RPL, the Address Registration Option that is used 1628 in the ND registration SHOULD be extended to carry enough information 1629 to generate a DAO message as specified in [RFC6550] section 6.4, in 1630 particular the capability to compute a Path Sequence and, as an 1631 option, a RPLInstanceID. 1633 Req2.3: Multicast operations SHOULD be supported and optimized, for 1634 instance using BIER or MPL. Whether ND is appropriate for the 1635 registration to the 6BBR is to be defined, considering the additional 1636 burden of supporting the Multicast Listener Discovery Version 2 1637 [RFC3810] (MLDv2) for IPv6. 1639 B.3. Requirements Related to the Variety of Low-Power Link types 1641 6LoWPAN ND [RFC6775] was defined with a focus on IEEE Std.802.15.4 1642 and in particular the capability to derive a unique Identifier from a 1643 globally unique MAC-64 address. At this point, the 6lo Working Group 1644 is extending the 6LoWPAN Header Compression (HC) [RFC6282] technique 1645 to other link types ITU-T G.9959 [RFC7428], Master-Slave/Token- 1646 Passing [RFC8163], DECT Ultra Low Energy [RFC8105], Near Field 1647 Communication [I-D.ietf-6lo-nfc], IEEE Std. 802.11ah 1648 [I-D.delcarpio-6lo-wlanah], as well as IEEE1901.2 Narrowband 1649 Powerline Communication Networks 1650 [I-D.popa-6lo-6loplc-ipv6-over-ieee19012-networks] and BLUETOOTH(R) 1651 Low Energy [RFC7668]. 1653 Related requirements are: 1655 Req3.1: The support of the registration mechanism SHOULD be extended 1656 to more LLN links than IEEE Std.802.15.4, matching at least the LLN 1658 Internet-Draft An Update to 6LoWPAN ND February 1660 links for which an "IPv6 over foo" specification exists, as well as 1661 Low-Power Wi-Fi. 1663 Req3.2: As part of this extension, a mechanism to compute a unique 1664 Identifier should be provided, with the capability to form a Link- 1665 Local Address that SHOULD be unique at least within the LLN connected 1666 to a 6LBR discovered by ND in each node within the LLN. 1668 Req3.3: The Address Registration Option used in the ND registration 1669 SHOULD be extended to carry the relevant forms of unique Identifier. 1671 Req3.4: The Neighbour Discovery should specify the formation of a 1672 site-local address that follows the security recommendations from 1673 [RFC7217]. 1675 B.4. Requirements Related to Proxy Operations 1677 Duty-cycled devices may not be able to answer themselves to a lookup 1678 from a node that uses IPv6 ND on a Backbone and may need a proxy. 1679 Additionally, the duty-cycled device may need to rely on the 6LBR to 1680 perform registration to the 6BBR. 1682 The ND registration method SHOULD defend the addresses of duty-cycled 1683 devices that are sleeping most of the time and not capable to defend 1684 their own Addresses. 1686 Related requirements are: 1688 Req4.1: The registration mechanism SHOULD enable a third party to 1689 proxy register an Address on behalf of a 6LoWPAN node that may be 1690 sleeping or located deeper in an LLN mesh. 1692 Req4.2: The registration mechanism SHOULD be applicable to a duty- 1693 cycled device regardless of the link type, and enable a 6BBR to 1694 operate as a proxy to defend the Registered Addresses on its behalf. 1696 Req4.3: The registration mechanism SHOULD enable long sleep 1697 durations, in the order of multiple days to a month. 1699 B.5. Requirements Related to Security 1701 In order to guarantee the operations of the 6LoWPAN ND flows, the 1702 spoofing of the 6LR, 6LBR and 6BBRs roles should be avoided. Once a 1703 node successfully registers an address, 6LoWPAN ND should provide 1704 energy-efficient means for the 6LBR to protect that ownership even 1705 when the node that registered the address is sleeping. 1707 Internet-Draft An Update to 6LoWPAN ND February 1709 In particular, the 6LR and the 6LBR then should be able to verify 1710 whether a subsequent registration for a given address comes from the 1711 original node. 1713 In a LLN it makes sense to base security on layer-2 security. During 1714 bootstrap of the LLN, nodes join the network after authorization by a 1715 Joining Assistant (JA) or a Commissioning Tool (CT). After joining 1716 nodes communicate with each other via secured links. The keys for 1717 the layer-2 security are distributed by the JA/CT. The JA/CT can be 1718 part of the LLN or be outside the LLN. In both cases it is needed 1719 that packets are routed between JA/CT and the joining node. 1721 Related requirements are: 1723 Req5.1: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1724 the 6LR, 6LBR and 6BBR to authenticate and authorize one another for 1725 their respective roles, as well as with the 6LoWPAN Node for the role 1726 of 6LR. 1728 Req5.2: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1729 the 6LR and the 6LBR to validate new registration of authorized 1730 nodes. Joining of unauthorized nodes MUST be prevented. 1732 Req5.3: 6LoWPAN ND security mechanisms SHOULD lead to small packet 1733 sizes. In particular, the NS, NA, DAR and DAC messages for a re- 1734 registration flow SHOULD NOT exceed 80 octets so as to fit in a 1735 secured IEEE Std.802.15.4 [IEEEstd802154] frame. 1737 Req5.4: Recurrent 6LoWPAN ND security operations MUST NOT be 1738 computationally intensive on the LoWPAN Node CPU. When a Key hash 1739 calculation is employed, a mechanism lighter than SHA-1 SHOULD be 1740 preferred. 1742 Req5.5: The number of Keys that the 6LoWPAN Node needs to manipulate 1743 SHOULD be minimized. 1745 Req5.6: The 6LoWPAN ND security mechanisms SHOULD enable the 1746 variation of CCM [RFC3610] called CCM* for use at both Layer 2 and 1747 Layer 3, and SHOULD enable the reuse of security code that has to be 1748 present on the device for upper layer security such as TLS. 1750 Req5.7: Public key and signature sizes SHOULD be minimized while 1751 maintaining adequate confidentiality and data origin authentication 1752 for multiple types of applications with various degrees of 1753 criticality. 1755 Req5.8: Routing of packets should continue when links pass from the 1756 unsecured to the secured state. 1758 Internet-Draft An Update to 6LoWPAN ND February 1760 Req5.9: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1761 the 6LR and the 6LBR to validate whether a new registration for a 1762 given address corresponds to the same 6LoWPAN Node that registered it 1763 initially, and, if not, determine the rightful owner, and deny or 1764 clean-up the registration that is duplicate. 1766 B.6. Requirements Related to Scalability 1768 Use cases from Automatic Meter Reading (AMR, collection tree 1769 operations) and Advanced Metering Infrastructure (AMI, bi-directional 1770 communication to the meters) indicate the needs for a large number of 1771 LLN nodes pertaining to a single RPL DODAG (e.g. 5000) and connected 1772 to the 6LBR over a large number of LLN hops (e.g. 15). 1774 Related requirements are: 1776 Req6.1: The registration mechanism SHOULD enable a single 6LBR to 1777 register multiple thousands of devices. 1779 Req6.2: The timing of the registration operation should allow for a 1780 large latency such as found in LLNs with ten and more hops. 1782 B.7. Matching Requirements with Specifications 1784 I-drafts/RFCs addressing requirements 1786 +-------------+-----------------------------------------+ 1787 | Requirement | Document | 1788 +-------------+-----------------------------------------+ 1789 | Req1.1 | [I-D.ietf-6lo-backbone-router] | 1790 | | | 1791 | Req1.2 | [RFC6775] | 1792 | | | 1793 | Req1.3 | [RFC6775] | 1794 | | | 1795 | Req1.4 | This RFC | 1796 | | | 1797 | Req2.1 | This RFC | 1798 | | | 1799 | Req2.2 | This RFC | 1800 | | | 1801 | Req2.3 | | 1802 | | | 1803 | Req3.1 | Technology Dependant | 1804 | | | 1805 | Req3.2 | Technology Dependant | 1806 | | | 1807 | Req3.3 | Technology Dependant | 1809 Internet-Draft An Update to 6LoWPAN ND February 1811 | | | 1812 | Req3.4 | Technology Dependant | 1813 | | | 1814 | Req4.1 | This RFC | 1815 | | | 1816 | Req4.2 | This RFC | 1817 | | | 1818 | Req4.3 | [RFC6775] | 1819 | | | 1820 | Req5.1 | | 1821 | | | 1822 | Req5.2 | [I-D.ietf-6lo-ap-nd] | 1823 | | | 1824 | Req5.3 | | 1825 | | | 1826 | Req5.4 | | 1827 | | | 1828 | Req5.5 | [I-D.ietf-6lo-ap-nd] | 1829 | | | 1830 | Req5.6 | [I-D.struik-lwip-curve-representations] | 1831 | | | 1832 | Req5.7 | [I-D.ietf-6lo-ap-nd] | 1833 | | | 1834 | Req5.8 | | 1835 | | | 1836 | Req5.9 | [I-D.ietf-6lo-ap-nd] | 1837 | | | 1838 | Req6.1 | This RFC | 1839 | | | 1840 | Req6.2 | This RFC | 1841 +-------------+-----------------------------------------+ 1843 Table 7: Addressing requirements 1845 Appendix C. Subset of a 6LoWPAN Glossary 1847 This document often uses the followng acronyms: 1849 6BBR: 6LoWPAN Backbone Router (proxy for the registration) 1851 6LBR: 6LoWPAN Border Router (authoritative on DAD) 1853 6LN: 6LoWPAN Node 1855 6LR: 6LoWPAN Router (relay to the registration process) 1857 6CIO: Capability Indication Option 1859 Internet-Draft An Update to 6LoWPAN ND February 1861 (E)ARO: (Extended) Address Registration Option 1863 DAD: Duplicate Address Detection 1865 LLN: Low Power Lossy Network (a typical IoT network) 1867 NCE: Neighbor Cache Entry 1869 TSCH: TimeSlotted Channel Hopping 1871 TID: Transaction ID (a sequence counter in the EARO) 1873 Authors' Addresses 1875 Pascal Thubert (editor) 1876 Cisco Systems, Inc 1877 Building D (Regus) 45 Allee des Ormes 1878 Mougins - Sophia Antipolis 1879 France 1881 Phone: +33 4 97 23 26 34 1882 Email: pthubert@cisco.com 1884 Erik Nordmark 1885 Zededa 1886 Santa Clara, CA 1887 United States of America 1889 Email: nordmark@sonic.net 1891 Samita Chakrabarti 1892 Verizon 1893 San Jose, CA 1894 United States of America 1896 Email: samitac.ietf@gmail.com 1898 Charles E. Perkins 1899 Futurewei 1900 2330 Central Expressway 1901 Santa Clara 95050 1902 United States of America 1904 Email: charliep@computer.org