idnits 2.17.1 draft-ietf-6lo-rfc6775-update-14.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 : ---------------------------------------------------------------------------- ** 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 23, 2018) is 2253 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 1424, but not defined == Missing Reference: 'IEEEstd802154' is mentioned on line 1644, but not defined == Unused Reference: 'I-D.ietf-ipv6-multilink-subnets' is defined on line 1273, but no explicit reference was found in the text == Outdated reference: A later version (-23) exists of draft-ietf-6lo-ap-nd-06 == Outdated reference: A later version (-20) exists of draft-ietf-6lo-backbone-router-06 == 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 == Outdated reference: A later version (-18) exists of draft-ietf-roll-efficient-npdao-01 -- Obsolete informational reference (is this intentional?): RFC 4941 (Obsoleted by RFC 8981) Summary: 1 error (**), 0 flaws (~~), 10 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 27, 2018 S. Chakrabarti 7 Verizon 8 C. Perkins 9 Futurewei 10 February 23, 2018 12 Registration Extensions for 6LoWPAN Neighbor Discovery 13 draft-ietf-6lo-rfc6775-update-14 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 27, 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 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 59 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 3. Applicability of Address Registration Options . . . . . . . . 4 61 4. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 5 62 4.1. Extended Address Registration Option (EARO) . . . . . . . 6 63 4.2. Transaction ID . . . . . . . . . . . . . . . . . . . . . 7 64 4.2.1. Comparing TID values . . . . . . . . . . . . . . . . 8 65 4.3. Registration Unique ID . . . . . . . . . . . . . . . . . 9 66 4.4. Extended Duplicate Address Messages . . . . . . . . . . . 10 67 4.5. Registering the Target Address . . . . . . . . . . . . . 10 68 4.6. Link-Local Addresses and Registration . . . . . . . . . . 11 69 4.7. Maintaining the Registration States . . . . . . . . . . . 12 70 5. Detecting Enhanced ARO Capability Support . . . . . . . . . . 14 71 6. Extended ND Options And Messages . . . . . . . . . . . . . . 14 72 6.1. Enhanced Address Registration Option (EARO) . . . . . . . 14 73 6.2. Extended Duplicate Address Message Formats . . . . . . . 17 74 6.3. New 6LoWPAN Capability Bits in the Capability Indication 75 Option . . . . . . . . . . . . . . . . . . . . . . . . . 18 76 7. Backward Compatibility . . . . . . . . . . . . . . . . . . . 18 77 7.1. Discovering the capabilities of an ND peer . . . . . . . 19 78 7.1.1. Using the "E" Flag in the 6CIO . . . . . . . . . . . 19 79 7.1.2. Using the "T" Flag in the EARO . . . . . . . . . . . 19 80 7.2. RFC6775-only 6LoWPAN Node . . . . . . . . . . . . . . . . 20 81 7.3. RFC6775-only 6LoWPAN Router . . . . . . . . . . . . . . . 20 82 7.4. RFC6775-only 6LoWPAN Border Router . . . . . . . . . . . 21 83 8. Security Considerations . . . . . . . . . . . . . . . . . . . 21 84 9. Privacy Considerations . . . . . . . . . . . . . . . . . . . 22 85 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 86 10.1. ARO Flags . . . . . . . . . . . . . . . . . . . . . . . 23 87 10.2. ICMP Codes . . . . . . . . . . . . . . . . . . . . . . . 24 88 10.3. New ARO Status values . . . . . . . . . . . . . . . . . 25 89 10.4. New 6LoWPAN capability Bits . . . . . . . . . . . . . . 25 90 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 26 91 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 92 12.1. Normative References . . . . . . . . . . . . . . . . . . 26 93 12.2. Informative References . . . . . . . . . . . . . . . . . 27 94 12.3. External Informative References . . . . . . . . . . . . 31 95 Appendix A. Applicability and Requirements Served . . . . . . . 31 96 Appendix B. Requirements . . . . . . . . . . . . . . . . . . . . 32 97 B.1. Requirements Related to Mobility . . . . . . . . . . . . 32 98 B.2. Requirements Related to Routing Protocols . . . . . . . . 33 99 B.3. Requirements Related to the Variety of Low-Power Link 100 types . . . . . . . . . . . . . . . . . . . . . . . . . . 34 101 B.4. Requirements Related to Proxy Operations . . . . . . . . 35 102 B.5. Requirements Related to Security . . . . . . . . . . . . 35 103 B.6. Requirements Related to Scalability . . . . . . . . . . . 36 104 B.7. Requirements Related to Operations and Management . . . . 37 105 B.8. Matching Requirements with Specifications . . . . . . . . 38 106 Appendix C. Subset of a 6LoWPAN Glossary . . . . . . . . . . . . 39 107 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 109 1. Introduction 111 The scope of this draft is an IPv6 Low Power Network including star 112 and mesh topologies. This specification modifies and extends the 113 behavior and protocol elements of "Neighbor Discovery Optimization 114 for IPv6 over Low-Power Wireless Personal Area Networks" (6LoWPAN ND) 115 [RFC6775] to enable additional capabilities and enhancements such as: 117 o determining the freshest location in case of mobility (T-bit) 118 o Simplifying the registration flow for link-local addresses 119 o Support of a Leaf node in a route-over network 120 o Proxy registration in a route-over network 121 o Registration to a IPv6 ND proxy over a Backbone Link 122 o Clarification of support for privacy and temporary addresses 124 2. Terminology 126 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 127 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 128 document are to be interpreted as described in [RFC2119]. 130 The Terminology used in this document is consistent with and 131 incorporates that described in Terms Used in Routing for Low-Power 132 and Lossy Networks (LLNs). [RFC7102]. 134 Other terms in use in LLNs are found in Terminology for Constrained- 135 Node Networks [RFC7228]. 137 A glossary of some classical 6LoWPAN acronyms such as ARO, 6LN, 6LBR 138 and 6CIO is given in Appendix C. 140 Readers are expected to be familiar with all the terms and concepts 141 that are discussed in 143 o "Neighbor Discovery for IP version 6" [RFC4861], 144 o "IPv6 Stateless Address Autoconfiguration" [RFC4862], 145 o "Problem Statement and Requirements for IPv6 over Low-Power 146 Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606], 147 o "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): 148 Overview, Assumptions, Problem Statement, and Goals" [RFC4919] and 149 o "Neighbor Discovery Optimization for Low-power and Lossy Networks" 150 [RFC6775]. 152 as well as the following terminology: 154 Backbone Link: An IPv6 transit link that interconnects two or more 155 Backbone Routers. It is expected to be of high speed compared 156 to the LLN in order to carry the traffic that is required to 157 federate multiple segments of the potentially large LLN into a 158 single IPv6 subnet. 159 Backbone Router: A logical network function in an IPv6 router that 160 federates a LLN over a Backbone Link. In order to do so, the 161 Backbone Router (6BBR) proxies the 6LoWPAN ND operations 162 detailed in this document onto the matching operations that run 163 over the backbone, typically IPv6 ND. Note that 6BBR is a 164 logical function, just like 6LR and 6LBR, and that the same 165 physical router may operate all three. 166 Extended LLN: The aggregation of multiple LLNs as defined in 167 [RFC4919], interconnected by a Backbone Link via Backbone 168 Routers, and forming a single IPv6 MultiLink Subnet. 169 Registration: The process during which a 6LN registers its 170 address(es) with the Border Router so the 6BBR can serve as 171 proxy for ND operations over the Backbone. 172 Binding: The association between an IP address and a MAC address, a 173 port and/or other information about the node that owns the IP 174 address. 175 Registered Node: The node for which the registration is performed, 176 and which owns the fields in the Extended ARO option. 177 Registering Node: The node that performs the registration to the 178 6BBR, which may proxy for the registered node. 179 Registered Address: An address owned by the Registered Node that was 180 or is being registered. 181 RFC6775-only: Applied to a type of node or a type of message, this 182 adjective indicates a behavior that is strictly as specified by 183 [RFC6775] as opposed to updated with this specification. 184 updated: Qualifies a 6LN, a 6LR or a 6LBR that supports this 185 specification. 187 3. Applicability of Address Registration Options 189 The purpose of the Address Registration Option (ARO) in [RFC6775] is 190 to facilitate duplicate address detection (DAD) for hosts as well as 191 to populate Neighbor Cache Entries (NCEs) [RFC4861] in the routers. 193 This reduces the reliance on multicast operations, which are often as 194 intrusive as broadcast, in IPv6 ND operations. 196 With this specification, a failed or useless registration can be 197 detected by a 6LR or a 6LBR for reasons other than address 198 duplication. Examples include: the router having run out of space; a 199 registration bearing a stale sequence number perhaps denoting a 200 movement of the host after the registration was placed; a host 201 misbehaving and attempting to register an invalid address such as the 202 unspecified address [RFC4291]; or a host using an address that is not 203 topologically correct on that link. 205 In such cases the host will receive an error to help diagnose the 206 issue and may retry, possibly with a different address, and possibly 207 registering to a different router, depending on the returned error. 208 The ability to return errors to address registrations is not intended 209 to be used to restrict the ability of hosts to form and use multiple 210 addresses. Rather, the intention is to conform to "Host Address 211 Availability Recommendations" [RFC7934]. 213 In particular, the freedom to form and register addresses is needed 214 for enhanced privacy; each host may register a number of addresses 215 using mechanisms such as "Privacy Extensions for Stateless Address 216 Autoconfiguration (SLAAC) in IPv6" [RFC4941]. 218 In IPv6 ND [RFC4861], a router needs enough storage to hold NCEs for 219 all the addresses to which it can currently forward packets. A 220 router using the Address Registration mechanism also needs enough 221 storage to hold NCEs for all the addresses that may be registered to 222 it, regardless of whether or not they are actively communicating. 223 The number of registrations supported by a 6LoWPAN Router (6LR) or 224 6LoWPAN Border Router (6LBR) MUST be clearly documented by the vendor 225 and the dynamic use of associated resources SHOULD be made available 226 to the network operator, e.g. to a management console. 228 A network administrator MUST deploy updated 6LR/6LBRs to support the 229 number and type of devices in their network, based on the number of 230 IPv6 addresses that those devices require and their address renewal 231 rate and behavior. 233 4. Updating RFC 6775 235 This specification introduces the Extended Address Registration 236 Option (EARO) based on the ARO as defined [RFC6775]; in particular a 237 "T" flag is added that MUST be set in NS messages when this 238 specification is used, and echoed in NA messages to confirm that the 239 protocol is supported. 241 The extensions to the ARO option are used in the Duplicate Address 242 Request (DAR) and Duplicate Address Confirmation (DAC) messages, so 243 as to convey the additional information all the way to the 6LBR. In 244 turn the 6LBR may proxy the registration using IPv6 ND over a 245 Backbone Link as illustrated in Figure 1. Note that this 246 specification avoids the extended DAR flow for Link Local Addresses 247 in a Route-Over [RFC6606] topology. 249 6LN 6LR 6LBR 6BBR 250 | | | | 251 | NS(EARO) | | | 252 |--------------->| | | 253 | | Extended DAR | | 254 | |-------------->| | 255 | | | | 256 | | | proxy NS(EARO) | 257 | | |--------------->| 258 | | | | NS(DAD) 259 | | | | ------> 260 | | | | 261 | | | | 262 | | | proxy NA(EARO) | 263 | | |<---------------| 264 | | Extended DAC | | 265 | |<--------------| | 266 | NA(EARO) | | | 267 |<---------------| | | 268 | | | | 270 Figure 1: (Re-)Registration Flow 272 In order to support various types of link layers, it is RECOMMENDED 273 to allow multiple registrations, including for privacy / temporary 274 addresses. It is also RECOMMENDED to provide new mechanisms to help 275 clean up stale registration state as soon as possible. 277 Section 5 of [RFC6775] specifies how a 6LN bootstraps an interface 278 and locates available 6LRs; a Registering Node SHOULD prefer 279 registering to a 6LR that is found to support this specification, as 280 discussed in Section 7.1, over an RFC6775-only one. 282 4.1. Extended Address Registration Option (EARO) 284 The Extended ARO (EARO) replaces the ARO and is backward compatible 285 with it. More details on backward compatibility can be found in 286 Section 7. 288 The semantics of the ARO are modified as follows: 290 o The address that is being registered with a Neighbor Solicitation 291 (NS) with an EARO is now the Target Address, as opposed to the 292 Source Address as specified in [RFC6775] (see Section 4.5). This 293 change enables a 6LBR to use one of its addresses as source to the 294 proxy-registration of an address that belongs to a LLN Node to a 295 6BBR. This also limits the use of an address as source address 296 before it is registered and the associated DAD process is 297 complete. 298 o The Unique ID in the EARO Option is not required to be a MAC 299 address (see Section 4.3). 300 o This document specifies a new flag in the EARO option, the 'R' 301 flag, used by a 6LN, when registering, to indicate that this 6LN 302 is not a router and that it will not handle its own reachability. 303 If the 'R' flag is set, the registering node expects that the 6LR 304 ensures reachability for the registered address by means of 305 routing or proxying ND. A host SHOULD set the 'R' flag. When not 306 set, the 'R' flag indicates that the Registering Node is a router, 307 which for instance participates to a route-over routing protocol 308 such as RPL [RFC6550], and which will take care of injecting the 309 address over the routing protocol by itself. A router SHOULD NOT 310 set the 'R' flag. 311 o The specification introduces a Transaction ID (TID) field in the 312 EARO (see Section 4.2). The TID MUST be provided by a node that 313 supports this specification and a new "T" flag MUST be set to 314 indicate so. 315 o Finally, this specification introduces new status codes to help 316 diagnose the cause of a registration failure (see Table 1). 318 4.2. Transaction ID 320 The Transaction ID (TID) is a sequence number that is incremented 321 with each re-registration. The TID is used to detect the freshness 322 of the registration request and to detect one single registration by 323 multiple 6LoWPAN border routers (e.g., 6LBRs and 6BBRs) supporting 324 the same 6LoWPAN. The TID may also be used by the network to track 325 the sequence of movements of a node in order to route to the current 326 (freshest known) location of a moving node. 328 When a Registered Node is registered with multiple 6BBRs in parallel, 329 the same TID SHOULD be used. This enables the 6BBRs to determine 330 that the registrations are the same, and distinguish that situation 331 from a movement (see section 4 of [I-D.ietf-6lo-backbone-router] and 332 Section 4.7 below). 334 4.2.1. Comparing TID values 336 The TID is a sequence counter and its operation is the exact match of 337 the path sequence specified in RPL, the IPv6 Routing Protocol for 338 Low-Power and Lossy Networks [RFC6550] specification. 340 In order to keep this document self-contained and yet compatible, the 341 text below is an exact copy from section 7.2. "Sequence Counter 342 Operation" of [RFC6550]. 344 A TID is deemed to be fresher than another when its value is greater 345 per the operations detailed in this section. 347 The TID range is subdivided in a 'lollipop' fashion ([Perlman83]), 348 where the values from 128 and greater are used as a linear sequence 349 to indicate a restart and bootstrap the counter, and the values less 350 than or equal to 127 used as a circular sequence number space of size 351 128 as in [RFC1982]. Consideration is given to the mode of operation 352 when transitioning from the linear region to the circular region. 353 Finally, when operating in the circular region, if sequence numbers 354 are detected to be too far apart then they are not comparable, as 355 detailed below. 357 A window of comparison, SEQUENCE_WINDOW = 16, is configured based on 358 a value of 2^N, where N is defined to be 4 in this specification. 360 For a given sequence counter, 362 1. The sequence counter SHOULD be initialized to an implementation 363 defined value which is 128 or greater prior to use. A 364 recommended value is 240 (256 - SEQUENCE_WINDOW). 365 2. When a sequence counter increment would cause the sequence 366 counter to increment beyond its maximum value, the sequence 367 counter MUST wrap back to zero. When incrementing a sequence 368 counter greater than or equal to 128, the maximum value is 255. 369 When incrementing a sequence counter less than 128, the maximum 370 value is 127. 371 3. When comparing two sequence counters, the following rules MUST be 372 applied: 374 1. When a first sequence counter A is in the interval [128..255] 375 and a second sequence counter B is in [0..127]: 377 1. If (256 + B - A) is less than or equal to 378 SEQUENCE_WINDOW, then B is greater than A, A is less than 379 B, and the two are not equal. 381 2. If (256 + B - A) is greater than SEQUENCE_WINDOW, then A 382 is greater than B, B is less than A, and the two are not 383 equal. 385 For example, if A is 240, and B is 5, then (256 + 5 - 240) is 386 21. 21 is greater than SEQUENCE_WINDOW (16), thus 240 is 387 greater than 5. As another example, if A is 250 and B is 5, 388 then (256 + 5 - 250) is 11. 11 is less than SEQUENCE_WINDOW 389 (16), thus 250 is less than 5. 390 2. In the case where both sequence counters to be compared are 391 less than or equal to 127, and in the case where both 392 sequence counters to be compared are greater than or equal to 393 128: 395 1. If the absolute magnitude of difference between the two 396 sequence counters is less than or equal to 397 SEQUENCE_WINDOW, then a comparison as described in 398 [RFC1982] is used to determine the relationships greater 399 than, less than, and equal. 400 2. If the absolute magnitude of difference of the two 401 sequence counters is greater than SEQUENCE_WINDOW, then a 402 desynchronization has occurred and the two sequence 403 numbers are not comparable. 404 4. If two sequence numbers are determined to be not comparable, i.e. 405 the results of the comparison are not defined, then a node should 406 give precedence to the sequence number that was most recently 407 incremented. Failing this, the node should select the sequence 408 number in order to minimize the resulting changes to its own 409 state. 411 4.3. Registration Unique ID 413 The Registration Unique ID (RUID) generalizes the EUI-64 field of the 414 ARO in [RFC6775]. It is unique to a registration and enables to 415 identify the tentative to register a duplicate address, which is 416 characterized by a different RUID in the conflicting registrations 417 (more in Section 4.6) 419 With this specification, the Registration Unique ID is allowed to be 420 extended to different types of identifier, as long as the type is 421 clearly indicated. For instance, the type can be a cryptographic 422 string and used to prove the ownership of the registration as 423 discussed in "Address Protected Neighbor Discovery for Low-power and 424 Lossy Networks" [I-D.ietf-6lo-ap-nd]. In order to support the flows 425 related to the proof of ownership, this specification introduces new 426 status codes "Validation Requested" and "Validation Failed" in the 427 EARO. 429 The Registering Node SHOULD store the unique ID, or a way to generate 430 that ID, in persistent memory. Otherwise, if a reboot causes a loss 431 of memory, re-registering the same address could be impossible until 432 the 6LBR times out the previous registration. 434 4.4. Extended Duplicate Address Messages 436 In order to map the new EARO content in the DAR/DAC messages, a new 437 TID field is added to the Extended DAR (EDAR) and the Extended DAC 438 (EDAC) messages as a replacement to a Reserved field, and an odd 439 value of the ICMP Code indicates support for the TID, to transport 440 the "T" flag. 442 In order to prepare for future extensions, and though no option has 443 been defined for the Duplicate Address messages, implementations MUST 444 expect ND options after the main body, and MUST ignore them. 446 As for the EARO, the Extended Duplicate Address messages are backward 447 compatible with the RFC6775-only versions, and remarks concerning 448 backwards compatibility for the protocol between the 6LN and the 6LR 449 apply similarly between a 6LR and a 6LBR. 451 4.5. Registering the Target Address 453 The Registering Node is the node that performs the registration to 454 the 6BBR. As in [RFC6775], it may be the Registered Node as well, in 455 which case it registers one of its own addresses, and indicates its 456 own MAC Address as Source Link Layer Address (SLLA) in the NS(EARO). 458 This specification adds the capability to proxy the registration 459 operation on behalf of a Registered Node that is reachable over a LLN 460 mesh. In that case, if the Registered Node is reachable from the 461 6BBR over a Mesh-Under mesh, the Registering Node indicates the MAC 462 Address of the Registered Node as the SLLA in the NS(EARO). If the 463 Registered Node is reachable over a Route-Over mesh from the 464 Registering Node, the SLLA in the NS(ARO) is that of the Registering 465 Node. This enables the Registering Node to attract the packets from 466 the 6BBR and route them over the LLN to the Registered Node. 468 In order to enable the latter operation, this specification changes 469 the behavior of the 6LN and the 6LR so that the Registered Address is 470 found in the Target Address field of the NS and NA messages as 471 opposed to the Source Address. With this convention, a TLLA option 472 indicates the link-layer address of the 6LN that owns the address, 473 whereas the SLLA Option in a NS message indicates that of the 474 Registering Node, which can be the owner device, or a proxy. 476 The Registering Node is reachable from the 6LR, and is also the one 477 expecting packets for the 6LN. Therefore, it MUST place its own Link 478 Layer Address in the SLLA Option that MUST always be placed in a 479 registration NS(EARO) message. This maintains compatibility with 480 RFC6775-only 6LoWPAN ND [RFC6775]. 482 4.6. Link-Local Addresses and Registration 484 Considering that LLN nodes are often not wired and may move, there is 485 no guarantee that a Link-Local address stays unique between a 486 potentially variable and unbounded set of neighboring nodes. 488 Compared to [RFC6775], this specification only requires that a Link- 489 Local address is unique from the perspective of the two nodes that 490 use it to communicate (e.g., the 6LN and the 6LR in an NS/NA 491 exchange). This simplifies the DAD process in a Route-Over topology 492 for Link-Local addresses, by avoiding an exchange of Duplicate 493 Address messages between the 6LR and a 6LBR for those addresses. 495 In more details: 497 An exchange between two nodes using Link-Local addresses implies that 498 they are reachable over one hop and that at least one of the 2 nodes 499 acts as a 6LR. A node MUST register a Link-Local address to a 6LR in 500 order to obtain reachability from that 6LR beyond the current 501 exchange, and in particular to use the Link-Local address as source 502 address to register other addresses, e.g., global addresses. 504 If there is no collision with an address previously registered to 505 this 6LR by another 6LN, then the Link-Local address is unique from 506 the standpoint of this 6LR and the registration is acceptable. 507 Alternatively, two different 6LRs might expose the same Link-Local 508 address but different link-layer addresses. In that case, a 6LN MUST 509 only interact with at most one of the 6LRs. 511 The DAD process between the 6LR and a 6LBR, which is based on an 512 exchange of Duplicate Address messages, does not need to take place 513 for Link-Local addresses. 515 When registering to a 6LR that conforms to this specification, a node 516 MUST use a Link-Local address as the source address of the 517 registration, whatever the type of IPv6 address that is being 518 registered. That Link-Local Address MUST be either an address that 519 is already registered to the 6LR, or the address that is being 520 registered. 522 When a Registering Node does not have an already-Registered Address, 523 it MUST register a Link-Local address, using it as both the Source 524 and the Target Address of an NS(EARO) message. In that case, it is 525 RECOMMENDED to use a Link-Local address that is (expected to be) 526 globally unique, e.g., derived from a globally unique hardware MAC 527 address. An EARO option in the response NA indicates that the 6LR 528 supports this specification. 530 Since there is no Duplicate Address exchange for Link-Local 531 addresses, the 6LR may answer immediately to the registration of a 532 Link-Local address, based solely on its existing state and the Source 533 Link-Layer Option that MUST be placed in the NS(EARO) message as 534 required in [RFC6775]. 536 A node needs to register its IPv6 Global Unicast IPv6 Addresses 537 (GUAs) to a 6LR in order to establish global reachability for these 538 addresses via that 6LR. When registering with an updated 6LR, a 539 Registering Node does not use a GUA as Source Address, in contrast to 540 a node that complies to [RFC6775]. For non-Link-Local addresses, the 541 Duplicate Address exchange MUST conform to [RFC6775], but the 542 extended formats described in this specification for the DAR and the 543 DAC are used to relay the extended information in the case of an 544 EARO. 546 An ND message from the 6BBR over the Backbone Link that is proxied on 547 behalf of a Registered Node MUST carry the most recent EARO option 548 seen for that node. A NS/NA with an EARO and a NS/NA without a EARO 549 thus represent different nodes; this is considered as an address 550 duplication and the first owner wins. If the first owner is the 551 registration (i.e. with an NS(EARO)) then the 6BBR defends the 552 address over the Backbone Link as prescribed by [RFC4862]. If the 553 first owner is a node over the Backbone Link (no ARO), then the 6BBR 554 rejects the proxy-registration with a Status of "Duplicate Address". 556 4.7. Maintaining the Registration States 558 This section discusses protocol actions that involve the Registering 559 Node, the 6LR and the 6LBR. It must be noted that the portion that 560 deals with a 6LBR only applies to those addresses that are registered 561 to it; as discussed in Section 4.6, this is not the case for Link- 562 Local addresses. The registration state includes all data that is 563 stored in the router relative to that registration, in particular, 564 but not limited to, an NCE in a 6LR. 6LBRs and 6BBRs may store 565 additional registration information in more complex data structures 566 and use protocols that are out of scope of this document to keep them 567 synchronized when they are distributed. 569 When its resource available for Neighbor Cache Entries are exhausted, 570 a 6LR cannot accept a new registration. In that situation, the EARO 571 is returned in a NA message with a Status Code of "Neighbor Cache 572 Full", and the Registering Node may attempt to register to another 573 6LR. 575 If the registry in the 6LBR is saturated, then the LBR cannot decide 576 whether a new address is a duplicate. In that case, the 6LBR replies 577 to a EDAR message with an EDAC message that carries a new Status Code 578 indicating "6LBR Registry saturated" Table 1. Note: this code is 579 used by 6LBRs instead of "Neighbor Cache Full" when responding to a 580 Duplicate Address message exchange and is passed on to the 581 Registering Node by the 6LR. There is no point for the node to retry 582 this registration immediately via another 6LR, since the problem is 583 global to the network. The node may either abandon that address, de- 584 register other addresses first to make room, or keep the address in 585 TENTATIVE state and retry later. 587 A node renews an existing registration by sending a new NS(EARO) 588 message for the Registered Address. In order to refresh the 589 registration state in the 6LBR, the registration MUST be reported to 590 the 6LBR. 592 A node that ceases to use an address SHOULD attempt to de-register 593 that address from all the 6LRs to which it has registered the 594 address, which is achieved using an NS(EARO) message with a 595 Registration Lifetime of 0. 597 A node that moves away from a particular 6LR SHOULD attempt to de- 598 register all of its addresses registered to that 6LR and register to 599 a new 6LR with an incremented TID. When/if the node shows up 600 elsewhere, an asynchronous NA(EARO) or EDAC message with a Status 601 Code of "Moved" SHOULD be used to clean up the state in the previous 602 location. For instance, as described in 603 [I-D.ietf-6lo-backbone-router], the "Moved" status can be used by a 604 6BBR in an NA(EARO) message to indicate that the ownership of the 605 proxy state on the Backbone Link was transferred to another 6BBR, as 606 the consequence of a movement of the device. If the receiver of the 607 message has a state corresponding to the related address, it SHOULD 608 propagate the status down the forwarding path to the Registered node 609 (e.g. reversing an existing RPL [RFC6550] path as prescribed in 610 [I-D.ietf-roll-efficient-npdao]) and whether it could or not do so, 611 the receiver MUST clean up the said state. 613 Upon receiving an NS(EARO) message with a Registration Lifetime of 0 614 and determining that this EARO is the freshest for a given NCE (see 615 Section 4.2), a 6LR cleans up its NCE. If the address was registered 616 to the 6LBR, then the 6LR MUST report to the 6LBR, through a 617 Duplicate Address exchange with the 6LBR, indicating the null 618 Registration Lifetime and the latest TID that this 6LR is aware of. 620 Upon receiving the Extended DAR message, the 6LBR evaluates if this 621 is the most recent TID it has received for that particular registry 622 entry. If so, then the entry is scheduled to be removed, and the 623 EDAR is answered with an EDAC message bearing a Status of "Success". 624 Otherwise, a Status Code of "Moved" is returned instead, and the 625 existing entry is maintained. 627 When an address is scheduled to be removed, the 6LBR SHOULD keep its 628 entry in a DELAY state for a configurable period of time, so as to 629 protect a mobile node that de-registered from one 6LR and did not 630 register yet to a new one, or the new registration did not reach yet 631 the 6LBR due to propagation delays in the network. Once the DELAY 632 time is passed, the 6LBR silently removes its entry. 634 5. Detecting Enhanced ARO Capability Support 636 The "Generic Header Compression for IPv6 over 6LoWPANs" [RFC7400] 637 introduces the 6LoWPAN Capability Indication Option (6CIO) to 638 indicate a node's capabilities to its peers. 640 Section 6.3 defines new flags for the 6CIO to signal support for 641 EARO, as well as the node's capability to act as a 6LR, 6LBR and 642 6BBR. Section 7.1.1 specifies how the "E" flag can be used to 643 provide backward compatibility. 645 The 6CIO is typically sent in a Router Solicitation (RS) message. 646 When used to signal capabilities per this specification, the 6CIO is 647 typically present in Router Advertisement (RA) messages but can also 648 be present in RS, Neighbor Solicitation (NS) and Neighbor 649 Advertisement (NA) messages. 651 6. Extended ND Options And Messages 653 This specification does not introduce new options, but it modifies 654 existing ones and updates the associated behaviors as specified in 655 the following subsections. 657 6.1. Enhanced Address Registration Option (EARO) 659 The Address Registration Option (ARO) is defined in section 4.1 of 660 [RFC6775]. 662 The Enhanced Address Registration Option (EARO) updates the ARO 663 option within Neighbor Discovery NS and NA messages between a 6LN and 664 its 6LR. On the other hand, the Extended Duplicate Address messages, 665 EDAR and EDAC, replace the DAR and DAC messages so as to transport 666 the new information between 6LRs and 6LBRs across LLN meshes such as 667 6TiSCH networks. 669 An NS message with an EARO option is a registration if and only if it 670 also carries an SLLAO option. The EARO option also used in NS and NA 671 messages between Backbone Routers [I-D.ietf-6lo-backbone-router] over 672 the Backbone Link to sort out the distributed registration state; in 673 that case, it does not carry the SLLAO option and is not confused 674 with a registration. 676 When using the EARO option, the address being registered is found in 677 the Target Address field of the NS and NA messages. 679 The EARO extends the ARO and is indicated by the "T" flag set. The 680 format of the EARO option is as follows: 682 0 1 2 3 683 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 684 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 685 | Type | Length = 2 | Status | Reserved | 686 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 687 | Reserved |R|T| TID | Registration Lifetime | 688 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 689 | | 690 + Registration Unique ID (EUI-64 or equivalent) + 691 | | 692 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 694 Figure 2: EARO 696 Option Fields 698 Type: 33 699 Length: 8-bit unsigned integer. The length of the option in 700 units of 8 bytes. Always 2. 701 Status: 8-bit unsigned integer. Indicates the status of a 702 registration in the NA response. MUST be set to 0 in 703 NS messages. See Table 1 below. 705 +-------+-----------------------------------------------------------+ 706 | Value | Description | 707 +-------+-----------------------------------------------------------+ 708 | 0..2 | See [RFC6775]. Note: a Status of 1 "Duplicate Address" | 709 | | applies to the Registered Address. If the Source Address | 710 | | conflicts with an existing registration, "Duplicate | 711 | | Source Address" should be used. | 712 | | | 713 | 3 | Moved: The registration failed because it is not the | 714 | | freshest. This Status indicates that the registration is | 715 | | rejected because another more recent registration was | 716 | | done, as indicated by a same RUID and a more recent TID. | 717 | | One possible cause is a stale registration that has | 718 | | progressed slowly in the network and was passed by a more | 719 | | recent one. It could also indicate a RUID collision. | 720 | | | 721 | 4 | Removed: The binding state was removed. This may be | 722 | | placed in an asynchronous NS(ARO) message, or as the | 723 | | rejection of a proxy registration to a Backbone Router | 724 | | | 725 | 5 | Validation Requested: The Registering Node is challenged | 726 | | for owning the Registered Address or for being an | 727 | | acceptable proxy for the registration. This Status is | 728 | | expected in asynchronous messages from a registrar (6LR, | 729 | | 6LBR, 6BBR) to indicate that the registration state is | 730 | | removed, for instance due to a movement of the device. | 731 | | | 732 | 6 | Duplicate Source Address: The address used as source of | 733 | | the NS(ARO) conflicts with an existing registration. | 734 | | | 735 | 7 | Invalid Source Address: The address used as source of the | 736 | | NS(ARO) is not a Link-Local address as prescribed by this | 737 | | document. | 738 | | | 739 | 8 | Registered Address topologically incorrect: The address | 740 | | being registered is not usable on this link, e.g., it is | 741 | | not topologically correct | 742 | | | 743 | 9 | 6LBR Registry saturated: A new registration cannot be | 744 | | accepted because the 6LBR Registry is saturated. Note: | 745 | | this code is used by 6LBRs instead of Status 2 when | 746 | | responding to a Duplicate Address message exchange and is | 747 | | passed on to the Registering Node by the 6LR. | 748 | | | 749 | 10 | Validation Failed: The proof of ownership of the | 750 | | registered address is not correct. | 751 +-------+-----------------------------------------------------------+ 753 Table 1: EARO Status 755 Reserved: This field is unused. It MUST be initialized to zero 756 by the sender and MUST be ignored by the receiver. 757 R: If the 'R' flag is set, the registering node expects 758 that the 6LR ensures reachability for the registered 759 address, e.g. by injecting the address in a route- 760 over routing protocol or proxying ND over a Backbone 761 Link. 762 T: One bit flag. Set if the next octet is used as a 763 TID. 765 TID: 1-byte integer; a transaction id that is maintained 766 by the node and incremented with each transaction. 767 The node SHOULD maintain the TID in a persistent 768 storage. 769 Registration Lifetime: 16-bit integer; expressed in minutes. 0 770 means that the registration has ended and the 771 associated state should be removed. 772 Registration Unique IDentifier (RUID): A globally unique identifier 773 for the node associated. This can be the EUI-64 774 derived IID of an interface, or some provable ID 775 obtained cryptographically. 777 6.2. Extended Duplicate Address Message Formats 779 The Duplicate Address Request (DAR) and the Duplicate Address 780 Confirmation (DAC) messages are defined in section 4.4 of [RFC6775]. 781 Those messages follow a common base format, which enables information 782 from the ARO to be transported over multiple hops. 784 The Duplicate Address Messages are extended to adapt to the Extended 785 ARO format, as follows: 787 0 1 2 3 788 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 789 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 790 | Type | Code | Checksum | 791 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 792 | Status | TID | Registration Lifetime | 793 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 794 | | 795 + Registration Unique ID (EUI-64 or equivalent) + 796 | | 797 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 798 | | 799 + + 800 | | 801 + Registered Address + 802 | | 803 + + 804 | | 805 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 807 Figure 3: Duplicate Address Messages Format 809 Modified Message Fields 810 Code: The ICMP Code as defined in [RFC4443]. The ICMP Code 811 MUST be set to 1 with this specification. An odd 812 value of the ICMP Code indicates that the TID field 813 is present and obeys this specification. 814 TID: 1-byte integer; same definition and processing as the 815 TID in the EARO option as defined in Section 6.1. 816 Registration Unique IDentifier (RUID): 8 bytes; same definition and 817 processing as the RUID in the EARO option as defined 818 in Section 6.1. 820 6.3. New 6LoWPAN Capability Bits in the Capability Indication Option 822 This specification defines new capability bits for use in the 6CIO, 823 which was introduced by [RFC7400] for use in IPv6 ND RA messages. 825 Routers that support this specification MUST set the "E" flag and 6LN 826 SHOULD favor 6LR routers that support this specification over those 827 that do not. Routers that are capable of acting as 6LR, 6LBR and 828 6BBR SHOULD set the "L", "B" and "P" flags, respectively. In 829 particular, the function 6LR is often collocated with that of 6LBR. 831 Those flags are not mutually exclusive and if a router is capable of 832 performing multiple functions, it SHOULD set all the related flags. 834 0 1 2 3 835 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 836 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 837 | Type | Length = 1 | Reserved |L|B|P|E|G| 838 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 839 | Reserved | 840 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 842 Figure 4: New capability Bits L, B, P, E in the 6CIO 844 Option Fields 846 Type: 36 847 L: Node is a 6LR, it can take registrations. 848 B: Node is a 6LBR. 849 P: Node is a 6BBR, proxying for nodes on this link. 850 E: This specification is supported and applied. 852 7. Backward Compatibility 853 7.1. Discovering the capabilities of an ND peer 855 7.1.1. Using the "E" Flag in the 6CIO 857 If the 6CIO is used in an ND message and the sending node supports 858 this specification, then the "E" Flag MUST be set. 860 A router that supports this specification SHOULD indicate that with a 861 6CIO. 863 If the Registering Node receives a 6CIO in a Router Advertisement 864 message, then the setting of the "E" Flag indicates whether or not 865 this specification is supported. 867 7.1.2. Using the "T" Flag in the EARO 869 One alternate way for a 6LN to discover the router's capabilities is 870 to start by registering a Link Local address, placing the same 871 address in the Source and Target Address fields of the NS message, 872 and setting the "T" Flag. The node may for instance register an 873 address that is based on an EUI-64. For such an address, DAD is not 874 required and using the SLLAO option in the NS is actually more 875 consistent with existing ND specifications such as the "Optimistic 876 Duplicate Address Detection (ODAD) for IPv6" [RFC4429]. 878 Once its first registration is complete, the node knows from the 879 setting of the "T" Flag in the response whether the router supports 880 this specification. If support is verified, the node may register 881 other addresses that it owns, or proxy-register addresses on behalf 882 of some another node, indicating those addresses being registered in 883 the Target Address field of the NS messages, while using one of its 884 own previously registered addresses as source. 886 A node that supports this specification MUST always use an EARO as a 887 replacement to an ARO in its registration to a router. This is 888 harmless since the "T" flag and TID field are reserved in [RFC6775], 889 and are ignored by an RFC6775-only router. A router that supports 890 this specification answers an ARO with an ARO and answers an EARO 891 with an EARO. 893 This specification changes the behavior of the peers in a 894 registration flow. To enable backward compatibility, a 6LN that 895 registers to a 6LR that is not known to support this specification 896 MUST behave in a manner that is compatible with [RFC6775]. A 6LN can 897 achieve that by sending a NS(EARO) message with a Link-Local Address 898 used as both Source and Target Address, as described in Section 4.6. 899 Once the 6LR is known to support this specification, the 6LN MUST 900 obey this specification. 902 7.2. RFC6775-only 6LoWPAN Node 904 an RFC6775-only 6LN will use the Registered Address as source and 905 will not use an EARO option. An updated 6LR MUST accept that 906 registration if it is valid per [RFC6775], and it MUST manage the 907 binding cache accordingly. The updated 6LR MUST then use the 908 RFC6775-only Duplicate Address messages as specified in [RFC6775] to 909 indicate to the 6LBR that the TID is not present in the messages. 911 The main difference from [RFC6775] is that the Duplicate Address 912 exchange for DAD is avoided for Link-Local addresses. In any case, 913 the 6LR SHOULD use an EARO in the reply, and can use any of the 914 Status codes defined in this specification. 916 7.3. RFC6775-only 6LoWPAN Router 918 The first registration by an updated 6LN MUST be for a Link-Local 919 address, using that Link-Local address as source. an RFC6775-only 6LR 920 will treat that registration as if the 6LN was an RFC6775-only node. 922 An updated 6LN will always use an EARO option in the registration NS 923 message, whereas an RFC6775-only 6LR will always reply with an ARO 924 option in the NA message. From that first registration, the updated 925 6LN can determine whether or not the 6LR supports this specification. 927 After detecting an RFC6775-only 6LR, an updated 6LN SHOULD attempt to 928 find an alternate 6LR that is updated for a reasonable time that 929 depends on the type of device and the expected deployment. 931 An updated 6LN SHOULD use an EARO in the request regardless of the 932 type of 6LR, RFC6775-only or updated, which implies that the "T" flag 933 is set. 935 If an updated 6LN moves from an updated 6LR to an RFC6775-only 6LR, 936 the RFC6775-only 6LR will send an RFC6775-only DAR message, which can 937 not be compared with an updated one for freshness. 939 Allowing RFC6775-only DAR messages to replace a state established by 940 the updated protocol in the 6LBR would be an attack vector and that 941 cannot be the default behavior. 943 But if RFC6775-only and updated 6LRs coexist temporarily in a 944 network, then it makes sense for an administrator to install a policy 945 that allows so, and the capability to install such a policy should be 946 configurable in a 6LBR though it is out of scope for this document. 948 7.4. RFC6775-only 6LoWPAN Border Router 950 With this specification, the Duplicate Address messages are extended 951 to transport the EARO information. Similarly to the NS/NA exchange, 952 updated 6LBR devices always use the Extended Duplicate Address 953 messages and all the associated behavior so they can always be 954 differentiated from RFC6775-only ones. 956 Note that an RFC6775-only 6LBR will accept and process an EDAR 957 message as if it were an RFC6775-only DAR, so the support of DAD is 958 preserved. 960 8. Security Considerations 962 This specification extends [RFC6775], and the security section of 963 that standard also applies to this as well. In particular, it is 964 expected that the link layer is sufficiently protected to prevent a 965 rogue access, either by means of physical or IP security on the 966 Backbone Link and link layer cryptography on the LLN. 968 This specification also expects that the LLN MAC provides secure 969 unicast to/from the Backbone Router and secure Broadcast or Multicast 970 from the Backbone Router in a way that prevents tampering with or 971 replaying the RA messages. 973 This specification recommends using privacy techniques (see 974 Section 9), and protection against address theft such as provided by 975 "Address Protected Neighbor Discovery for Low-power and Lossy 976 Networks" [I-D.ietf-6lo-ap-nd], which guarantees the ownership of the 977 Registered Address using a cryptographic RUID. 979 The registration mechanism may be used by a rogue node to attack the 980 6LR or the 6LBR with a Denial-of-Service attack against the registry. 981 It may also happen that the registry of a 6LR or a 6LBR is saturated 982 and cannot take any more registrations, which effectively denies the 983 requesting node the capability to use a new address. In order to 984 alleviate those concerns, Section 4.7 provides a number of 985 recommendations that ensure that a stale registration is removed as 986 soon as possible from the 6LR and 6LBR. In particular, this 987 specification recommends that: 989 o A node that ceases to use an address SHOULD attempt to de-register 990 that address from all the 6LRs to which it is registered. See 991 Section 4.2 for the mechanism to avoid replay attacks and avoiding 992 the use of stale registration information. 993 o The Registration lifetimes SHOULD be individually configurable for 994 each address or group of addresses. The nodes SHOULD be 995 configured with a Registration Lifetime that reflects their 996 expectation of how long they will use the address with the 6LR to 997 which it is registered. In particular, use cases that involve 998 mobility or rapid address changes SHOULD use lifetimes that are 999 larger yet of a same order as the duration of the expectation of 1000 presence. 1001 o The router (6LR or 6LBR) SHOULD be configurable so as to limit the 1002 number of addresses that can be registered by a single node, but 1003 as a protective measure only. A node may be identified by MAC 1004 address, but a stringer identification (e.g., by security 1005 credentials) is RECOMMENDED. When that maximum is reached, the 1006 router should use a Least-Recently-Used (LRU) algorithm to clean 1007 up the addresses, keeping at least one Link-Local address. The 1008 router SHOULD attempt to keep one or more stable addresses if 1009 stability can be determined, e.g., because they are used over a 1010 much longer time span than other (privacy, shorter-lived) 1011 addresses. Address lifetimes SHOULD be individually configurable. 1012 o In order to avoid denial of registration for the lack of 1013 resources, administrators should take great care to deploy 1014 adequate numbers of 6LRs to cover the needs of the nodes in their 1015 range, so as to avoid a situation of starving nodes. It is 1016 expected that the 6LBR that serves a LLN is a more capable node 1017 then the average 6LR, but in a network condition where it may 1018 become saturated, a particular deployment should distribute the 1019 6LBR functionality, for instance by leveraging a high speed 1020 Backbone Link and Backbone Routers to aggregate multiple LLNs into 1021 a larger subnet. 1023 The LLN nodes depend on the 6LBR and the 6BBR for their operation. A 1024 trust model must be put in place to ensure that the right devices are 1025 acting in these roles, so as to avoid threats such as black-holing, 1026 or bombing attack whereby an impersonated 6LBR would destroy state in 1027 the network by using the "Removed" Status code. This trust model 1028 could be at a minimum based on a Layer-2 access control, or could 1029 provide role validation as well (see Req5.1 in Appendix B.5). 1031 9. Privacy Considerations 1033 As indicated in Section 3, this protocol does not aim at limiting the 1034 number of IPv6 addresses that a device can form and if placed, a 1035 limit should be a protective measure only, that is high enough not to 1036 interfere with the normal behavior of devices in the network. A host 1037 should be able to form and register any address that is topologically 1038 correct in the subnet(s) advertised by the 6LR/6LBR. 1040 This specification does not mandate any particular way for forming 1041 IPv6 addresses, but it discourages using EUI-64 for forming the 1042 Interface ID in the Link-Local address because this method prevents 1043 the usage of "SEcure Neighbor Discovery (SEND)" [RFC3971] and 1044 "Cryptographically Generated Addresses (CGA)" [RFC3972], and that of 1045 address privacy techniques. 1047 "Privacy Considerations for IPv6 Adaptation-Layer Mechanisms" 1048 [RFC8065] explains why privacy is important and how to form privacy- 1049 aware addresses. All implementations and deployment must consider 1050 the option of privacy addresses in their own environment. 1052 The IPv6 address of the 6LN in the IPv6 header can be compressed 1053 statelessly when the Interface Identifier in the IPv6 address can be 1054 derived from the Lower Layer address. When it is not critical to 1055 benefit from that compression, e.g. the address can be compressed 1056 statefully, or it is rarely used and/or it is used only over one hop, 1057 then privacy concerns should be considered. In particular, new 1058 implementations should follow the IETF "Recommendation on Stable IPv6 1059 Interface Identifiers" [RFC8064] [RFC8064] recommends the use of "A 1060 Method for Generating Semantically Opaque Interface Identifiers with 1061 IPv6 Stateless Address Autoconfiguration (SLAAC)" [RFC7217] for 1062 generating Interface Identifiers to be used in SLAAC. 1064 10. IANA Considerations 1066 Note to RFC Editor: please replace "This RFC" throughout this 1067 document by the RFC number for this specification once it is 1068 attributed. 1070 IANA is requested to make a number of changes under the "Internet 1071 Control Message Protocol version 6 (ICMPv6) Parameters" registry, as 1072 follows. 1074 10.1. ARO Flags 1076 IANA is requested to create a new subregistry for "ARO Flags". This 1077 specification defines 8 positions, bit 0 to bit 7, and assigns bit 7 1078 for the "T" flag in Section 6.1. The policy is "IETF Review" or 1079 "IESG Approval" [RFC8126]. The initial content of the registry is as 1080 shown in Table 2. 1082 New subregistry for ARO Flags under the "Internet Control Message 1083 Protocol version 6 (ICMPv6) [RFC4443] Parameters" 1085 +-------------+--------------+-----------+ 1086 | ARO Status | Description | Document | 1087 +-------------+--------------+-----------+ 1088 | 0..6 | Unassigned | | 1089 | | | | 1090 | 7 | "T" Flag | This RFC | 1091 +-------------+--------------+-----------+ 1093 Table 2: new ARO Flags 1095 10.2. ICMP Codes 1097 IANA is requested to create a new entry in the ICMPv6 "Code" Fields 1098 subregistry of the Internet Control Message Protocol version 6 1099 (ICMPv6) Parameters for the ICMP codes related to the ICMP type 157 1100 and 158 Duplicate Address Request (shown in Table 3) and Confirmation 1101 (shown in Table 4), respectively, as follows: 1103 New entries for ICMP types 157 DAR message 1105 +-------+----------------------+------------+ 1106 | Code | Name | Reference | 1107 +-------+----------------------+------------+ 1108 | 0 | Original DAR message | RFC 6775 | 1109 | | | | 1110 | 1 | Extended DAR message | This RFC | 1111 +-------+----------------------+------------+ 1113 Table 3: new ICMPv6 Code Fields 1115 New entries for ICMP types 158 DAC message 1117 +-------+----------------------+------------+ 1118 | Code | Name | Reference | 1119 +-------+----------------------+------------+ 1120 | 0 | Original DAC message | RFC 6775 | 1121 | | | | 1122 | 1 | Extended DAC message | This RFC | 1123 +-------+----------------------+------------+ 1125 Table 4: new ICMPv6 Code Fields 1127 10.3. New ARO Status values 1129 IANA is requested to make additions to the Address Registration 1130 Option Status Values Registry as follows: 1132 Address Registration Option Status Values Registry 1134 +-------------+-----------------------------------------+-----------+ 1135 | ARO Status | Description | Document | 1136 +-------------+-----------------------------------------+-----------+ 1137 | 3 | Moved | This RFC | 1138 | | | | 1139 | 4 | Removed | This RFC | 1140 | | | | 1141 | 5 | Validation Requested | This RFC | 1142 | | | | 1143 | 6 | Duplicate Source Address | This RFC | 1144 | | | | 1145 | 7 | Invalid Source Address | This RFC | 1146 | | | | 1147 | 8 | Registered Address topologically | This RFC | 1148 | | incorrect | | 1149 | | | | 1150 | 9 | 6LBR registry saturated | This RFC | 1151 | | | | 1152 | 10 | Validation Failed | This RFC | 1153 +-------------+-----------------------------------------+-----------+ 1155 Table 5: New ARO Status values 1157 10.4. New 6LoWPAN capability Bits 1159 IANA is requested to make additions to the Subregistry for "6LoWPAN 1160 capability Bits" as follows: 1162 Subregistry for "6LoWPAN capability Bits" under the "Internet Control 1163 Message Protocol version 6 (ICMPv6) Parameters" 1165 +-----------------+----------------------+-----------+ 1166 | Capability Bit | Description | Document | 1167 +-----------------+----------------------+-----------+ 1168 | 11 | 6LR capable (L bit) | This RFC | 1169 | | | | 1170 | 12 | 6LBR capable (B bit) | This RFC | 1171 | | | | 1172 | 13 | 6BBR capable (P bit) | This RFC | 1173 | | | | 1174 | 14 | EARO support (E bit) | This RFC | 1175 +-----------------+----------------------+-----------+ 1177 Table 6: New 6LoWPAN capability Bits 1179 11. Acknowledgments 1181 Kudos to Eric Levy-Abegnoli who designed the First Hop Security 1182 infrastructure upon which the first backbone router was implemented. 1183 Many thanks to Sedat Gormus, Rahul Jadhav, Tim Chown, Juergen 1184 Schoenwaelder, Chris Lonvick and Lorenzo Colitti for their various 1185 contributions and reviews. Also many thanks to Thomas Watteyne for 1186 his early implementation of a 6LN that was instrumental to the early 1187 tests of the 6LR, 6LBR and Backbone Router. 1189 12. References 1191 12.1. Normative References 1193 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1194 Requirement Levels", BCP 14, RFC 2119, 1195 DOI 10.17487/RFC2119, March 1997, 1196 . 1198 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1199 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 1200 2006, . 1202 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 1203 Control Message Protocol (ICMPv6) for the Internet 1204 Protocol Version 6 (IPv6) Specification", STD 89, 1205 RFC 4443, DOI 10.17487/RFC4443, March 2006, 1206 . 1208 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 1209 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 1210 DOI 10.17487/RFC4861, September 2007, 1211 . 1213 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 1214 Address Autoconfiguration", RFC 4862, 1215 DOI 10.17487/RFC4862, September 2007, 1216 . 1218 [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 1219 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 1220 DOI 10.17487/RFC6282, September 2011, 1221 . 1223 [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. 1224 Bormann, "Neighbor Discovery Optimization for IPv6 over 1225 Low-Power Wireless Personal Area Networks (6LoWPANs)", 1226 RFC 6775, DOI 10.17487/RFC6775, November 2012, 1227 . 1229 [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for 1230 IPv6 over Low-Power Wireless Personal Area Networks 1231 (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November 1232 2014, . 1234 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 1235 Writing an IANA Considerations Section in RFCs", BCP 26, 1236 RFC 8126, DOI 10.17487/RFC8126, June 2017, 1237 . 1239 12.2. Informative References 1241 [I-D.chakrabarti-nordmark-6man-efficient-nd] 1242 Chakrabarti, S., Nordmark, E., Thubert, P., and M. 1243 Wasserman, "IPv6 Neighbor Discovery Optimizations for 1244 Wired and Wireless Networks", draft-chakrabarti-nordmark- 1245 6man-efficient-nd-07 (work in progress), February 2015. 1247 [I-D.delcarpio-6lo-wlanah] 1248 Vega, L., Robles, I., and R. Morabito, "IPv6 over 1249 802.11ah", draft-delcarpio-6lo-wlanah-01 (work in 1250 progress), October 2015. 1252 [I-D.ietf-6lo-ap-nd] 1253 Thubert, P., Sarikaya, B., and M. Sethi, "Address 1254 Protected Neighbor Discovery for Low-power and Lossy 1255 Networks", draft-ietf-6lo-ap-nd-06 (work in progress), 1256 February 2018. 1258 [I-D.ietf-6lo-backbone-router] 1259 Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- 1260 backbone-router-06 (work in progress), February 2018. 1262 [I-D.ietf-6lo-nfc] 1263 Choi, Y., Hong, Y., Youn, J., Kim, D., and J. Choi, 1264 "Transmission of IPv6 Packets over Near Field 1265 Communication", draft-ietf-6lo-nfc-09 (work in progress), 1266 January 2018. 1268 [I-D.ietf-6tisch-architecture] 1269 Thubert, P., "An Architecture for IPv6 over the TSCH mode 1270 of IEEE 802.15.4", draft-ietf-6tisch-architecture-13 (work 1271 in progress), November 2017. 1273 [I-D.ietf-ipv6-multilink-subnets] 1274 Thaler, D. and C. Huitema, "Multi-link Subnet Support in 1275 IPv6", draft-ietf-ipv6-multilink-subnets-00 (work in 1276 progress), July 2002. 1278 [I-D.ietf-mboned-ieee802-mcast-problems] 1279 Perkins, C., McBride, M., Stanley, D., Kumari, W., and J. 1280 Zuniga, "Multicast Considerations over IEEE 802 Wireless 1281 Media", draft-ietf-mboned-ieee802-mcast-problems-01 (work 1282 in progress), February 2018. 1284 [I-D.ietf-roll-efficient-npdao] 1285 Jadhav, R., Sahoo, R., and Z. Cao, "No-Path DAO 1286 modifications", draft-ietf-roll-efficient-npdao-01 (work 1287 in progress), October 2017. 1289 [I-D.perkins-intarea-multicast-ieee802] 1290 Perkins, C., Stanley, D., Kumari, W., and J. Zuniga, 1291 "Multicast Considerations over IEEE 802 Wireless Media", 1292 draft-perkins-intarea-multicast-ieee802-03 (work in 1293 progress), July 2017. 1295 [I-D.popa-6lo-6loplc-ipv6-over-ieee19012-networks] 1296 Popa, D. and J. Hui, "6LoPLC: Transmission of IPv6 Packets 1297 over IEEE 1901.2 Narrowband Powerline Communication 1298 Networks", draft-popa-6lo-6loplc-ipv6-over- 1299 ieee19012-networks-00 (work in progress), March 2014. 1301 [I-D.struik-lwip-curve-representations] 1302 Struik, R., "Alternative Elliptic Curve Representations", 1303 draft-struik-lwip-curve-representations-00 (work in 1304 progress), October 2017. 1306 [RFC1958] Carpenter, B., Ed., "Architectural Principles of the 1307 Internet", RFC 1958, DOI 10.17487/RFC1958, June 1996, 1308 . 1310 [RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, 1311 DOI 10.17487/RFC1982, August 1996, 1312 . 1314 [RFC3610] Whiting, D., Housley, R., and N. Ferguson, "Counter with 1315 CBC-MAC (CCM)", RFC 3610, DOI 10.17487/RFC3610, September 1316 2003, . 1318 [RFC3810] Vida, R., Ed. and L. Costa, Ed., "Multicast Listener 1319 Discovery Version 2 (MLDv2) for IPv6", RFC 3810, 1320 DOI 10.17487/RFC3810, June 2004, 1321 . 1323 [RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, 1324 "SEcure Neighbor Discovery (SEND)", RFC 3971, 1325 DOI 10.17487/RFC3971, March 2005, 1326 . 1328 [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", 1329 RFC 3972, DOI 10.17487/RFC3972, March 2005, 1330 . 1332 [RFC4429] Moore, N., "Optimistic Duplicate Address Detection (DAD) 1333 for IPv6", RFC 4429, DOI 10.17487/RFC4429, April 2006, 1334 . 1336 [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 1337 over Low-Power Wireless Personal Area Networks (6LoWPANs): 1338 Overview, Assumptions, Problem Statement, and Goals", 1339 RFC 4919, DOI 10.17487/RFC4919, August 2007, 1340 . 1342 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 1343 Extensions for Stateless Address Autoconfiguration in 1344 IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007, 1345 . 1347 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 1348 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 1349 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 1350 Low-Power and Lossy Networks", RFC 6550, 1351 DOI 10.17487/RFC6550, March 2012, 1352 . 1354 [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem 1355 Statement and Requirements for IPv6 over Low-Power 1356 Wireless Personal Area Network (6LoWPAN) Routing", 1357 RFC 6606, DOI 10.17487/RFC6606, May 2012, 1358 . 1360 [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and 1361 Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January 1362 2014, . 1364 [RFC7217] Gont, F., "A Method for Generating Semantically Opaque 1365 Interface Identifiers with IPv6 Stateless Address 1366 Autoconfiguration (SLAAC)", RFC 7217, 1367 DOI 10.17487/RFC7217, April 2014, 1368 . 1370 [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for 1371 Constrained-Node Networks", RFC 7228, 1372 DOI 10.17487/RFC7228, May 2014, 1373 . 1375 [RFC7428] Brandt, A. and J. Buron, "Transmission of IPv6 Packets 1376 over ITU-T G.9959 Networks", RFC 7428, 1377 DOI 10.17487/RFC7428, February 2015, 1378 . 1380 [RFC7668] Nieminen, J., Savolainen, T., Isomaki, M., Patil, B., 1381 Shelby, Z., and C. Gomez, "IPv6 over BLUETOOTH(R) Low 1382 Energy", RFC 7668, DOI 10.17487/RFC7668, October 2015, 1383 . 1385 [RFC7934] Colitti, L., Cerf, V., Cheshire, S., and D. Schinazi, 1386 "Host Address Availability Recommendations", BCP 204, 1387 RFC 7934, DOI 10.17487/RFC7934, July 2016, 1388 . 1390 [RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu, 1391 "Recommendation on Stable IPv6 Interface Identifiers", 1392 RFC 8064, DOI 10.17487/RFC8064, February 2017, 1393 . 1395 [RFC8065] Thaler, D., "Privacy Considerations for IPv6 Adaptation- 1396 Layer Mechanisms", RFC 8065, DOI 10.17487/RFC8065, 1397 February 2017, . 1399 [RFC8105] Mariager, P., Petersen, J., Ed., Shelby, Z., Van de Logt, 1400 M., and D. Barthel, "Transmission of IPv6 Packets over 1401 Digital Enhanced Cordless Telecommunications (DECT) Ultra 1402 Low Energy (ULE)", RFC 8105, DOI 10.17487/RFC8105, May 1403 2017, . 1405 [RFC8163] Lynn, K., Ed., Martocci, J., Neilson, C., and S. 1406 Donaldson, "Transmission of IPv6 over Master-Slave/Token- 1407 Passing (MS/TP) Networks", RFC 8163, DOI 10.17487/RFC8163, 1408 May 2017, . 1410 [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., 1411 Przygienda, T., and S. Aldrin, "Multicast Using Bit Index 1412 Explicit Replication (BIER)", RFC 8279, 1413 DOI 10.17487/RFC8279, November 2017, 1414 . 1416 12.3. External Informative References 1418 [IEEEstd802154] 1419 IEEE, "IEEE Standard for Low-Rate Wireless Networks", 1420 IEEE Standard 802.15.4, DOI 10.1109/IEEE 1421 P802.15.4-REVd/D01, June 2017, 1422 . 1424 [Perlman83] 1425 Perlman, R., "Fault-Tolerant Broadcast of Routing 1426 Information", North-Holland Computer Networks 7: 395-405, 1427 1983, . 1430 Appendix A. Applicability and Requirements Served 1432 This specification extends 6LoWPAN ND to provide a sequence number to 1433 the registration and serves the requirements expressed in 1434 Appendix B.1 by enabling the mobility of devices from one LLN to the 1435 next based on the complementary work in the "IPv6 Backbone Router" 1436 [I-D.ietf-6lo-backbone-router] specification. 1438 In the context of the TimeSlotted Channel Hopping (TSCH) mode of IEEE 1439 Std. 802.15.4 [IEEEstd802154], the "6TiSCH architecture" 1440 [I-D.ietf-6tisch-architecture] introduces how a 6LoWPAN ND host could 1441 connect to the Internet via a RPL mesh Network, but this requires 1442 additions to the 6LoWPAN ND protocol to support mobility and 1443 reachability in a secured and manageable environment. This 1444 specification details the new operations that are required to 1445 implement the 6TiSCH architecture and serves the requirements listed 1446 in Appendix B.2. 1448 The term LLN is used loosely in this specification to cover multiple 1449 types of WLANs and WPANs, including Low-Power Wi-Fi, BLUETOOTH(R) Low 1450 Energy, IEEE Std.802.11AH and IEEE Std.802.15.4 wireless meshes, so 1451 as to address the requirements discussed in Appendix B.3. 1453 This specification can be used by any wireless node to associate at 1454 Layer-3 with a 6BBR and register its IPv6 addresses to obtain routing 1455 services including proxy-ND operations over a Backbone Link, 1456 effectively providing a solution to the requirements expressed in 1457 Appendix B.4. 1459 This specification is extended by "Address Protected Neighbor 1460 Discovery for Low-power and Lossy Networks" [I-D.ietf-6lo-ap-nd] to 1461 providing a solution to some of the security-related requirements 1462 expressed in Appendix B.5. 1464 "Efficiency aware IPv6 Neighbor Discovery Optimizations" 1465 [I-D.chakrabarti-nordmark-6man-efficient-nd] suggests that 6LoWPAN ND 1466 [RFC6775] can be extended to other types of links beyond IEEE Std. 1467 802.15.4 for which it was defined. The registration technique is 1468 beneficial when the Link-Layer technique used to carry IPv6 multicast 1469 packets is not sufficiently efficient in terms of delivery ratio or 1470 energy consumption in the end devices, in particular to enable 1471 energy-constrained sleeping nodes. The value of such extension is 1472 especially apparent in the case of mobile wireless nodes, to reduce 1473 the multicast operations that are related to IPv6 ND ([RFC4861], 1474 [RFC4862]) and affect the operation of the wireless medium 1475 [I-D.ietf-mboned-ieee802-mcast-problems] 1476 [I-D.perkins-intarea-multicast-ieee802]. This serves the scalability 1477 requirements listed in Appendix B.6. 1479 Appendix B. Requirements 1481 This section lists requirements that were discussed at 6lo for an 1482 update to 6LoWPAN ND. How those requirements are matched with 1483 existing specifications at the time of this writing is shown in 1484 Appendix B.8 . 1486 B.1. Requirements Related to Mobility 1488 Due to the unstable nature of LLN links, even in a LLN of immobile 1489 nodes a 6LN may change its point of attachment to a 6LR, say 6LR-a, 1490 and may not be able to notify 6LR-a. Consequently, 6LR-a may still 1491 attract traffic that it cannot deliver any more. When links to a 6LR 1492 change state, there is thus a need to identify stale states in a 6LR 1493 and restore reachability in a timely fashion. 1495 Req1.1: Upon a change of point of attachment, connectivity via a new 1496 6LR MUST be restored in a timely fashion without the need to de- 1497 register from the previous 6LR. 1499 Req1.2: For that purpose, the protocol MUST enable differentiating 1500 between multiple registrations from one 6LoWPAN Node and 1501 registrations from different 6LoWPAN Nodes claiming the same address. 1503 Req1.3: Stale states MUST be cleaned up in 6LRs. 1505 Req1.4: A 6LoWPAN Node SHOULD also be able to register its Address 1506 concurrently to multiple 6LRs. 1508 B.2. Requirements Related to Routing Protocols 1510 The point of attachment of a 6LN may be a 6LR in an LLN mesh. IPv6 1511 routing in a LLN can be based on RPL, which is the routing protocol 1512 that was defined at the IETF for this particular purpose. Other 1513 routing protocols are also considered by Standard Development 1514 Organizations (SDO) on the basis of the expected network 1515 characteristics. It is required that a 6LoWPAN Node attached via ND 1516 to a 6LR would need to participate in the selected routing protocol 1517 to obtain reachability via the 6LR. 1519 Next to the 6LBR unicast address registered by ND, other addresses 1520 including multicast addresses are needed as well. For example a 1521 routing protocol often uses a multicast address to register changes 1522 to established paths. ND needs to register such a multicast address 1523 to enable routing concurrently with discovery. 1525 Multicast is needed for groups. Groups may be formed by device type 1526 (e.g., routers, street lamps), location (Geography, RPL sub-tree), or 1527 both. 1529 The Bit Index Explicit Replication (BIER) Architecture [RFC8279] 1530 proposes an optimized technique to enable multicast in a LLN with a 1531 very limited requirement for routing state in the nodes. 1533 Related requirements are: 1535 Req2.1: The ND registration method SHOULD be extended so that the 6LR 1536 is able to advertise the Address of a 6LoWPAN Node over the selected 1537 routing protocol and obtain reachability to that Address using the 1538 selected routing protocol. 1540 Req2.2: Considering RPL, the Address Registration Option that is used 1541 in the ND registration SHOULD be extended to carry enough information 1542 to generate a DAO message as specified in [RFC6550] section 6.4, in 1543 particular the capability to compute a Path Sequence and, as an 1544 option, a RPLInstanceID. 1546 Req2.3: Multicast operations SHOULD be supported and optimized, for 1547 instance using BIER or MPL. Whether ND is appropriate for the 1548 registration to the 6BBR is to be defined, considering the additional 1549 burden of supporting the Multicast Listener Discovery Version 2 1550 [RFC3810] (MLDv2) for IPv6. 1552 B.3. Requirements Related to the Variety of Low-Power Link types 1554 6LoWPAN ND [RFC6775] was defined with a focus on IEEE Std.802.15.4 1555 and in particular the capability to derive a unique Identifier from a 1556 globally unique EUI-64 address. At this point, the 6lo Working Group 1557 is extending the 6LoWPAN Header Compression (HC) [RFC6282] technique 1558 to other link types ITU-T G.9959 [RFC7428], Master-Slave/Token- 1559 Passing [RFC8163], DECT Ultra Low Energy [RFC8105], Near Field 1560 Communication [I-D.ietf-6lo-nfc], IEEE Std. 802.11ah 1561 [I-D.delcarpio-6lo-wlanah], as well as IEEE1901.2 Narrowband 1562 Powerline Communication Networks 1563 [I-D.popa-6lo-6loplc-ipv6-over-ieee19012-networks] and BLUETOOTH(R) 1564 Low Energy [RFC7668]. 1566 Related requirements are: 1568 Req3.1: The support of the registration mechanism SHOULD be extended 1569 to more LLN links than IEEE Std.802.15.4, matching at least the LLN 1570 links for which an "IPv6 over foo" specification exists, as well as 1571 Low-Power Wi-Fi. 1573 Req3.2: As part of this extension, a mechanism to compute a unique 1574 Identifier should be provided, with the capability to form a Link- 1575 Local Address that SHOULD be unique at least within the LLN connected 1576 to a 6LBR discovered by ND in each node within the LLN. 1578 Req3.3: The Address Registration Option used in the ND registration 1579 SHOULD be extended to carry the relevant forms of unique Identifier. 1581 Req3.4: The Neighbor Discovery should specify the formation of a 1582 site-local address that follows the security recommendations from 1583 [RFC7217]. 1585 B.4. Requirements Related to Proxy Operations 1587 Duty-cycled devices may not be able to answer themselves to a lookup 1588 from a node that uses IPv6 ND on a Backbone Link and may need a 1589 proxy. Additionally, the duty-cycled device may need to rely on the 1590 6LBR to perform registration to the 6BBR. 1592 The ND registration method SHOULD defend the addresses of duty-cycled 1593 devices that are sleeping most of the time and not capable to defend 1594 their own Addresses. 1596 Related requirements are: 1598 Req4.1: The registration mechanism SHOULD enable a third party to 1599 proxy register an Address on behalf of a 6LoWPAN node that may be 1600 sleeping or located deeper in an LLN mesh. 1602 Req4.2: The registration mechanism SHOULD be applicable to a duty- 1603 cycled device regardless of the link type, and enable a 6BBR to 1604 operate as a proxy to defend the Registered Addresses on its behalf. 1606 Req4.3: The registration mechanism SHOULD enable long sleep 1607 durations, in the order of multiple days to a month. 1609 B.5. Requirements Related to Security 1611 In order to guarantee the operations of the 6LoWPAN ND flows, the 1612 spoofing of the 6LR, 6LBR and 6BBRs roles should be avoided. Once a 1613 node successfully registers an address, 6LoWPAN ND should provide 1614 energy-efficient means for the 6LBR to protect that ownership even 1615 when the node that registered the address is sleeping. 1617 In particular, the 6LR and the 6LBR then should be able to verify 1618 whether a subsequent registration for a given address comes from the 1619 original node. 1621 In an LLN it makes sense to base security on layer-2 security. 1622 During bootstrap of the LLN, nodes join the network after 1623 authorization by a Joining Assistant (JA) or a Commissioning Tool 1624 (CT). After joining nodes communicate with each other via secured 1625 links. The keys for the layer-2 security are distributed by the JA/ 1626 CT. The JA/CT can be part of the LLN or be outside the LLN. In both 1627 cases it is needed that packets are routed between JA/CT and the 1628 joining node. 1630 Related requirements are: 1632 Req5.1: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1633 the 6LR, 6LBR and 6BBR to authenticate and authorize one another for 1634 their respective roles, as well as with the 6LoWPAN Node for the role 1635 of 6LR. 1637 Req5.2: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1638 the 6LR and the 6LBR to validate new registration of authorized 1639 nodes. Joining of unauthorized nodes MUST be prevented. 1641 Req5.3: 6LoWPAN ND security mechanisms SHOULD lead to small packet 1642 sizes. In particular, the NS, NA, DAR and DAC messages for a re- 1643 registration flow SHOULD NOT exceed 80 octets so as to fit in a 1644 secured IEEE Std.802.15.4 [IEEEstd802154] frame. 1646 Req5.4: Recurrent 6LoWPAN ND security operations MUST NOT be 1647 computationally intensive on the LoWPAN Node CPU. When a Key hash 1648 calculation is employed, a mechanism lighter than SHA-1 SHOULD be 1649 preferred. 1651 Req5.5: The number of Keys that the 6LoWPAN Node needs to manipulate 1652 SHOULD be minimized. 1654 Req5.6: The 6LoWPAN ND security mechanisms SHOULD enable the 1655 variation of CCM [RFC3610] called CCM* for use at both Layer 2 and 1656 Layer 3, and SHOULD enable the reuse of security code that has to be 1657 present on the device for upper layer security such as TLS. 1659 Req5.7: Public key and signature sizes SHOULD be minimized while 1660 maintaining adequate confidentiality and data origin authentication 1661 for multiple types of applications with various degrees of 1662 criticality. 1664 Req5.8: Routing of packets should continue when links pass from the 1665 unsecured to the secured state. 1667 Req5.9: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1668 the 6LR and the 6LBR to validate whether a new registration for a 1669 given address corresponds to the same 6LoWPAN Node that registered it 1670 initially, and, if not, determine the rightful owner, and deny or 1671 clean up the registration that is duplicate. 1673 B.6. Requirements Related to Scalability 1675 Use cases from Automatic Meter Reading (AMR, collection tree 1676 operations) and Advanced Metering Infrastructure (AMI, bi-directional 1677 communication to the meters) indicate the needs for a large number of 1678 LLN nodes pertaining to a single RPL DODAG (e.g., 5000) and connected 1679 to the 6LBR over a large number of LLN hops (e.g., 15). 1681 Related requirements are: 1683 Req6.1: The registration mechanism SHOULD enable a single 6LBR to 1684 register multiple thousands of devices. 1686 Req6.2: The timing of the registration operation should allow for a 1687 large latency such as found in LLNs with ten and more hops. 1689 B.7. Requirements Related to Operations and Management 1691 Section 3.8 of "Architectural Principles of the Internet" [RFC1958] 1692 recommends to : "avoid options and parameters whenever possible. Any 1693 options and parameters should be configured or negotiated dynamically 1694 rather than manually". This is especially true in LLNs where the 1695 number of devices may be large and manual configuration is 1696 infeasible. Capabilities for a dynamic configuration of LLN devices 1697 can also be constrained by the network and power limitation. 1699 A Network Administrator should be able to validate that the network 1700 is operating within capacity, and that in particular a 6LBR does not 1701 get overloaded with an excessive amount of registration, so he can 1702 take actions such as adding a Backbone Link with additional 6LBRs and 1703 6BBRs to his network. 1705 Related requirements are: 1707 Req7.1: A management model SHOULD be provided providing access to the 1708 6LBR and its capacity. It is recommended that the 6LBR be reachable 1709 over a non-LLN link. 1711 Req7.2: A management model SHOULD be provided providing access to the 1712 6LR and its capacity to host additional NCE. This management model 1713 SHOULD avoid polling individual 6LRs n a way that could disrupt the 1714 operation of the LLN. 1716 Req7.3: information on successful and failed registration SHOULD be 1717 provided, including information such as the RUID of the 6LN, the 1718 Registered Address, the Address of the 6LR and the duration of the 1719 registration flow. 1721 Req7.4: In case of a failed registration, information on the failure 1722 including the identification of the node that rejected the 1723 registration and the status in the EARO SHOULD be provided 1725 B.8. Matching Requirements with Specifications 1727 I-drafts/RFCs addressing requirements 1729 +-------------+-----------------------------------------+ 1730 | Requirement | Document | 1731 +-------------+-----------------------------------------+ 1732 | Req1.1 | [I-D.ietf-6lo-backbone-router] | 1733 | | | 1734 | Req1.2 | [RFC6775] | 1735 | | | 1736 | Req1.3 | [RFC6775] | 1737 | | | 1738 | Req1.4 | This RFC | 1739 | | | 1740 | Req2.1 | This RFC | 1741 | | | 1742 | Req2.2 | This RFC | 1743 | | | 1744 | Req2.3 | | 1745 | | | 1746 | Req3.1 | Technology Dependant | 1747 | | | 1748 | Req3.2 | Technology Dependant | 1749 | | | 1750 | Req3.3 | Technology Dependant | 1751 | | | 1752 | Req3.4 | Technology Dependant | 1753 | | | 1754 | Req4.1 | This RFC | 1755 | | | 1756 | Req4.2 | This RFC | 1757 | | | 1758 | Req4.3 | [RFC6775] | 1759 | | | 1760 | Req5.1 | | 1761 | | | 1762 | Req5.2 | [I-D.ietf-6lo-ap-nd] | 1763 | | | 1764 | Req5.3 | | 1765 | | | 1766 | Req5.4 | | 1767 | | | 1768 | Req5.5 | [I-D.ietf-6lo-ap-nd] | 1769 | | | 1770 | Req5.6 | [I-D.struik-lwip-curve-representations] | 1771 | | | 1772 | Req5.7 | [I-D.ietf-6lo-ap-nd] | 1773 | | | 1774 | Req5.8 | | 1775 | | | 1776 | Req5.9 | [I-D.ietf-6lo-ap-nd] | 1777 | | | 1778 | Req6.1 | This RFC | 1779 | | | 1780 | Req6.2 | This RFC | 1781 | | | 1782 | Req7.1 | | 1783 | | | 1784 | Req7.2 | | 1785 | | | 1786 | Req7.3 | | 1787 | | | 1788 | Req7.4 | | 1789 +-------------+-----------------------------------------+ 1791 Table 7: Work Addressing requirements 1793 Appendix C. Subset of a 6LoWPAN Glossary 1795 This document often uses the following acronyms: 1797 6BBR: 6LoWPAN Backbone Router (proxy for the registration) 1798 6LBR: 6LoWPAN Border Router (authoritative on DAD) 1799 6LN: 6LoWPAN Node 1800 6LR: 6LoWPAN Router (relay to the registration process) 1801 6CIO: Capability Indication Option 1802 (E)ARO: (Extended) Address Registration Option 1803 DAD: Duplicate Address Detection 1804 LLN: Low Power Lossy Network (a typical IoT network) 1805 NA: Neighbor Advertisement 1806 NCE: Neighbor Cache Entry 1807 ND: Neighbor Discovery 1808 NDP: Neighbor Discovery Protocol 1809 NS: Neighbor Solicitation 1810 RUID: Registration Unique ID 1811 TSCH: TimeSlotted Channel Hopping 1812 TID: Transaction ID (a sequence counter in the EARO) 1814 Authors' Addresses 1815 Pascal Thubert (editor) 1816 Cisco Systems, Inc 1817 Building D (Regus) 45 Allee des Ormes 1818 Mougins - Sophia Antipolis 1819 France 1821 Phone: +33 4 97 23 26 34 1822 Email: pthubert@cisco.com 1824 Erik Nordmark 1825 Zededa 1826 Santa Clara, CA 1827 United States of America 1829 Email: nordmark@sonic.net 1831 Samita Chakrabarti 1832 Verizon 1833 San Jose, CA 1834 United States of America 1836 Email: samitac.ietf@gmail.com 1838 Charles E. Perkins 1839 Futurewei 1840 2330 Central Expressway 1841 Santa Clara 95050 1842 United States of America 1844 Email: charliep@computer.org