| < draft-ietf-6lo-rfc6775-update-14.txt | draft-ietf-6lo-rfc6775-update-15.txt > | |||
|---|---|---|---|---|
| 6lo P. Thubert, Ed. | 6lo P. Thubert, Ed. | |||
| Internet-Draft cisco | Internet-Draft Cisco | |||
| Updates: 6775 (if approved) E. Nordmark | Updates: 6775 (if approved) E. Nordmark | |||
| Intended status: Standards Track Zededa | Intended status: Standards Track Zededa | |||
| Expires: August 27, 2018 S. Chakrabarti | Expires: September 5, 2018 S. Chakrabarti | |||
| Verizon | Verizon | |||
| C. Perkins | C. Perkins | |||
| Futurewei | Futurewei | |||
| February 23, 2018 | March 4, 2018 | |||
| Registration Extensions for 6LoWPAN Neighbor Discovery | Registration Extensions for 6LoWPAN Neighbor Discovery | |||
| draft-ietf-6lo-rfc6775-update-14 | draft-ietf-6lo-rfc6775-update-15 | |||
| Abstract | Abstract | |||
| This specification updates RFC 6775 - 6LoWPAN Neighbor Discovery, to | This specification updates RFC 6775 - 6LoWPAN Neighbor Discovery, to | |||
| clarify the role of the protocol as a registration technique, | clarify the role of the protocol as a registration technique, | |||
| simplify the registration operation in 6LoWPAN routers, as well as to | simplify the registration operation in 6LoWPAN routers, as well as to | |||
| provide enhancements to the registration capabilities and mobility | provide enhancements to the registration capabilities and mobility | |||
| detection for different network topologies including the backbone | detection for different network topologies including the backbone | |||
| routers performing proxy Neighbor Discovery in a low power network. | routers performing proxy Neighbor Discovery in a low power network. | |||
| skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 27, 2018. | This Internet-Draft will expire on September 5, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Applicability of Address Registration Options . . . . . . . . 4 | 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 4. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Subset of a 6LoWPAN Glossary . . . . . . . . . . . . . . 3 | |||
| 4.1. Extended Address Registration Option (EARO) . . . . . . . 6 | 2.3. References . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.2. Transaction ID . . . . . . . . . . . . . . . . . . . . . 7 | 2.4. New Terms . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.2.1. Comparing TID values . . . . . . . . . . . . . . . . 8 | 3. Applicability of Address Registration Options . . . . . . . . 5 | |||
| 4.3. Registration Unique ID . . . . . . . . . . . . . . . . . 9 | 4. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.4. Extended Duplicate Address Messages . . . . . . . . . . . 10 | 4.1. Extended Address Registration Option (EARO) . . . . . . . 7 | |||
| 4.5. Registering the Target Address . . . . . . . . . . . . . 10 | 4.2. Transaction ID . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.6. Link-Local Addresses and Registration . . . . . . . . . . 11 | 4.2.1. Comparing TID values . . . . . . . . . . . . . . . . 9 | |||
| 4.7. Maintaining the Registration States . . . . . . . . . . . 12 | 4.3. Registration Ownership Verifier . . . . . . . . . . . . . 10 | |||
| 5. Detecting Enhanced ARO Capability Support . . . . . . . . . . 14 | 4.4. Extended Duplicate Address Messages . . . . . . . . . . . 11 | |||
| 6. Extended ND Options And Messages . . . . . . . . . . . . . . 14 | 4.5. Registering the Target Address . . . . . . . . . . . . . 12 | |||
| 6.1. Enhanced Address Registration Option (EARO) . . . . . . . 14 | 4.6. Link-Local Addresses and Registration . . . . . . . . . . 12 | |||
| 6.2. Extended Duplicate Address Message Formats . . . . . . . 17 | 4.7. Maintaining the Registration States . . . . . . . . . . . 14 | |||
| 5. Detecting Enhanced ARO Capability Support . . . . . . . . . . 15 | ||||
| 6. Extended ND Options And Messages . . . . . . . . . . . . . . 16 | ||||
| 6.1. Extended Address Registration Option (EARO) . . . . . . . 16 | ||||
| 6.2. Extended Duplicate Address Message Formats . . . . . . . 18 | ||||
| 6.3. New 6LoWPAN Capability Bits in the Capability Indication | 6.3. New 6LoWPAN Capability Bits in the Capability Indication | |||
| Option . . . . . . . . . . . . . . . . . . . . . . . . . 18 | Option . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 7. Backward Compatibility . . . . . . . . . . . . . . . . . . . 18 | 7. Backward Compatibility . . . . . . . . . . . . . . . . . . . 20 | |||
| 7.1. Discovering the capabilities of an ND peer . . . . . . . 19 | 7.1. Discovering the Capabilities of an ND Peer . . . . . . . 20 | |||
| 7.1.1. Using the "E" Flag in the 6CIO . . . . . . . . . . . 19 | 7.2. RFC6775-only 6LoWPAN Node . . . . . . . . . . . . . . . . 21 | |||
| 7.1.2. Using the "T" Flag in the EARO . . . . . . . . . . . 19 | 7.3. RFC6775-only 6LoWPAN Router . . . . . . . . . . . . . . . 21 | |||
| 7.2. RFC6775-only 6LoWPAN Node . . . . . . . . . . . . . . . . 20 | 7.4. RFC6775-only 6LoWPAN Border Router . . . . . . . . . . . 22 | |||
| 7.3. RFC6775-only 6LoWPAN Router . . . . . . . . . . . . . . . 20 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 22 | |||
| 7.4. RFC6775-only 6LoWPAN Border Router . . . . . . . . . . . 21 | 9. Privacy Considerations . . . . . . . . . . . . . . . . . . . 23 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 9. Privacy Considerations . . . . . . . . . . . . . . . . . . . 22 | 10.1. ARO Flags . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | 10.2. ICMP Codes . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 10.1. ARO Flags . . . . . . . . . . . . . . . . . . . . . . . 23 | 10.3. New ARO Status values . . . . . . . . . . . . . . . . . 26 | |||
| 10.2. ICMP Codes . . . . . . . . . . . . . . . . . . . . . . . 24 | 10.4. New 6LoWPAN capability Bits . . . . . . . . . . . . . . 26 | |||
| 10.3. New ARO Status values . . . . . . . . . . . . . . . . . 25 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 10.4. New 6LoWPAN capability Bits . . . . . . . . . . . . . . 25 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 26 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 27 | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 | 12.2. Informative References . . . . . . . . . . . . . . . . . 29 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 26 | 12.3. External Informative References . . . . . . . . . . . . 32 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 27 | ||||
| 12.3. External Informative References . . . . . . . . . . . . 31 | Appendix A. Applicability and Requirements Served (Not | |||
| Appendix A. Applicability and Requirements Served . . . . . . . 31 | Normative) . . . . . . . . . . . . . . . . . . . . . 32 | |||
| Appendix B. Requirements . . . . . . . . . . . . . . . . . . . . 32 | Appendix B. Requirements (Not Normative) . . . . . . . . . . . . 33 | |||
| B.1. Requirements Related to Mobility . . . . . . . . . . . . 32 | B.1. Requirements Related to Mobility . . . . . . . . . . . . 33 | |||
| B.2. Requirements Related to Routing Protocols . . . . . . . . 33 | B.2. Requirements Related to Routing Protocols . . . . . . . . 34 | |||
| B.3. Requirements Related to the Variety of Low-Power Link | B.3. Requirements Related to the Variety of Low-Power Link | |||
| types . . . . . . . . . . . . . . . . . . . . . . . . . . 34 | types . . . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
| B.4. Requirements Related to Proxy Operations . . . . . . . . 35 | B.4. Requirements Related to Proxy Operations . . . . . . . . 35 | |||
| B.5. Requirements Related to Security . . . . . . . . . . . . 35 | B.5. Requirements Related to Security . . . . . . . . . . . . 36 | |||
| B.6. Requirements Related to Scalability . . . . . . . . . . . 36 | B.6. Requirements Related to Scalability . . . . . . . . . . . 37 | |||
| B.7. Requirements Related to Operations and Management . . . . 37 | B.7. Requirements Related to Operations and Management . . . . 38 | |||
| B.8. Matching Requirements with Specifications . . . . . . . . 38 | B.8. Matching Requirements with Specifications . . . . . . . . 38 | |||
| Appendix C. Subset of a 6LoWPAN Glossary . . . . . . . . . . . . 39 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39 | ||||
| 1. Introduction | 1. Introduction | |||
| The scope of this draft is an IPv6 Low Power Network including star | The scope of this draft is an IPv6 Low Power Network including star | |||
| and mesh topologies. This specification modifies and extends the | and mesh topologies. This specification modifies and extends the | |||
| behavior and protocol elements of "Neighbor Discovery Optimization | behavior and protocol elements of "Neighbor Discovery Optimization | |||
| for IPv6 over Low-Power Wireless Personal Area Networks" (6LoWPAN ND) | for IPv6 over Low-Power Wireless Personal Area Networks" (6LoWPAN ND) | |||
| [RFC6775] to enable additional capabilities and enhancements such as: | [RFC6775] to enable additional capabilities and enhancements | |||
| including: | ||||
| o determining the freshest location in case of mobility (T-bit) | o determining the freshest location in case of mobility (TID) | |||
| o Simplifying the registration flow for link-local addresses | o Simplifying the registration flow for Link-Local Addresses | |||
| o Support of a Leaf node in a route-over network | o Support of a Leaf Node in a Route-Over network | |||
| o Proxy registration in a route-over network | o Proxy registration in a Route-Over network | |||
| o Registration to a IPv6 ND proxy over a Backbone Link | o Registration to a IPv6 ND proxy over a Backbone Link (6BBR) | |||
| o Clarification of support for privacy and temporary addresses | o Clarification of support for privacy and temporary addresses | |||
| 2. Terminology | 2. Terminology | |||
| 2.1. BCP 14 | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| document are to be interpreted as described in [RFC2119]. | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119][RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| 2.2. Subset of a 6LoWPAN Glossary | ||||
| This document often uses the following acronyms: | ||||
| 6BBR: 6LoWPAN Backbone Router (proxy for the registration) | ||||
| 6LBR: 6LoWPAN Border Router (authoritative on DAD) | ||||
| 6LN: 6LoWPAN Node | ||||
| 6LR: 6LoWPAN Router (relay to the registration process) | ||||
| 6CIO: Capability Indication Option | ||||
| (E)ARO: (Extended) Address Registration Option | ||||
| DAD: Duplicate Address Detection | ||||
| LLN: Low Power Lossy Network (a typical IoT network) | ||||
| NA: Neighbor Advertisement | ||||
| NCE: Neighbor Cache Entry | ||||
| ND: Neighbor Discovery | ||||
| NDP: Neighbor Discovery Protocol | ||||
| NS: Neighbor Solicitation | ||||
| ROVR: Registration Ownership Verifier | ||||
| TSCH: TimeSlotted Channel Hopping | ||||
| TID: Transaction ID (a sequence counter in the EARO) | ||||
| 2.3. References | ||||
| The Terminology used in this document is consistent with and | The Terminology used in this document is consistent with and | |||
| incorporates that described in Terms Used in Routing for Low-Power | incorporates that described in Terms Used in Routing for Low-Power | |||
| and Lossy Networks (LLNs). [RFC7102]. | and Lossy Networks (LLNs). [RFC7102]. | |||
| Other terms in use in LLNs are found in Terminology for Constrained- | Other terms in use in LLNs are found in Terminology for Constrained- | |||
| Node Networks [RFC7228]. | Node Networks [RFC7228]. | |||
| A glossary of some classical 6LoWPAN acronyms such as ARO, 6LN, 6LBR | ||||
| and 6CIO is given in Appendix C. | ||||
| Readers are expected to be familiar with all the terms and concepts | Readers are expected to be familiar with all the terms and concepts | |||
| that are discussed in | that are discussed in | |||
| o "Neighbor Discovery for IP version 6" [RFC4861], | o "Neighbor Discovery for IP version 6" [RFC4861], | |||
| o "IPv6 Stateless Address Autoconfiguration" [RFC4862], | o "IPv6 Stateless Address Autoconfiguration" [RFC4862], | |||
| o "Problem Statement and Requirements for IPv6 over Low-Power | o "Problem Statement and Requirements for IPv6 over Low-Power | |||
| Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606], | Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606], | |||
| o "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): | o "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): | |||
| Overview, Assumptions, Problem Statement, and Goals" [RFC4919] and | Overview, Assumptions, Problem Statement, and Goals" [RFC4919] and | |||
| o "Neighbor Discovery Optimization for Low-power and Lossy Networks" | o "Neighbor Discovery Optimization for Low-power and Lossy Networks" | |||
| [RFC6775]. | [RFC6775]. | |||
| as well as the following terminology: | 2.4. New Terms | |||
| This specification introduces the following terminology: | ||||
| Backbone Link: An IPv6 transit link that interconnects two or more | Backbone Link: An IPv6 transit link that interconnects two or more | |||
| Backbone Routers. It is expected to be of high speed compared | Backbone Routers. It is expected to be of high speed compared | |||
| to the LLN in order to carry the traffic that is required to | to the LLN in order to carry the traffic that is required to | |||
| federate multiple segments of the potentially large LLN into a | federate multiple segments of the potentially large LLN into a | |||
| single IPv6 subnet. | single IPv6 subnet. | |||
| Backbone Router: A logical network function in an IPv6 router that | Backbone Router: A logical network function in an IPv6 router that | |||
| federates a LLN over a Backbone Link. In order to do so, the | federates a LLN over a Backbone Link. In order to do so, the | |||
| Backbone Router (6BBR) proxies the 6LoWPAN ND operations | Backbone Router (6BBR) proxies the 6LoWPAN ND operations | |||
| detailed in this document onto the matching operations that run | detailed in this document onto the matching operations that run | |||
| over the backbone, typically IPv6 ND. Note that 6BBR is a | over the backbone, typically IPv6 ND. Note that 6BBR is a | |||
| logical function, just like 6LR and 6LBR, and that the same | logical function, just like 6LR and 6LBR, and that the same | |||
| physical router may operate all three. | physical router may operate all three. | |||
| Extended LLN: The aggregation of multiple LLNs as defined in | Extended LLN: Multiple LLNs as defined in [RFC6550], interconnected | |||
| [RFC4919], interconnected by a Backbone Link via Backbone | by a Backbone Link via Backbone Routers, and forming a single | |||
| Routers, and forming a single IPv6 MultiLink Subnet. | IPv6 MultiLink Subnet. | |||
| Registration: The process during which a 6LN registers its | Registration: The process during which a 6LN registers an IPv6 | |||
| address(es) with the Border Router so the 6BBR can serve as | Address with a 6LR in order to obtain services such as DAD and | |||
| proxy for ND operations over the Backbone. | routing back. Duding that flow, the 6LBR may serve as proxy | |||
| Binding: The association between an IP address and a MAC address, a | for the registration of the 6LN to the 6BBR so the 6BBR can | |||
| port and/or other information about the node that owns the IP | provide IPv6 ND proxy services over the Backbone. | |||
| address. | Binding: The association between an IP address, a MAC address, a | |||
| Registered Node: The node for which the registration is performed, | port, and other information about the node that owns the IP | |||
| Address. | ||||
| Registered Node: The 6LN for which the registration is performed, | ||||
| and which owns the fields in the Extended ARO option. | and which owns the fields in the Extended ARO option. | |||
| Registering Node: The node that performs the registration to the | Registering Node: The node that performs the registration; this may | |||
| 6BBR, which may proxy for the registered node. | be the Registered Node, or a proxy such as a 6LBR performing a | |||
| registration to a 6BBR, on behalf of the Registered Node. | ||||
| Registered Address: An address owned by the Registered Node that was | Registered Address: An address owned by the Registered Node that was | |||
| or is being registered. | or is being registered. | |||
| RFC6775-only: Applied to a type of node or a type of message, this | RFC6775-only: Applied to a type of node or a type of message, this | |||
| adjective indicates a behavior that is strictly as specified by | adjective indicates a behavior that is strictly as specified by | |||
| [RFC6775] as opposed to updated with this specification. | [RFC6775] as opposed to updated with this specification. | |||
| updated: Qualifies a 6LN, a 6LR or a 6LBR that supports this | updated: Qualifies a 6LN, a 6LR or a 6LBR that supports this | |||
| specification. | specification. | |||
| 3. Applicability of Address Registration Options | 3. Applicability of Address Registration Options | |||
| skipping to change at page 5, line 48 ¶ | skipping to change at page 6, line 30 ¶ | |||
| to the network operator, e.g. to a management console. | to the network operator, e.g. to a management console. | |||
| A network administrator MUST deploy updated 6LR/6LBRs to support the | A network administrator MUST deploy updated 6LR/6LBRs to support the | |||
| number and type of devices in their network, based on the number of | number and type of devices in their network, based on the number of | |||
| IPv6 addresses that those devices require and their address renewal | IPv6 addresses that those devices require and their address renewal | |||
| rate and behavior. | rate and behavior. | |||
| 4. Updating RFC 6775 | 4. Updating RFC 6775 | |||
| This specification introduces the Extended Address Registration | This specification introduces the Extended Address Registration | |||
| Option (EARO) based on the ARO as defined [RFC6775]; in particular a | Option (EARO) based on the ARO as defined [RFC6775]. A "T" flag is | |||
| "T" flag is added that MUST be set in NS messages when this | added to indicate that a new field, the Transaction ID (TID) is | |||
| populated. The "T" flag MUST be set in NS messages when this | ||||
| specification is used, and echoed in NA messages to confirm that the | specification is used, and echoed in NA messages to confirm that the | |||
| protocol is supported. | protocol is supported. The EUI-64 field is overloaded to carry | |||
| different types of information and its size may be increased when | ||||
| backward compatibility is not an issue. | ||||
| The extensions to the ARO option are used in the Duplicate Address | The extensions to the ARO option are used in the Duplicate Address | |||
| Request (DAR) and Duplicate Address Confirmation (DAC) messages, so | messages, the Duplicate Address Request (DAR) and Duplicate Address | |||
| as to convey the additional information all the way to the 6LBR. In | Confirmation (DAC), so as to convey the additional information all | |||
| turn the 6LBR may proxy the registration using IPv6 ND over a | the way to the 6LBR. In turn the 6LBR may proxy the registration | |||
| Backbone Link as illustrated in Figure 1. Note that this | using IPv6 ND over a Backbone Link as illustrated in Figure 1. Note | |||
| specification avoids the extended DAR flow for Link Local Addresses | that this specification avoids the Duplicate Address message flow for | |||
| in a Route-Over [RFC6606] topology. | Link-Local Addresses in a Route-Over [RFC6606] topology. | |||
| 6LN 6LR 6LBR 6BBR | 6LN 6LR 6LBR 6BBR | |||
| | | | | | | | | | | |||
| | NS(EARO) | | | | | NS(EARO) | | | | |||
| |--------------->| | | | |--------------->| | | | |||
| | | Extended DAR | | | | | Extended DAR | | | |||
| | |-------------->| | | | |-------------->| | | |||
| | | | | | | | | | | |||
| | | | proxy NS(EARO) | | | | | proxy NS(EARO) | | |||
| | | |--------------->| | | | |--------------->| | |||
| skipping to change at page 6, line 42 ¶ | skipping to change at page 7, line 34 ¶ | |||
| | | | | | | | | | | |||
| Figure 1: (Re-)Registration Flow | Figure 1: (Re-)Registration Flow | |||
| In order to support various types of link layers, it is RECOMMENDED | In order to support various types of link layers, it is RECOMMENDED | |||
| to allow multiple registrations, including for privacy / temporary | to allow multiple registrations, including for privacy / temporary | |||
| addresses. It is also RECOMMENDED to provide new mechanisms to help | addresses. It is also RECOMMENDED to provide new mechanisms to help | |||
| clean up stale registration state as soon as possible. | clean up stale registration state as soon as possible. | |||
| Section 5 of [RFC6775] specifies how a 6LN bootstraps an interface | Section 5 of [RFC6775] specifies how a 6LN bootstraps an interface | |||
| and locates available 6LRs; a Registering Node SHOULD prefer | and locates available 6LRs. A Registering Node SHOULD prefer | |||
| registering to a 6LR that is found to support this specification, as | registering to a 6LR that is found to support this specification, as | |||
| discussed in Section 7.1, over an RFC6775-only one. | discussed in Section 5, over an RFC6775-only one and MUST operate in | |||
| a backward compatible fashion when attaching to an RFC6775-only 6LR. | ||||
| 4.1. Extended Address Registration Option (EARO) | 4.1. Extended Address Registration Option (EARO) | |||
| The Extended ARO (EARO) replaces the ARO and is backward compatible | The Extended ARO (EARO) replaces the ARO and is backward compatible | |||
| with it. More details on backward compatibility can be found in | with the ARO if and only if the Length of the option is set to 2. | |||
| Section 7. | Its format is presented in Section 6.1. More details on backward | |||
| compatibility can be found in Section 7. | ||||
| The semantics of the ARO are modified as follows: | The semantics of the Neighbor Solicitation (NS) and the ARO are | |||
| modified as follows: | ||||
| o The address that is being registered with a Neighbor Solicitation | o The address that is being registered with a NS with an EARO is now | |||
| (NS) with an EARO is now the Target Address, as opposed to the | the Target Address, as opposed to the Source Address as specified | |||
| Source Address as specified in [RFC6775] (see Section 4.5). This | in [RFC6775] (see Section 4.5). This change enables a 6LBR to use | |||
| change enables a 6LBR to use one of its addresses as source to the | one of its addresses as source of the proxy-registration of an | |||
| proxy-registration of an address that belongs to a LLN Node to a | address that belongs to a LLN Node to a 6BBR. This also limits | |||
| 6BBR. This also limits the use of an address as source address | the use of an address as source address before it is registered | |||
| before it is registered and the associated DAD process is | and the associated DAD process is complete. | |||
| complete. | o The EUI-64 field in the ARO Option is renamed Registration | |||
| o The Unique ID in the EARO Option is not required to be a MAC | Ownership Verifier (ROVR) and is not required to be derived from a | |||
| address (see Section 4.3). | MAC address (see Section 4.3). | |||
| o This document specifies a new flag in the EARO option, the 'R' | o The option Length MAY be different than 2 and take a value between | |||
| flag, used by a 6LN, when registering, to indicate that this 6LN | 3 and 5, in which case the EARO is not backward compatible with an | |||
| is not a router and that it will not handle its own reachability. | ARO. The increase of size corresponds to a larger ROVR field, so | |||
| If the 'R' flag is set, the registering node expects that the 6LR | the size of the ROVR is inferred from the option Length. | |||
| ensures reachability for the registered address by means of | o This document specifies a new flag in the EARO, the 'R' flag, used | |||
| routing or proxying ND. A host SHOULD set the 'R' flag. When not | by a 6LN, when registering, to indicate that this 6LN is not a | |||
| set, the 'R' flag indicates that the Registering Node is a router, | router and that it will not handle its own reachability. If the | |||
| which for instance participates to a route-over routing protocol | 'R' flag is set, the registering node expects that the 6LR ensures | |||
| such as RPL [RFC6550], and which will take care of injecting the | reachability for the registered address by means of routing or | |||
| address over the routing protocol by itself. A router SHOULD NOT | proxying ND. A host MUST set the 'R' flag. When not set, the 'R' | |||
| set the 'R' flag. | flag indicates that the Registering Node is a router, which for | |||
| instance participates to a Route-Over routing protocol such as the | ||||
| IPv6 Routing Protocol for Low-Power and Lossy Networks [RFC6550] | ||||
| (RPL), and that it will take care of injecting its Address over | ||||
| the routing protocol by itself. A router SHOULD NOT set the 'R' | ||||
| flag; if it does, routes towards the router may be installed on | ||||
| its behalf and may interfere with those it injects. | ||||
| o The specification introduces a Transaction ID (TID) field in the | o The specification introduces a Transaction ID (TID) field in the | |||
| EARO (see Section 4.2). The TID MUST be provided by a node that | EARO (see Section 4.2). The TID MUST be provided by a node that | |||
| supports this specification and a new "T" flag MUST be set to | supports this specification and a new "T" flag MUST be set to | |||
| indicate so. | indicate so. | |||
| o Finally, this specification introduces new status codes to help | o Finally, this specification introduces new status codes to help | |||
| diagnose the cause of a registration failure (see Table 1). | diagnose the cause of a registration failure (see Table 1). | |||
| 4.2. Transaction ID | 4.2. Transaction ID | |||
| The Transaction ID (TID) is a sequence number that is incremented | The TID is a sequence number that is incremented by the 6LN with each | |||
| with each re-registration. The TID is used to detect the freshness | re-registration to a 6LR. The TID is used to detect the freshness of | |||
| of the registration request and to detect one single registration by | the registration request and to detect one single registration by | |||
| multiple 6LoWPAN border routers (e.g., 6LBRs and 6BBRs) supporting | multiple 6LoWPAN border routers (e.g., 6LBRs and 6BBRs) supporting | |||
| the same 6LoWPAN. The TID may also be used by the network to track | the same 6LoWPAN. The TID may also be used by the network to route | |||
| the sequence of movements of a node in order to route to the current | to the current (freshest known) location of a moving node by spotting | |||
| (freshest known) location of a moving node. | the most recent TID. | |||
| When a Registered Node is registered with multiple 6BBRs in parallel, | When a Registered Node is registered with multiple 6BBRs in parallel, | |||
| the same TID SHOULD be used. This enables the 6BBRs to determine | the same TID MUST be used. This enables the 6BBRs to determine that | |||
| that the registrations are the same, and distinguish that situation | the registrations are the same, and distinguish that situation from a | |||
| from a movement (see section 4 of [I-D.ietf-6lo-backbone-router] and | movement (see section 4 of [I-D.ietf-6lo-backbone-router] and | |||
| Section 4.7 below). | Section 4.7 below). | |||
| 4.2.1. Comparing TID values | 4.2.1. Comparing TID values | |||
| The TID is a sequence counter and its operation is the exact match of | The TID is a sequence counter and its operation is the exact match of | |||
| the path sequence specified in RPL, the IPv6 Routing Protocol for | the path sequence specified in RPL, the IPv6 Routing Protocol for | |||
| Low-Power and Lossy Networks [RFC6550] specification. | Low-Power and Lossy Networks [RFC6550] specification. | |||
| In order to keep this document self-contained and yet compatible, the | In order to keep this document self-contained and yet compatible, the | |||
| text below is an exact copy from section 7.2. "Sequence Counter | text below is an exact copy from section 7.2. "Sequence Counter | |||
| skipping to change at page 9, line 35 ¶ | skipping to change at page 10, line 35 ¶ | |||
| sequence counters is greater than SEQUENCE_WINDOW, then a | sequence counters is greater than SEQUENCE_WINDOW, then a | |||
| desynchronization has occurred and the two sequence | desynchronization has occurred and the two sequence | |||
| numbers are not comparable. | numbers are not comparable. | |||
| 4. If two sequence numbers are determined to be not comparable, i.e. | 4. If two sequence numbers are determined to be not comparable, i.e. | |||
| the results of the comparison are not defined, then a node should | the results of the comparison are not defined, then a node should | |||
| give precedence to the sequence number that was most recently | give precedence to the sequence number that was most recently | |||
| incremented. Failing this, the node should select the sequence | incremented. Failing this, the node should select the sequence | |||
| number in order to minimize the resulting changes to its own | number in order to minimize the resulting changes to its own | |||
| state. | state. | |||
| 4.3. Registration Unique ID | 4.3. Registration Ownership Verifier | |||
| The Registration Unique ID (RUID) generalizes the EUI-64 field of the | The ROVR field generalizes the EUI-64 field of the ARO defined in | |||
| ARO in [RFC6775]. It is unique to a registration and enables to | [RFC6775]. It is scoped to a registration and enables recognize and | |||
| identify the tentative to register a duplicate address, which is | block a tentative to register a duplicate address, which is | |||
| characterized by a different RUID in the conflicting registrations | characterized by a different ROVR in the conflicting registrations It | |||
| (more in Section 4.6) | can also be used to protect the ownership of a Registered Address, if | |||
| the proof-of-ownership of the ROVR can be obtained (more in | ||||
| Section 4.6). | ||||
| With this specification, the Registration Unique ID is allowed to be | The ROVR is allowed to be of different types, as ong as the type is | |||
| extended to different types of identifier, as long as the type is | signaled in the message that carries the new type. For instance, the | |||
| clearly indicated. For instance, the type can be a cryptographic | type can be a cryptographic string and used to prove the ownership of | |||
| string and used to prove the ownership of the registration as | the registration as discussed in "Address Protected Neighbor | |||
| discussed in "Address Protected Neighbor Discovery for Low-power and | Discovery for Low-power and Lossy Networks" [I-D.ietf-6lo-ap-nd]. In | |||
| Lossy Networks" [I-D.ietf-6lo-ap-nd]. In order to support the flows | order to support the flows related to the proof-of-ownership, this | |||
| related to the proof of ownership, this specification introduces new | specification introduces new status codes "Validation Requested" and | |||
| status codes "Validation Requested" and "Validation Failed" in the | "Validation Failed" in the EARO. | |||
| EARO. | ||||
| The Registering Node SHOULD store the unique ID, or a way to generate | Note on ROVR collision: different techniques for forming the ROVR | |||
| that ID, in persistent memory. Otherwise, if a reboot causes a loss | will operate in different name-spaces. [RFC6775] operates on EUI-64 | |||
| of memory, re-registering the same address could be impossible until | addresses. [I-D.ietf-6lo-ap-nd] generates cryptographic tokens. | |||
| the 6LBR times out the previous registration. | While collisions are not expected in the EUI-64 name-space only, they | |||
| may happen in the case of [I-D.ietf-6lo-ap-nd] and in a mixed | ||||
| situation. An implementation that understands the name-space MUST | ||||
| consider that ROVRs from different name-spaces are different even if | ||||
| they have the same value. An RFC6775-only will confuse the name- | ||||
| spaces, which slightly increases the risk of a ROVR collision. A | ||||
| collision of ROVR has no effect if the two Registering Nodes register | ||||
| different addresses, since the ROVR is only significant within the | ||||
| context of one registration. A ROVR is not expected to be unique to | ||||
| one registration, as this specification allows a node to use the same | ||||
| ROVR to register multiple IPv6 addresses. This is why the ROVR MUST | ||||
| NOT be used as a key to identify the Registering Node, or as an index | ||||
| to the registration. It is only used as a match to ensure that the | ||||
| node that updates a registration for an IPv6 address is the node that | ||||
| made the original registration for that IPv6 address. Also, when the | ||||
| ROVR is not an EUI-64 address, then it MUST NOT be used as the | ||||
| interface ID of the Registered Address. This way, a registration | ||||
| that uses that ROVR will not collision with that of an IPv6 Address | ||||
| derived from EUI-64 and using the EUI-64 as ROVR per [RFC6775]. | ||||
| 4.4. Extended Duplicate Address Messages | The Registering Node SHOULD store the ROVR, or enough information to | |||
| regenerate it, in persistent memory. If this is not done and an | ||||
| event such as a reboot causes a loss of memory, re-registering the | ||||
| same address could be impossible until the 6LRs and the 6LBR time out | ||||
| the previous registration, or a management action is taken to clear | ||||
| the relevant state in the network. | ||||
| In order to map the new EARO content in the DAR/DAC messages, a new | 4.4. Extended Duplicate Address Messages | |||
| TID field is added to the Extended DAR (EDAR) and the Extended DAC | ||||
| (EDAC) messages as a replacement to a Reserved field, and an odd | ||||
| value of the ICMP Code indicates support for the TID, to transport | ||||
| the "T" flag. | ||||
| In order to prepare for future extensions, and though no option has | In order to map the new EARO content in the Extended Duplicate | |||
| been defined for the Duplicate Address messages, implementations MUST | Address (EDA) messages, a new TID field is added to the Extended DAR | |||
| expect ND options after the main body, and MUST ignore them. | (EDAR) and the Extended DAC (EDAC) messages as a replacement of a | |||
| Reserved field, and a non-null value of the ICMP Code indicates | ||||
| support for this specification. The format of the EDA messages is | ||||
| presented in Section 6.2. | ||||
| As for the EARO, the Extended Duplicate Address messages are backward | As for the EARO, the Extended Duplicate Address messages are backward | |||
| compatible with the RFC6775-only versions, and remarks concerning | compatible with the RFC6775-only versions as long as the ROVR field | |||
| backwards compatibility for the protocol between the 6LN and the 6LR | is 64 bits long. Remarks concerning backwards compatibility for the | |||
| apply similarly between a 6LR and a 6LBR. | protocol between the 6LN and the 6LR apply similarly between a 6LR | |||
| and a 6LBR. | ||||
| 4.5. Registering the Target Address | 4.5. Registering the Target Address | |||
| The Registering Node is the node that performs the registration to | The Registering Node is the node that performs the registration to | |||
| the 6BBR. As in [RFC6775], it may be the Registered Node as well, in | the 6BBR. As in [RFC6775], it may be the Registered Node as well, in | |||
| which case it registers one of its own addresses, and indicates its | which case it registers one of its own addresses, and indicates its | |||
| own MAC Address as Source Link Layer Address (SLLA) in the NS(EARO). | own MAC Address as Source Link Layer Address (SLLA) in the NS(EARO). | |||
| This specification adds the capability to proxy the registration | This specification adds the capability to proxy the registration | |||
| operation on behalf of a Registered Node that is reachable over a LLN | operation on behalf of a Registered Node that is reachable over a LLN | |||
| skipping to change at page 10, line 48 ¶ | skipping to change at page 12, line 26 ¶ | |||
| Address of the Registered Node as the SLLA in the NS(EARO). If the | Address of the Registered Node as the SLLA in the NS(EARO). If the | |||
| Registered Node is reachable over a Route-Over mesh from the | Registered Node is reachable over a Route-Over mesh from the | |||
| Registering Node, the SLLA in the NS(ARO) is that of the Registering | Registering Node, the SLLA in the NS(ARO) is that of the Registering | |||
| Node. This enables the Registering Node to attract the packets from | Node. This enables the Registering Node to attract the packets from | |||
| the 6BBR and route them over the LLN to the Registered Node. | the 6BBR and route them over the LLN to the Registered Node. | |||
| In order to enable the latter operation, this specification changes | In order to enable the latter operation, this specification changes | |||
| the behavior of the 6LN and the 6LR so that the Registered Address is | the behavior of the 6LN and the 6LR so that the Registered Address is | |||
| found in the Target Address field of the NS and NA messages as | found in the Target Address field of the NS and NA messages as | |||
| opposed to the Source Address. With this convention, a TLLA option | opposed to the Source Address. With this convention, a TLLA option | |||
| indicates the link-layer address of the 6LN that owns the address, | indicates the link-layer address of the 6LN that owns the address. | |||
| whereas the SLLA Option in a NS message indicates that of the | ||||
| Registering Node, which can be the owner device, or a proxy. | ||||
| The Registering Node is reachable from the 6LR, and is also the one | The Registering Node expects packets for the 6LN. Therefore, it MUST | |||
| expecting packets for the 6LN. Therefore, it MUST place its own Link | place its own Link Layer Address in the SLLA Option that MUST always | |||
| Layer Address in the SLLA Option that MUST always be placed in a | be placed in a registration NS(EARO) message. This maintains | |||
| registration NS(EARO) message. This maintains compatibility with | compatibility with RFC6775-only 6LoWPAN ND [RFC6775]. | |||
| RFC6775-only 6LoWPAN ND [RFC6775]. | ||||
| 4.6. Link-Local Addresses and Registration | 4.6. Link-Local Addresses and Registration | |||
| Considering that LLN nodes are often not wired and may move, there is | Considering that LLN nodes are often not wired and may move, there is | |||
| no guarantee that a Link-Local address stays unique between a | no guarantee that a Link-Local Address stays unique between a | |||
| potentially variable and unbounded set of neighboring nodes. | potentially variable and unbounded set of neighboring nodes. | |||
| Compared to [RFC6775], this specification only requires that a Link- | Compared to [RFC6775], this specification only requires that a Link- | |||
| Local address is unique from the perspective of the two nodes that | Local Address is unique from the perspective of the two nodes that | |||
| use it to communicate (e.g., the 6LN and the 6LR in an NS/NA | use it to communicate (e.g., the 6LN and the 6LR in an NS/NA | |||
| exchange). This simplifies the DAD process in a Route-Over topology | exchange). This simplifies the DAD process in a Route-Over topology | |||
| for Link-Local addresses, by avoiding an exchange of Duplicate | for Link-Local Addresses, by avoiding an exchange of EDA messages | |||
| Address messages between the 6LR and a 6LBR for those addresses. | between the 6LR and a 6LBR for those addresses. | |||
| In more details: | In more details: | |||
| An exchange between two nodes using Link-Local addresses implies that | An exchange between two nodes using Link-Local Addresses implies that | |||
| they are reachable over one hop and that at least one of the 2 nodes | they are reachable over one hop. A node MUST register a Link-Local | |||
| acts as a 6LR. A node MUST register a Link-Local address to a 6LR in | Address to a 6LR in order to obtain reachability from that 6LR beyond | |||
| order to obtain reachability from that 6LR beyond the current | the current exchange, and in particular to use the Link-Local Address | |||
| exchange, and in particular to use the Link-Local address as source | as source address to register other addresses, e.g., global | |||
| address to register other addresses, e.g., global addresses. | addresses. | |||
| If there is no collision with an address previously registered to | If there is no collision with an address previously registered to | |||
| this 6LR by another 6LN, then the Link-Local address is unique from | this 6LR by another 6LN, then the Link-Local Address is unique from | |||
| the standpoint of this 6LR and the registration is acceptable. | the standpoint of this 6LR and the registration is not a duplicate. | |||
| Alternatively, two different 6LRs might expose the same Link-Local | Alternatively, two different 6LRs might expose the same Link-Local | |||
| address but different link-layer addresses. In that case, a 6LN MUST | Address but different link-layer addresses. In that case, a 6LN MUST | |||
| only interact with at most one of the 6LRs. | only interact with at most one of the 6LRs. | |||
| The DAD process between the 6LR and a 6LBR, which is based on an | The DAD process between the 6LR and a 6LBR, which is based on an | |||
| exchange of Duplicate Address messages, does not need to take place | exchange of EDA messages, does not need to take place for Link-Local | |||
| for Link-Local addresses. | Addresses. | |||
| When registering to a 6LR that conforms to this specification, a node | When registering to a 6LR that conforms to this specification, a node | |||
| MUST use a Link-Local address as the source address of the | MUST use a Link-Local Address as the source address of the | |||
| registration, whatever the type of IPv6 address that is being | registration, whatever the type of IPv6 address that is being | |||
| registered. That Link-Local Address MUST be either an address that | registered. That Link-Local Address MUST be either an address that | |||
| is already registered to the 6LR, or the address that is being | is already registered to the 6LR, or the address that is being | |||
| registered. | registered. | |||
| When a Registering Node does not have an already-Registered Address, | When a Registering Node does not have an already-registered Address, | |||
| it MUST register a Link-Local address, using it as both the Source | it MUST register a Link-Local Address, using it as both the Source | |||
| and the Target Address of an NS(EARO) message. In that case, it is | and the Target Address of an NS(EARO) message. In that case, it is | |||
| RECOMMENDED to use a Link-Local address that is (expected to be) | RECOMMENDED to use a Link-Local Address that is (expected to be) | |||
| globally unique, e.g., derived from a globally unique hardware MAC | globally unique, e.g., derived from a globally unique EUI-64 address. | |||
| address. An EARO option in the response NA indicates that the 6LR | An EARO in the response NA indicates that the 6LR supports this | |||
| supports this specification. | specification. | |||
| Since there is no Duplicate Address exchange for Link-Local | Since there is no exchange of EDA messages for Link-Local Addresses, | |||
| addresses, the 6LR may answer immediately to the registration of a | the 6LR may answer immediately to the registration of a Link-Local | |||
| Link-Local address, based solely on its existing state and the Source | Address, based solely on its existing state and the Source Link-Layer | |||
| Link-Layer Option that MUST be placed in the NS(EARO) message as | Option that is placed in the NS(EARO) message as required in | |||
| required in [RFC6775]. | [RFC6775]. | |||
| A node needs to register its IPv6 Global Unicast IPv6 Addresses | A node needs to register its IPv6 Global Unicast IPv6 Addresses | |||
| (GUAs) to a 6LR in order to establish global reachability for these | (GUAs) to a 6LR in order to establish global reachability for these | |||
| addresses via that 6LR. When registering with an updated 6LR, a | addresses via that 6LR. When registering with an updated 6LR, a | |||
| Registering Node does not use a GUA as Source Address, in contrast to | Registering Node does not use a GUA as Source Address, in contrast to | |||
| a node that complies to [RFC6775]. For non-Link-Local addresses, the | a node that complies to [RFC6775]. For non-Link-Local Addresses, the | |||
| Duplicate Address exchange MUST conform to [RFC6775], but the | exchange of EDA messages MUST conform to [RFC6775], but the extended | |||
| extended formats described in this specification for the DAR and the | formats described in this specification for the DAR and the DAC are | |||
| DAC are used to relay the extended information in the case of an | used to relay the extended information in the case of an EARO. | |||
| EARO. | ||||
| An ND message from the 6BBR over the Backbone Link that is proxied on | ||||
| behalf of a Registered Node MUST carry the most recent EARO option | ||||
| seen for that node. A NS/NA with an EARO and a NS/NA without a EARO | ||||
| thus represent different nodes; this is considered as an address | ||||
| duplication and the first owner wins. If the first owner is the | ||||
| registration (i.e. with an NS(EARO)) then the 6BBR defends the | ||||
| address over the Backbone Link as prescribed by [RFC4862]. If the | ||||
| first owner is a node over the Backbone Link (no ARO), then the 6BBR | ||||
| rejects the proxy-registration with a Status of "Duplicate Address". | ||||
| 4.7. Maintaining the Registration States | 4.7. Maintaining the Registration States | |||
| This section discusses protocol actions that involve the Registering | This section discusses protocol actions that involve the Registering | |||
| Node, the 6LR and the 6LBR. It must be noted that the portion that | Node, the 6LR and the 6LBR. It must be noted that the portion that | |||
| deals with a 6LBR only applies to those addresses that are registered | deals with a 6LBR only applies to those addresses that are registered | |||
| to it; as discussed in Section 4.6, this is not the case for Link- | to it; as discussed in Section 4.6, this is not the case for Link- | |||
| Local addresses. The registration state includes all data that is | Local Addresses. The registration state includes all data that is | |||
| stored in the router relative to that registration, in particular, | stored in the router relative to that registration, in particular, | |||
| but not limited to, an NCE in a 6LR. 6LBRs and 6BBRs may store | but not limited to, an NCE. 6LBRs and 6BBRs may store additional | |||
| additional registration information in more complex data structures | registration information in more complex abstract data structures and | |||
| and use protocols that are out of scope of this document to keep them | use protocols that are out of scope of this document to keep them | |||
| synchronized when they are distributed. | synchronized when they are distributed. | |||
| When its resource available for Neighbor Cache Entries are exhausted, | When its resource available to store registration states are | |||
| a 6LR cannot accept a new registration. In that situation, the EARO | exhausted, a 6LR cannot accept a new registration. In that | |||
| is returned in a NA message with a Status Code of "Neighbor Cache | situation, the EARO is returned in a NA message with a Status Code of | |||
| Full", and the Registering Node may attempt to register to another | "Neighbor Cache Full", and the Registering Node may attempt to | |||
| 6LR. | register to another 6LR. | |||
| If the registry in the 6LBR is saturated, then the LBR cannot decide | If the registry in the 6LBR is saturated, then the 6LBR cannot decide | |||
| whether a new address is a duplicate. In that case, the 6LBR replies | whether a registration for a new address is a duplicate. In that | |||
| to a EDAR message with an EDAC message that carries a new Status Code | case, the 6LBR replies to a EDAR message with an EDAC message that | |||
| indicating "6LBR Registry saturated" Table 1. Note: this code is | carries a new Status Code indicating "6LBR Registry saturated" | |||
| used by 6LBRs instead of "Neighbor Cache Full" when responding to a | Table 1. Note: this code is used by 6LBRs instead of "Neighbor Cache | |||
| Duplicate Address message exchange and is passed on to the | Full" when responding to a Duplicate Address message exchange and is | |||
| Registering Node by the 6LR. There is no point for the node to retry | passed on to the Registering Node by the 6LR. There is no point for | |||
| this registration immediately via another 6LR, since the problem is | the node to retry this registration immediately via another 6LR, | |||
| global to the network. The node may either abandon that address, de- | since the problem is global to the network. The node may either | |||
| register other addresses first to make room, or keep the address in | abandon that address, de-register other addresses first to make room, | |||
| TENTATIVE state and retry later. | or keep the address in TENTATIVE state and retry later. | |||
| A node renews an existing registration by sending a new NS(EARO) | A node renews an existing registration by sending a new NS(EARO) | |||
| message for the Registered Address. In order to refresh the | message for the Registered Address. In order to refresh the | |||
| registration state in the 6LBR, the registration MUST be reported to | registration state in the 6LBR, the registration MUST be reported to | |||
| the 6LBR. | the 6LBR. | |||
| A node that ceases to use an address SHOULD attempt to de-register | A node that ceases to use an address SHOULD attempt to de-register | |||
| that address from all the 6LRs to which it has registered the | that address from all the 6LRs to which it has registered the | |||
| address, which is achieved using an NS(EARO) message with a | address. This is achieved using an NS(EARO) message with a | |||
| Registration Lifetime of 0. | Registration Lifetime of 0. If this is not done, a state will remain | |||
| in the network for its Lifetime. | ||||
| A node that moves away from a particular 6LR SHOULD attempt to de- | A node that moves away from a particular 6LR SHOULD attempt to de- | |||
| register all of its addresses registered to that 6LR and register to | register all of its addresses registered to that 6LR and register to | |||
| a new 6LR with an incremented TID. When/if the node shows up | a new 6LR with an incremented TID. When/if the node shows up | |||
| elsewhere, an asynchronous NA(EARO) or EDAC message with a Status | elsewhere, an asynchronous NA(EARO) or EDAC message with a Status | |||
| Code of "Moved" SHOULD be used to clean up the state in the previous | Code of "Moved" SHOULD be used to clean up the state in the previous | |||
| location. For instance, as described in | location. For instance, as described in | |||
| [I-D.ietf-6lo-backbone-router], the "Moved" status can be used by a | [I-D.ietf-6lo-backbone-router], the "Moved" status can be used by a | |||
| 6BBR in an NA(EARO) message to indicate that the ownership of the | 6BBR in an NA(EARO) message to indicate that the ownership of the | |||
| proxy state on the Backbone Link was transferred to another 6BBR, as | proxy state on the Backbone Link was transferred to another 6BBR, as | |||
| the consequence of a movement of the device. If the receiver of the | the consequence of a movement of the device. If the receiver of the | |||
| message has a state corresponding to the related address, it SHOULD | message has a state corresponding to the related address, it SHOULD | |||
| propagate the status down the forwarding path to the Registered node | propagate the status down the forwarding path to the Registered node | |||
| (e.g. reversing an existing RPL [RFC6550] path as prescribed in | (e.g., reversing an existing RPL [RFC6550] path as prescribed in | |||
| [I-D.ietf-roll-efficient-npdao]) and whether it could or not do so, | [I-D.ietf-roll-efficient-npdao]). Whether it could or not do so, the | |||
| the receiver MUST clean up the said state. | receiver MUST clean up the said state. | |||
| Upon receiving an NS(EARO) message with a Registration Lifetime of 0 | Upon receiving an NS(EARO) message with a Registration Lifetime of 0 | |||
| and determining that this EARO is the freshest for a given NCE (see | and determining that this EARO is the freshest for a given NCE (see | |||
| Section 4.2), a 6LR cleans up its NCE. If the address was registered | Section 4.2), a 6LR cleans up its NCE. If the address was registered | |||
| to the 6LBR, then the 6LR MUST report to the 6LBR, through a | to the 6LBR, then the 6LR MUST report to the 6LBR, through a | |||
| Duplicate Address exchange with the 6LBR, indicating the null | Duplicate Address exchange with the 6LBR, indicating the null | |||
| Registration Lifetime and the latest TID that this 6LR is aware of. | Registration Lifetime and the latest TID that this 6LR is aware of. | |||
| Upon receiving the Extended DAR message, the 6LBR evaluates if this | Upon receiving the EDAR message, the 6LBR evaluates if this is the | |||
| is the most recent TID it has received for that particular registry | most recent TID it has received for that particular registry entry. | |||
| entry. If so, then the entry is scheduled to be removed, and the | If so, then the EDAR is answered with an EDAC message bearing a | |||
| EDAR is answered with an EDAC message bearing a Status of "Success". | Status of "Success" and the entry is scheduled to be removed. | |||
| Otherwise, a Status Code of "Moved" is returned instead, and the | Otherwise, a Status Code of "Moved" is returned instead, and the | |||
| existing entry is maintained. | existing entry is maintained. | |||
| When an address is scheduled to be removed, the 6LBR SHOULD keep its | When an address is scheduled to be removed, the 6LBR SHOULD keep its | |||
| entry in a DELAY state for a configurable period of time, so as to | entry in a DELAY state for a configurable period of time, so as to | |||
| protect a mobile node that de-registered from one 6LR and did not | protect a mobile node that de-registered from one 6LR and did not | |||
| register yet to a new one, or the new registration did not reach yet | register yet to a new one, or the new registration did not reach yet | |||
| the 6LBR due to propagation delays in the network. Once the DELAY | the 6LBR due to propagation delays in the network. Once the DELAY | |||
| time is passed, the 6LBR silently removes its entry. | time is passed, the 6LBR silently removes its entry. | |||
| 5. Detecting Enhanced ARO Capability Support | 5. Detecting Enhanced ARO Capability Support | |||
| The "Generic Header Compression for IPv6 over 6LoWPANs" [RFC7400] | The "Generic Header Compression for IPv6 over 6LoWPANs" [RFC7400] | |||
| introduces the 6LoWPAN Capability Indication Option (6CIO) to | introduces the 6LoWPAN Capability Indication Option (6CIO) to | |||
| indicate a node's capabilities to its peers. | indicate a node's capabilities to its peers. The 6CIO MUST be | |||
| present in Router Advertisement (RA) messages, unless the | ||||
| Section 6.3 defines new flags for the 6CIO to signal support for | capabilities of the 6LR are already known by the 6LN. This can be | |||
| EARO, as well as the node's capability to act as a 6LR, 6LBR and | determined by the 6LR if there is an existing registration in place | |||
| 6BBR. Section 7.1.1 specifies how the "E" flag can be used to | for the 6LN that is based on EARO. This can also be implicit, or | |||
| provide backward compatibility. | configured in all nodes in a network. | |||
| The 6CIO is typically sent in a Router Solicitation (RS) message. | Section 6.3 defines a new flag for the 6CIO to signal support for | |||
| When used to signal capabilities per this specification, the 6CIO is | EARO by the issuer of the message, and Section 7.1 specifies how the | |||
| typically present in Router Advertisement (RA) messages but can also | flag is to be used. A similar flag indicates the support of EDA | |||
| be present in RS, Neighbor Solicitation (NS) and Neighbor | messages by the 6LBR - note that other information on the 6LBR is | |||
| Advertisement (NA) messages. | found in a separate Authoritative Border Router Option (ABRO) that | |||
| MUST also be present in RA messages [RFC6775]. New flags are also | ||||
| added to signal the router's capability to act as a 6LR, 6LBR and | ||||
| 6BBR (see Section 6.3). | ||||
| 6. Extended ND Options And Messages | 6. Extended ND Options And Messages | |||
| This specification does not introduce new options, but it modifies | This specification does not introduce new options, but it modifies | |||
| existing ones and updates the associated behaviors as specified in | existing ones and updates the associated behaviors as specified in | |||
| the following subsections. | the following subsections. | |||
| 6.1. Enhanced Address Registration Option (EARO) | 6.1. Extended Address Registration Option (EARO) | |||
| The Address Registration Option (ARO) is defined in section 4.1 of | The Address Registration Option (ARO) is defined in section 4.1 of | |||
| [RFC6775]. | [RFC6775]. | |||
| The Enhanced Address Registration Option (EARO) updates the ARO | The Extended Address Registration Option (EARO) replaces the ARO used | |||
| option within Neighbor Discovery NS and NA messages between a 6LN and | within Neighbor Discovery NS and NA messages between a 6LN and its | |||
| its 6LR. On the other hand, the Extended Duplicate Address messages, | 6LR. Similarly, the EDA messages, EDAR and EDAC, replace the DAR and | |||
| EDAR and EDAC, replace the DAR and DAC messages so as to transport | DAC messages so as to transport the new information between 6LRs and | |||
| the new information between 6LRs and 6LBRs across LLN meshes such as | 6LBRs across LLN meshes such as 6TiSCH networks. | |||
| 6TiSCH networks. | ||||
| An NS message with an EARO option is a registration if and only if it | An NS message with an EARO is a registration if and only if it also | |||
| also carries an SLLAO option. The EARO option also used in NS and NA | carries an SLLA Option. The EARO also used in NS and NA messages | |||
| messages between Backbone Routers [I-D.ietf-6lo-backbone-router] over | between Backbone Routers [I-D.ietf-6lo-backbone-router] over the | |||
| the Backbone Link to sort out the distributed registration state; in | Backbone Link to sort out the distributed registration state; in that | |||
| that case, it does not carry the SLLAO option and is not confused | case, it does not carry the SLLA Option and is not confused with a | |||
| with a registration. | registration. | |||
| When using the EARO option, the address being registered is found in | When using the EARO, the address being registered is found in the | |||
| the Target Address field of the NS and NA messages. | Target Address field of the NS and NA messages. | |||
| The EARO extends the ARO and is indicated by the "T" flag set. The | The EARO extends the ARO and is indicated by the "T" flag set. The | |||
| format of the EARO option is as follows: | format of the EARO is as follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length = 2 | Status | Reserved | | | Type | Length | Status | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved |R|T| TID | Registration Lifetime | | | Reserved |R|T| TID | Registration Lifetime | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| + Registration Unique ID (EUI-64 or equivalent) + | + Registration Ownership Verifier + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: EARO | Figure 2: EARO | |||
| Option Fields | Option Fields | |||
| Type: 33 | Type: 33 | |||
| Length: 8-bit unsigned integer. The length of the option in | Length: 8-bit unsigned integer. The length of the option in | |||
| units of 8 bytes. Always 2. | units of 8 bytes. It MUST be 2 when operating in | |||
| backward-compatible mode. It MAY be 3, 4 or 5, | ||||
| denoting a ROVR size of 128, 192 and 256 bits | ||||
| respectively. | ||||
| Status: 8-bit unsigned integer. Indicates the status of a | Status: 8-bit unsigned integer. Indicates the status of a | |||
| registration in the NA response. MUST be set to 0 in | registration in the NA response. MUST be set to 0 in | |||
| NS messages. See Table 1 below. | NS messages. See Table 1 below. | |||
| +-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| | Value | Description | | | Value | Description | | |||
| +-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| | 0..2 | See [RFC6775]. Note: a Status of 1 "Duplicate Address" | | | 0..2 | See [RFC6775]. Note: a Status of 1 "Duplicate Address" | | |||
| | | applies to the Registered Address. If the Source Address | | | | applies to the Registered Address. If the Source Address | | |||
| | | conflicts with an existing registration, "Duplicate | | | | conflicts with an existing registration, "Duplicate | | |||
| | | Source Address" should be used. | | | | Source Address" MUST be used. | | |||
| | | | | | | | | |||
| | 3 | Moved: The registration failed because it is not the | | | 3 | Moved: The registration failed because it is not the | | |||
| | | freshest. This Status indicates that the registration is | | | | freshest. This Status indicates that the registration is | | |||
| | | rejected because another more recent registration was | | | | rejected because another more recent registration was | | |||
| | | done, as indicated by a same RUID and a more recent TID. | | | | done, as indicated by a same ROVR and a more recent TID. | | |||
| | | One possible cause is a stale registration that has | | | | One possible cause is a stale registration that has | | |||
| | | progressed slowly in the network and was passed by a more | | | | progressed slowly in the network and was passed by a more | | |||
| | | recent one. It could also indicate a RUID collision. | | | | recent one. It could also indicate a ROVR collision. | | |||
| | | | | | | | | |||
| | 4 | Removed: The binding state was removed. This may be | | | 4 | Removed: The binding state was removed. This may be | | |||
| | | placed in an asynchronous NS(ARO) message, or as the | | | | placed in an asynchronous NS(ARO) message, or as the | | |||
| | | rejection of a proxy registration to a Backbone Router | | | | rejection of a proxy registration to a Backbone Router | | |||
| | | | | | | | | |||
| | 5 | Validation Requested: The Registering Node is challenged | | | 5 | Validation Requested: The Registering Node is challenged | | |||
| | | for owning the Registered Address or for being an | | | | for owning the Registered Address or for being an | | |||
| | | acceptable proxy for the registration. This Status is | | | | acceptable proxy for the registration. This Status is | | |||
| | | expected in asynchronous messages from a registrar (6LR, | | | | expected in asynchronous messages from a registrar (6LR, | | |||
| | | 6LBR, 6BBR) to indicate that the registration state is | | | | 6LBR, 6BBR) to indicate that the registration state is | | |||
| | | removed, for instance due to a movement of the device. | | | | removed, for instance due to a movement of the device. | | |||
| | | | | | | | | |||
| | 6 | Duplicate Source Address: The address used as source of | | | 6 | Duplicate Source Address: The address used as source of | | |||
| | | the NS(ARO) conflicts with an existing registration. | | | | the NS(ARO) conflicts with an existing registration. | | |||
| | | | | | | | | |||
| | 7 | Invalid Source Address: The address used as source of the | | | 7 | Invalid Source Address: The address used as source of the | | |||
| | | NS(ARO) is not a Link-Local address as prescribed by this | | | | NS(ARO) is not a Link-Local Address as prescribed by this | | |||
| | | document. | | | | document. | | |||
| | | | | | | | | |||
| | 8 | Registered Address topologically incorrect: The address | | | 8 | Registered Address topologically incorrect: The address | | |||
| | | being registered is not usable on this link, e.g., it is | | | | being registered is not usable on this link, e.g., it is | | |||
| | | not topologically correct | | | | not topologically correct | | |||
| | | | | | | | | |||
| | 9 | 6LBR Registry saturated: A new registration cannot be | | | 9 | 6LBR Registry saturated: A new registration cannot be | | |||
| | | accepted because the 6LBR Registry is saturated. Note: | | | | accepted because the 6LBR Registry is saturated. Note: | | |||
| | | this code is used by 6LBRs instead of Status 2 when | | | | this code is used by 6LBRs instead of Status 2 when | | |||
| | | responding to a Duplicate Address message exchange and is | | | | responding to a Duplicate Address message exchange and is | | |||
| skipping to change at page 16, line 46 ¶ | skipping to change at page 18, line 20 ¶ | |||
| | 10 | Validation Failed: The proof of ownership of the | | | 10 | Validation Failed: The proof of ownership of the | | |||
| | | registered address is not correct. | | | | registered address is not correct. | | |||
| +-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Table 1: EARO Status | Table 1: EARO Status | |||
| Reserved: This field is unused. It MUST be initialized to zero | Reserved: This field is unused. It MUST be initialized to zero | |||
| by the sender and MUST be ignored by the receiver. | by the sender and MUST be ignored by the receiver. | |||
| R: If the 'R' flag is set, the registering node expects | R: If the 'R' flag is set, the registering node expects | |||
| that the 6LR ensures reachability for the registered | that the 6LR ensures reachability for the registered | |||
| address, e.g. by injecting the address in a route- | address, e.g. by injecting the address in a Route- | |||
| over routing protocol or proxying ND over a Backbone | Over routing protocol or proxying ND over a Backbone | |||
| Link. | Link. | |||
| T: One bit flag. Set if the next octet is used as a | T: One bit flag. Set if the next octet is used as a | |||
| TID. | TID. | |||
| TID: 1-byte integer; a transaction id that is maintained | TID: 1-byte integer; a transaction id that is maintained | |||
| by the node and incremented with each transaction. | by the node and incremented with each transaction. | |||
| The node SHOULD maintain the TID in a persistent | ||||
| storage. | ||||
| Registration Lifetime: 16-bit integer; expressed in minutes. 0 | Registration Lifetime: 16-bit integer; expressed in minutes. 0 | |||
| means that the registration has ended and the | means that the registration has ended and the | |||
| associated state should be removed. | associated state MUST be removed. | |||
| Registration Unique IDentifier (RUID): A globally unique identifier | Registration Ownership Verifier (ROVR): Enables to correlate | |||
| for the node associated. This can be the EUI-64 | multiple registrations for a same IPv6 Address. This | |||
| derived IID of an interface, or some provable ID | can be a unique ID of the Registering Node, such as | |||
| obtained cryptographically. | the EUI-64 address of an interface. This can also be | |||
| a token obtained with cryptographic methods and used | ||||
| as proof of ownership of the registration. The scope | ||||
| of a ROVR is one registration and it cannot be used | ||||
| to correlate different registrations. | ||||
| 6.2. Extended Duplicate Address Message Formats | 6.2. Extended Duplicate Address Message Formats | |||
| The Duplicate Address Request (DAR) and the Duplicate Address | The DAR and DAC messages are defined in section 4.4 of [RFC6775]. | |||
| Confirmation (DAC) messages are defined in section 4.4 of [RFC6775]. | ||||
| Those messages follow a common base format, which enables information | Those messages follow a common base format, which enables information | |||
| from the ARO to be transported over multiple hops. | from the ARO to be transported over multiple hops. | |||
| The Duplicate Address Messages are extended to adapt to the Extended | Those messages are extended to adapt to the new EARO format, as | |||
| ARO format, as follows: | follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Code | Checksum | | | Type | Code | Checksum | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Status | TID | Registration Lifetime | | | Status | TID | Registration Lifetime | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| + Registration Unique ID (EUI-64 or equivalent) + | + Registration Ownership Verifier + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| + + | + + | |||
| | | | | | | |||
| + Registered Address + | + Registered Address + | |||
| | | | | | | |||
| + + | + + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: Duplicate Address Messages Format | Figure 3: Duplicate Address Messages Format | |||
| Modified Message Fields | Modified Message Fields | |||
| Code: The ICMP Code as defined in [RFC4443]. The ICMP Code | Code: The ICMP Code as defined in [RFC4443]. The ICMP Code | |||
| MUST be set to 1 with this specification. An odd | MUST be set to 1 with this specification. An odd | |||
| value of the ICMP Code indicates that the TID field | value of the ICMP Code indicates that the TID field | |||
| is present and obeys this specification. | is present and obeys this specification. | |||
| TID: 1-byte integer; same definition and processing as the | TID: 1-byte integer; same definition and processing as the | |||
| TID in the EARO option as defined in Section 6.1. | TID in the EARO as defined in Section 6.1. | |||
| Registration Unique IDentifier (RUID): 8 bytes; same definition and | Registration Ownership Verifier (ROVR): The size of the ROVR is | |||
| processing as the RUID in the EARO option as defined | computed from the overall size of the IPv6 packet. | |||
| in Section 6.1. | It MUST be 64bits long when operating in backward- | |||
| compatible mode. This field has the same definition | ||||
| and processing as the ROVR in the EARO option as | ||||
| defined in Section 6.1. | ||||
| 6.3. New 6LoWPAN Capability Bits in the Capability Indication Option | 6.3. New 6LoWPAN Capability Bits in the Capability Indication Option | |||
| This specification defines new capability bits for use in the 6CIO, | This specification defines 5 new capability bits for use in the 6CIO, | |||
| which was introduced by [RFC7400] for use in IPv6 ND RA messages. | which was introduced by [RFC7400] for use in IPv6 ND RA messages. | |||
| Routers that support this specification MUST set the "E" flag and 6LN | This specification introduces the "E" flag to indicate that extended | |||
| SHOULD favor 6LR routers that support this specification over those | ARO can be used in a registration. A 6LR that supports this | |||
| that do not. Routers that are capable of acting as 6LR, 6LBR and | specification MUST set the "E" flag. | |||
| 6BBR SHOULD set the "L", "B" and "P" flags, respectively. In | ||||
| particular, the function 6LR is often collocated with that of 6LBR. | ||||
| Those flags are not mutually exclusive and if a router is capable of | A similar flag "D" indicates the support of Extended Duplicate | |||
| performing multiple functions, it SHOULD set all the related flags. | Address Messages by the 6LBR; A 6LBR that supports this specification | |||
| MUST set the "D" flag. The "D" flag is learned from advertisements | ||||
| by a 6LBR, and is propagated down a graph of 6LRs as a node acting as | ||||
| 6LN registers to a 6LR (which could be the 6LBR), and in turn becomes | ||||
| a 6LR to which other 6LNs will register. | ||||
| The new "L", "B" and "P" flags, indicate whether a router is capable | ||||
| of acting as 6LR, 6LBR and 6BBR, respectively. These flags are not | ||||
| mutually exclusive and a node MUST set all the flags that are | ||||
| relevant to it. | ||||
| As an example, a 6LBR sets the "B" and "D" flags. If it acts as a | ||||
| 6LR, then it sets the "L" and "E" flags. If it is collocated with a | ||||
| 6BBR, then it also sets the "P" flag. | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length = 1 | Reserved |L|B|P|E|G| | | Type | Length = 1 | Reserved |D|L|B|P|E|G| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved | | | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: New capability Bits L, B, P, E in the 6CIO | Figure 4: New capability Bits L, B, P, E in the 6CIO | |||
| Option Fields | Option Fields | |||
| Type: 36 | Type: 36 | |||
| L: Node is a 6LR, it can take registrations. | L: Node is a 6LR. | |||
| B: Node is a 6LBR. | B: Node is a 6LBR. | |||
| P: Node is a 6BBR, proxying for nodes on this link. | P: Node is a 6BBR. | |||
| E: This specification is supported and applied. | E: Node supports registrations based on EARO. | |||
| D: 6LBR supports EDA messages. | ||||
| 7. Backward Compatibility | 7. Backward Compatibility | |||
| 7.1. Discovering the capabilities of an ND peer | ||||
| 7.1.1. Using the "E" Flag in the 6CIO | 7.1. Discovering the Capabilities of an ND Peer | |||
| If the 6CIO is used in an ND message and the sending node supports | ||||
| this specification, then the "E" Flag MUST be set. | ||||
| A router that supports this specification SHOULD indicate that with a | ||||
| 6CIO. | ||||
| If the Registering Node receives a 6CIO in a Router Advertisement | ||||
| message, then the setting of the "E" Flag indicates whether or not | ||||
| this specification is supported. | ||||
| 7.1.2. Using the "T" Flag in the EARO | ||||
| One alternate way for a 6LN to discover the router's capabilities is | A 6LR that supports this specification MUST place a 6CIO in its RA | |||
| to start by registering a Link Local address, placing the same | messages. A typical flow when a node starts up is that it sends a | |||
| address in the Source and Target Address fields of the NS message, | multicast RS and receives one or more unicast RA messages. If the | |||
| and setting the "T" Flag. The node may for instance register an | 6LR can process Extended ARO, then the "E" Flag is set in the RA. | |||
| address that is based on an EUI-64. For such an address, DAD is not | ||||
| required and using the SLLAO option in the NS is actually more | ||||
| consistent with existing ND specifications such as the "Optimistic | ||||
| Duplicate Address Detection (ODAD) for IPv6" [RFC4429]. | ||||
| Once its first registration is complete, the node knows from the | This specification changes the behavior of the peers in a | |||
| setting of the "T" Flag in the response whether the router supports | registration flow. To enable backward compatibility, a 6LN that | |||
| this specification. If support is verified, the node may register | registers to a 6LR that is not known to support this specification | |||
| other addresses that it owns, or proxy-register addresses on behalf | MUST behave in a manner that is compatible with [RFC6775]. On the | |||
| of some another node, indicating those addresses being registered in | contrary, if the 6LR is known to support this specification, then the | |||
| the Target Address field of the NS messages, while using one of its | 6LN MUST conform this specification. | |||
| own previously registered addresses as source. | ||||
| A node that supports this specification MUST always use an EARO as a | A 6LN that supports this specification MUST always use an EARO as a | |||
| replacement to an ARO in its registration to a router. This is | replacement to an ARO in its registration to a router. This is | |||
| harmless since the "T" flag and TID field are reserved in [RFC6775], | harmless since the "T" flag and TID field are reserved in [RFC6775], | |||
| and are ignored by an RFC6775-only router. A router that supports | and are ignored by an RFC6775-only router. A router that supports | |||
| this specification answers an ARO with an ARO and answers an EARO | this specification MUST answer an NS(ARO) and an NS(EARO) with an | |||
| with an EARO. | NA(EARO). A router that does not support this specification will | |||
| consider the ROVR as an EUI-64 and treat it the same, which has no | ||||
| This specification changes the behavior of the peers in a | consequence if the Registered Addresses are different. | |||
| registration flow. To enable backward compatibility, a 6LN that | ||||
| registers to a 6LR that is not known to support this specification | ||||
| MUST behave in a manner that is compatible with [RFC6775]. A 6LN can | ||||
| achieve that by sending a NS(EARO) message with a Link-Local Address | ||||
| used as both Source and Target Address, as described in Section 4.6. | ||||
| Once the 6LR is known to support this specification, the 6LN MUST | ||||
| obey this specification. | ||||
| 7.2. RFC6775-only 6LoWPAN Node | 7.2. RFC6775-only 6LoWPAN Node | |||
| an RFC6775-only 6LN will use the Registered Address as source and | an RFC6775-only 6LN will use the Registered Address as source and | |||
| will not use an EARO option. An updated 6LR MUST accept that | will not use an EARO. An updated 6LR MUST accept that registration | |||
| registration if it is valid per [RFC6775], and it MUST manage the | if it is valid per [RFC6775], and it MUST manage the binding cache | |||
| binding cache accordingly. The updated 6LR MUST then use the | accordingly. The updated 6LR MUST then use the RFC6775-only EDA | |||
| RFC6775-only Duplicate Address messages as specified in [RFC6775] to | messages as specified in [RFC6775] to indicate to the 6LBR that the | |||
| indicate to the 6LBR that the TID is not present in the messages. | TID is not present in the messages. | |||
| The main difference from [RFC6775] is that the Duplicate Address | The main difference from [RFC6775] is that the exchange of EDA | |||
| exchange for DAD is avoided for Link-Local addresses. In any case, | messages for the purpose of DAD is avoided for Link-Local Addresses. | |||
| the 6LR SHOULD use an EARO in the reply, and can use any of the | In any case, the 6LR MUST use an EARO in the reply, and can use any | |||
| Status codes defined in this specification. | of the Status codes defined in this specification. | |||
| 7.3. RFC6775-only 6LoWPAN Router | 7.3. RFC6775-only 6LoWPAN Router | |||
| The first registration by an updated 6LN MUST be for a Link-Local | An updated 6LN discovers the capabilities of the 6LR in the 6CIO in | |||
| address, using that Link-Local address as source. an RFC6775-only 6LR | RA messages from that 6LR; if the 6CIO was not present in the RA, | |||
| will treat that registration as if the 6LN was an RFC6775-only node. | then the 6LR is assumed to be a RFC6775-only 6LoWPAN Router. | |||
| An updated 6LN will always use an EARO option in the registration NS | ||||
| message, whereas an RFC6775-only 6LR will always reply with an ARO | ||||
| option in the NA message. From that first registration, the updated | ||||
| 6LN can determine whether or not the 6LR supports this specification. | ||||
| After detecting an RFC6775-only 6LR, an updated 6LN SHOULD attempt to | ||||
| find an alternate 6LR that is updated for a reasonable time that | ||||
| depends on the type of device and the expected deployment. | ||||
| An updated 6LN SHOULD use an EARO in the request regardless of the | An updated 6LN MUST use an EARO in the request regardless of the type | |||
| type of 6LR, RFC6775-only or updated, which implies that the "T" flag | of 6LR, RFC6775-only or updated, which implies that the "T" flag is | |||
| is set. | set. It MUST use a ROVR of 64 bits if the 6LR is an RFC6775-only | |||
| 6LoWPAN Router. | ||||
| If an updated 6LN moves from an updated 6LR to an RFC6775-only 6LR, | If an updated 6LN moves from an updated 6LR to an RFC6775-only 6LR, | |||
| the RFC6775-only 6LR will send an RFC6775-only DAR message, which can | the RFC6775-only 6LR will send an RFC6775-only DAR message, which can | |||
| not be compared with an updated one for freshness. | not be compared with an updated one for freshness. Allowing | |||
| RFC6775-only DAR messages to replace a state established by the | ||||
| Allowing RFC6775-only DAR messages to replace a state established by | updated protocol in the 6LBR would be an attack vector and that | |||
| the updated protocol in the 6LBR would be an attack vector and that | cannot be the default behavior. But if RFC6775-only and updated 6LRs | |||
| cannot be the default behavior. | coexist temporarily in a network, then it makes sense for an | |||
| administrator to install a policy that allows so, and the capability | ||||
| But if RFC6775-only and updated 6LRs coexist temporarily in a | to install such a policy should be configurable in a 6LBR though it | |||
| network, then it makes sense for an administrator to install a policy | is out of scope for this document. | |||
| that allows so, and the capability to install such a policy should be | ||||
| configurable in a 6LBR though it is out of scope for this document. | ||||
| 7.4. RFC6775-only 6LoWPAN Border Router | 7.4. RFC6775-only 6LoWPAN Border Router | |||
| With this specification, the Duplicate Address messages are extended | With this specification, the Duplicate Address messages are extended | |||
| to transport the EARO information. Similarly to the NS/NA exchange, | to transport the EARO information. Similarly to the NS/NA exchange, | |||
| updated 6LBR devices always use the Extended Duplicate Address | an updated 6LBR MUST always use the EDA messages. | |||
| messages and all the associated behavior so they can always be | ||||
| differentiated from RFC6775-only ones. | ||||
| Note that an RFC6775-only 6LBR will accept and process an EDAR | Note that an RFC6775-only 6LBR will accept and process an EDAR | |||
| message as if it were an RFC6775-only DAR, so the support of DAD is | message as if it were an RFC6775-only DAR, as long as the ROVR is 64 | |||
| preserved. | bits long. An updated 6LR discovers the capabilities of the 6LBR in | |||
| the 6CIO in RA messages from the 6LR; if the 6CIO was not present in | ||||
| any RA, then the 6LBR si assumed to be a RFC6775-only 6LoWPAN Border | ||||
| Router. | ||||
| If the 6LBR is RFC6775-only, and the ROVR in the NS(EARO) was more | ||||
| than 64 bits long, then the 6LR MUST truncate the ROVR to the 64 | ||||
| rightmost bit and place the result in the EDAR message to maintain | ||||
| compatibility. This way, the support of DAD is preserved. | ||||
| 8. Security Considerations | 8. Security Considerations | |||
| This specification extends [RFC6775], and the security section of | This specification extends [RFC6775], and the security section of | |||
| that standard also applies to this as well. In particular, it is | that document also applies to this as well. In particular, it is | |||
| expected that the link layer is sufficiently protected to prevent a | expected that the link layer is sufficiently protected to prevent a | |||
| rogue access, either by means of physical or IP security on the | rogue access, either by means of physical or IP security on the | |||
| Backbone Link and link layer cryptography on the LLN. | Backbone Link and link layer cryptography on the LLN. | |||
| This specification also expects that the LLN MAC provides secure | This specification also expects that the LLN MAC provides secure | |||
| unicast to/from the Backbone Router and secure Broadcast or Multicast | unicast to/from the Backbone Router and secure Broadcast or Multicast | |||
| from the Backbone Router in a way that prevents tampering with or | from the Backbone Router in a way that prevents tampering with or | |||
| replaying the RA messages. | replaying the RA messages. | |||
| This specification recommends using privacy techniques (see | This specification recommends using privacy techniques (see | |||
| Section 9), and protection against address theft such as provided by | Section 9), and protection against address theft such as provided by | |||
| "Address Protected Neighbor Discovery for Low-power and Lossy | "Address Protected Neighbor Discovery for Low-power and Lossy | |||
| Networks" [I-D.ietf-6lo-ap-nd], which guarantees the ownership of the | Networks" [I-D.ietf-6lo-ap-nd], which guarantees the ownership of the | |||
| Registered Address using a cryptographic RUID. | Registered Address using a cryptographic ROVR. | |||
| The registration mechanism may be used by a rogue node to attack the | The registration mechanism may be used by a rogue node to attack the | |||
| 6LR or the 6LBR with a Denial-of-Service attack against the registry. | 6LR or the 6LBR with a Denial-of-Service attack against the registry. | |||
| It may also happen that the registry of a 6LR or a 6LBR is saturated | It may also happen that the registry of a 6LR or a 6LBR is saturated | |||
| and cannot take any more registrations, which effectively denies the | and cannot take any more registrations, which effectively denies the | |||
| requesting node the capability to use a new address. In order to | requesting node the capability to use a new address. In order to | |||
| alleviate those concerns, Section 4.7 provides a number of | alleviate those concerns, Section 4.7 provides a number of | |||
| recommendations that ensure that a stale registration is removed as | recommendations that ensure that a stale registration is removed as | |||
| soon as possible from the 6LR and 6LBR. In particular, this | soon as possible from the 6LR and 6LBR. In particular, this | |||
| specification recommends that: | specification recommends that: | |||
| skipping to change at page 22, line 15 ¶ | skipping to change at page 23, line 23 ¶ | |||
| which it is registered. In particular, use cases that involve | which it is registered. In particular, use cases that involve | |||
| mobility or rapid address changes SHOULD use lifetimes that are | mobility or rapid address changes SHOULD use lifetimes that are | |||
| larger yet of a same order as the duration of the expectation of | larger yet of a same order as the duration of the expectation of | |||
| presence. | presence. | |||
| o The router (6LR or 6LBR) SHOULD be configurable so as to limit the | o The router (6LR or 6LBR) SHOULD be configurable so as to limit the | |||
| number of addresses that can be registered by a single node, but | number of addresses that can be registered by a single node, but | |||
| as a protective measure only. A node may be identified by MAC | as a protective measure only. A node may be identified by MAC | |||
| address, but a stringer identification (e.g., by security | address, but a stringer identification (e.g., by security | |||
| credentials) is RECOMMENDED. When that maximum is reached, the | credentials) is RECOMMENDED. When that maximum is reached, the | |||
| router should use a Least-Recently-Used (LRU) algorithm to clean | router should use a Least-Recently-Used (LRU) algorithm to clean | |||
| up the addresses, keeping at least one Link-Local address. The | up the addresses, keeping at least one Link-Local Address. The | |||
| router SHOULD attempt to keep one or more stable addresses if | router SHOULD attempt to keep one or more stable addresses if | |||
| stability can be determined, e.g., because they are used over a | stability can be determined, e.g., because they are used over a | |||
| much longer time span than other (privacy, shorter-lived) | much longer time span than other (privacy, shorter-lived) | |||
| addresses. Address lifetimes SHOULD be individually configurable. | addresses. Address lifetimes SHOULD be individually configurable. | |||
| o In order to avoid denial of registration for the lack of | o In order to avoid denial of registration for the lack of | |||
| resources, administrators should take great care to deploy | resources, administrators should take great care to deploy | |||
| adequate numbers of 6LRs to cover the needs of the nodes in their | adequate numbers of 6LRs to cover the needs of the nodes in their | |||
| range, so as to avoid a situation of starving nodes. It is | range, so as to avoid a situation of starving nodes. It is | |||
| expected that the 6LBR that serves a LLN is a more capable node | expected that the 6LBR that serves a LLN is a more capable node | |||
| then the average 6LR, but in a network condition where it may | then the average 6LR, but in a network condition where it may | |||
| skipping to change at page 22, line 50 ¶ | skipping to change at page 24, line 9 ¶ | |||
| As indicated in Section 3, this protocol does not aim at limiting the | As indicated in Section 3, this protocol does not aim at limiting the | |||
| number of IPv6 addresses that a device can form and if placed, a | number of IPv6 addresses that a device can form and if placed, a | |||
| limit should be a protective measure only, that is high enough not to | limit should be a protective measure only, that is high enough not to | |||
| interfere with the normal behavior of devices in the network. A host | interfere with the normal behavior of devices in the network. A host | |||
| should be able to form and register any address that is topologically | should be able to form and register any address that is topologically | |||
| correct in the subnet(s) advertised by the 6LR/6LBR. | correct in the subnet(s) advertised by the 6LR/6LBR. | |||
| This specification does not mandate any particular way for forming | This specification does not mandate any particular way for forming | |||
| IPv6 addresses, but it discourages using EUI-64 for forming the | IPv6 addresses, but it discourages using EUI-64 for forming the | |||
| Interface ID in the Link-Local address because this method prevents | Interface ID in the Link-Local Address because this method prevents | |||
| the usage of "SEcure Neighbor Discovery (SEND)" [RFC3971] and | the usage of "SEcure Neighbor Discovery (SEND)" [RFC3971] and | |||
| "Cryptographically Generated Addresses (CGA)" [RFC3972], and that of | "Cryptographically Generated Addresses (CGA)" [RFC3972], and that of | |||
| address privacy techniques. | address privacy techniques. | |||
| "Privacy Considerations for IPv6 Adaptation-Layer Mechanisms" | "Privacy Considerations for IPv6 Adaptation-Layer Mechanisms" | |||
| [RFC8065] explains why privacy is important and how to form privacy- | [RFC8065] explains why privacy is important and how to form privacy- | |||
| aware addresses. All implementations and deployment must consider | aware addresses. All implementations and deployment must consider | |||
| the option of privacy addresses in their own environment. | the option of privacy addresses in their own environment. | |||
| The IPv6 address of the 6LN in the IPv6 header can be compressed | The IPv6 address of the 6LN in the IPv6 header can be compressed | |||
| skipping to change at page 26, line 11 ¶ | skipping to change at page 27, line 11 ¶ | |||
| IANA is requested to make additions to the Subregistry for "6LoWPAN | IANA is requested to make additions to the Subregistry for "6LoWPAN | |||
| capability Bits" as follows: | capability Bits" as follows: | |||
| Subregistry for "6LoWPAN capability Bits" under the "Internet Control | Subregistry for "6LoWPAN capability Bits" under the "Internet Control | |||
| Message Protocol version 6 (ICMPv6) Parameters" | Message Protocol version 6 (ICMPv6) Parameters" | |||
| +-----------------+----------------------+-----------+ | +-----------------+----------------------+-----------+ | |||
| | Capability Bit | Description | Document | | | Capability Bit | Description | Document | | |||
| +-----------------+----------------------+-----------+ | +-----------------+----------------------+-----------+ | |||
| | 10 | EDA Support (D bit) | This RFC | | ||||
| | | | | | ||||
| | 11 | 6LR capable (L bit) | This RFC | | | 11 | 6LR capable (L bit) | This RFC | | |||
| | | | | | | | | | | |||
| | 12 | 6LBR capable (B bit) | This RFC | | | 12 | 6LBR capable (B bit) | This RFC | | |||
| | | | | | | | | | | |||
| | 13 | 6BBR capable (P bit) | This RFC | | | 13 | 6BBR capable (P bit) | This RFC | | |||
| | | | | | | | | | | |||
| | 14 | EARO support (E bit) | This RFC | | | 14 | EARO support (E bit) | This RFC | | |||
| +-----------------+----------------------+-----------+ | +-----------------+----------------------+-----------+ | |||
| Table 6: New 6LoWPAN capability Bits | Table 6: New 6LoWPAN capability Bits | |||
| 11. Acknowledgments | 11. Acknowledgments | |||
| Kudos to Eric Levy-Abegnoli who designed the First Hop Security | Kudos to Eric Levy-Abegnoli who designed the First Hop Security | |||
| infrastructure upon which the first backbone router was implemented. | infrastructure upon which the first backbone router was implemented. | |||
| Many thanks to Sedat Gormus, Rahul Jadhav, Tim Chown, Juergen | Many thanks to Sedat Gormus, Rahul Jadhav, Tim Chown, Juergen | |||
| Schoenwaelder, Chris Lonvick and Lorenzo Colitti for their various | Schoenwaelder, Chris Lonvick, Dave Thaler and Lorenzo Colitti for | |||
| contributions and reviews. Also many thanks to Thomas Watteyne for | their various contributions and reviews. Also many thanks to Thomas | |||
| his early implementation of a 6LN that was instrumental to the early | Watteyne for his early implementation of a 6LN that was instrumental | |||
| tests of the 6LR, 6LBR and Backbone Router. | to the early tests of the 6LR, 6LBR and Backbone Router. | |||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 27, line 15 ¶ | skipping to change at page 28, line 15 ¶ | |||
| [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | |||
| "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | |||
| DOI 10.17487/RFC4861, September 2007, | DOI 10.17487/RFC4861, September 2007, | |||
| <https://www.rfc-editor.org/info/rfc4861>. | <https://www.rfc-editor.org/info/rfc4861>. | |||
| [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | |||
| Address Autoconfiguration", RFC 4862, | Address Autoconfiguration", RFC 4862, | |||
| DOI 10.17487/RFC4862, September 2007, | DOI 10.17487/RFC4862, September 2007, | |||
| <https://www.rfc-editor.org/info/rfc4862>. | <https://www.rfc-editor.org/info/rfc4862>. | |||
| [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | ||||
| over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
| Overview, Assumptions, Problem Statement, and Goals", | ||||
| RFC 4919, DOI 10.17487/RFC4919, August 2007, | ||||
| <https://www.rfc-editor.org/info/rfc4919>. | ||||
| [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | |||
| Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | |||
| DOI 10.17487/RFC6282, September 2011, | DOI 10.17487/RFC6282, September 2011, | |||
| <https://www.rfc-editor.org/info/rfc6282>. | <https://www.rfc-editor.org/info/rfc6282>. | |||
| [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem | ||||
| Statement and Requirements for IPv6 over Low-Power | ||||
| Wireless Personal Area Network (6LoWPAN) Routing", | ||||
| RFC 6606, DOI 10.17487/RFC6606, May 2012, | ||||
| <https://www.rfc-editor.org/info/rfc6606>. | ||||
| [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. | [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. | |||
| Bormann, "Neighbor Discovery Optimization for IPv6 over | Bormann, "Neighbor Discovery Optimization for IPv6 over | |||
| Low-Power Wireless Personal Area Networks (6LoWPANs)", | Low-Power Wireless Personal Area Networks (6LoWPANs)", | |||
| RFC 6775, DOI 10.17487/RFC6775, November 2012, | RFC 6775, DOI 10.17487/RFC6775, November 2012, | |||
| <https://www.rfc-editor.org/info/rfc6775>. | <https://www.rfc-editor.org/info/rfc6775>. | |||
| [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | ||||
| Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7102>. | ||||
| [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | ||||
| Constrained-Node Networks", RFC 7228, | ||||
| DOI 10.17487/RFC7228, May 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7228>. | ||||
| [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for | [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for | |||
| IPv6 over Low-Power Wireless Personal Area Networks | IPv6 over Low-Power Wireless Personal Area Networks | |||
| (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November | (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November | |||
| 2014, <https://www.rfc-editor.org/info/rfc7400>. | 2014, <https://www.rfc-editor.org/info/rfc7400>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| 12.2. Informative References | 12.2. Informative References | |||
| [I-D.chakrabarti-nordmark-6man-efficient-nd] | [I-D.chakrabarti-nordmark-6man-efficient-nd] | |||
| Chakrabarti, S., Nordmark, E., Thubert, P., and M. | Chakrabarti, S., Nordmark, E., Thubert, P., and M. | |||
| Wasserman, "IPv6 Neighbor Discovery Optimizations for | Wasserman, "IPv6 Neighbor Discovery Optimizations for | |||
| Wired and Wireless Networks", draft-chakrabarti-nordmark- | Wired and Wireless Networks", draft-chakrabarti-nordmark- | |||
| 6man-efficient-nd-07 (work in progress), February 2015. | 6man-efficient-nd-07 (work in progress), February 2015. | |||
| [I-D.delcarpio-6lo-wlanah] | [I-D.delcarpio-6lo-wlanah] | |||
| Vega, L., Robles, I., and R. Morabito, "IPv6 over | Vega, L., Robles, I., and R. Morabito, "IPv6 over | |||
| skipping to change at page 28, line 26 ¶ | skipping to change at page 29, line 48 ¶ | |||
| Choi, Y., Hong, Y., Youn, J., Kim, D., and J. Choi, | Choi, Y., Hong, Y., Youn, J., Kim, D., and J. Choi, | |||
| "Transmission of IPv6 Packets over Near Field | "Transmission of IPv6 Packets over Near Field | |||
| Communication", draft-ietf-6lo-nfc-09 (work in progress), | Communication", draft-ietf-6lo-nfc-09 (work in progress), | |||
| January 2018. | January 2018. | |||
| [I-D.ietf-6tisch-architecture] | [I-D.ietf-6tisch-architecture] | |||
| Thubert, P., "An Architecture for IPv6 over the TSCH mode | Thubert, P., "An Architecture for IPv6 over the TSCH mode | |||
| of IEEE 802.15.4", draft-ietf-6tisch-architecture-13 (work | of IEEE 802.15.4", draft-ietf-6tisch-architecture-13 (work | |||
| in progress), November 2017. | in progress), November 2017. | |||
| [I-D.ietf-ipv6-multilink-subnets] | ||||
| Thaler, D. and C. Huitema, "Multi-link Subnet Support in | ||||
| IPv6", draft-ietf-ipv6-multilink-subnets-00 (work in | ||||
| progress), July 2002. | ||||
| [I-D.ietf-mboned-ieee802-mcast-problems] | [I-D.ietf-mboned-ieee802-mcast-problems] | |||
| Perkins, C., McBride, M., Stanley, D., Kumari, W., and J. | Perkins, C., McBride, M., Stanley, D., Kumari, W., and J. | |||
| Zuniga, "Multicast Considerations over IEEE 802 Wireless | Zuniga, "Multicast Considerations over IEEE 802 Wireless | |||
| Media", draft-ietf-mboned-ieee802-mcast-problems-01 (work | Media", draft-ietf-mboned-ieee802-mcast-problems-01 (work | |||
| in progress), February 2018. | in progress), February 2018. | |||
| [I-D.ietf-roll-efficient-npdao] | [I-D.ietf-roll-efficient-npdao] | |||
| Jadhav, R., Sahoo, R., and Z. Cao, "No-Path DAO | Jadhav, R., Sahoo, R., and Z. Cao, "No-Path DAO | |||
| modifications", draft-ietf-roll-efficient-npdao-01 (work | modifications", draft-ietf-roll-efficient-npdao-01 (work | |||
| in progress), October 2017. | in progress), October 2017. | |||
| skipping to change at page 29, line 40 ¶ | skipping to change at page 31, line 9 ¶ | |||
| <https://www.rfc-editor.org/info/rfc3971>. | <https://www.rfc-editor.org/info/rfc3971>. | |||
| [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", | [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", | |||
| RFC 3972, DOI 10.17487/RFC3972, March 2005, | RFC 3972, DOI 10.17487/RFC3972, March 2005, | |||
| <https://www.rfc-editor.org/info/rfc3972>. | <https://www.rfc-editor.org/info/rfc3972>. | |||
| [RFC4429] Moore, N., "Optimistic Duplicate Address Detection (DAD) | [RFC4429] Moore, N., "Optimistic Duplicate Address Detection (DAD) | |||
| for IPv6", RFC 4429, DOI 10.17487/RFC4429, April 2006, | for IPv6", RFC 4429, DOI 10.17487/RFC4429, April 2006, | |||
| <https://www.rfc-editor.org/info/rfc4429>. | <https://www.rfc-editor.org/info/rfc4429>. | |||
| [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | ||||
| over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
| Overview, Assumptions, Problem Statement, and Goals", | ||||
| RFC 4919, DOI 10.17487/RFC4919, August 2007, | ||||
| <https://www.rfc-editor.org/info/rfc4919>. | ||||
| [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy | [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy | |||
| Extensions for Stateless Address Autoconfiguration in | Extensions for Stateless Address Autoconfiguration in | |||
| IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007, | IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007, | |||
| <https://www.rfc-editor.org/info/rfc4941>. | <https://www.rfc-editor.org/info/rfc4941>. | |||
| [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | |||
| Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | |||
| JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | |||
| Low-Power and Lossy Networks", RFC 6550, | Low-Power and Lossy Networks", RFC 6550, | |||
| DOI 10.17487/RFC6550, March 2012, | DOI 10.17487/RFC6550, March 2012, | |||
| <https://www.rfc-editor.org/info/rfc6550>. | <https://www.rfc-editor.org/info/rfc6550>. | |||
| [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem | ||||
| Statement and Requirements for IPv6 over Low-Power | ||||
| Wireless Personal Area Network (6LoWPAN) Routing", | ||||
| RFC 6606, DOI 10.17487/RFC6606, May 2012, | ||||
| <https://www.rfc-editor.org/info/rfc6606>. | ||||
| [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | ||||
| Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7102>. | ||||
| [RFC7217] Gont, F., "A Method for Generating Semantically Opaque | [RFC7217] Gont, F., "A Method for Generating Semantically Opaque | |||
| Interface Identifiers with IPv6 Stateless Address | Interface Identifiers with IPv6 Stateless Address | |||
| Autoconfiguration (SLAAC)", RFC 7217, | Autoconfiguration (SLAAC)", RFC 7217, | |||
| DOI 10.17487/RFC7217, April 2014, | DOI 10.17487/RFC7217, April 2014, | |||
| <https://www.rfc-editor.org/info/rfc7217>. | <https://www.rfc-editor.org/info/rfc7217>. | |||
| [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | ||||
| Constrained-Node Networks", RFC 7228, | ||||
| DOI 10.17487/RFC7228, May 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7228>. | ||||
| [RFC7428] Brandt, A. and J. Buron, "Transmission of IPv6 Packets | [RFC7428] Brandt, A. and J. Buron, "Transmission of IPv6 Packets | |||
| over ITU-T G.9959 Networks", RFC 7428, | over ITU-T G.9959 Networks", RFC 7428, | |||
| DOI 10.17487/RFC7428, February 2015, | DOI 10.17487/RFC7428, February 2015, | |||
| <https://www.rfc-editor.org/info/rfc7428>. | <https://www.rfc-editor.org/info/rfc7428>. | |||
| [RFC7668] Nieminen, J., Savolainen, T., Isomaki, M., Patil, B., | [RFC7668] Nieminen, J., Savolainen, T., Isomaki, M., Patil, B., | |||
| Shelby, Z., and C. Gomez, "IPv6 over BLUETOOTH(R) Low | Shelby, Z., and C. Gomez, "IPv6 over BLUETOOTH(R) Low | |||
| Energy", RFC 7668, DOI 10.17487/RFC7668, October 2015, | Energy", RFC 7668, DOI 10.17487/RFC7668, October 2015, | |||
| <https://www.rfc-editor.org/info/rfc7668>. | <https://www.rfc-editor.org/info/rfc7668>. | |||
| skipping to change at page 31, line 40 ¶ | skipping to change at page 32, line 36 ¶ | |||
| IEEE Standard 802.15.4, DOI 10.1109/IEEE | IEEE Standard 802.15.4, DOI 10.1109/IEEE | |||
| P802.15.4-REVd/D01, June 2017, | P802.15.4-REVd/D01, June 2017, | |||
| <http://ieeexplore.ieee.org/document/7460875/>. | <http://ieeexplore.ieee.org/document/7460875/>. | |||
| [Perlman83] | [Perlman83] | |||
| Perlman, R., "Fault-Tolerant Broadcast of Routing | Perlman, R., "Fault-Tolerant Broadcast of Routing | |||
| Information", North-Holland Computer Networks 7: 395-405, | Information", North-Holland Computer Networks 7: 395-405, | |||
| 1983, <http://www.cs.illinois.edu/~pbg/courses/cs598fa09/ | 1983, <http://www.cs.illinois.edu/~pbg/courses/cs598fa09/ | |||
| readings/p83.pdf>. | readings/p83.pdf>. | |||
| Appendix A. Applicability and Requirements Served | Appendix A. Applicability and Requirements Served (Not Normative) | |||
| This specification extends 6LoWPAN ND to provide a sequence number to | This specification extends 6LoWPAN ND to provide a sequence number to | |||
| the registration and serves the requirements expressed in | the registration and serves the requirements expressed in | |||
| Appendix B.1 by enabling the mobility of devices from one LLN to the | Appendix B.1 by enabling the mobility of devices from one LLN to the | |||
| next based on the complementary work in the "IPv6 Backbone Router" | next based on the complementary work in the "IPv6 Backbone Router" | |||
| [I-D.ietf-6lo-backbone-router] specification. | [I-D.ietf-6lo-backbone-router] specification. | |||
| In the context of the TimeSlotted Channel Hopping (TSCH) mode of IEEE | In the context of the TimeSlotted Channel Hopping (TSCH) mode of IEEE | |||
| Std. 802.15.4 [IEEEstd802154], the "6TiSCH architecture" | Std. 802.15.4 [IEEEstd802154], the "6TiSCH architecture" | |||
| [I-D.ietf-6tisch-architecture] introduces how a 6LoWPAN ND host could | [I-D.ietf-6tisch-architecture] introduces how a 6LoWPAN ND host could | |||
| skipping to change at page 32, line 40 ¶ | skipping to change at page 33, line 36 ¶ | |||
| packets is not sufficiently efficient in terms of delivery ratio or | packets is not sufficiently efficient in terms of delivery ratio or | |||
| energy consumption in the end devices, in particular to enable | energy consumption in the end devices, in particular to enable | |||
| energy-constrained sleeping nodes. The value of such extension is | energy-constrained sleeping nodes. The value of such extension is | |||
| especially apparent in the case of mobile wireless nodes, to reduce | especially apparent in the case of mobile wireless nodes, to reduce | |||
| the multicast operations that are related to IPv6 ND ([RFC4861], | the multicast operations that are related to IPv6 ND ([RFC4861], | |||
| [RFC4862]) and affect the operation of the wireless medium | [RFC4862]) and affect the operation of the wireless medium | |||
| [I-D.ietf-mboned-ieee802-mcast-problems] | [I-D.ietf-mboned-ieee802-mcast-problems] | |||
| [I-D.perkins-intarea-multicast-ieee802]. This serves the scalability | [I-D.perkins-intarea-multicast-ieee802]. This serves the scalability | |||
| requirements listed in Appendix B.6. | requirements listed in Appendix B.6. | |||
| Appendix B. Requirements | Appendix B. Requirements (Not Normative) | |||
| This section lists requirements that were discussed at 6lo for an | This section lists requirements that were discussed at 6lo for an | |||
| update to 6LoWPAN ND. How those requirements are matched with | update to 6LoWPAN ND. How those requirements are matched with | |||
| existing specifications at the time of this writing is shown in | existing specifications at the time of this writing is shown in | |||
| Appendix B.8 . | Appendix B.8 . | |||
| B.1. Requirements Related to Mobility | B.1. Requirements Related to Mobility | |||
| Due to the unstable nature of LLN links, even in a LLN of immobile | Due to the unstable nature of LLN links, even in a LLN of immobile | |||
| nodes a 6LN may change its point of attachment to a 6LR, say 6LR-a, | nodes a 6LN may change its point of attachment to a 6LR, say 6LR-a, | |||
| skipping to change at page 37, line 32 ¶ | skipping to change at page 38, line 24 ¶ | |||
| A Network Administrator should be able to validate that the network | A Network Administrator should be able to validate that the network | |||
| is operating within capacity, and that in particular a 6LBR does not | is operating within capacity, and that in particular a 6LBR does not | |||
| get overloaded with an excessive amount of registration, so he can | get overloaded with an excessive amount of registration, so he can | |||
| take actions such as adding a Backbone Link with additional 6LBRs and | take actions such as adding a Backbone Link with additional 6LBRs and | |||
| 6BBRs to his network. | 6BBRs to his network. | |||
| Related requirements are: | Related requirements are: | |||
| Req7.1: A management model SHOULD be provided providing access to the | Req7.1: A management model SHOULD be provided providing access to the | |||
| 6LBR and its capacity. It is recommended that the 6LBR be reachable | 6LBR, monitor its usage vs. capacity, and alert in case of | |||
| over a non-LLN link. | congestion. It is recommended that the 6LBR be reachable over a non- | |||
| LLN link. | ||||
| Req7.2: A management model SHOULD be provided providing access to the | Req7.2: A management model SHOULD be provided providing access to the | |||
| 6LR and its capacity to host additional NCE. This management model | 6LR and its capacity to host additional NCE. This management model | |||
| SHOULD avoid polling individual 6LRs n a way that could disrupt the | SHOULD avoid polling individual 6LRs n a way that could disrupt the | |||
| operation of the LLN. | operation of the LLN. | |||
| Req7.3: information on successful and failed registration SHOULD be | Req7.3: information on successful and failed registration SHOULD be | |||
| provided, including information such as the RUID of the 6LN, the | provided, including information such as the ROVR of the 6LN, the | |||
| Registered Address, the Address of the 6LR and the duration of the | Registered Address, the Address of the 6LR and the duration of the | |||
| registration flow. | registration flow. | |||
| Req7.4: In case of a failed registration, information on the failure | Req7.4: In case of a failed registration, information on the failure | |||
| including the identification of the node that rejected the | including the identification of the node that rejected the | |||
| registration and the status in the EARO SHOULD be provided | registration and the status in the EARO SHOULD be provided. | |||
| B.8. Matching Requirements with Specifications | B.8. Matching Requirements with Specifications | |||
| I-drafts/RFCs addressing requirements | I-drafts/RFCs addressing requirements | |||
| +-------------+-----------------------------------------+ | +-------------+-----------------------------------------+ | |||
| | Requirement | Document | | | Requirement | Document | | |||
| +-------------+-----------------------------------------+ | +-------------+-----------------------------------------+ | |||
| | Req1.1 | [I-D.ietf-6lo-backbone-router] | | | Req1.1 | [I-D.ietf-6lo-backbone-router] | | |||
| | | | | | | | | |||
| skipping to change at page 39, line 24 ¶ | skipping to change at page 40, line 13 ¶ | |||
| | | | | | | | | |||
| | Req7.2 | | | | Req7.2 | | | |||
| | | | | | | | | |||
| | Req7.3 | | | | Req7.3 | | | |||
| | | | | | | | | |||
| | Req7.4 | | | | Req7.4 | | | |||
| +-------------+-----------------------------------------+ | +-------------+-----------------------------------------+ | |||
| Table 7: Work Addressing requirements | Table 7: Work Addressing requirements | |||
| Appendix C. Subset of a 6LoWPAN Glossary | ||||
| This document often uses the following acronyms: | ||||
| 6BBR: 6LoWPAN Backbone Router (proxy for the registration) | ||||
| 6LBR: 6LoWPAN Border Router (authoritative on DAD) | ||||
| 6LN: 6LoWPAN Node | ||||
| 6LR: 6LoWPAN Router (relay to the registration process) | ||||
| 6CIO: Capability Indication Option | ||||
| (E)ARO: (Extended) Address Registration Option | ||||
| DAD: Duplicate Address Detection | ||||
| LLN: Low Power Lossy Network (a typical IoT network) | ||||
| NA: Neighbor Advertisement | ||||
| NCE: Neighbor Cache Entry | ||||
| ND: Neighbor Discovery | ||||
| NDP: Neighbor Discovery Protocol | ||||
| NS: Neighbor Solicitation | ||||
| RUID: Registration Unique ID | ||||
| TSCH: TimeSlotted Channel Hopping | ||||
| TID: Transaction ID (a sequence counter in the EARO) | ||||
| Authors' Addresses | Authors' Addresses | |||
| Pascal Thubert (editor) | Pascal Thubert (editor) | |||
| Cisco Systems, Inc | Cisco Systems, Inc | |||
| Building D (Regus) 45 Allee des Ormes | Building D (Regus) 45 Allee des Ormes | |||
| Mougins - Sophia Antipolis | Mougins - Sophia Antipolis | |||
| France | France | |||
| Phone: +33 4 97 23 26 34 | Phone: +33 4 97 23 26 34 | |||
| Email: pthubert@cisco.com | Email: pthubert@cisco.com | |||
| Erik Nordmark | Erik Nordmark | |||
| End of changes. 123 change blocks. | ||||
| 452 lines changed or deleted | 482 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||