idnits 2.17.1 draft-ietf-6lo-rfc6775-update-18.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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 6, 2018) is 2184 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: 'RFC7102' is mentioned on line 1463, but not defined == Missing Reference: 'RFC7228' is mentioned on line 1467, but not defined == Missing Reference: 'RFC6606' is mentioned on line 1457, but not defined == Missing Reference: 'RFC4919' is mentioned on line 1451, but not defined == Missing Reference: 'Perlman83' is mentioned on line 1634, but not defined == Missing Reference: 'IEEEstd802154' is mentioned on line 1858, but not defined == Outdated reference: A later version (-05) exists of draft-hou-6lo-plc-03 == 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-03 == Outdated reference: A later version (-07) exists of draft-thubert-roll-unaware-leaves-04 -- Obsolete informational reference (is this intentional?): RFC 4941 (Obsoleted by RFC 8981) Summary: 0 errors (**), 0 flaws (~~), 15 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: October 8, 2018 S. Chakrabarti 7 Verizon 8 C. Perkins 9 Futurewei 10 April 6, 2018 12 Registration Extensions for 6LoWPAN Neighbor Discovery 13 draft-ietf-6lo-rfc6775-update-18 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 October 8, 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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 60 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 61 2.2. Subset of a 6LoWPAN Glossary . . . . . . . . . . . . . . 4 62 2.3. References . . . . . . . . . . . . . . . . . . . . . . . 5 63 2.4. New Terms . . . . . . . . . . . . . . . . . . . . . . . . 5 64 3. Applicability of Address Registration Options . . . . . . . . 7 65 4. Extended ND Options and Messages . . . . . . . . . . . . . . 8 66 4.1. Extended Address Registration Option (EARO) . . . . . . . 8 67 4.2. Extended Duplicate Address Message Formats . . . . . . . 11 68 4.3. New 6LoWPAN Capability Bits in the Capability Indication 69 Option . . . . . . . . . . . . . . . . . . . . . . . . . 12 70 5. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 13 71 5.1. Extending the Address Registration Option . . . . . . . . 15 72 5.2. Transaction ID . . . . . . . . . . . . . . . . . . . . . 16 73 5.2.1. Comparing TID values . . . . . . . . . . . . . . . . 16 74 5.3. Registration Ownership Verifier . . . . . . . . . . . . . 18 75 5.4. Extended Duplicate Address Messages . . . . . . . . . . . 19 76 5.5. Registering the Target Address . . . . . . . . . . . . . 19 77 5.6. Link-Local Addresses and Registration . . . . . . . . . . 20 78 5.7. Maintaining the Registration States . . . . . . . . . . . 21 79 6. Backward Compatibility . . . . . . . . . . . . . . . . . . . 23 80 6.1. Signaling EARO Capability Support . . . . . . . . . . . . 23 81 6.2. First Exchanges . . . . . . . . . . . . . . . . . . . . . 24 82 6.3. RFC6775-only 6LoWPAN Node . . . . . . . . . . . . . . . . 24 83 6.4. RFC6775-only 6LoWPAN Router . . . . . . . . . . . . . . . 24 84 6.5. RFC6775-only 6LoWPAN Border Router . . . . . . . . . . . 25 85 7. Security Considerations . . . . . . . . . . . . . . . . . . . 25 86 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 27 87 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 88 9.1. ARO Flags . . . . . . . . . . . . . . . . . . . . . . . . 28 89 9.2. ICMP Codes . . . . . . . . . . . . . . . . . . . . . . . 28 90 9.3. New ARO Status values . . . . . . . . . . . . . . . . . . 29 91 9.4. New 6LoWPAN capability Bits . . . . . . . . . . . . . . . 30 92 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 31 93 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 94 11.1. Normative References . . . . . . . . . . . . . . . . . . 31 95 11.2. Terminology Related References . . . . . . . . . . . . . 32 96 11.3. Informative References . . . . . . . . . . . . . . . . . 32 97 11.4. External Informative References . . . . . . . . . . . . 36 98 Appendix A. Applicability and Requirements Served (Not 99 Normative) . . . . . . . . . . . . . . . . . . . . . 36 100 Appendix B. Requirements (Not Normative) . . . . . . . . . . . . 37 101 B.1. Requirements Related to Mobility . . . . . . . . . . . . 37 102 B.2. Requirements Related to Routing Protocols . . . . . . . . 38 103 B.3. Requirements Related to the Variety of Low-Power Link 104 types . . . . . . . . . . . . . . . . . . . . . . . . . . 39 105 B.4. Requirements Related to Proxy Operations . . . . . . . . 39 106 B.5. Requirements Related to Security . . . . . . . . . . . . 40 107 B.6. Requirements Related to Scalability . . . . . . . . . . . 41 108 B.7. Requirements Related to Operations and Management . . . . 42 109 B.8. Matching Requirements with Specifications . . . . . . . . 42 110 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44 112 1. Introduction 114 The scope of this draft is an IPv6 Low-Power Network including star 115 and mesh topologies. In that context, "Neighbor Discovery 116 Optimization for IPv6 over Low-Power Wireless Personal Area Networks" 117 (6LoWPAN ND) [RFC6775] defines a registration mechanism that 118 leverages a central registrar for the main purpose of Duplicate 119 Address Detection (DAD), with the intention to reduce the dependency 120 of the IPv6 Neighbor Discovery Protocol (IPv6 ND) [RFC4861][RFC4862] 121 on network-layer multicast and link-layer broadcast operations. 123 This specification updates 6LoWPAN ND to simplify the registration 124 operation in 6LoWPAN routers and to extend the protocol as a more 125 generic registration technique. The specified updates enable other 126 specifications to define new services such as Source Address 127 Validation (SAVI) with [I-D.ietf-6lo-ap-nd], participation as an 128 unaware leaf to an abstract routing protocol such as the "Routing 129 Protocol for Low Power and Lossy Networks" [RFC6550] (RPL) with 130 [I-D.thubert-roll-unaware-leaves], and registration to a backbone 131 routers performing proxy Neighbor Discovery in a Low-Power and Lossy 132 Network (LLN) with [I-D.ietf-6lo-backbone-router]. 134 In more details, this specification modifies and extends the behavior 135 and protocol elements of 6LoWPAN ND to enable the following new 136 capabilities: 138 o determining the freshest location in case of mobility (TID) 140 o Simplifying the registration flow for Link-Local Addresses 142 o Support of a Leaf Node in a Route-Over network 144 o Proxy registration in a Route-Over network 145 o Associating the registration with a variable-length Registration 146 Ownership Verifier (ROVR) 148 o Registration to a IPv6 ND proxy over a Backbone Link (6BBR) 150 o Clarification of support for privacy and temporary addresses 152 A more comprehensive set of requirements is provided in Appendix B. 154 2. Terminology 156 2.1. BCP 14 158 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 159 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 160 "OPTIONAL" in this document are to be interpreted as described in BCP 161 14 [RFC2119][RFC8174] when, and only when, they appear in all 162 capitals, as shown here. 164 2.2. Subset of a 6LoWPAN Glossary 166 This document often uses the following acronyms: 168 6BBR: 6LoWPAN Backbone Router (proxy for the registration) 170 6LBR: 6LoWPAN Border Router (authoritative on DAD) 172 6LN: 6LoWPAN Node 174 6LR: 6LoWPAN Router (relay to the registration process) 176 6CIO: Capability Indication Option 178 (E)ARO: (Extended) Address Registration Option 180 (E)DAR: (Extended) Duplicate Address Request 182 (E)DAC: (Extended) Duplicate Address Confirmation 184 DAD: Duplicate Address Detection 186 DODAG: Destination-Oriented Directed Acyclic Graph 188 LLN: Low-Power and Lossy Network (a typical IoT network) 190 NA: Neighbor Advertisement 192 NCE: Neighbor Cache Entry 193 ND: Neighbor Discovery 195 NDP: Neighbor Discovery Protocol 197 NS: Neighbor Solicitation 199 ROVR: Registration Ownership Verifier (pronounced rover) 201 RPL: IPv6 Routing Protocol for LLNs (pronounced ripple) 203 RA: Router Advertisement 205 RS: Router Solicitation 207 TSCH: Timeslotted Channel Hopping 209 TID: Transaction ID (a sequence counter in the EARO) 211 2.3. References 213 The Terminology used in this document is consistent with and 214 incorporates that described in Terms Used in Routing for Low-Power 215 and Lossy Networks (LLNs). [RFC7102]. 217 Other terms in use in LLNs are found in Terminology for Constrained- 218 Node Networks [RFC7228]. 220 Readers are expected to be familiar with all the terms and concepts 221 that are discussed in 223 o "Neighbor Discovery for IP version 6" [RFC4861], 225 o "IPv6 Stateless Address Autoconfiguration" [RFC4862], 227 o "Problem Statement and Requirements for IPv6 over Low-Power 228 Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606], 230 o "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): 231 Overview, Assumptions, Problem Statement, and Goals" [RFC4919] and 233 o "Neighbor Discovery Optimization for Low-power and Lossy Networks" 234 [RFC6775]. 236 2.4. New Terms 238 This specification introduces the following terminology: 240 Backbone Link: An IPv6 transit link that interconnects two or more 241 Backbone Routers. It is expected to be of high speed compared 242 to the LLN in order to carry the traffic that is required to 243 federate multiple segments of the potentially large LLN into a 244 single IPv6 subnet. 246 Backbone Router: A logical network function in an IPv6 router that 247 federates an LLN over a Backbone Link. In order to do so, the 248 Backbone Router (6BBR) proxies the 6LoWPAN ND operations 249 detailed in this document onto the matching operations that run 250 over the backbone, typically IPv6 ND. Note that 6BBR is a 251 logical function, just like 6LR and 6LBR, and that the same 252 physical router may operate all three. 254 Extended LLN: Multiple LLNs as defined in [RFC6550], interconnected 255 by a Backbone Link via Backbone Routers, and forming a single 256 IPv6 Multi-Link Subnet. 258 Registration: The process during which a 6LN registers an IPv6 259 Address with a 6LR in order to obtain services such as DAD and 260 routing back. In a Route-Over network, a router that provides 261 connectivity to the LLN (typically a 6LBR, e.g., collocated 262 with a RPL Root) may serve as proxy for the registration of the 263 6LN to the 6BBR so the 6BBR can provide IPv6 ND proxy services 264 over the Backbone. 266 Binding: The association between an IP address, a MAC address, a 267 physical port on a switch, and other information about the node 268 that owns the IP Address. 270 Registered Node: The 6LN for which the registration is performed, 271 and which owns the fields in the Extended ARO option. 273 Registering Node: The node that performs the registration; this may 274 be the Registered Node, or a proxy such as a 6LBR performing a 275 registration to a 6BBR, on behalf of the Registered Node. 277 Registered Address: An address owned by the Registered Node that was 278 or is being registered. 280 RFC6775-only: Applied to an implementation, a type of node, or a 281 type of message, this adjective indicates a behavior that is 282 strictly as specified by [RFC6775] as opposed to updated with 283 this specification. 285 updated: Qualifies a 6LN, a 6LR, or a 6LBR that supports this 286 specification. 288 3. Applicability of Address Registration Options 290 The purpose of the Address Registration Option (ARO) in [RFC6775] is 291 to facilitate duplicate address detection (DAD) for hosts as well as 292 to populate Neighbor Cache Entries (NCEs) [RFC4861] in the routers. 293 This reduces the reliance on multicast operations, which are often as 294 intrusive as broadcast, in IPv6 ND operations. 296 With this specification, a failed or useless registration can be 297 detected by a 6LR or a 6LBR for reasons other than address 298 duplication. Examples include: the router having run out of space; a 299 registration bearing a stale sequence number perhaps denoting a 300 movement of the host after the registration was placed; a host 301 misbehaving and attempting to register an invalid address such as the 302 unspecified address [RFC4291]; or a host using an address that is not 303 topologically correct on that link. 305 In such cases the host will receive an error to help diagnose the 306 issue and may retry, possibly with a different address, and possibly 307 registering to a different router, depending on the returned error. 308 The ability to return errors to address registrations is not intended 309 to be used to restrict the ability of hosts to form and use multiple 310 addresses. Rather, the intention is to conform to "Host Address 311 Availability Recommendations" [RFC7934]. 313 In particular, the freedom to form and register addresses is needed 314 for enhanced privacy; each host may register a number of addresses 315 using mechanisms such as "Privacy Extensions for Stateless Address 316 Autoconfiguration (SLAAC) in IPv6" [RFC4941]. 318 In IPv6 ND [RFC4861], a router needs enough storage to hold NCEs for 319 all directly connected addresses to which it is currently forwarding 320 packets (entries that do not appear to be in use may be flushed). In 321 contrast, a router serving the Address Registration mechanism needs 322 enough storage to hold NCEs for all the addresses that may be 323 registered to it, regardless of whether or not they are actively 324 communicating. The number of registrations supported by a 6LoWPAN 325 Router (6LR) or 6LoWPAN Border Router (6LBR) MUST be clearly 326 documented by the vendor and the dynamic use of associated resources 327 SHOULD be made available to the network operator, e.g., to a 328 management console. 330 In order to deploy this, network administrators need to ensure that 331 6LR/6LBRs in their network support the number and type of devices 332 that can register to them, based on the number of IPv6 addresses that 333 those devices require and their address renewal rate and behavior. 335 4. Extended ND Options and Messages 337 This specification does not introduce new options, but it modifies 338 existing ones and updates the associated behaviors as specified in 339 the following subsections. 341 4.1. Extended Address Registration Option (EARO) 343 The Address Registration Option (ARO) is defined in section 4.1 of 344 [RFC6775]. This specification introduces the Extended Address 345 Registration Option (EARO) based on the ARO for use in NS and NA 346 messages. The EARO conveys additional information such as a sequence 347 counter called Transaction ID (TID) that is used to determine the 348 latest location of a registering mobile device. A 'T' flag is added 349 to indicate that the TID field is populated. 351 The EARO also signals whether the 6LN expects routing or proxy 352 services from the 6LR using a new 'R' flag. 354 The EUI-64 field is overloaded and renamed ROVR in order to carry 355 different types of information, e.g., cryptographic information of 356 variable size. A larger ROVR size may be used if and only if 357 backward compatibility is not an issue in the particular deployment. 359 Section 5.1 discusses those changes in depth. 361 An NS message with an EARO is a registration if and only if it also 362 carries an SLLA Option [RFC6775]. The EARO is also used in NS and NA 363 messages between Backbone Routers [I-D.ietf-6lo-backbone-router] over 364 the Backbone Link to sort out the distributed registration state; in 365 that case, it does not carry the SLLA Option and is not confused with 366 a registration. 368 When using the EARO, the address being registered is found in the 369 Target Address field of the NS and NA messages. 371 The EARO extends the ARO and is indicated by the 'T' flag being set. 373 The format of the EARO is as follows: 375 0 1 2 3 376 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 377 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 378 | Type | Length | Status | Reserved | 379 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 380 | Reserved |R|T| TID | Registration Lifetime | 381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 382 | | 383 ... Registration Ownership Verifier ... 384 | | 385 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 387 Figure 1: EARO 389 Option Fields 391 Type: 33 393 Length: 8-bit unsigned integer. The length of the whole 394 option in units of 8 bytes. It MUST be 2 when 395 operating in a backward-compatible mode with a ROVR 396 size of 64 bits. It MAY be 3, 4 or 5, denoting a 397 ROVR size of 128, 192 and 256 bits respectively. 399 Status: 8-bit unsigned integer. Indicates the status of a 400 registration in the NA response. MUST be set to 0 in 401 NS messages. See Table 1 below. 403 +-------+-----------------------------------------------------------+ 404 | Value | Description | 405 +-------+-----------------------------------------------------------+ 406 | 0..2 | See [RFC6775]. Note: a Status of 1 ("Duplicate Address") | 407 | | applies to the Registered Address. If the Source Address | 408 | | conflicts with an existing registration, "Duplicate | 409 | | Source Address" MUST be used. | 410 | | | 411 | 3 | Moved: The registration failed because it is not the | 412 | | freshest. This Status indicates that the registration is | 413 | | rejected because another more recent registration was | 414 | | done, as indicated by a same ROVR and a more recent TID. | 415 | | One possible cause is a stale registration that has | 416 | | progressed slowly in the network and was passed by a more | 417 | | recent one. It could also indicate a ROVR collision. | 418 | | | 419 | 4 | Removed: The binding state was removed. This status may | 420 | | be placed in an NA(EARO) message that is sent as the | 421 | | rejection of a proxy registration to a Backbone Router, | 422 | | or in an asynchronous NA(EARO) at any time. | 423 | | | 424 | 5 | Validation Requested: The Registering Node is challenged | 425 | | for owning the Registered Address or for being an | 426 | | acceptable proxy for the registration. This Status is | 427 | | expected in asynchronous messages from a registrar (6LR, | 428 | | 6LBR, 6BBR) to indicate that the registration state is | 429 | | removed, for instance, due to a movement of the device. | 430 | | | 431 | 6 | Duplicate Source Address: The address used as source of | 432 | | the NS(ARO) conflicts with an existing registration. | 433 | | | 434 | 7 | Invalid Source Address: The address used as source of the | 435 | | NS(ARO) is not a Link-Local Address as prescribed by this | 436 | | document. | 437 | | | 438 | 8 | Registered Address topologically incorrect: The address | 439 | | being registered is not usable on this link, e.g., it is | 440 | | not topologically correct | 441 | | | 442 | 9 | 6LBR Registry saturated: A new registration cannot be | 443 | | accepted because the 6LBR Registry is saturated. Note: | 444 | | this code is used by 6LBRs instead of Status 2 when | 445 | | responding to a Duplicate Address message exchange and is | 446 | | passed on to the Registering Node by the 6LR. | 447 | | | 448 | 10 | Validation Failed: The proof of ownership of the | 449 | | registered address is not correct. | 450 +-------+-----------------------------------------------------------+ 452 Table 1: EARO Status 454 Reserved: This field is unused. It MUST be initialized to zero 455 by the sender and MUST be ignored by the receiver. 457 R: One-bit flag. If the 'R' flag is set, the 458 Registering Node expects that the 6LR ensures 459 reachability for the registered address, e.g., by 460 injecting the address in a Route-Over routing 461 protocol or proxying ND over a Backbone Link. 463 T: One-bit flag. Set if the next octet is used as a 464 TID. 466 TID: One-byte integer; a Transaction ID that is maintained 467 by the node and incremented with each transaction of 468 one or more registrations performed at the same time 469 to one or more respective 6LRs. This field MUST be 470 ignored if the 'T' flag is not set. 472 Registration Lifetime: 16-bit integer; expressed in minutes. 0 473 means that the registration has ended and the 474 associated state MUST be removed. 476 Registration Ownership Verifier (ROVR): Enables the correlation 477 between multiple attempts to register a same IPv6 478 Address. The ROVR is stored in the 6LR and the 6LBR 479 in the state associated to the registration. This 480 can be a unique ID of the Registering Node, such as 481 the EUI-64 address of an interface. This can also be 482 a token obtained with cryptographic methods which can 483 be used in additional protocol exchanges to associate 484 a cryptographic identity (key) with this registration 485 to ensure that only the owner can modify it later. 486 The scope of a ROVR is the registration of a 487 particular IPv6 Address and it must not be used to 488 correlate registrations of different addresses. 490 4.2. Extended Duplicate Address Message Formats 492 The DAR and DAC messages are defined in section 4.4 of [RFC6775]. 493 Those messages follow a common base format, which enables information 494 from the ARO to be transported over multiple hops. 496 Those messages are extended to adapt to the new EARO format, as 497 follows: 499 0 1 2 3 500 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 501 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 502 | Type | Code | Checksum | 503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 504 | Status | TID | Registration Lifetime | 505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 506 | | 507 ... Registration Ownership Verifier ... 508 | | 509 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 510 | | 511 + + 512 | | 513 + Registered Address + 514 | | 515 + + 516 | | 517 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 519 Figure 2: Duplicate Address Messages Format 521 Modified Message Fields 523 Code: The ICMP Code as defined in [RFC4443]. The ICMP Code 524 MUST be set to 1 with this specification. An non- 525 null value of the ICMP Code indicates support for 526 this specification. 528 TID: 1-byte integer; same definition and processing as the 529 TID in the EARO as defined in Section 4.1. This 530 field MUST be ignored if the ICMP Code is null. 532 Registration Ownership Verifier (ROVR): The size of the ROVR is 533 computed from the overall size of the IPv6 packet. 534 It MUST be 64bits long when operating in backward- 535 compatible mode. This field has the same definition 536 and processing as the ROVR in the EARO option as 537 defined in Section 4.1. 539 4.3. New 6LoWPAN Capability Bits in the Capability Indication Option 541 This specification defines 5 new capability bits for use in the 6CIO, 542 which was introduced by [RFC7400] for use in IPv6 ND RA messages. 544 This specification introduces the "E" flag to indicate that extended 545 ARO can be used in a registration. A 6LR that supports this 546 specification MUST set the "E" flag. 548 A similar flag "D" indicates the support of Extended Duplicate 549 Address Messages by the 6LBR; A 6LBR that supports this specification 550 MUST set the "D" flag. The "D" flag is learned from advertisements 551 by a 6LBR, and is propagated down a graph of 6LRs as a node acting as 552 6LN registers to a 6LR (which could be the 6LBR), and in turn becomes 553 a 6LR to which other 6LNs will register. 555 The new "L", "B", and "P" flags, indicate whether a router is capable 556 of acting as 6LR, 6LBR, and 6BBR, respectively. These flags are not 557 mutually exclusive and a node MUST set all the flags that are 558 relevant to it. 560 As an example, a 6LBR sets the "B" and "D" flags. If it acts as a 561 6LR, then it sets the "L" and "E" flags. If it is collocated with a 562 6BBR, then it also sets the "P" flag. 564 0 1 2 3 565 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 566 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 567 | Type | Length = 1 | Reserved |D|L|B|P|E|G| 568 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 569 | Reserved | 570 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 572 Figure 3: New capability Bits L, B, P, E in the 6CIO 574 Option Fields 576 Type: 36 578 L: Node is a 6LR. 580 B: Node is a 6LBR. 582 P: Node is a 6BBR. 584 E: Node supports registrations based on EARO. 586 D: 6LBR supports EDA messages. 588 5. Updating RFC 6775 590 The Extended Address Registration Option (EARO) (see Section 4.1) 591 replaces the ARO used within Neighbor Discovery NS and NA messages 592 between a 6LN and its 6LR. Similarly, the EDA messages, EDAR and 593 EDAC, replace the DAR and DAC messages so as to transport the new 594 information between 6LRs and 6LBRs across an LLN mesh such as a 595 6TiSCH network. 597 The extensions to the ARO option are used in the Duplicate Address 598 messages, the Duplicate Address Request (DAR) and Duplicate Address 599 Confirmation (DAC), so as to convey the additional information all 600 the way to the 6LBR. In turn the 6LBR may proxy the registration 601 using IPv6 ND over a Backbone Link as illustrated in Figure 4. Note 602 that this specification avoids the Duplicate Address message flow for 603 Link-Local Addresses in a Route-Over [RFC6606] topology (see 604 Section 5.6). 606 6LN 6LR 6LBR 6BBR 607 | | | | 608 | NS(EARO) | | | 609 |--------------->| | | 610 | | Extended DAR | | 611 | |-------------->| | 612 | | | | 613 | | | proxy NS(EARO) | 614 | | |--------------->| 615 | | | | NS(DAD) 616 | | | | ------> 617 | | | | 618 | | | | 619 | | | proxy NA(EARO) | 620 | | |<---------------| 621 | | Extended DAC | | 622 | |<--------------| | 623 | NA(EARO) | | | 624 |<---------------| | | 625 | | | | 627 Figure 4: (Re-)Registration Flow 629 In order to support various types of link layers, this specification 630 allows multiple registrations, including for privacy / temporary 631 addresses and provides new mechanisms to help clean up stale 632 registration state as soon as possible, e.g., after a movement (see 633 Section 7). 635 Section 5 of [RFC6775] specifies how a 6LN bootstraps an interface 636 and locates available 6LRs. A Registering Node prefers registering 637 to a 6LR that is found to support this specification, as discussed in 638 Section 6.1, over an RFC6775-only one, and operates in a backward- 639 compatible fashion when attaching to an RFC6775-only 6LR. 641 5.1. Extending the Address Registration Option 643 The Extended ARO (EARO) replaces the ARO and is backward compatible 644 with the ARO if and only if the Length of the option is set to 2. 645 Its format is presented in Section 4.1. More details on backward 646 compatibility can be found in Section 6. 648 The semantics of the Neighbor Solicitation (NS) and the ARO are 649 modified as follows: 651 o The Target Address in the NS containing the EARO is now the field 652 that indicates the address that is being registered, as opposed to 653 the Source Address field as specified in [RFC6775] (see 654 Section 5.5). This change enables a 6LBR to use one of its 655 addresses as source of the proxy-registration of an address that 656 belongs to a LLN Node to a 6BBR. This also limits the use of an 657 address as source address before it is registered and the 658 associated DAD process is complete. 660 o The EUI-64 field in the ARO Option is renamed Registration 661 Ownership Verifier (ROVR) and is not required to be derived from a 662 MAC address (see Section 5.3). 664 o The option Length MAY be different than 2 and take a value between 665 3 and 5, in which case the EARO is not backward compatible with an 666 ARO. The increase of size corresponds to a larger ROVR field, so 667 the size of the ROVR is inferred from the option Length. 669 o This document specifies a new flag in the EARO, the 'R' flag. If 670 the 'R' flag is set, the Registering Node expects that the 6LR 671 ensures reachability for the Registered Address, e.g., by means of 672 routing or proxying ND. Conversely, when it is not set, the 'R' 673 flag indicates that the Registering Node is a router, which for 674 instance participates to a Route-Over routing protocol such as RPL 675 [RFC6550] and that it will take care of injecting its Address over 676 the routing protocol by itself. A 6LN that acts only as a host, 677 when registering, MUST set the 'R' flag to indicate that it is not 678 a router and that it will not handle its own reachability. A 6LR 679 that manages its reachability SHOULD NOT set the 'R' flag; if it 680 does, routes towards this router may be installed on its behalf 681 and may interfere with those it injects. 683 o The specification introduces a Transaction ID (TID) field in the 684 EARO (see Section 5.2). The TID MUST be provided by a node that 685 supports this specification and another new flag, the 'T' flag, 686 MUST be set to indicate so. 688 o Finally, this specification introduces new status codes to help 689 diagnose the cause of a registration failure (see Table 1). 691 5.2. Transaction ID 693 The TID is a sequence number that is incremented by the 6LN with each 694 re-registration to a 6LR. The TID is used to detect the freshness of 695 the registration request and to detect one single registration by 696 multiple 6LoWPAN border routers (e.g., 6LBRs and 6BBRs) supporting 697 the same 6LoWPAN. The TID may also be used by the network to route 698 to the current (freshest known) location of a moving node by spotting 699 the most recent TID. 701 When a Registered Node is registered with multiple 6BBRs in parallel, 702 the same TID MUST be used. This enables the 6BBRs to determine that 703 the registrations are the same, and distinguish that situation from a 704 movement (see section 4 of [I-D.ietf-6lo-backbone-router] and 705 Section 5.7 below). 707 5.2.1. Comparing TID values 709 As a note to the implementer, the operation of the TID is fully 710 compatible with that of the RPL Path Sequence counter as described in 711 the "Sequence Counter Operation" section of the "IPv6 Routing 712 Protocol for Low-Power and Lossy Networks" [RFC6550] specification. 714 A TID is deemed to be fresher than another when its value is greater 715 per the operations detailed in this section. 717 The TID range is subdivided in a 'lollipop' fashion ([Perlman83]), 718 where the values from 128 and greater are used as a linear sequence 719 to indicate a restart and bootstrap the counter, and the values less 720 than or equal to 127 used as a circular sequence number space of size 721 128 as in [RFC1982]. Consideration is given to the mode of operation 722 when transitioning from the linear region to the circular region. 723 Finally, when operating in the circular region, if sequence numbers 724 are detected to be too far apart then they are not comparable, as 725 detailed below. 727 A window of comparison, SEQUENCE_WINDOW = 16, is configured based on 728 a value of 2^N, where N is defined to be 4 in this specification. 730 For a given sequence counter, 732 1. The sequence counter SHOULD be initialized to an implementation 733 defined value which is 128 or greater prior to use. A 734 recommended value is 240 (256 - SEQUENCE_WINDOW). 736 2. When a sequence counter increment would cause the sequence 737 counter to increment beyond its maximum value, the sequence 738 counter MUST wrap back to zero. When incrementing a sequence 739 counter greater than or equal to 128, the maximum value is 255. 740 When incrementing a sequence counter less than 128, the maximum 741 value is 127. 743 3. When comparing two sequence counters, the following rules MUST be 744 applied: 746 1. When a first sequence counter A is in the interval [128..255] 747 and a second sequence counter B is in [0..127]: 749 1. If (256 + B - A) is less than or equal to 750 SEQUENCE_WINDOW, then B is greater than A, A is less than 751 B, and the two are not equal. 753 2. If (256 + B - A) is greater than SEQUENCE_WINDOW, then A 754 is greater than B, B is less than A, and the two are not 755 equal. 757 For example, if A is 240, and B is 5, then (256 + 5 - 240) is 758 21. 21 is greater than SEQUENCE_WINDOW (16), thus 240 is 759 greater than 5. As another example, if A is 250 and B is 5, 760 then (256 + 5 - 250) is 11. 11 is less than SEQUENCE_WINDOW 761 (16), thus 250 is less than 5. 763 2. In the case where both sequence counters to be compared are 764 less than or equal to 127, and in the case where both 765 sequence counters to be compared are greater than or equal to 766 128: 768 1. If the absolute magnitude of difference between the two 769 sequence counters is less than or equal to 770 SEQUENCE_WINDOW, then a comparison as described in 771 [RFC1982] is used to determine the relationships greater 772 than, less than, and equal. 774 2. If the absolute magnitude of difference of the two 775 sequence counters is greater than SEQUENCE_WINDOW, then a 776 desynchronization has occurred and the two sequence 777 numbers are not comparable. 779 4. If two sequence numbers are determined to be not comparable, 780 i.e., the results of the comparison are not defined, then a node 781 should give precedence to the sequence number that was most 782 recently incremented. Failing this, the node should select the 783 sequence number in order to minimize the resulting changes to its 784 own state. 786 5.3. Registration Ownership Verifier 788 The ROVR field generalizes the EUI-64 field of the ARO defined in 789 [RFC6775]. It is scoped to a registration and enables recognizing 790 and blocking an attempt to register a duplicate address, which is 791 characterized by a different ROVR in the conflicting registrations. 792 It can also be used to protect the ownership of a Registered Address, 793 if the proof-of-ownership of the ROVR can be obtained (more in 794 Section 5.6). 796 The ROVR can be of different types, as long as the type is signaled 797 in the message that carries the new type. For instance, the type can 798 be a cryptographic string and used to prove the ownership of the 799 registration as specified in "Address Protected Neighbor Discovery 800 for Low-power and Lossy Networks" [I-D.ietf-6lo-ap-nd]. In order to 801 support the flows related to the proof-of-ownership, this 802 specification introduces new status codes "Validation Requested" and 803 "Validation Failed" in the EARO. 805 Note on ROVR collision: different techniques for forming the ROVR 806 will operate in different name-spaces. [RFC6775] operates on EUI- 807 64(TM) addresses. [I-D.ietf-6lo-ap-nd] generates cryptographic 808 tokens. While collisions are not expected in the EUI-64 name-space 809 only, they may happen in the case of [I-D.ietf-6lo-ap-nd] and in a 810 mixed situation. An implementation that understands the name-space 811 MUST consider that ROVRs from different name-spaces are different 812 even if they have the same value. An RFC6775-only 6LR or 6LBR will 813 confuse the name-spaces, which slightly increases the risk of a ROVR 814 collision. A collision of ROVR has no effect if the two Registering 815 Nodes register different addresses, since the ROVR is only 816 significant within the context of one registration. A ROVR is not 817 expected to be unique to one registration, as this specification 818 allows a node to use the same ROVR to register multiple IPv6 819 addresses. This is why the ROVR MUST NOT be used as a key to 820 identify the Registering Node, or as an index to the registration. 821 It is only used as a match to ensure that the node that updates a 822 registration for an IPv6 address is the node that made the original 823 registration for that IPv6 address. Also, when the ROVR is not an 824 EUI-64 address, then it MUST NOT be used as the interface ID of the 825 Registered Address. This way, a registration that uses that ROVR 826 will not collision with that of an IPv6 Address derived from EUI-64 827 and using the EUI-64 as ROVR per [RFC6775]. 829 The Registering Node SHOULD store the ROVR, or enough information to 830 regenerate it, in persistent memory. If this is not done and an 831 event such as a reboot causes a loss of state, re-registering the 832 same address could be impossible until the 6LRs and the 6LBR time out 833 the previous registration, or a management action is taken to clear 834 the relevant state in the network. 836 5.4. Extended Duplicate Address Messages 838 In order to map the new EARO content in the Extended Duplicate 839 Address (EDA) messages, a new TID field is added to the Extended DAR 840 (EDAR) and the Extended DAC (EDAC) messages as a replacement of the 841 Reserved field, and a non-null value of the ICMP Code indicates 842 support for this specification. The format of the EDA messages is 843 presented in Section 4.2. 845 As with the EARO, the Extended Duplicate Address messages are 846 backward compatible with the RFC6775-only versions as long as the 847 ROVR field is 64 bits long. Remarks concerning backwards 848 compatibility for the protocol between the 6LN and the 6LR apply 849 similarly between a 6LR and a 6LBR. 851 5.5. Registering the Target Address 853 The Registering Node is the node that performs the registration to 854 the 6BBR. As in [RFC6775], it may be the Registered Node as well, in 855 which case it registers one of its own addresses and indicates its 856 own MAC Address as Source Link Layer Address (SLLA) in the NS(EARO). 858 This specification adds the capability to proxy the registration 859 operation on behalf of a Registered Node that is reachable over an 860 LLN mesh. In that case, if the Registered Node is reachable from the 861 6BBR over a Mesh-Under mesh, the Registering Node indicates the MAC 862 Address of the Registered Node as the SLLA in the NS(EARO). If the 863 Registered Node is reachable over a Route-Over mesh from the 864 Registering Node, the SLLA in the NS(ARO) is that of the Registering 865 Node. This enables the Registering Node to attract the packets from 866 the 6BBR and route them over the LLN to the Registered Node. 868 In order to enable the latter operation, this specification changes 869 the behavior of the 6LN and the 6LR so that the Registered Address is 870 found in the Target Address field of the NS and NA messages as 871 opposed to the Source Address. With this convention, a TLLA option 872 indicates the link-layer address of the 6LN that owns the address. 874 If Registering Node expects packets for the 6LN, e.g., a 6LBR also 875 acting as RPL Root, then it MUST place its own Link Layer Address in 876 the SLLA Option that MUST always be placed in a registration NS(EARO) 877 message. This maintains compatibility with RFC6775-only 6LoWPAN ND 878 [RFC6775]. 880 5.6. Link-Local Addresses and Registration 882 Considering that LLN nodes are often not wired and may move, there is 883 no guarantee that a Link-Local Address stays unique between a 884 potentially variable and unbounded set of neighboring nodes. 886 Compared to [RFC6775], this specification only requires that a Link- 887 Local Address be unique from the perspective of the two nodes that 888 use it to communicate (e.g., the 6LN and the 6LR in an NS/NA 889 exchange). This simplifies the DAD process in a Route-Over topology 890 for Link-Local Addresses by avoiding an exchange of EDA messages 891 between the 6LR and a 6LBR for those addresses. 893 In more details: 895 An exchange between two nodes using Link-Local Addresses implies that 896 they are reachable over one hop. A node MUST register a Link-Local 897 Address to a 6LR in order to obtain reachability from that 6LR beyond 898 the current exchange, and in particular to use the Link-Local Address 899 as source address to register other addresses, e.g., global 900 addresses. 902 If there is no collision with an address previously registered to 903 this 6LR by another 6LN, then the Link-Local Address is unique from 904 the standpoint of this 6LR and the registration is not a duplicate. 905 Alternatively, two different 6LRs might expose the same Link-Local 906 Address but different link-layer addresses. In that case, a 6LN MUST 907 only interact with at most one of the 6LRs. 909 The DAD process between the 6LR and a 6LBR, which is based on an 910 exchange of EDA messages, does not need to take place for Link-Local 911 Addresses. 913 When registering to a 6LR that conforms to this specification (see 914 Section 6.2, a node MUST use a Link-Local Address as the source 915 address of the registration, whatever the type of IPv6 address that 916 is being registered. That Link-Local Address MUST be either an 917 address that is already registered to the 6LR, or the address that is 918 being registered. 920 When a Registering Node does not have an already-registered Address, 921 it MUST register a Link-Local Address, using it as both the Source 922 and the Target Address of an NS(EARO) message. In that case, it is 923 RECOMMENDED to use a Link-Local Address that is (expected to be) 924 globally unique, e.g., derived from a globally unique EUI-64 address. 925 A 6LR that supports this specification replies with an NA(EARO), 926 setting the appropriate status. 928 Since there is no exchange of EDA messages for Link-Local Addresses, 929 the 6LR may answer immediately to the registration of a Link-Local 930 Address, based solely on its existing state and the Source Link-Layer 931 Option that is placed in the NS(EARO) message as required in 932 [RFC6775]. 934 A node needs to register its IPv6 Global Unicast Addresses (GUAs) to 935 a 6LR in order to establish global reachability for these addresses 936 via that 6LR. When registering with an updated 6LR, a Registering 937 Node does not use a GUA as Source Address, in contrast to a node that 938 complies to [RFC6775]. For non-Link-Local Addresses, the exchange of 939 EDA messages MUST conform to [RFC6775], but the extended formats 940 described in this specification for the DAR and the DAC are used to 941 relay the extended information in the case of an EARO. 943 5.7. Maintaining the Registration States 945 This section discusses protocol actions that involve the Registering 946 Node, the 6LR, and the 6LBR. It must be noted that the portion that 947 deals with a 6LBR only applies to those addresses that are registered 948 to it; as discussed in Section 5.6, this is not the case for Link- 949 Local Addresses. The registration state includes all data that is 950 stored in the router relative to that registration, in particular, 951 but not limited to, an NCE. 6LBRs and 6BBRs may store additional 952 registration information in more complex abstract data structures and 953 use protocols that are out of scope of this document to keep them 954 synchronized when they are distributed. 956 When its resource available to store registration states are 957 exhausted, a 6LR cannot accept a new registration. In that 958 situation, the EARO is returned in an NA message with a Status Code 959 of "Neighbor Cache Full" (Table 1), and the Registering Node may 960 attempt to register to another 6LR. 962 If the registry in the 6LBR is saturated, then the 6LBR cannot decide 963 whether a registration for a new address is a duplicate. In that 964 case, the 6LBR replies to an EDAR message with an EDAC message that 965 carries a new Status Code indicating "6LBR Registry saturated" 966 (Table 1). Note: this code is used by 6LBRs instead of "Neighbor 967 Cache Full" when responding to a Duplicate Address message exchange 968 and is passed on to the Registering Node by the 6LR. There is no 969 point for the node to retry this registration immediately via another 970 6LR, since the problem is global to the network. The node may either 971 abandon that address, de-register other addresses first to make room, 972 or keep the address in TENTATIVE state and retry later. 974 A node renews an existing registration by sending a new NS(EARO) 975 message for the Registered Address. In order to refresh the 976 registration state in the 6LBR, the registration MUST be reported to 977 the 6LBR. 979 A node that ceases to use an address SHOULD attempt to de-register 980 that address from all the 6LRs to which it has registered the 981 address. This is achieved using an NS(EARO) message with a 982 Registration Lifetime of 0. If this is not done, the associated 983 state will remain in the network till the current Registration 984 Lifetime expires and this may lead to a situation where the 6LR 985 resources become saturated, even if they are correctly planned to 986 start with. The 6LR may then take defensive measures that may 987 prevent this node or some other nodes from owning as many addresses 988 as they would expect (see Section 7). 990 A node that moves away from a particular 6LR SHOULD attempt to de- 991 register all of its addresses registered to that 6LR and register to 992 a new 6LR with an incremented TID. When/if the node shows up 993 elsewhere, an asynchronous NA(EARO) or EDAC message with a Status 994 Code of "Moved" SHOULD be used to clean up the state in the previous 995 location. For instance, as described in 996 [I-D.ietf-6lo-backbone-router], the "Moved" status can be used by a 997 6BBR in an NA(EARO) message to indicate that the ownership of the 998 proxy state on the Backbone Link was transferred to another 6BBR as 999 the consequence of a movement of the device. If the receiver of the 1000 message has a state corresponding to the related address, it SHOULD 1001 propagate the status down the forwarding path to the Registered node 1002 (e.g., reversing an existing RPL [RFC6550] path as prescribed in 1003 [I-D.ietf-roll-efficient-npdao]). Whether it could do so or not, the 1004 receiver MUST clean up said state. 1006 Upon receiving an NS(EARO) message with a Registration Lifetime of 0 1007 and determining that this EARO is the freshest for a given NCE (see 1008 Section 5.2), a 6LR cleans up its NCE. If the address was registered 1009 to the 6LBR, then the 6LR MUST report to the 6LBR, through a 1010 Duplicate Address exchange with the 6LBR, indicating the null 1011 Registration Lifetime and the latest TID that this 6LR is aware of. 1013 Upon receiving the EDAR message, the 6LBR evaluates if this is the 1014 most recent TID it has received for that particular registry entry. 1015 If so, then the EDAR is answered with an EDAC message bearing a 1016 Status of "Success" and the entry is scheduled to be removed. 1017 Otherwise, a Status Code of "Moved" is returned instead, and the 1018 existing entry is maintained. 1020 When an address is scheduled to be removed, the 6LBR SHOULD keep its 1021 entry in a DELAY state for a configurable period of time, so as to 1022 protect a mobile node that de-registered from one 6LR and did not 1023 register yet to a new one, or the new registration did not yet reach 1024 the 6LBR due to propagation delays in the network. Once the DELAY 1025 time is passed, the 6LBR silently removes its entry. 1027 6. Backward Compatibility 1029 This specification changes the behavior of the peers in a 1030 registration flow. To enable backward compatibility, a 6LN that 1031 registers to a 6LR that is not known to support this specification 1032 MUST behave in a manner that is backward-compatible with [RFC6775]. 1033 On the contrary, if the 6LR is found to support this specification, 1034 then the 6LN MUST conform to this specification when communicating 1035 with that 6LR. 1037 A 6LN that supports this specification MUST always use an EARO as a 1038 replacement for an ARO in its registration to a router. This is 1039 backward-compatible since the 'T' flag and TID field are reserved in 1040 [RFC6775], and are ignored by an RFC6775-only router. A router that 1041 supports this specification MUST answer an NS(ARO) and an NS(EARO) 1042 with an NA(EARO). A router that does not support this specification 1043 will consider the ROVR as an EUI-64 address and treat it the same, 1044 which has no consequence if the Registered Addresses are different. 1046 6.1. Signaling EARO Capability Support 1048 "Generic Header Compression for IPv6 over 6LoWPANs" [RFC7400] 1049 introduces the 6LoWPAN Capability Indication Option (6CIO) to 1050 indicate a node's capabilities to its peers. The 6CIO MUST be 1051 present in both Router Solicitation (RS) and Router Advertisement 1052 (RA) messages, unless the information therein was already shared. 1053 This can have happened in recent exchanges. The information can also 1054 be implicit, or pre-configured in all nodes in a network. In any 1055 case, a 6CIO MUST be placed in an RA message that is sent in response 1056 to an RS with a 6CIO. 1058 Section 4.3 defines a new flag for the 6CIO to signal support for 1059 EARO by the issuer of the message and Section 6.2 specifies how the 1060 flag is to be used. New flags are also added to the 6CIO to signal 1061 the sender's capability to act as a 6LR, 6LBR, and 6BBR (see 1062 Section 4.3). 1064 Section 4.3 also defines a new flag that indicates the support of EDA 1065 messages by the 6LBR. This flag is valid in RA messages but not in 1066 RS messages. More information on the 6LBR is found in a separate 1067 Authoritative Border Router Option (ABRO). The ABRO is placed in RA 1068 messages as prescribed by [RFC6775]; in particular, it MUST be placed 1069 in an RA message that is sent in response to an RS with a 6CIO 1070 indicating the capability to act as a 6LR, since the RA propagates 1071 information between routers. 1073 6.2. First Exchanges 1075 A typical flow when a node starts up is that it sends a multicast RS 1076 and receives one or more unicast RA messages. If the 6LR can process 1077 Extended ARO, then it places a 6CIO in its RA message back with the 1078 "E" Flag set as required in Section 6.1. 1080 In order to ensure that it registers a first address successfully a 1081 6LN MAY register a Link Local Address that is derived from an EUI-64, 1082 placing the same address in the Source and Target Address fields of 1083 the NS(EARO) message. For such an address, DAD is not required (see 1084 [RFC6775]) and using the SLLA Option in the NS is actually more 1085 consistent with existing ND specifications such as the "Optimistic 1086 Duplicate Address Detection (ODAD) for IPv6" [RFC4429]. The 6LN MAY 1087 then use that address to register one or more other addresses. 1089 6.3. RFC6775-only 6LoWPAN Node 1091 An RFC6775-only 6LN will use the Registered Address as the source 1092 address of the NS message and will not use an EARO. An updated 6LR 1093 MUST accept that registration if it is valid per [RFC6775], and it 1094 MUST manage the binding cache accordingly. The updated 6LR MUST then 1095 use the RFC6775-only EDA messages as specified in [RFC6775] to 1096 indicate to the 6LBR that the TID is not present in the messages. 1098 The main difference from [RFC6775] is that the exchange of EDA 1099 messages for the purpose of DAD is avoided for Link-Local Addresses. 1100 In any case, the 6LR MUST use an EARO in the reply, and can use any 1101 of the Status codes defined in this specification. 1103 6.4. RFC6775-only 6LoWPAN Router 1105 An updated 6LN discovers the capabilities of the 6LR in the 6CIO in 1106 RA messages from that 6LR; if the 6CIO was not present in the RA, 1107 then the 6LR is assumed to be a RFC6775-only 6LoWPAN Router. 1109 An updated 6LN MUST use an EARO in the request regardless of the type 1110 of 6LR, RFC6775-only or updated, which implies that the 'T' flag is 1111 set. It MUST use a ROVR of 64 bits if the 6LR is an RFC6775-only 1112 6LoWPAN Router. 1114 If an updated 6LN moves from an updated 6LR to an RFC6775-only 6LR, 1115 the RFC6775-only 6LR will send an RFC6775-only DAR message, which 1116 cannot be compared with an updated one for freshness. Allowing 1117 RFC6775-only DAR messages to replace a state established by the 1118 updated protocol in the 6LBR would be an attack vector and that 1119 cannot be the default behavior. But if RFC6775-only and updated 6LRs 1120 coexist temporarily in a network, then it makes sense for an 1121 administrator to install a policy that allows this, and the 1122 capability to install such a policy should be configurable in a 6LBR 1123 though it is out of scope for this document. 1125 6.5. RFC6775-only 6LoWPAN Border Router 1127 With this specification, the Duplicate Address messages are extended 1128 to transport the EARO information. Similarly to the NS/NA exchange, 1129 an updated 6LBR MUST always use the EDA messages. 1131 Note that an RFC6775-only 6LBR will accept and process an EDAR 1132 message as if it were an RFC6775-only DAR, as long as the ROVR is 64 1133 bits long. An updated 6LR discovers the capabilities of the 6LBR in 1134 the 6CIO in RA messages from the 6LR; if the 6CIO was not present in 1135 any RA, then the 6LBR si assumed to be a RFC6775-only 6LoWPAN Border 1136 Router. 1138 If the 6LBR is RFC6775-only, and the ROVR in the NS(EARO) was more 1139 than 64 bits long, then the 6LR MUST truncate the ROVR to the 64 1140 rightmost bit and place the result in the EDAR message to maintain 1141 compatibility. This way, the support of DAD is preserved. 1143 7. Security Considerations 1145 This specification extends [RFC6775], and the security section of 1146 that document also applies to this as well. In particular, it is 1147 expected that the link layer is sufficiently protected to prevent 1148 rogue access, either by means of physical or IP security on the 1149 Backbone Link and link-layer cryptography on the LLN. 1151 [RFC6775] does not protect the content of its messages and expects a 1152 lower layer encryption to defeat potential attacks. This 1153 specification also expects that the LLN MAC provides secure unicast 1154 to/from the Backbone Router and secure Broadcast or Multicast from 1155 the Backbone Router in a way that prevents tampering with or 1156 replaying the Neighbor Discovery messages. 1158 This specification recommends using privacy techniques (see 1159 Section 8) and protecting against address theft such as provided by 1160 "Address Protected Neighbor Discovery for Low-power and Lossy 1161 Networks" [I-D.ietf-6lo-ap-nd], which guarantees the ownership of the 1162 Registered Address using a cryptographic ROVR. 1164 The registration mechanism may be used by a rogue node to attack the 1165 6LR or the 6LBR with a Denial-of-Service attack against the registry. 1166 It may also happen that the registry of a 6LR or a 6LBR is saturated 1167 and cannot take any more registrations, which effectively denies the 1168 requesting node the capability to use a new address. In order to 1169 alleviate those concerns, Section 5.7 provides a number of 1170 recommendations that ensure that a stale registration is removed as 1171 soon as possible from the 6LR and 6LBR. In particular, this 1172 specification recommends that: 1174 o A node that ceases to use an address SHOULD attempt to de-register 1175 that address from all the 6LRs to which it is registered. See 1176 Section 5.2 for the mechanism to avoid replay attacks and avoiding 1177 the use of stale registration information. 1179 o The Registration lifetimes SHOULD be individually configurable for 1180 each address or group of addresses. The nodes SHOULD be 1181 configured with a Registration Lifetime that reflects their 1182 expectation of how long they will use the address with the 6LR to 1183 which it is registered. In particular, use cases that involve 1184 mobility or rapid address changes SHOULD use lifetimes that are 1185 larger yet of a same order as the duration of the expectation of 1186 presence. 1188 o The router (6LR or 6LBR) SHOULD be configurable so as to limit the 1189 number of addresses that can be registered by a single node, but 1190 as a protective measure only. In any case, a router MUST be able 1191 to keep a minimum number of addresses per node. That minimum 1192 depends on the type of device and ranges between 3 for a very 1193 constrained LLN and 10 for a larger device. A node may be 1194 identified by its MAC address, as long as it is not obfuscated by 1195 privacy measures. A stronger identification (e.g., by security 1196 credentials) is RECOMMENDED. When the maximum is reached, the 1197 router should use a Least-Recently-Used (LRU) algorithm to clean 1198 up the addresses, keeping at least one Link-Local Address. The 1199 router SHOULD attempt to keep one or more stable addresses if 1200 stability can be determined, e.g., because they are used over a 1201 much longer time span than other (privacy, shorter-lived) 1202 addresses. 1204 o In order to avoid denial of registration for the lack of 1205 resources, administrators should take great care to deploy 1206 adequate numbers of 6LRs to cover the needs of the nodes in their 1207 range, so as to avoid a situation of starving nodes. It is 1208 expected that the 6LBR that serves an LLN is a more capable node 1209 than the average 6LR, but in a network condition where it may 1210 become saturated, a particular deployment should distribute the 1211 6LBR functionality, for instance by leveraging a high speed 1212 Backbone Link and Backbone Routers to aggregate multiple LLNs into 1213 a larger subnet. 1215 The LLN nodes depend on the 6LBR and the 6BBR for their operation. A 1216 trust model must be put in place to ensure that the right devices are 1217 acting in these roles so as to avoid threats such as black-holing or 1218 bombing attack whereby an impersonated 6LBR would destroy state in 1219 the network by using the "Removed" Status code. This trust model 1220 could be at a minimum based on a Layer-2 access control, or could 1221 provide role validation as well (see Req5.1 in Appendix B.5). 1223 8. Privacy Considerations 1225 As indicated in Section 3, this protocol does not inherently limit 1226 the number of IPv6 addresses that each device can form. However, to 1227 mitigate denial-of-service attacks, it can be useful as a protective 1228 measure to have a limit that is high enough not to interfere with the 1229 normal behavior of devices in the network. A host should be able to 1230 form and register any address that is topologically correct in the 1231 subnet(s) advertised by the 6LR/6LBR. 1233 This specification does not mandate any particular way for forming 1234 IPv6 addresses, but it discourages using EUI-64 for forming the 1235 Interface ID in the Link-Local Address because this method prevents 1236 the usage of "SEcure Neighbor Discovery (SEND)" [RFC3971], 1237 "Cryptographically Generated Addresses (CGA)" [RFC3972], and that of 1238 address privacy techniques. 1240 "Privacy Considerations for IPv6 Adaptation-Layer Mechanisms" 1241 [RFC8065] explains why privacy is important and how to form privacy- 1242 aware addresses. All implementations and deployments must consider 1243 the option of privacy addresses in their own environments. 1245 The IPv6 address of the 6LN in the IPv6 header can be compressed 1246 statelessly when the Interface Identifier in the IPv6 address can be 1247 derived from the Lower Layer address. When it is not critical to 1248 benefit from that compression, e.g., the address can be compressed 1249 statefully, or it is rarely used and/or it is used only over one hop, 1250 then privacy concerns should be considered. In particular, new 1251 implementations should follow the IETF "Recommendation on Stable IPv6 1252 Interface Identifiers" [RFC8064]. [RFC8064] recommends the use of "A 1253 Method for Generating Semantically Opaque Interface Identifiers with 1254 IPv6 Stateless Address Autoconfiguration (SLAAC)" [RFC7217] for 1255 generating Interface Identifiers to be used in SLAAC. 1257 9. IANA Considerations 1259 Note to RFC Editor, to be removed: please replace "This RFC" 1260 throughout this document by the RFC number for this specification 1261 once it is allocated. 1263 IANA is requested to make a number of changes under the "Internet 1264 Control Message Protocol version 6 (ICMPv6) Parameters" registry, as 1265 follows. 1267 9.1. ARO Flags 1269 IANA is requested to create a new subregistry for "ARO Flags". This 1270 specification defines 8 positions, bit 0 to bit 7, and assigns bit 6 1271 for the 'R' flag and bit 7 for the 'T' flag (see Section 4.1). The 1272 policy is "IETF Review" or "IESG Approval" [RFC8126]. The initial 1273 content of the registry is as shown in Table 2. 1275 New subregistry for ARO Flags under the "Internet Control Message 1276 Protocol version 6 (ICMPv6) [RFC4443] Parameters" 1278 +-------------+--------------+-----------+ 1279 | ARO Status | Description | Document | 1280 +-------------+--------------+-----------+ 1281 | 0..5 | Unassigned | | 1282 | | | | 1283 | 6 | 'R' Flag | This RFC | 1284 | | | | 1285 | 7 | 'T' Flag | This RFC | 1286 +-------------+--------------+-----------+ 1288 Table 2: new ARO Flags 1290 9.2. ICMP Codes 1292 IANA is requested to create 2 new subregistries of the ICMPv6 "Code" 1293 Fields registry, which itself is a subregistry of the Internet 1294 Control Message Protocol version 6 (ICMPv6) Parameters for the ICMP 1295 codes. The new subregistries relate to the ICMP type 157, Duplicate 1296 Address Request (shown in Table 3), and 158, Duplicate Address 1297 Confirmation (shown in Table 4), respectively. The range of an 1298 ICMPv6 "Code" Field is 0..255 in all cases. The policy is "IETF 1299 Review" or "IESG Approval" [RFC8126] for both subregistries. The new 1300 subregistries are initialized as follows: 1302 New entries for ICMP types 157 DAR message 1304 +---------+----------------------+------------+ 1305 | Code | Name | Reference | 1306 +---------+----------------------+------------+ 1307 | 0 | Original DAR message | RFC 6775 | 1308 | | | | 1309 | 1 | Extended DAR message | This RFC | 1310 | | | | 1311 | 2...255 | Unassigned | | 1312 +---------+----------------------+------------+ 1314 Table 3: new ICMPv6 Code Fields 1316 New entries for ICMP types 158 DAC message 1318 +---------+----------------------+------------+ 1319 | Code | Name | Reference | 1320 +---------+----------------------+------------+ 1321 | 0 | Original DAC message | RFC 6775 | 1322 | | | | 1323 | 1 | Extended DAC message | This RFC | 1324 | | | | 1325 | 2...255 | Unassigned | | 1326 +---------+----------------------+------------+ 1328 Table 4: new ICMPv6 Code Fields 1330 9.3. New ARO Status values 1332 IANA is requested to make additions to the Address Registration 1333 Option Status Values Registry as follows: 1335 Address Registration Option Status Values Registry 1337 +-------------+-----------------------------------------+-----------+ 1338 | ARO Status | Description | Document | 1339 +-------------+-----------------------------------------+-----------+ 1340 | 3 | Moved | This RFC | 1341 | | | | 1342 | 4 | Removed | This RFC | 1343 | | | | 1344 | 5 | Validation Requested | This RFC | 1345 | | | | 1346 | 6 | Duplicate Source Address | This RFC | 1347 | | | | 1348 | 7 | Invalid Source Address | This RFC | 1349 | | | | 1350 | 8 | Registered Address topologically | This RFC | 1351 | | incorrect | | 1352 | | | | 1353 | 9 | 6LBR Registry saturated | This RFC | 1354 | | | | 1355 | 10 | Validation Failed | This RFC | 1356 +-------------+-----------------------------------------+-----------+ 1358 Table 5: New ARO Status values 1360 9.4. New 6LoWPAN capability Bits 1362 IANA is requested to make additions to the Subregistry for "6LoWPAN 1363 capability Bits" as follows: 1365 Subregistry for "6LoWPAN capability Bits" under the "Internet Control 1366 Message Protocol version 6 (ICMPv6) Parameters" 1368 +-----------------+----------------------+-----------+ 1369 | Capability Bit | Description | Document | 1370 +-----------------+----------------------+-----------+ 1371 | 10 | EDA Support (D bit) | This RFC | 1372 | | | | 1373 | 11 | 6LR capable (L bit) | This RFC | 1374 | | | | 1375 | 12 | 6LBR capable (B bit) | This RFC | 1376 | | | | 1377 | 13 | 6BBR capable (P bit) | This RFC | 1378 | | | | 1379 | 14 | EARO support (E bit) | This RFC | 1380 +-----------------+----------------------+-----------+ 1382 Table 6: New 6LoWPAN capability Bits 1384 10. Acknowledgments 1386 Kudos to Eric Levy-Abegnoli who designed the First Hop Security 1387 infrastructure upon which the first backbone router was implemented. 1388 Many thanks to Sedat Gormus, Rahul Jadhav, Tim Chown, Juergen 1389 Schoenwaelder, Chris Lonvick, Dave Thaler, Adrian Farrel, Peter Yee, 1390 Warren Kumari, Benjamin Kaduk, Mirja Kuhlewind, and Lorenzo Colitti 1391 for their various contributions and reviews. Also, many thanks to 1392 Thomas Watteyne for the world first implementation of a 6LN that was 1393 instrumental to the early tests of the 6LR, 6LBR and Backbone Router. 1395 11. References 1397 11.1. Normative References 1399 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1400 Requirement Levels", BCP 14, RFC 2119, 1401 DOI 10.17487/RFC2119, March 1997, 1402 . 1404 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1405 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 1406 2006, . 1408 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 1409 Control Message Protocol (ICMPv6) for the Internet 1410 Protocol Version 6 (IPv6) Specification", STD 89, 1411 RFC 4443, DOI 10.17487/RFC4443, March 2006, 1412 . 1414 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 1415 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 1416 DOI 10.17487/RFC4861, September 2007, 1417 . 1419 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 1420 Address Autoconfiguration", RFC 4862, 1421 DOI 10.17487/RFC4862, September 2007, 1422 . 1424 [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 1425 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 1426 DOI 10.17487/RFC6282, September 2011, 1427 . 1429 [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. 1430 Bormann, "Neighbor Discovery Optimization for IPv6 over 1431 Low-Power Wireless Personal Area Networks (6LoWPANs)", 1432 RFC 6775, DOI 10.17487/RFC6775, November 2012, 1433 . 1435 [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for 1436 IPv6 over Low-Power Wireless Personal Area Networks 1437 (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November 1438 2014, . 1440 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 1441 Writing an IANA Considerations Section in RFCs", BCP 26, 1442 RFC 8126, DOI 10.17487/RFC8126, June 2017, 1443 . 1445 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1446 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1447 May 2017, . 1449 11.2. Terminology Related References 1451 [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 1452 over Low-Power Wireless Personal Area Networks (6LoWPANs): 1453 Overview, Assumptions, Problem Statement, and Goals", 1454 RFC 4919, DOI 10.17487/RFC4919, August 2007, 1455 . 1457 [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem 1458 Statement and Requirements for IPv6 over Low-Power 1459 Wireless Personal Area Network (6LoWPAN) Routing", 1460 RFC 6606, DOI 10.17487/RFC6606, May 2012, 1461 . 1463 [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and 1464 Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January 1465 2014, . 1467 [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for 1468 Constrained-Node Networks", RFC 7228, 1469 DOI 10.17487/RFC7228, May 2014, 1470 . 1472 11.3. Informative References 1474 [I-D.chakrabarti-nordmark-6man-efficient-nd] 1475 Chakrabarti, S., Nordmark, E., Thubert, P., and M. 1476 Wasserman, "IPv6 Neighbor Discovery Optimizations for 1477 Wired and Wireless Networks", draft-chakrabarti-nordmark- 1478 6man-efficient-nd-07 (work in progress), February 2015. 1480 [I-D.delcarpio-6lo-wlanah] 1481 Vega, L., Robles, I., and R. Morabito, "IPv6 over 1482 802.11ah", draft-delcarpio-6lo-wlanah-01 (work in 1483 progress), October 2015. 1485 [I-D.hou-6lo-plc] 1486 Hou, J., Hong, Y., and X. Tang, "Transmission of IPv6 1487 Packets over PLC Networks", draft-hou-6lo-plc-03 (work in 1488 progress), December 2017. 1490 [I-D.ietf-6lo-ap-nd] 1491 Thubert, P., Sarikaya, B., and M. Sethi, "Address 1492 Protected Neighbor Discovery for Low-power and Lossy 1493 Networks", draft-ietf-6lo-ap-nd-06 (work in progress), 1494 February 2018. 1496 [I-D.ietf-6lo-backbone-router] 1497 Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- 1498 backbone-router-06 (work in progress), February 2018. 1500 [I-D.ietf-6lo-nfc] 1501 Choi, Y., Hong, Y., Youn, J., Kim, D., and J. Choi, 1502 "Transmission of IPv6 Packets over Near Field 1503 Communication", draft-ietf-6lo-nfc-09 (work in progress), 1504 January 2018. 1506 [I-D.ietf-6tisch-architecture] 1507 Thubert, P., "An Architecture for IPv6 over the TSCH mode 1508 of IEEE 802.15.4", draft-ietf-6tisch-architecture-13 (work 1509 in progress), November 2017. 1511 [I-D.ietf-mboned-ieee802-mcast-problems] 1512 Perkins, C., McBride, M., Stanley, D., Kumari, W., and J. 1513 Zuniga, "Multicast Considerations over IEEE 802 Wireless 1514 Media", draft-ietf-mboned-ieee802-mcast-problems-01 (work 1515 in progress), February 2018. 1517 [I-D.ietf-roll-efficient-npdao] 1518 Jadhav, R., Thubert, P., Sahoo, R., and Z. Cao, "Efficient 1519 Route Invalidation", draft-ietf-roll-efficient-npdao-03 1520 (work in progress), March 2018. 1522 [I-D.perkins-intarea-multicast-ieee802] 1523 Perkins, C., Stanley, D., Kumari, W., and J. Zuniga, 1524 "Multicast Considerations over IEEE 802 Wireless Media", 1525 draft-perkins-intarea-multicast-ieee802-03 (work in 1526 progress), July 2017. 1528 [I-D.struik-lwip-curve-representations] 1529 Struik, R., "Alternative Elliptic Curve Representations", 1530 draft-struik-lwip-curve-representations-00 (work in 1531 progress), October 2017. 1533 [I-D.thubert-roll-unaware-leaves] 1534 Thubert, P., "Routing for RPL Leaves", draft-thubert-roll- 1535 unaware-leaves-04 (work in progress), March 2018. 1537 [RFC1958] Carpenter, B., Ed., "Architectural Principles of the 1538 Internet", RFC 1958, DOI 10.17487/RFC1958, June 1996, 1539 . 1541 [RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC 1982, 1542 DOI 10.17487/RFC1982, August 1996, 1543 . 1545 [RFC3610] Whiting, D., Housley, R., and N. Ferguson, "Counter with 1546 CBC-MAC (CCM)", RFC 3610, DOI 10.17487/RFC3610, September 1547 2003, . 1549 [RFC3810] Vida, R., Ed. and L. Costa, Ed., "Multicast Listener 1550 Discovery Version 2 (MLDv2) for IPv6", RFC 3810, 1551 DOI 10.17487/RFC3810, June 2004, 1552 . 1554 [RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, 1555 "SEcure Neighbor Discovery (SEND)", RFC 3971, 1556 DOI 10.17487/RFC3971, March 2005, 1557 . 1559 [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", 1560 RFC 3972, DOI 10.17487/RFC3972, March 2005, 1561 . 1563 [RFC4429] Moore, N., "Optimistic Duplicate Address Detection (DAD) 1564 for IPv6", RFC 4429, DOI 10.17487/RFC4429, April 2006, 1565 . 1567 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 1568 Extensions for Stateless Address Autoconfiguration in 1569 IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007, 1570 . 1572 [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., 1573 Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, 1574 JP., and R. Alexander, "RPL: IPv6 Routing Protocol for 1575 Low-Power and Lossy Networks", RFC 6550, 1576 DOI 10.17487/RFC6550, March 2012, 1577 . 1579 [RFC7217] Gont, F., "A Method for Generating Semantically Opaque 1580 Interface Identifiers with IPv6 Stateless Address 1581 Autoconfiguration (SLAAC)", RFC 7217, 1582 DOI 10.17487/RFC7217, April 2014, 1583 . 1585 [RFC7428] Brandt, A. and J. Buron, "Transmission of IPv6 Packets 1586 over ITU-T G.9959 Networks", RFC 7428, 1587 DOI 10.17487/RFC7428, February 2015, 1588 . 1590 [RFC7668] Nieminen, J., Savolainen, T., Isomaki, M., Patil, B., 1591 Shelby, Z., and C. Gomez, "IPv6 over BLUETOOTH(R) Low 1592 Energy", RFC 7668, DOI 10.17487/RFC7668, October 2015, 1593 . 1595 [RFC7934] Colitti, L., Cerf, V., Cheshire, S., and D. Schinazi, 1596 "Host Address Availability Recommendations", BCP 204, 1597 RFC 7934, DOI 10.17487/RFC7934, July 2016, 1598 . 1600 [RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu, 1601 "Recommendation on Stable IPv6 Interface Identifiers", 1602 RFC 8064, DOI 10.17487/RFC8064, February 2017, 1603 . 1605 [RFC8065] Thaler, D., "Privacy Considerations for IPv6 Adaptation- 1606 Layer Mechanisms", RFC 8065, DOI 10.17487/RFC8065, 1607 February 2017, . 1609 [RFC8105] Mariager, P., Petersen, J., Ed., Shelby, Z., Van de Logt, 1610 M., and D. Barthel, "Transmission of IPv6 Packets over 1611 Digital Enhanced Cordless Telecommunications (DECT) Ultra 1612 Low Energy (ULE)", RFC 8105, DOI 10.17487/RFC8105, May 1613 2017, . 1615 [RFC8163] Lynn, K., Ed., Martocci, J., Neilson, C., and S. 1616 Donaldson, "Transmission of IPv6 over Master-Slave/Token- 1617 Passing (MS/TP) Networks", RFC 8163, DOI 10.17487/RFC8163, 1618 May 2017, . 1620 [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., 1621 Przygienda, T., and S. Aldrin, "Multicast Using Bit Index 1622 Explicit Replication (BIER)", RFC 8279, 1623 DOI 10.17487/RFC8279, November 2017, 1624 . 1626 11.4. External Informative References 1628 [IEEEstd802154] 1629 IEEE, "IEEE Standard for Low-Rate Wireless Networks", 1630 IEEE Standard 802.15.4, DOI 10.1109/IEEE 1631 P802.15.4-REVd/D01, June 2017, 1632 . 1634 [Perlman83] 1635 Perlman, R., "Fault-Tolerant Broadcast of Routing 1636 Information", North-Holland Computer Networks 7: 395-405, 1637 1983, . 1640 Appendix A. Applicability and Requirements Served (Not Normative) 1642 This specification extends 6LoWPAN ND to provide a sequence number to 1643 the registration and serves the requirements expressed in 1644 Appendix B.1 by enabling the mobility of devices from one LLN to the 1645 next based on the complementary work in the "IPv6 Backbone Router" 1646 [I-D.ietf-6lo-backbone-router] specification. 1648 In the context of the Timeslotted Channel Hopping (TSCH) mode of IEEE 1649 Std. 802.15.4 [IEEEstd802154], the "6TiSCH architecture" 1650 [I-D.ietf-6tisch-architecture] introduces how a 6LoWPAN ND host could 1651 connect to the Internet via a RPL mesh network, but this requires 1652 additions to the 6LoWPAN ND protocol to support mobility and 1653 reachability in a secured and manageable environment. This 1654 specification details the new operations that are required to 1655 implement the 6TiSCH architecture and serves the requirements listed 1656 in Appendix B.2. 1658 The term LLN is used loosely in this specification to cover multiple 1659 types of WLANs and WPANs, including Low-Power IEEE Std. 802.11 1660 networking, Bluetooth Low Energy, IEEE Std. 802.11ah, and IEEE Std. 1661 802.15.4 wireless meshes, so as to address the requirements discussed 1662 in Appendix B.3. 1664 This specification can be used by any wireless node to associate at 1665 Layer-3 with a 6BBR and register its IPv6 addresses to obtain routing 1666 services including proxy-ND operations over a Backbone Link, 1667 effectively providing a solution to the requirements expressed in 1668 Appendix B.4. 1670 This specification is extended by "Address Protected Neighbor 1671 Discovery for Low-power and Lossy Networks" [I-D.ietf-6lo-ap-nd] to 1672 providing a solution to some of the security-related requirements 1673 expressed in Appendix B.5. 1675 "Efficiency aware IPv6 Neighbor Discovery Optimizations" 1676 [I-D.chakrabarti-nordmark-6man-efficient-nd] suggests that 6LoWPAN ND 1677 [RFC6775] can be extended to other types of links beyond IEEE Std. 1678 802.15.4 for which it was defined. The registration technique is 1679 beneficial when the Link-Layer technique used to carry IPv6 multicast 1680 packets is not sufficiently efficient in terms of delivery ratio or 1681 energy consumption in the end devices, in particular to enable 1682 energy-constrained sleeping nodes. The value of such extension is 1683 especially apparent in the case of mobile wireless nodes, to reduce 1684 the multicast operations that are related to IPv6 ND ([RFC4861], 1685 [RFC4862]) and affect the operation of the wireless medium 1686 [I-D.ietf-mboned-ieee802-mcast-problems] 1687 [I-D.perkins-intarea-multicast-ieee802]. This serves the scalability 1688 requirements listed in Appendix B.6. 1690 Appendix B. Requirements (Not Normative) 1692 This section lists requirements that were discussed by the 6lo WG for 1693 an update to 6LoWPAN ND. How those requirements are matched with 1694 existing specifications at the time of this writing is shown in 1695 Appendix B.8. 1697 B.1. Requirements Related to Mobility 1699 Due to the unstable nature of LLN links, even in an LLN of immobile 1700 nodes, a 6LN may change its point of attachment from 6LR-a to 6LR-b, 1701 and may not be able to notify 6LR-a. Consequently, 6LR-a may still 1702 attract traffic that it cannot deliver any more. When links to a 6LR 1703 change state, there is thus a need to identify stale states in a 6LR 1704 and restore reachability in a timely fashion, e.g., by using some 1705 signaling upon the detection of the movement, or using a keep-alive 1706 mechanism with a period that is consistent with the application 1707 needs. 1709 Req1.1: Upon a change of point of attachment, connectivity via a new 1710 6LR MUST be restored in a timely fashion without the need to de- 1711 register from the previous 6LR. 1713 Req1.2: For that purpose, the protocol MUST enable differentiating 1714 between multiple registrations from one 6LoWPAN Node and 1715 registrations from different 6LoWPAN Nodes claiming the same address. 1717 Req1.3: Stale states MUST be cleaned up in 6LRs. 1719 Req1.4: A 6LoWPAN Node SHOULD also be able to register its Address 1720 concurrently to multiple 6LRs. 1722 B.2. Requirements Related to Routing Protocols 1724 The point of attachment of a 6LN may be a 6LR in an LLN mesh. IPv6 1725 routing in an LLN can be based on RPL, which is the routing protocol 1726 that was defined by the IETF for this particular purpose. Other 1727 routing protocols are also considered by Standards Development 1728 Organizations (SDO) on the basis of the expected network 1729 characteristics. It is required that a 6LN attached via ND to a 6LR 1730 indicates whether it participates in the selected routing protocol to 1731 obtain reachability via the 6LR, or whether it expects the 6LR to 1732 manage its reachability. 1734 Beyond the 6LBR unicast address registered by ND, other addresses 1735 including multicast addresses are needed as well. For example, a 1736 routing protocol often uses a multicast address to register changes 1737 to established paths. ND needs to register such a multicast address 1738 to enable routing concurrently with discovery. 1740 Multicast is needed for groups. Groups may be formed by device type 1741 (e.g., routers, street lamps), location (Geography, RPL sub-tree), or 1742 both. 1744 The Bit Index Explicit Replication (BIER) Architecture [RFC8279] 1745 proposes an optimized technique to enable multicast in an LLN with a 1746 very limited requirement for routing state in the nodes. 1748 Related requirements are: 1750 Req2.1: The ND registration method SHOULD be extended so that the 6LR 1751 is instructed whether to advertise the Address of a 6LN over the 1752 selected routing protocol and obtain reachability to that Address 1753 using the selected routing protocol. 1755 Req2.2: Considering RPL, the Address Registration Option that is used 1756 in the ND registration SHOULD be extended to carry enough information 1757 to generate a DAO message as specified in section 6.4 of [RFC6550], 1758 in particular the capability to compute a Path Sequence and, as an 1759 option, a RPLInstanceID. 1761 Req2.3: Multicast operations SHOULD be supported and optimized, for 1762 instance, using BIER or MPL. Whether ND is appropriate for the 1763 registration to the 6BBR is to be defined, considering the additional 1764 burden of supporting the Multicast Listener Discovery Version 2 1765 [RFC3810] (MLDv2) for IPv6. 1767 B.3. Requirements Related to the Variety of Low-Power Link types 1769 6LoWPAN ND [RFC6775] was defined with a focus on IEEE Std.802.15.4 1770 and in particular the capability to derive a unique identifier from a 1771 globally unique EUI-64 address. At this point, the 6lo Working Group 1772 is extending the 6LoWPAN Header Compression (HC) [RFC6282] technique 1773 to other link types including ITU-T G.9959 [RFC7428], Master-Slave/ 1774 Token-Passing [RFC8163], DECT Ultra Low Energy [RFC8105], Near Field 1775 Communication [I-D.ietf-6lo-nfc], IEEE Std. 802.11ah 1776 [I-D.delcarpio-6lo-wlanah], as well as Bluetooth(R) Low Energy 1777 [RFC7668], and Power Line Communication (PLC) [I-D.hou-6lo-plc] 1778 Networks. 1780 Related requirements are: 1782 Req3.1: The support of the registration mechanism SHOULD be extended 1783 to more LLN links than IEEE Std.802.15.4, matching at least the LLN 1784 links for which an "IPv6 over foo" specification exists, as well as 1785 Low-Power Wi-Fi. 1787 Req3.2: As part of this extension, a mechanism to compute a unique 1788 identifier should be provided, with the capability to form a Link- 1789 Local Address that SHOULD be unique at least within the LLN connected 1790 to a 6LBR discovered by ND in each node within the LLN. 1792 Req3.3: The Address Registration Option used in the ND registration 1793 SHOULD be extended to carry the relevant forms of unique Identifier. 1795 Req3.4: The Neighbor Discovery should specify the formation of a 1796 site-local address that follows the security recommendations from 1797 [RFC7217]. 1799 B.4. Requirements Related to Proxy Operations 1801 Duty-cycled devices may not be able to answer themselves to a lookup 1802 from a node that uses IPv6 ND on a Backbone Link and may need a 1803 proxy. Additionally, the duty-cycled device may need to rely on the 1804 6LBR to perform registration to the 6BBR. 1806 The ND registration method SHOULD defend the addresses of duty-cycled 1807 devices that are sleeping most of the time and not capable to defend 1808 their own addresses. 1810 Related requirements are: 1812 Req4.1: The registration mechanism SHOULD enable a third party to 1813 proxy register an address on behalf of a 6LoWPAN node that may be 1814 sleeping or located deeper in an LLN mesh. 1816 Req4.2: The registration mechanism SHOULD be applicable to a duty- 1817 cycled device regardless of the link type and SHOULD enable a 6BBR to 1818 operate as a proxy to defend the Registered Addresses on its behalf. 1820 Req4.3: The registration mechanism SHOULD enable long sleep 1821 durations, on the order of multiple days to a month. 1823 B.5. Requirements Related to Security 1825 In order to guarantee the operations of the 6LoWPAN ND flows, the 1826 spoofing of the 6LR, 6LBR, and 6BBRs roles should be avoided. Once a 1827 node successfully registers an address, 6LoWPAN ND should provide 1828 energy-efficient means for the 6LBR to protect that ownership even 1829 when the node that registered the address is sleeping. 1831 In particular, the 6LR and the 6LBR then should be able to verify 1832 whether a subsequent registration for a given address comes from the 1833 original node. 1835 In an LLN it makes sense to base security on Layer-2 security. 1836 During bootstrap of the LLN, nodes join the network after 1837 authorization by a Joining Assistant (JA) or a Commissioning Tool 1838 (CT). After joining, nodes communicate with each other via secured 1839 links. The keys for the Layer-2 security are distributed by the JA/ 1840 CT. The JA/CT can be part of the LLN or be outside the LLN. In both 1841 cases it is needed that packets are routed between JA/CT and the 1842 joining node. 1844 Related requirements are: 1846 Req5.1: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1847 the 6LR, 6LBR, and 6BBR to authenticate and authorize one another for 1848 their respective roles, as well as with the 6LoWPAN Node for the role 1849 of 6LR. 1851 Req5.2: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1852 the 6LR and the 6LBR to validate new registration of authorized 1853 nodes. Joining of unauthorized nodes MUST be prevented. 1855 Req5.3: 6LoWPAN ND security mechanisms SHOULD NOT lead to large 1856 packet sizes. In particular, the NS, NA, DAR, and DAC messages for a 1857 re-registration flow SHOULD NOT exceed 80 octets so as to fit in a 1858 secured IEEE Std.802.15.4 [IEEEstd802154] frame. 1860 Req5.4: Recurrent 6LoWPAN ND security operations MUST NOT be 1861 computationally intensive on the LoWPAN Node CPU. When a Key hash 1862 calculation is employed, a mechanism lighter than SHA-1 SHOULD be 1863 preferred. 1865 Req5.5: The number of Keys that the 6LoWPAN Node needs to manipulate 1866 SHOULD be minimized. 1868 Req5.6: The 6LoWPAN ND security mechanisms SHOULD enable the 1869 variation of CCM [RFC3610] called CCM* for use at both Layer 2 and 1870 Layer 3, and SHOULD enable the reuse of security code that has to be 1871 present on the device for upper layer security such as TLS. 1872 Algorithm agility and support for large keys (e.g., 256-bit key 1873 sizes) is also desirable, following at Layer-3 the introduction of 1874 those capabilities at Layer-2. 1876 Req5.7: Public key and signature sizes SHOULD be minimized while 1877 maintaining adequate confidentiality and data origin authentication 1878 for multiple types of applications with various degrees of 1879 criticality. 1881 Req5.8: Routing of packets should continue when links pass from the 1882 unsecured to the secured state. 1884 Req5.9: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for 1885 the 6LR and the 6LBR to validate whether a new registration for a 1886 given address corresponds to the same 6LN that registered it 1887 initially, and, if not, determine the rightful owner and deny or 1888 clean up the registration that is duplicate. 1890 B.6. Requirements Related to Scalability 1892 Use cases from Automatic Meter Reading (AMR, collection tree 1893 operations) and Advanced Metering Infrastructure (AMI, bi-directional 1894 communication to the meters) indicate the needs for a large number of 1895 LLN nodes pertaining to a single RPL DODAG (e.g., 5000) and connected 1896 to the 6LBR over a large number of LLN hops (e.g., 15). 1898 Related requirements are: 1900 Req6.1: The registration mechanism SHOULD enable a single 6LBR to 1901 register multiple thousands of devices. 1903 Req6.2: The timing of the registration operation should allow for a 1904 large latency such as found in LLNs with ten to more hops. 1906 B.7. Requirements Related to Operations and Management 1908 Section 3.8 of "Architectural Principles of the Internet" [RFC1958] 1909 recommends to: "avoid options and parameters whenever possible. Any 1910 options and parameters should be configured or negotiated dynamically 1911 rather than manually". This is especially true in LLNs where the 1912 number of devices may be large and manual configuration is 1913 infeasible. Capabilities for a dynamic configuration of LLN devices 1914 can also be constrained by the network and power limitation. 1916 A Network Administrator should be able to validate that the network 1917 is operating within capacity, and that in particular a 6LBR does not 1918 get overloaded with an excessive amount of registration, so the 1919 administrator can take actions such as adding a Backbone Link with 1920 additional 6LBRs and 6BBRs to the network. 1922 Related requirements are: 1924 Req7.1: A management model SHOULD be provided that enables access to 1925 the 6LBR, monitor its usage vs. capacity, and alert in case of 1926 congestion. It is recommended that the 6LBR be reachable over a non- 1927 LLN link. 1929 Req7.2: A management model SHOULD be provided that enables access to 1930 the 6LR and its capacity to host additional NCE. This management 1931 model SHOULD avoid polling individual 6LRs in a way that could 1932 disrupt the operation of the LLN. 1934 Req7.3: Information on successful and failed registration SHOULD be 1935 provided, including information such as the ROVR of the 6LN, the 1936 Registered Address, the address of the 6LR, and the duration of the 1937 registration flow. 1939 Req7.4: In case of a failed registration, information on the failure 1940 including the identification of the node that rejected the 1941 registration and the status in the EARO SHOULD be provided. 1943 B.8. Matching Requirements with Specifications 1945 I-drafts/RFCs addressing requirements 1947 +-------------+-----------------------------------------+ 1948 | Requirement | Document | 1949 +-------------+-----------------------------------------+ 1950 | Req1.1 | [I-D.ietf-6lo-backbone-router] | 1951 | | | 1952 | Req1.2 | [RFC6775] | 1953 | | | 1954 | Req1.3 | [RFC6775] | 1955 | | | 1956 | Req1.4 | This RFC | 1957 | | | 1958 | Req2.1 | This RFC | 1959 | | | 1960 | Req2.2 | This RFC | 1961 | | | 1962 | Req2.3 | | 1963 | | | 1964 | Req3.1 | Technology Dependent | 1965 | | | 1966 | Req3.2 | Technology Dependent | 1967 | | | 1968 | Req3.3 | Technology Dependent | 1969 | | | 1970 | Req3.4 | Technology Dependent | 1971 | | | 1972 | Req4.1 | This RFC | 1973 | | | 1974 | Req4.2 | This RFC | 1975 | | | 1976 | Req4.3 | [RFC6775] | 1977 | | | 1978 | Req5.1 | | 1979 | | | 1980 | Req5.2 | [I-D.ietf-6lo-ap-nd] | 1981 | | | 1982 | Req5.3 | | 1983 | | | 1984 | Req5.4 | | 1985 | | | 1986 | Req5.5 | [I-D.ietf-6lo-ap-nd] | 1987 | | | 1988 | Req5.6 | [I-D.struik-lwip-curve-representations] | 1989 | | | 1990 | Req5.7 | [I-D.ietf-6lo-ap-nd] | 1991 | | | 1992 | Req5.8 | | 1993 | | | 1994 | Req5.9 | [I-D.ietf-6lo-ap-nd] | 1995 | | | 1996 | Req6.1 | This RFC | 1997 | | | 1998 | Req6.2 | This RFC | 1999 | | | 2000 | Req7.1 | | 2001 | | | 2002 | Req7.2 | | 2003 | | | 2004 | Req7.3 | | 2005 | | | 2006 | Req7.4 | | 2007 +-------------+-----------------------------------------+ 2009 Table 7: Work Addressing requirements 2011 Authors' Addresses 2013 Pascal Thubert (editor) 2014 Cisco Systems, Inc 2015 Building D (Regus) 45 Allee des Ormes 2016 Mougins - Sophia Antipolis 2017 France 2019 Phone: +33 4 97 23 26 34 2020 Email: pthubert@cisco.com 2022 Erik Nordmark 2023 Zededa 2024 Santa Clara, CA 2025 United States of America 2027 Email: nordmark@sonic.net 2029 Samita Chakrabarti 2030 Verizon 2031 San Jose, CA 2032 United States of America 2034 Email: samitac.ietf@gmail.com 2036 Charles E. Perkins 2037 Futurewei 2038 2330 Central Expressway 2039 Santa Clara 95050 2040 United States of America 2042 Email: charliep@computer.org