| < draft-ietf-6lo-rfc6775-update-18.txt | draft-ietf-6lo-rfc6775-update-19.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: October 8, 2018 S. Chakrabarti | Expires: October 25, 2018 S. Chakrabarti | |||
| Verizon | Verizon | |||
| C. Perkins | C. Perkins | |||
| Futurewei | Futurewei | |||
| April 6, 2018 | April 23, 2018 | |||
| Registration Extensions for 6LoWPAN Neighbor Discovery | Registration Extensions for 6LoWPAN Neighbor Discovery | |||
| draft-ietf-6lo-rfc6775-update-18 | draft-ietf-6lo-rfc6775-update-19 | |||
| 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 October 8, 2018. | This Internet-Draft will expire on October 25, 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 | |||
| skipping to change at page 2, line 16 ¶ | skipping to change at page 2, line 16 ¶ | |||
| 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 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.2. Subset of a 6LoWPAN Glossary . . . . . . . . . . . . . . 4 | 2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.3. References . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.3. New Terms . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.4. New Terms . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.4. Subset of a 6LoWPAN Glossary . . . . . . . . . . . . . . 6 | |||
| 3. Applicability of Address Registration Options . . . . . . . . 7 | 3. Applicability of Address Registration Options . . . . . . . . 7 | |||
| 4. Extended ND Options and Messages . . . . . . . . . . . . . . 8 | 4. Extended ND Options and Messages . . . . . . . . . . . . . . 8 | |||
| 4.1. Extended Address Registration Option (EARO) . . . . . . . 8 | 4.1. Extended Address Registration Option (EARO) . . . . . . . 8 | |||
| 4.2. Extended Duplicate Address Message Formats . . . . . . . 11 | 4.2. Extended Duplicate Address Message Formats . . . . . . . 12 | |||
| 4.3. New 6LoWPAN Capability Bits in the Capability Indication | 4.3. New 6LoWPAN Capability Bits in the Capability Indication | |||
| Option . . . . . . . . . . . . . . . . . . . . . . . . . 12 | Option . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 5. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 13 | 5. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 5.1. Extending the Address Registration Option . . . . . . . . 15 | 5.1. Extending the Address Registration Option . . . . . . . . 15 | |||
| 5.2. Transaction ID . . . . . . . . . . . . . . . . . . . . . 16 | 5.2. Transaction ID . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.2.1. Comparing TID values . . . . . . . . . . . . . . . . 16 | 5.2.1. Comparing TID values . . . . . . . . . . . . . . . . 16 | |||
| 5.3. Registration Ownership Verifier . . . . . . . . . . . . . 18 | 5.3. Registration Ownership Verifier . . . . . . . . . . . . . 18 | |||
| 5.4. Extended Duplicate Address Messages . . . . . . . . . . . 19 | 5.4. Extended Duplicate Address Messages . . . . . . . . . . . 19 | |||
| 5.5. Registering the Target Address . . . . . . . . . . . . . 19 | 5.5. Registering the Target Address . . . . . . . . . . . . . 19 | |||
| 5.6. Link-Local Addresses and Registration . . . . . . . . . . 20 | 5.6. Link-Local Addresses and Registration . . . . . . . . . . 20 | |||
| 5.7. Maintaining the Registration States . . . . . . . . . . . 21 | 5.7. Maintaining the Registration States . . . . . . . . . . . 22 | |||
| 6. Backward Compatibility . . . . . . . . . . . . . . . . . . . 23 | 6. Backward Compatibility . . . . . . . . . . . . . . . . . . . 23 | |||
| 6.1. Signaling EARO Capability Support . . . . . . . . . . . . 23 | 6.1. Signaling EARO Capability Support . . . . . . . . . . . . 24 | |||
| 6.2. First Exchanges . . . . . . . . . . . . . . . . . . . . . 24 | 6.2. RFC6775-only 6LoWPAN Node . . . . . . . . . . . . . . . . 24 | |||
| 6.3. RFC6775-only 6LoWPAN Node . . . . . . . . . . . . . . . . 24 | 6.3. RFC6775-only 6LoWPAN Router . . . . . . . . . . . . . . . 25 | |||
| 6.4. RFC6775-only 6LoWPAN Router . . . . . . . . . . . . . . . 24 | 6.4. RFC6775-only 6LoWPAN Border Router . . . . . . . . . . . 25 | |||
| 6.5. RFC6775-only 6LoWPAN Border Router . . . . . . . . . . . 25 | ||||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | |||
| 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 27 | 8. Privacy Considerations . . . . . . . . . . . . . . . . . . . 27 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 9.1. ARO Flags . . . . . . . . . . . . . . . . . . . . . . . . 28 | 9.1. ARO Flags . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 9.2. ICMP Codes . . . . . . . . . . . . . . . . . . . . . . . 28 | 9.2. ICMP Codes . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
| 9.3. New ARO Status values . . . . . . . . . . . . . . . . . . 29 | 9.3. New ARO Status values . . . . . . . . . . . . . . . . . . 29 | |||
| 9.4. New 6LoWPAN capability Bits . . . . . . . . . . . . . . . 30 | 9.4. New 6LoWPAN capability Bits . . . . . . . . . . . . . . . 30 | |||
| 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 31 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 31 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 31 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 31 | |||
| 11.2. Terminology Related References . . . . . . . . . . . . . 32 | 11.2. Terminology Related References . . . . . . . . . . . . . 32 | |||
| 11.3. Informative References . . . . . . . . . . . . . . . . . 32 | 11.3. Informative References . . . . . . . . . . . . . . . . . 32 | |||
| 11.4. External Informative References . . . . . . . . . . . . 36 | 11.4. External Informative References . . . . . . . . . . . . 36 | |||
| skipping to change at page 4, line 23 ¶ | skipping to change at page 4, line 23 ¶ | |||
| 2. Terminology | 2. Terminology | |||
| 2.1. BCP 14 | 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", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119][RFC8174] when, and only when, they appear in all | 14 [RFC2119][RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2.2. Subset of a 6LoWPAN Glossary | 2.2. References | |||
| 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 | ||||
| (E)DAR: (Extended) Duplicate Address Request | ||||
| (E)DAC: (Extended) Duplicate Address Confirmation | ||||
| DAD: Duplicate Address Detection | ||||
| DODAG: Destination-Oriented Directed Acyclic Graph | ||||
| LLN: Low-Power and 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 (pronounced rover) | ||||
| RPL: IPv6 Routing Protocol for LLNs (pronounced ripple) | ||||
| RA: Router Advertisement | ||||
| RS: Router Solicitation | ||||
| 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]. | |||
| 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 | |||
| skipping to change at page 5, line 47 ¶ | skipping to change at page 5, line 5 ¶ | |||
| 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]. | |||
| 2.4. New Terms | 2.3. 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 an LLN over a Backbone Link. In order to do so, the | federates an 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 | |||
| skipping to change at page 6, line 25 ¶ | skipping to change at page 5, line 27 ¶ | |||
| 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: Multiple LLNs as defined in [RFC6550], interconnected | Extended LLN: Multiple LLNs as defined in [RFC6550], interconnected | |||
| by a Backbone Link via Backbone Routers, and forming a single | by a Backbone Link via Backbone Routers, and forming a single | |||
| IPv6 Multi-Link Subnet. | IPv6 Multi-Link Subnet. | |||
| Registration: The process during which a 6LN registers an IPv6 | Registration: The process during which a 6LN registers an IPv6 | |||
| Address with a 6LR in order to obtain services such as DAD and | Address with a 6LR in order to obtain services such as DAD and | |||
| routing back. In a Route-Over network, a router that provides | routing back. In a Route-Over network, a 6LBR may serve as | |||
| connectivity to the LLN (typically a 6LBR, e.g., collocated | proxy for the registration of the 6LN to the 6BBR so the 6BBR | |||
| with a RPL Root) may serve as proxy for the registration of the | can provide IPv6 ND proxy services over the Backbone. | |||
| 6LN to the 6BBR so the 6BBR can provide IPv6 ND proxy services | ||||
| over the Backbone. | ||||
| Binding: The association between an IP address, a MAC address, a | Binding: The association between an IP address, a MAC address, a | |||
| physical port on a switch, and other information about the node | physical port on a switch, and other information about the node | |||
| that owns the IP Address. | that owns the IP Address. | |||
| Registered Node: The 6LN for which the registration is performed, | 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; this may | Registering Node: The node that performs the registration; this may | |||
| be the Registered Node, or a proxy such as a 6LBR performing a | be the Registered Node, or a proxy such as a 6LBR performing a | |||
| skipping to change at page 7, line 5 ¶ | skipping to change at page 6, line 5 ¶ | |||
| or is being registered. | or is being registered. | |||
| RFC6775-only: Applied to an implementation, a type of node, or a | RFC6775-only: Applied to an implementation, a type of node, or a | |||
| type of message, this adjective indicates a behavior that is | type of message, this adjective indicates a behavior that is | |||
| strictly as specified by [RFC6775] as opposed to updated with | strictly as specified by [RFC6775] as opposed to updated with | |||
| this specification. | 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. | |||
| 2.4. 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 | ||||
| (E)DAR: (Extended) Duplicate Address Request | ||||
| (E)DAC: (Extended) Duplicate Address Confirmation | ||||
| DAD: Duplicate Address Detection | ||||
| DODAG: Destination-Oriented Directed Acyclic Graph | ||||
| LLN: Low-Power and 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 (pronounced rover) | ||||
| RPL: IPv6 Routing Protocol for LLNs (pronounced ripple) | ||||
| RA: Router Advertisement | ||||
| RS: Router Solicitation | ||||
| TSCH: Timeslotted Channel Hopping | ||||
| TID: Transaction ID (a sequence counter in the EARO) | ||||
| 3. Applicability of Address Registration Options | 3. Applicability of Address Registration Options | |||
| The purpose of the Address Registration Option (ARO) in [RFC6775] is | The purpose of the Address Registration Option (ARO) in [RFC6775] is | |||
| to facilitate duplicate address detection (DAD) for hosts as well as | to facilitate duplicate address detection (DAD) for hosts as well as | |||
| to populate Neighbor Cache Entries (NCEs) [RFC4861] in the routers. | to populate Neighbor Cache Entries (NCEs) [RFC4861] in the routers. | |||
| This reduces the reliance on multicast operations, which are often as | This reduces the reliance on multicast operations, which are often as | |||
| intrusive as broadcast, in IPv6 ND operations. | intrusive as broadcast, in IPv6 ND operations. | |||
| With this specification, a failed or useless registration can be | With this specification, a failed or useless registration can be | |||
| detected by a 6LR or a 6LBR for reasons other than address | detected by a 6LR or a 6LBR for reasons other than address | |||
| skipping to change at page 8, line 14 ¶ | skipping to change at page 8, line 14 ¶ | |||
| 4. Extended ND Options and Messages | 4. 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. | |||
| 4.1. Extended Address Registration Option (EARO) | 4.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]. This specification introduces the Extended Address | [RFC6775]. | |||
| Registration Option (EARO) based on the ARO for use in NS and NA | ||||
| messages. The EARO conveys additional information such as a sequence | This specification introduces the Extended Address Registration | |||
| counter called Transaction ID (TID) that is used to determine the | Option (EARO) based on the ARO for use in NS and NA messages. The | |||
| latest location of a registering mobile device. A 'T' flag is added | EARO conveys additional information such as a sequence counter called | |||
| to indicate that the TID field is populated. | Transaction ID (TID) that is used to determine the latest location of | |||
| a registering mobile device. A new 'T' flag indicates that the TID | ||||
| field is populated and that the option is an EARO. | ||||
| The EARO also signals whether the 6LN expects routing or proxy | The EARO also signals whether the 6LN expects routing or proxy | |||
| services from the 6LR using a new 'R' flag. | services from the 6LR using a new 'R' flag. | |||
| The EUI-64 field is overloaded and renamed ROVR in order to carry | The EUI-64 field is overloaded and renamed ROVR in order to carry | |||
| different types of information, e.g., cryptographic information of | different types of information, e.g., cryptographic information of | |||
| variable size. A larger ROVR size may be used if and only if | variable size. A larger ROVR size may be used if and only if | |||
| backward compatibility is not an issue in the particular deployment. | backward compatibility is not an issue in the particular deployment. | |||
| Note that the length of the ROVR field expressed in units of 8 bytes | ||||
| is the Length of the option minus 1. | ||||
| Section 5.1 discusses those changes in depth. | Section 5.1 discusses those changes in depth. | |||
| An NS message with an EARO is a registration if and only if it also | ||||
| carries an SLLA Option [RFC6775]. The EARO is also used in NS and NA | ||||
| messages between Backbone Routers [I-D.ietf-6lo-backbone-router] over | ||||
| the Backbone Link to sort out the distributed registration state; in | ||||
| that case, it does not carry the SLLA Option and is not confused with | ||||
| a registration. | ||||
| When using the EARO, the address being registered is found in the | ||||
| Target Address field of the NS and NA messages. | ||||
| The EARO extends the ARO and is indicated by the 'T' flag being set. | ||||
| The format of the EARO is as follows: | The 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 | Status | Reserved | | | Type | Length | Status | Opaque | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved |R|T| TID | Registration Lifetime | | | Rsvd | I |R|T| TID | Registration Lifetime | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| ... Registration Ownership Verifier ... | ... Registration Ownership Verifier ... | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: EARO | Figure 1: EARO | |||
| Option Fields | Option Fields: | |||
| Type: 33 | Type: 33 | |||
| Length: 8-bit unsigned integer. The length of the whole | Length: 8-bit unsigned integer. The length of the whole | |||
| option in units of 8 bytes. It MUST be 2 when | option in units of 8 bytes. It MUST be 2 when | |||
| operating in a backward-compatible mode with a ROVR | operating in a backward-compatible mode with a ROVR | |||
| size of 64 bits. It MAY be 3, 4 or 5, denoting a | size of 64 bits. It MAY be 3, 4 or 5, denoting a | |||
| ROVR size of 128, 192 and 256 bits respectively. | 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. | |||
| Rsvd (Reserved): This field is unused. It MUST be initialized to | ||||
| zero by the sender and MUST be ignored by the | ||||
| receiver. | ||||
| Opaque: One-byte Opaque field; this is an octet is opaque to | ||||
| ND but that the 6LN may wish to pass transparently to | ||||
| another process. This field MUST be set to zero | ||||
| unless the 6LN has a policy to set it otherwise. | ||||
| I: Two-bit Integer: A value of zero indicates that the | ||||
| Opaque field carries an abstract index that is used | ||||
| to decide in which routing topology the address is | ||||
| expected to be injected. In that case, the Opaque | ||||
| field is passed to a routing process with the | ||||
| indication that this is a topology information, and | ||||
| the value of 0 indicates default. All other values | ||||
| of "I" are reserved and MUST NOT be used. | ||||
| R: One-bit flag. If the 'R' flag is set, the | ||||
| Registering Node expects that the 6LR ensures | ||||
| reachability for the registered address, e.g., by | ||||
| injecting the address in a Route-Over routing | ||||
| protocol or proxying ND over a Backbone Link. | ||||
| T: One-bit flag. Set if the next octet is used as a | ||||
| TID. | ||||
| TID: One-byte integer; a Transaction ID that is maintained | ||||
| by the node and incremented with each transaction of | ||||
| one or more registrations performed at the same time | ||||
| to one or more respective 6LRs. This field MUST be | ||||
| ignored if the 'T' flag is not set. | ||||
| Registration Lifetime: 16-bit integer; expressed in minutes. A | ||||
| value of 0 indicates that the registration has ended | ||||
| and that the associated state MUST be removed. | ||||
| Registration Ownership Verifier (ROVR): Enables the correlation | ||||
| between multiple attempts to register a same IPv6 | ||||
| Address. The ROVR is stored in the 6LR and the 6LBR | ||||
| in the state associated to the registration. This | ||||
| can be a unique ID of the Registering Node, such as | ||||
| the EUI-64 address of an interface. This can also be | ||||
| a token obtained with cryptographic methods which can | ||||
| be used in additional protocol exchanges to associate | ||||
| a cryptographic identity (key) with this registration | ||||
| to ensure that only the owner can modify it later. | ||||
| The scope of a ROVR is the registration of a | ||||
| particular IPv6 Address and it must not be used to | ||||
| correlate registrations of different addresses. | ||||
| +-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| | 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" MUST 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 | | |||
| skipping to change at page 10, line 7 ¶ | skipping to change at page 11, line 28 ¶ | |||
| | | 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 ROVR collision. | | | | recent one. It could also indicate a ROVR collision. | | |||
| | | | | | | | | |||
| | 4 | Removed: The binding state was removed. This status may | | | 4 | Removed: The binding state was removed. This status may | | |||
| | | be placed in an NA(EARO) message that is sent as the | | | | be placed in an NA(EARO) message that is sent as the | | |||
| | | rejection of a proxy registration to a Backbone Router, | | | | rejection of a proxy registration to a Backbone Router, | | |||
| | | or in an asynchronous NA(EARO) at any time. | | | | or in an asynchronous NA(EARO) at any time. | | |||
| | | | | | | | | |||
| | 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 may | | |||
| | | expected in asynchronous messages from a registrar (6LR, | | | | be received in asynchronous DAC or NA messages from a | | |||
| | | 6LBR, 6BBR) to indicate that the registration state is | | | | registrar (6LR, 6LBR, 6BBR). | | |||
| | | 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(EARO) 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(EARO) is not a Link-Local Address. | | |||
| | | 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 | | |||
| | | passed on to the Registering Node by the 6LR. | | | | passed on to the Registering Node by the 6LR. | | |||
| | | | | | | | | |||
| | 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 | ||||
| by the sender and MUST be ignored by the receiver. | ||||
| R: One-bit flag. If the 'R' flag is set, the | ||||
| Registering Node expects that the 6LR ensures | ||||
| reachability for the registered address, e.g., by | ||||
| injecting the address in a Route-Over routing | ||||
| protocol or proxying ND over a Backbone Link. | ||||
| T: One-bit flag. Set if the next octet is used as a | ||||
| TID. | ||||
| TID: One-byte integer; a Transaction ID that is maintained | ||||
| by the node and incremented with each transaction of | ||||
| one or more registrations performed at the same time | ||||
| to one or more respective 6LRs. This field MUST be | ||||
| ignored if the 'T' flag is not set. | ||||
| Registration Lifetime: 16-bit integer; expressed in minutes. 0 | ||||
| means that the registration has ended and the | ||||
| associated state MUST be removed. | ||||
| Registration Ownership Verifier (ROVR): Enables the correlation | ||||
| between multiple attempts to register a same IPv6 | ||||
| Address. The ROVR is stored in the 6LR and the 6LBR | ||||
| in the state associated to the registration. This | ||||
| can be a unique ID of the Registering Node, such as | ||||
| the EUI-64 address of an interface. This can also be | ||||
| a token obtained with cryptographic methods which can | ||||
| be used in additional protocol exchanges to associate | ||||
| a cryptographic identity (key) with this registration | ||||
| to ensure that only the owner can modify it later. | ||||
| The scope of a ROVR is the registration of a | ||||
| particular IPv6 Address and it must not be used to | ||||
| correlate registrations of different addresses. | ||||
| 4.2. Extended Duplicate Address Message Formats | 4.2. Extended Duplicate Address Message Formats | |||
| The DAR and DAC messages are defined in section 4.4 of [RFC6775]. | The DAR and 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. | |||
| Those messages are extended to adapt to the new EARO format, as | Those messages are extended to adapt to the new EARO format, as | |||
| follows: | follows: | |||
| 0 1 2 3 | 0 1 2 3 | |||
| skipping to change at page 12, line 27 ¶ | skipping to change at page 12, line 36 ¶ | |||
| + + | + + | |||
| | | | | | | |||
| + Registered Address + | + Registered Address + | |||
| | | | | | | |||
| + + | + + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: Duplicate Address Messages Format | Figure 2: 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 non- | MUST be set to 1 with this specification. An non- | |||
| null value of the ICMP Code indicates support for | null value of the ICMP Code indicates support for | |||
| this specification. | 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 as defined in Section 4.1. This | TID in the EARO as defined in Section 4.1. This | |||
| field MUST be ignored if the ICMP Code is null. | field MUST be ignored if the ICMP Code is null. | |||
| Registration Ownership Verifier (ROVR): The size of the ROVR is | Registration Ownership Verifier (ROVR): The size of the ROVR is | |||
| computed from the overall size of the IPv6 packet. | computed from the overall size of the IPv6 packet. | |||
| It MUST be 64bits long when operating in backward- | This field has the same definition and processing as | |||
| compatible mode. This field has the same definition | the ROVR in the EARO option as defined in | |||
| and processing as the ROVR in the EARO option as | Section 4.1. | |||
| defined in Section 4.1. | ||||
| 4.3. New 6LoWPAN Capability Bits in the Capability Indication Option | 4.3. New 6LoWPAN Capability Bits in the Capability Indication Option | |||
| This specification defines 5 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. | |||
| This specification introduces the "E" flag to indicate that extended | The new "E" flag indicates that EARO can be used in a registration. | |||
| ARO can be used in a registration. A 6LR that supports this | A 6LR that supports this specification MUST set the "E" flag. | |||
| specification MUST set the "E" flag. | ||||
| A similar flag "D" indicates the support of Extended Duplicate | A similar "D" flag indicates the support of EDA Messages by the 6LBR; | |||
| Address Messages by the 6LBR; A 6LBR that supports this specification | A 6LBR that supports this specification MUST set the "D" flag. The | |||
| MUST set the "D" flag. The "D" flag is learned from advertisements | "D" flag is learned from advertisements by a 6LBR, and is propagated | |||
| by a 6LBR, and is propagated down a graph of 6LRs as a node acting as | down a graph of 6LRs as a node acting as 6LN registers to a 6LR | |||
| 6LN registers to a 6LR (which could be the 6LBR), and in turn becomes | (which could be the 6LBR), and in turn becomes a 6LR to which other | |||
| a 6LR to which other 6LNs will register. | 6LNs will register. | |||
| The new "L", "B", and "P" flags, indicate whether a router is capable | 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 | of acting as 6LR, 6LBR, and 6BBR, respectively. These flags are not | |||
| mutually exclusive and a node MUST set all the flags that are | mutually exclusive and a node MUST set all the flags that are | |||
| relevant to it. | 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 |D|L|B|P|E|G| | | Type | Length = 1 | Reserved |D|L|B|P|E|G| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved | | | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: New capability Bits L, B, P, E in the 6CIO | Figure 3: New capability Bits L, B, P, E in the 6CIO | |||
| Option Fields | Option Fields: | |||
| Type: 36 | Type: 36 | |||
| L: Node is a 6LR. | L: Node is a 6LR. | |||
| B: Node is a 6LBR. | B: Node is a 6LBR. | |||
| P: Node is a 6BBR. | P: Node is a 6BBR. | |||
| E: Node supports registrations based on EARO. | E: Node supports registrations based on EARO. | |||
| D: 6LBR supports EDA messages. | D: 6LBR supports EDA messages. | |||
| 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. | ||||
| 5. Updating RFC 6775 | 5. Updating RFC 6775 | |||
| The Extended Address Registration Option (EARO) (see Section 4.1) | The Extended Address Registration Option (EARO) (see Section 4.1) | |||
| replaces the ARO used within Neighbor Discovery NS and NA messages | replaces the ARO used within Neighbor Discovery NS and NA messages | |||
| between a 6LN and its 6LR. Similarly, the EDA messages, EDAR and | between a 6LN and its 6LR. Similarly, the EDA messages, EDAR and | |||
| EDAC, replace the DAR and DAC messages so as to transport the new | EDAC, replace the DAR and DAC messages so as to transport the new | |||
| information between 6LRs and 6LBRs across an LLN mesh such as a | information between 6LRs and 6LBRs across an LLN mesh such as a | |||
| 6TiSCH network. | 6TiSCH network. | |||
| The extensions to the ARO option are used in the Duplicate Address | The extensions to the ARO option are used in the Duplicate Address | |||
| skipping to change at page 15, line 33 ¶ | skipping to change at page 15, line 39 ¶ | |||
| o The EUI-64 field in the ARO Option is renamed Registration | o The EUI-64 field in the ARO Option is renamed Registration | |||
| Ownership Verifier (ROVR) and is not required to be derived from a | Ownership Verifier (ROVR) and is not required to be derived from a | |||
| MAC address (see Section 5.3). | MAC address (see Section 5.3). | |||
| o The option Length MAY be different than 2 and take a value between | o The option Length MAY be different than 2 and take a value between | |||
| 3 and 5, in which case the EARO is not backward compatible with an | 3 and 5, in which case the EARO is not backward compatible with an | |||
| ARO. The increase of size corresponds to a larger ROVR field, so | ARO. The increase of size corresponds to a larger ROVR field, so | |||
| the size of the ROVR is inferred from the option Length. | the size of the ROVR is inferred from the option Length. | |||
| o A new Opaque field is introduced to carry opaque information in | ||||
| case the registration is relayed to another process, e.g.; | ||||
| injected in a routing protocol. A new "I" field provides an | ||||
| abstract type for the opaque information, and from which the 6LN | ||||
| derives to which other process the opaque is expected to be | ||||
| passed. A value of Zero for I indicates an abstract topological | ||||
| information to be passed to a routing process if the registration | ||||
| is redistributed. In that case, a value of Zero for the Opaque | ||||
| field is backward-compatible with the reserved fields that are | ||||
| overloaded, and the meaning is to use the default topology. | ||||
| o This document specifies a new flag in the EARO, the 'R' flag. If | o This document specifies a new flag in the EARO, the 'R' flag. If | |||
| the 'R' flag is set, the Registering Node expects that the 6LR | the 'R' flag is set, the Registering Node expects that the 6LR | |||
| ensures reachability for the Registered Address, e.g., by means of | ensures reachability for the Registered Address, e.g., by means of | |||
| routing or proxying ND. Conversely, when it is not set, the 'R' | routing or proxying ND. Conversely, when it is not set, the 'R' | |||
| flag indicates that the Registering Node is a router, which for | flag indicates that the Registering Node is a router, which for | |||
| instance participates to a Route-Over routing protocol such as RPL | instance participates to a Route-Over routing protocol such as RPL | |||
| [RFC6550] and that it will take care of injecting its Address over | [RFC6550] and that it will take care of injecting its Address over | |||
| the routing protocol by itself. A 6LN that acts only as a host, | the routing protocol by itself. A 6LN that acts only as a host, | |||
| when registering, MUST set the 'R' flag to indicate that it is not | when registering, MUST set the 'R' flag to indicate that it is not | |||
| a router and that it will not handle its own reachability. A 6LR | a router and that it will not handle its own reachability. A 6LR | |||
| skipping to change at page 19, line 26 ¶ | skipping to change at page 19, line 41 ¶ | |||
| presented in Section 4.2. | presented in Section 4.2. | |||
| As with the EARO, the Extended Duplicate Address messages are | As with the EARO, the Extended Duplicate Address messages are | |||
| backward compatible with the RFC6775-only versions as long as the | backward compatible with the RFC6775-only versions as long as the | |||
| ROVR field is 64 bits long. Remarks concerning backwards | ROVR field is 64 bits long. Remarks concerning backwards | |||
| compatibility for the protocol between the 6LN and the 6LR apply | compatibility for the protocol between the 6LN and the 6LR apply | |||
| similarly between a 6LR and a 6LBR. | similarly between a 6LR and a 6LBR. | |||
| 5.5. Registering the Target Address | 5.5. Registering the Target Address | |||
| An NS message with an EARO is a registration if and only if it also | ||||
| carries an SLLA Option [RFC6775]. The EARO is also used in NS and NA | ||||
| messages between Backbone Routers [I-D.ietf-6lo-backbone-router] over | ||||
| the Backbone Link to sort out the distributed registration state; in | ||||
| that case, it does not carry the SLLA Option and is not confused with | ||||
| a registration. | ||||
| 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 an | operation on behalf of a Registered Node that is reachable over an | |||
| LLN mesh. In that case, if the Registered Node is reachable from the | LLN mesh. In that case, if the Registered Node is reachable from the | |||
| 6BBR over a Mesh-Under mesh, the Registering Node indicates the MAC | 6BBR over a Mesh-Under mesh, the Registering Node indicates the MAC | |||
| 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 field. With this convention, a TLLA | |||
| indicates the link-layer address of the 6LN that owns the address. | option indicates the link-layer address of the 6LN that owns the | |||
| address. | ||||
| If Registering Node expects packets for the 6LN, e.g., a 6LBR also | If Registering Node expects packets for the 6LN, e.g., a 6LBR also | |||
| acting as RPL Root, then it MUST place its own Link Layer Address in | acting as RPL Root, then it MUST place its own Link Layer Address in | |||
| the SLLA Option that MUST always be placed in a registration NS(EARO) | the SLLA Option that MUST always be placed in a registration NS(EARO) | |||
| message. This maintains compatibility with RFC6775-only 6LoWPAN ND | message. This maintains compatibility with RFC6775-only 6LoWPAN ND | |||
| [RFC6775]. | [RFC6775]. | |||
| 5.6. Link-Local Addresses and Registration | 5.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 | |||
| skipping to change at page 20, line 30 ¶ | skipping to change at page 21, line 4 ¶ | |||
| 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. A node MUST register a Link-Local | they are reachable over one hop. A node MUST register a Link-Local | |||
| Address to a 6LR in order to obtain reachability from that 6LR beyond | Address to a 6LR in order to obtain reachability from that 6LR beyond | |||
| the current exchange, and in particular to use the Link-Local Address | the current exchange, and in particular to use the Link-Local Address | |||
| as source address to register other addresses, e.g., global | as source 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 not a duplicate. | 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 exchange of EDA messages between the 6LR and a 6LBR, which | |||
| exchange of EDA messages, does not need to take place for Link-Local | ensures that an address is unique across the domain covered by the | |||
| Addresses. | 6LBR, does not need to take place for Link-Local Addresses. | |||
| When registering to a 6LR that conforms to this specification (see | When registering to a 6LR that conforms to this specification, a 6LN | |||
| Section 6.2, a node MUST use a Link-Local Address as the source | MUST use a Link-Local Address as the source address of the | |||
| address of the registration, whatever the type of IPv6 address that | registration, whatever the type of IPv6 address that is being | |||
| is being registered. That Link-Local Address MUST be either an | registered. That Link-Local Address MUST be either an address that | |||
| address that is already registered to the 6LR, or the address that is | is already registered to the 6LR, or the address that is being | |||
| being registered. | registered. | |||
| A typical flow when a 6LN starts up is that it sends a multicast RS | ||||
| and receives one or more unicast RA messages. If the 6LR can process | ||||
| Extended ARO, then it places a 6CIO in its RA message back with the | ||||
| "E" Flag set as required in Section 6.1. | ||||
| 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 EUI-64 address. | globally unique, e.g., derived from a globally unique EUI-64 address. | |||
| A 6LR that supports this specification replies with an NA(EARO), | For such an address, DAD is not required (see [RFC6775]) and using | |||
| setting the appropriate status. | the SLLA Option in the NS is actually more consistent with existing | |||
| ND specifications such as the "Optimistic Duplicate Address Detection | ||||
| (ODAD) for IPv6" [RFC4429]. The 6LN MAY then use that address to | ||||
| register one or more other addresses. | ||||
| Since there is no exchange of EDA messages for Link-Local Addresses, | A 6LR that supports this specification replies with an NA(EARO), | |||
| the 6LR may answer immediately to the registration of a Link-Local | setting the appropriate status. Since there is no exchange of EDA | |||
| Address, based solely on its existing state and the Source Link-Layer | messages for Link-Local Addresses, the 6LR may answer immediately to | |||
| Option that is placed in the NS(EARO) message as required in | the registration of a Link-Local Address, based solely on its | |||
| [RFC6775]. | existing state and the Source Link-Layer Option that is placed in the | |||
| NS(EARO) message as required in [RFC6775]. | ||||
| A node needs to register its IPv6 Global Unicast Addresses (GUAs) to | A node needs to register its IPv6 Global Unicast Addresses (GUAs) to | |||
| a 6LR in order to establish global reachability for these addresses | a 6LR in order to establish global reachability for these addresses | |||
| via that 6LR. When registering with an updated 6LR, a Registering | via that 6LR. When registering with an updated 6LR, a Registering | |||
| Node does not use a GUA as Source Address, in contrast to a node that | Node does not use a GUA as Source Address, in contrast to a node that | |||
| complies to [RFC6775]. For non-Link-Local Addresses, the exchange of | complies to [RFC6775]. For non-Link-Local Addresses, the exchange of | |||
| EDA messages MUST conform to [RFC6775], but the extended formats | EDA messages MUST conform to [RFC6775], but the extended formats | |||
| described in this specification for the DAR and the DAC are used to | described in this specification for the DAR and the DAC are used to | |||
| relay the extended information in the case of an EARO. | relay the extended information in the case of an EARO. | |||
| skipping to change at page 23, line 39 ¶ | skipping to change at page 24, line 27 ¶ | |||
| introduces the 6LoWPAN Capability Indication Option (6CIO) to | introduces the 6LoWPAN Capability Indication Option (6CIO) to | |||
| indicate a node's capabilities to its peers. The 6CIO MUST be | indicate a node's capabilities to its peers. The 6CIO MUST be | |||
| present in both Router Solicitation (RS) and Router Advertisement | present in both Router Solicitation (RS) and Router Advertisement | |||
| (RA) messages, unless the information therein was already shared. | (RA) messages, unless the information therein was already shared. | |||
| This can have happened in recent exchanges. The information can also | This can have happened in recent exchanges. The information can also | |||
| be implicit, or pre-configured in all nodes in a network. In any | be implicit, or pre-configured in all nodes in a network. In any | |||
| case, a 6CIO MUST be placed in an RA message that is sent in response | case, a 6CIO MUST be placed in an RA message that is sent in response | |||
| to an RS with a 6CIO. | to an RS with a 6CIO. | |||
| Section 4.3 defines a new flag for the 6CIO to signal support for | Section 4.3 defines a new flag for the 6CIO to signal support for | |||
| EARO by the issuer of the message and Section 6.2 specifies how the | EARO by the issuer of the message. New flags are also added to the | |||
| flag is to be used. New flags are also added to the 6CIO to signal | 6CIO to signal the sender's capability to act as a 6LR, 6LBR, and | |||
| the sender's capability to act as a 6LR, 6LBR, and 6BBR (see | 6BBR (see Section 4.3). | |||
| Section 4.3). | ||||
| Section 4.3 also defines a new flag that indicates the support of EDA | Section 4.3 also defines a new flag that indicates the support of EDA | |||
| messages by the 6LBR. This flag is valid in RA messages but not in | messages by the 6LBR. This flag is valid in RA messages but not in | |||
| RS messages. More information on the 6LBR is found in a separate | RS messages. More information on the 6LBR is found in a separate | |||
| Authoritative Border Router Option (ABRO). The ABRO is placed in RA | Authoritative Border Router Option (ABRO). The ABRO is placed in RA | |||
| messages as prescribed by [RFC6775]; in particular, it MUST be placed | messages as prescribed by [RFC6775]; in particular, it MUST be placed | |||
| in an RA message that is sent in response to an RS with a 6CIO | in an RA message that is sent in response to an RS with a 6CIO | |||
| indicating the capability to act as a 6LR, since the RA propagates | indicating the capability to act as a 6LR, since the RA propagates | |||
| information between routers. | information between routers. | |||
| 6.2. First Exchanges | 6.2. RFC6775-only 6LoWPAN Node | |||
| A typical flow when a node starts up is that it sends a multicast RS | ||||
| and receives one or more unicast RA messages. If the 6LR can process | ||||
| Extended ARO, then it places a 6CIO in its RA message back with the | ||||
| "E" Flag set as required in Section 6.1. | ||||
| In order to ensure that it registers a first address successfully a | ||||
| 6LN MAY register a Link Local Address that is derived from an EUI-64, | ||||
| placing the same address in the Source and Target Address fields of | ||||
| the NS(EARO) message. For such an address, DAD is not required (see | ||||
| [RFC6775]) and using the SLLA Option in the NS is actually more | ||||
| consistent with existing ND specifications such as the "Optimistic | ||||
| Duplicate Address Detection (ODAD) for IPv6" [RFC4429]. The 6LN MAY | ||||
| then use that address to register one or more other addresses. | ||||
| 6.3. RFC6775-only 6LoWPAN Node | ||||
| An RFC6775-only 6LN will use the Registered Address as the source | An RFC6775-only 6LN will use the Registered Address as the source | |||
| address of the NS message and will not use an EARO. An updated 6LR | address of the NS message and will not use an EARO. An updated 6LR | |||
| MUST accept that registration if it is valid per [RFC6775], and it | MUST accept that registration if it is valid per [RFC6775], and it | |||
| MUST manage the binding cache accordingly. The updated 6LR MUST then | MUST manage the binding cache accordingly. The updated 6LR MUST then | |||
| use the RFC6775-only EDA messages as specified in [RFC6775] to | use the RFC6775-only EDA messages as specified in [RFC6775] to | |||
| indicate to the 6LBR that the TID is not present in the messages. | indicate to the 6LBR that the TID is not present in the messages. | |||
| The main difference from [RFC6775] is that the exchange of EDA | The main difference from [RFC6775] is that the exchange of EDA | |||
| messages for the purpose of DAD is avoided for Link-Local Addresses. | messages for the purpose of DAD is avoided for Link-Local Addresses. | |||
| In any case, the 6LR MUST use an EARO in the reply, and can use any | In any case, the 6LR MUST use an EARO in the reply, and can use any | |||
| of the Status codes defined in this specification. | of the Status codes defined in this specification. | |||
| 6.4. RFC6775-only 6LoWPAN Router | 6.3. RFC6775-only 6LoWPAN Router | |||
| An updated 6LN discovers the capabilities of the 6LR in the 6CIO in | An updated 6LN discovers the capabilities of the 6LR in the 6CIO in | |||
| RA messages from that 6LR; if the 6CIO was not present in the RA, | RA messages from that 6LR; if the 6CIO was not present in the RA, | |||
| then the 6LR is assumed to be a RFC6775-only 6LoWPAN Router. | then the 6LR is assumed to be a RFC6775-only 6LoWPAN Router. | |||
| An updated 6LN MUST use an EARO in the request regardless of the type | An updated 6LN MUST use an EARO in the request regardless of the type | |||
| of 6LR, RFC6775-only or updated, which implies that the 'T' flag is | of 6LR, RFC6775-only or updated, which implies that the 'T' flag is | |||
| set. It MUST use a ROVR of 64 bits if the 6LR is an RFC6775-only | set. It MUST use a ROVR of 64 bits if the 6LR is an RFC6775-only | |||
| 6LoWPAN Router. | 6LoWPAN Router. | |||
| skipping to change at page 25, line 8 ¶ | skipping to change at page 25, line 27 ¶ | |||
| the RFC6775-only 6LR will send an RFC6775-only DAR message, which | the RFC6775-only 6LR will send an RFC6775-only DAR message, which | |||
| cannot be compared with an updated one for freshness. Allowing | cannot be compared with an updated one for freshness. Allowing | |||
| RFC6775-only DAR messages to replace a state established by the | RFC6775-only DAR messages to replace a state established by the | |||
| updated protocol in the 6LBR would be an attack vector and that | 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. But if RFC6775-only and updated 6LRs | |||
| coexist temporarily in a network, then it makes sense for an | coexist temporarily in a network, then it makes sense for an | |||
| administrator to install a policy that allows this, and the | administrator to install a policy that allows this, and the | |||
| capability to install such a policy should be configurable in a 6LBR | capability to install such a policy should be configurable in a 6LBR | |||
| though it is out of scope for this document. | though it is out of scope for this document. | |||
| 6.5. RFC6775-only 6LoWPAN Border Router | 6.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, | |||
| an updated 6LBR MUST always use the EDA messages. | an updated 6LBR MUST always use the EDA messages. | |||
| 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, as long as the ROVR is 64 | message as if it were an RFC6775-only DAR, as long as the ROVR is 64 | |||
| bits long. An updated 6LR discovers the capabilities of the 6LBR in | 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 | 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 | any RA, then the 6LBR si assumed to be a RFC6775-only 6LoWPAN Border | |||
| Router. | Router. | |||
| If the 6LBR is RFC6775-only, and the ROVR in the NS(EARO) was more | 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 | 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 | leftmost bits and place the result in the EDAR message to maintain | |||
| compatibility. This way, the support of DAD is preserved. | compatibility. This way, the support of DAD is preserved. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| This specification extends [RFC6775], and the security section of | This specification extends [RFC6775], and the security section of | |||
| that document 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 | expected that the link layer is sufficiently protected to prevent | |||
| 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. | |||
| skipping to change at page 31, line 11 ¶ | skipping to change at page 31, line 11 ¶ | |||
| +-----------------+----------------------+-----------+ | +-----------------+----------------------+-----------+ | |||
| Table 6: New 6LoWPAN capability Bits | Table 6: New 6LoWPAN capability Bits | |||
| 10. Acknowledgments | 10. 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, Dave Thaler, Adrian Farrel, Peter Yee, | Schoenwaelder, Chris Lonvick, Dave Thaler, Adrian Farrel, Peter Yee, | |||
| Warren Kumari, Benjamin Kaduk, Mirja Kuhlewind, and Lorenzo Colitti | Warren Kumari, Benjamin Kaduk, Mirja Kuhlewind, Ben Campbell, Eric | |||
| for their various contributions and reviews. Also, many thanks to | Rescorla, and Lorenzo Colitti for their various contributions and | |||
| Thomas Watteyne for the world first implementation of a 6LN that was | reviews. Also, many thanks to Thomas Watteyne for the world first | |||
| instrumental to the early tests of the 6LR, 6LBR and Backbone Router. | implementation of a 6LN that was instrumental to the early tests of | |||
| the 6LR, 6LBR and Backbone Router. | ||||
| 11. References | 11. References | |||
| 11.1. Normative References | 11.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>. | |||
| End of changes. 46 change blocks. | ||||
| 202 lines changed or deleted | 214 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/ | ||||