draft-ietf-6lo-rfc6775-update-01.txt | draft-ietf-6lo-rfc6775-update-02.txt | |||
---|---|---|---|---|
6lo P. Thubert, Ed. | 6lo P. Thubert, Ed. | |||
Internet-Draft cisco | Internet-Draft cisco | |||
Updates: 6775 (if approved) E. Nordmark | Updates: 6775, 7400 (if approved) E. Nordmark | |||
Intended status: Standards Track Arista Networks | Intended status: Standards Track | |||
Expires: July 14, 2017 S. Chakrabarti | Expires: October 9, 2017 S. Chakrabarti | |||
January 10, 2017 | April 7, 2017 | |||
An Update to 6LoWPAN ND | An Update to 6LoWPAN ND | |||
draft-ietf-6lo-rfc6775-update-01 | draft-ietf-6lo-rfc6775-update-02 | |||
Abstract | Abstract | |||
This specification updates 6LoWPAN Neighbor Discovery (RFC6775), to | This specification updates 6LoWPAN Neighbor Discovery (RFC 6775), 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, and provide | simplify the registration operation in 6LoWPAN routers, and provide | |||
enhancements to the registration capabilities, in particular for the | enhancements to the registration capabilities, in particular for the | |||
registration to a backbone router for proxy ND operations. | registration to a Backbone Router for proxy ND operations. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 July 14, 2017. | This Internet-Draft will expire on October 9, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Considerations On Registration Rejection . . . . . . . . . . 3 | |||
3. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Transaction ID . . . . . . . . . . . . . . . . . . . . . 4 | 4. Updating RFC 7400 . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.2. Owner Unique ID . . . . . . . . . . . . . . . . . . . . . 5 | 5. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.3. Extended Address Registration Option . . . . . . . . . . 5 | 5.1. Transaction ID . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.4. Registering the Target Address . . . . . . . . . . . . . 6 | 5.2. Owner Unique ID . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.5. Link-local Addresses and Registration . . . . . . . . . . 6 | 5.3. Extended Address Registration Option . . . . . . . . . . 7 | |||
4. Applicability and Requirements Served . . . . . . . . . . . . 8 | 5.4. Registering the Target Address . . . . . . . . . . . . . 7 | |||
5. The Enhanced Address Registration Option (EARO) . . . . . . . 8 | 5.5. Link-local Addresses and Registration . . . . . . . . . . 8 | |||
6. Backward Compatibility . . . . . . . . . . . . . . . . . . . 12 | 6. Updated ND Options . . . . . . . . . . . . . . . . . . . . . 9 | |||
6.1. Legacy 6LoWPAN Node . . . . . . . . . . . . . . . . . . . 12 | 6.1. New 6LoWPAN capability Bits in the Capability Indication | |||
6.2. Legacy 6LoWPAN Router . . . . . . . . . . . . . . . . . . 12 | Option . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
6.3. Legacy 6LoWPAN Border Router . . . . . . . . . . . . . . 13 | 6.2. The Enhanced Address Registration Option (EARO) . . . . . 10 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 7. Backward Compatibility . . . . . . . . . . . . . . . . . . . 13 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 7.1. Discovering the capabilities of an ND peer . . . . . . . 13 | |||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | 7.1.1. Using the E Flag in the CIO . . . . . . . . . . . . . 13 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 7.1.2. Using the T Flag in the EARO . . . . . . . . . . . . 13 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 14 | 7.2. Legacy 6LoWPAN Node . . . . . . . . . . . . . . . . . . . 14 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 15 | 7.3. Legacy 6LoWPAN Router . . . . . . . . . . . . . . . . . . 14 | |||
10.3. External Informative References . . . . . . . . . . . . 17 | 7.4. Legacy 6LoWPAN Border Router . . . . . . . . . . . . . . 14 | |||
Appendix A. Requirements . . . . . . . . . . . . . . . . . . . . 18 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | |||
A.1. Requirements Related to Mobility . . . . . . . . . . . . 18 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 | |||
A.2. Requirements Related to Routing Protocols . . . . . . . . 18 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
A.3. Requirements Related to the Variety of Low-Power Link | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
types . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 17 | |||
A.4. Requirements Related to Proxy Operations . . . . . . . . 20 | 11.2. Informative References . . . . . . . . . . . . . . . . . 18 | |||
A.5. Requirements Related to Security . . . . . . . . . . . . 20 | 11.3. External Informative References . . . . . . . . . . . . 20 | |||
A.6. Requirements Related to Scalability . . . . . . . . . . . 22 | Appendix A. Applicability and Requirements Served . . . . . . . 20 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | Appendix B. Requirements . . . . . . . . . . . . . . . . . . . . 21 | |||
B.1. Requirements Related to Mobility . . . . . . . . . . . . 22 | ||||
B.2. Requirements Related to Routing Protocols . . . . . . . . 22 | ||||
B.3. Requirements Related to the Variety of Low-Power Link | ||||
types . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | ||||
B.4. Requirements Related to Proxy Operations . . . . . . . . 24 | ||||
B.5. Requirements Related to Security . . . . . . . . . . . . 24 | ||||
B.6. Requirements Related to Scalability . . . . . . . . . . . 25 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
1. Introduction | 1. Introduction | |||
IPv6 Neighbor Discovery (ND) Optimization for IPv6 over Low-Power | RFC 6775, the "Neighbor Discovery Optimization for IPv6 over Low- | |||
Wireless Personal Area Networks(6LoWPANs) [RFC6775] introduced a | Power Wireless Personal Area Networks (6LoWPANs)" [RFC6775] | |||
proactive registration mechanism to IPv6 ND services that is well | introduced a proactive registration mechanism to IPv6 Neighbor | |||
suited to nodes belonging to a LLN. | Discovery (ND) services that is well suited to nodes belonging to a | |||
Low Power Lossy Network (LLN). | ||||
The scope of this draft is an IPv6 Low Power Lossy Network (LLN), | The scope of this draft is an IPv6 LLN, which can be a simple star or | |||
which can be a simple star or a more complex mesh topology. The LLN | a more complex mesh topology. The LLN may be anchored at an IPv6 | |||
may be anchored at an IPv6 Backbone Router (6BBR). The Backbone | Backbone Router (6BBR) [I-D.ietf-6lo-backbone-router]. The 6BBRs | |||
Routers interconnect the LLNs over a Backbone Link and emulate that | interconnect the LLNs over a Backbone Link and emulate that the LLN | |||
the LLN nodes are present on the Backbone using proxy-ND operations. | nodes are present on the Backbone using proxy-ND operations. | |||
This specification modifies and extends the behaviour and protocol | This specification modifies and extends the behaviour and protocol | |||
elements of [RFC6775] to enable additional capabilities, in | elements of RFC 6775 [RFC6775] to enable additional capabilities, in | |||
particular the registration to a 6BBR for proxy ND operations | particular the registration to a 6BBR for proxy ND operations. | |||
[I-D.ietf-6lo-backbone-router]. | ||||
2. Terminology | 2. Considerations On Registration Rejection | |||
The purpose of the Address Registration Option (ARO) RFC 6775 | ||||
[RFC6775] and of the Extended ARO (EARO) that is introduced in this | ||||
document is to facilitate duplicate address detection (DAD) for hosts | ||||
and pre-populate Neighbor Cache Entries (NCE) [RFC4861] in the | ||||
routers to reduce the need for sending multicast neighbor | ||||
solicitations and also to be able to support IPv6 Backbone Routers. | ||||
In some cases the address registration can fail or be useless for | ||||
reasons other than a duplicate address. Examples are the router | ||||
having run out of space, a registration bearing a stale sequence | ||||
number (e.g. denoting a movement of the host after this registration | ||||
was placed), a host misbehaving and attempting to register an invalid | ||||
address such as the unspecified address [RFC4291], or the host using | ||||
an address which is not topologically correct on that link. In such | ||||
cases the host will receive an error to help diagnose the issue and | ||||
may retry, possibly with a different address, and possibly | ||||
registering to a different 6LR, depending on the returned error. | ||||
However, the ability to return errors to address registrations MUST | ||||
NOT be used to restrict the ability of hosts to form and use | ||||
addresses as recommended in "Host Address Availability | ||||
Recommendations" [RFC7934]. In particular, this is needed for | ||||
enhanced privacy, which implies that each host will register a | ||||
multiplicity of address as part mechanisms like "Privacy Extensions | ||||
for Stateless Address Autoconfiguration (SLAAC) in IPv6" [RFC4941]. | ||||
This implies that a 6LR or 6LBR which is intended to support N hosts | ||||
MUST have space to register at least on the order of 10N IPv6 | ||||
addresses. | ||||
3. Terminology | ||||
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", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
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 "Neighbor Discovery for IP version 6" | that are discussed in | |||
[RFC4861], "IPv6 Stateless Address Autoconfiguration" [RFC4862], | ||||
"IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
Overview, Assumptions, Problem Statement, and Goals" [RFC4919], | ||||
Neighbor Discovery Optimization for Low-power and Lossy Networks | ||||
[RFC6775] and "Multi-link Subnet Support in IPv6" | ||||
[I-D.ietf-ipv6-multilink-subnets]. | ||||
Additionally, this document uses terminology from "Terms Used in | "Neighbor Discovery for IP version 6" [RFC4861], | |||
Routing for Low-Power and Lossy Networks" [RFC7102] and | ||||
[I-D.ietf-6tisch-terminology], as well as this additional | "IPv6 Stateless Address Autoconfiguration" [RFC4862], | |||
terminology: | ||||
"IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
Overview, Assumptions, Problem Statement, and Goals" [RFC4919], | ||||
"Neighbor Discovery Optimization for Low-power and Lossy Networks" | ||||
[RFC6775] and | ||||
"Multi-link Subnet Support in IPv6" | ||||
[I-D.ietf-ipv6-multilink-subnets]. | ||||
Additionally, this document uses terminology from | ||||
"Terms Used in Routing for Low-Power and Lossy Networks" [RFC7102] | ||||
and | ||||
the "6TiSCH Terminology" [I-D.ietf-6tisch-terminology], | ||||
as well as this additional terminology: | ||||
Backbone This is an IPv6 transit link that interconnects 2 or more | Backbone This is an IPv6 transit link that interconnects 2 or more | |||
Backbone Routers. It is expected to be deployed as a high | Backbone Routers. It is expected to be deployed as a high | |||
speed backbone in order to federate a potentially large set of | speed backbone in order to federate a potentially large set of | |||
LLNS. Also referred to as a LLN backbone or Backbone network. | LLNS. Also referred to as a LLN backbone or Backbone network. | |||
Backbone Router An IPv6 router that federates the LLN using a | Backbone Router An IPv6 router that federates the LLN using a | |||
Backbone link as a backbone. A 6BBR acts as a 6LoWPAN Border | Backbone link as a backbone. A 6BBR acts as a 6LoWPAN Border | |||
Routers (6LBR) and an Energy Aware Default Router (NEAR). | Routers (6LBR) and an Energy Aware Default Router (NEAR). | |||
Extended LLN This is the aggregation of multiple LLNs as defined in | Extended LLN This is the aggregation of multiple LLNs as defined in | |||
[RFC4919], interconnected by a Backbone Link via Backbone | RFC 4919 [RFC4919], interconnected by a Backbone Link via | |||
Routers, and forming a single IPv6 MultiLink Subnet. | Backbone Routers, and forming a single IPv6 MultiLink Subnet. | |||
Registration The process during which a wireless Node registers its | Registration The process during which a wireless Node registers its | |||
address(es) with the Border Router so the 6BBR can proxy ND for | address(es) with the Border Router so the 6BBR can proxy ND for | |||
it over the backbone. | it over the backbone. | |||
Binding The state in the 6BBR that associates an IP address with a | Binding The state in the 6BBR that associates an IP address with a | |||
MAC address, a port and some other information about the node | MAC address, a port and some other information about the node | |||
that owns the IP address. | that owns the IP address. | |||
Registered Node The node for which the registration is performed, | Registered Node The node for which the registration is performed, | |||
which owns the fields in the EARO option. | which owns the fields in the EARO option. | |||
Registering Node The node that performs the registration to the | Registering Node The node that performs the registration to the | |||
6BBR, either for one of its own addresses, in which case it is | 6BBR, either for one of its own addresses, in which case it is | |||
Registered Node and indicates its own MAC Address as SLLA in | Registered Node and indicates its own MAC Address as Source | |||
the NS(ARO), or on behalf of a Registered Node that is | Link Layer Address (SLLA) in the NS(EARO), or on behalf of a | |||
reachable over a LLN mesh. In the latter case, if the | Registered Node that is reachable over a LLN mesh. In the | |||
Registered Node is reachable from the 6BBR over a Mesh-Under | latter case, if the Registered Node is reachable from the 6BBR | |||
mesh, the Registering Node indicates the MAC Address of the | over a Mesh-Under mesh, the Registering Node indicates the MAC | |||
Registered Node as SLLA in the NS(ARO). Otherwise, it is | Address of the Registered Node as SLLA in the NS(EARO). | |||
expected that the Registered Device is reachable over a Route- | Otherwise, it is expected that the Registered Device is | |||
Over mesh from the Registering Node, in which case the SLLA in | reachable over a Route-Over mesh from the Registering Node, in | |||
the NS(ARO) is that of the Registering Node, which causes it to | which case the SLLA in the NS(ARO) is that of the Registering | |||
attract the packets from the 6BBR to the Registered Node and | Node, which causes it to attract the packets from the 6BBR to | |||
route them over the LLN. | the Registered Node and route them over the LLN. | |||
Registered Address The address owned by the Registered Node node | Registered Address The address owned by the Registered Node node | |||
that is being registered. | that is being registered. | |||
3. Updating RFC 6775 | 4. Updating RFC 7400 | |||
The support of this specification is signaled in Router Advertisement | RFC 7400 [RFC7400] introduces the 6LoWPAN Capability Indication | |||
(RA) messages by 6LoWPAN Router (6LR) (how: tbd). Support for this | Option (6CIO) to indicate a node's capabilities to its peers. This | |||
specification can also be inferred from the update of the ARO option | specification extends the format defined in RFC 7400 to signal the | |||
in the ND exchanges. | support for EARO, as well as the capability to act as a 6LR, 6LBR and | |||
6BBR. | ||||
With RFC 7400 [RFC7400], the 6CIO is typically sent Router | ||||
Solicitation (RS) messages. When used to signal the capabilities | ||||
above per this specification, the 6CIO is typically present Router | ||||
Advertisement (RA) messages but can also be present in RS, Neighbor | ||||
Solicitation (NS) and Neighbor Advertisement (NA) messages. | ||||
5. Updating RFC 6775 | ||||
This specification extends the Address Registration Option (ARO) | ||||
defined in RFC 6775 [RFC6775]; in particular a "T" flag is added that | ||||
must be set is NS messages when this specification is used, and | ||||
echo'ed in NA messages to confirm that the protocol effectively | ||||
supported. Support for this specification can thus be inferred from | ||||
the presence of the Extended ARO ("T" flag set) in ND messages. | ||||
A Registering Node that supports this specification will favor | A Registering Node that supports this specification will favor | |||
registering to a 6LR that indicates support for this specification | registering to a 6LR that indicates support for this specification | |||
over that of [RFC6775]. | over that of RFC 6775 [RFC6775]. | |||
3.1. Transaction ID | 5.1. Transaction ID | |||
The specification expects that the Registered Node can provide a | The specification expects that the Registered Node can provide a | |||
sequence number called Transaction ID (TID) that is incremented with | sequence number called Transaction ID (TID) that is incremented with | |||
each re-registration. The TID essentially obeys the same rules as | each re-registration. The TID essentially obeys the same rules as | |||
the Path Sequence field in the Transit Information Option (TIO) found | the Path Sequence field in the Transit Information Option (TIO) found | |||
in RPL's Destination Advertisement Object (DAO). This way, the LLN | in RPL's Destination Advertisement Object (DAO). This way, the LLN | |||
node can use the same counter for ND and RPL, and a 6LBR acting as | node can use the same counter for ND and RPL, and a 6LBR acting as | |||
RPL root may easily maintain the registration on behalf of a RPL node | RPL root may easily maintain the registration on behalf of a RPL node | |||
deep inside the mesh by simply using the RPL TIO Path Sequence as TID | deep inside the mesh by simply using the RPL TIO Path Sequence as TID | |||
for EARO. | for EARO. | |||
When a Registered Node is registered to multiple BBRs in parallel, it | When a Registered Node is registered to multiple BBRs in parallel, it | |||
is expected that the same TID is used, to enable the 6BBRs to | is expected that the same TID is used, to enable the 6BBRs to | |||
correlate the registrations as being a single one, and differentiate | correlate the registrations as being a single one, and differentiate | |||
that situation from a movement. | that situation from a movement. | |||
If the TIDs are different, the resolution inherited from RPL sorts | If the TIDs are different, the resolution inherited from RPL sorts | |||
out the most recent registration and other ones are removed. The | out the most recent registration and other ones are removed. The | |||
operation for computing and comparing the Path Sequence is detailed | operation for computing and comparing the Path Sequence is detailed | |||
in section 7 of [RFC6550] and applies to the TID in the exact same | in section 7 of RFC 6550 [RFC6550] and applies to the TID in the | |||
fashion. | exact same fashion. | |||
3.2. Owner Unique ID | 5.2. Owner Unique ID | |||
The Owner Unique ID (OUID) enables to differentiate a real duplicate | The Owner Unique ID (OUID) enables to differentiate a real duplicate | |||
address registration from a double registration or a movement. An ND | address registration from a double registration or a movement. An ND | |||
message from the 6BBR over the backbone that is proxied on behalf of | message from the 6BBR over the backbone that is proxied on behalf of | |||
a Registered Node must carry the most recent EARO option seen for | 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 | that node. A NS/NA with an EARO and a NS/NA without a EARO thus | |||
represent different nodes and if they relate to a same target then | represent different nodes and if they relate to a same target then | |||
they reflect an address duplication. The Owner Unique ID can be as | they reflect an address duplication. The Owner Unique ID can be as | |||
simple as a EUI-64 burn-in address, if duplicate EUI-64 addresses are | simple as a EUI-64 burn-in address, if duplicate EUI-64 addresses are | |||
avoided. | avoided. | |||
Alternatively, the unique ID can be a cryptographic string that can | Alternatively, the unique ID can be a cryptographic string that can | |||
can be used to prove the ownership of the registration as discussed | can be used to prove the ownership of the registration as discussed | |||
in Address Protected Neighbor Discovery for Low-power and Lossy | in "Address Protected Neighbor Discovery for Low-power and Lossy | |||
Networks [I-D.ietf-6lo-ap-nd]. | Networks" [I-D.ietf-6lo-ap-nd]. | |||
In any fashion, it is recommended that the node stores the unique Id | In any fashion, it is recommended that the node stores the unique Id | |||
or the keys used to generate that ID in persistent memory. | or the keys used to generate that ID in persistent memory. | |||
Otherwise, it will be prevented to re-register after a reboot that | Otherwise, it will be prevented to re-register after a reboot that | |||
would cause a loss of memory until the Backbone Router times out the | would cause a loss of memory until the Backbone Router times out the | |||
registration. | registration. | |||
3.3. Extended Address Registration Option | 5.3. Extended Address Registration Option | |||
This specification extends the Address Registration Option (ARO) used | This specification extends the ARO option that is used for the | |||
for the process of address registration. The new ARO is referred to | process of address registration. The new ARO is referred to as | |||
as Extended ARO (EARO), and its semantics are modified as follows: | Extended ARO (EARO), and its semantics are modified as follows: | |||
The address that is being registered with a Neighbor Solicitation | The address that is being registered with a Neighbor Solicitation | |||
(NS) with an EARO is now the Target Address, as opposed to the Source | (NS) with an EARO is now the Target Address, as opposed to the Source | |||
Address as specified in [RFC6775]. This change enables a 6LBR to use | Address as specified in RFC 6775 [RFC6775]. This change enables a | |||
an address of his as source to the proxy-registration of an address | 6LBR to use an address of his as source to the proxy-registration of | |||
that belongs to a LLN Node to a 6BBR. This also limits the use of an | an address that belongs to a LLN Node to a 6BBR. This also limits | |||
address as source address before it is registered and the associated | the use of an address as source address before it is registered and | |||
Duplicate Address Detection (DAD) is complete. | the associated Duplicate Address Detection (DAD) is complete. | |||
The Unique ID in the EARO option does no more have to be a MAC | The Unique ID in the EARO option does no more have to be a MAC | |||
address. A new TLV format is introduced and a IANA registry is | address. A new TLV format is introduced and a IANA registry is | |||
created for the type (TBD). This enables in particular the use of a | created for the type (TBD). This enables in particular the use of a | |||
Provable Temporary UID (PT-UID) as opposed to burn-in MAC address, | Provable Temporary UID (PT-UID) as opposed to burn-in MAC address, | |||
the PT-UID providing a trusted anchor by the 6LR and 6LBR to protect | the PT-UID providing a trusted anchor by the 6LR and 6LBR to protect | |||
the state associated to the node. | the state associated to the node. | |||
The specification introduces a Transaction ID (TID) field in the | The specification introduces a Transaction ID (TID) field in the | |||
EARO. The TID MUST be provided by a node that supports this | EARO. The TID MUST be provided by a node that supports this | |||
specification and a new T flag MUST be set to indicate so. The T bit | specification and a new T flag MUST be set to indicate so. The T bit | |||
can be used to determine whether the peer supports this | can be used to determine whether the peer supports this | |||
specification. | specification. | |||
3.4. Registering the Target Address | 5.4. Registering the Target Address | |||
One of the requirements that this specification serves is the | This specification changes the behaviour of the 6LN and the 6LR so | |||
capability by a router such as a RPL root to proxy-register an | that the Registered Address is found in the Target Address field of | |||
address to a 6BBR on behalf of a 6LN, as discussed in Appendix A.4. | the NS and NA messages as opposed to the Source Address. | |||
In order to serve that requirement, this specification changes the | ||||
behaviour 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 | ||||
opposed to the Source Address. | ||||
With this convention, a TLLA option would indicate the link-layer | The reason for this change is to enable proxy-registrations on behalf | |||
address of the 6LN that owns the address, whereas the SLLA Option in | of other nodes in Route-Over meshes, for instance to enable that a | |||
a NS message indicates that of the Registering Node, which can be the | RPL root registers addresses on behalf LLN nodes that are deeper in a | |||
6TiSCH mesh, as discussed in Appendix B.4. In that case, the | ||||
Registering Node MUST indicate its own address as source of the ND | ||||
message and its MAC address in the Source Link-Layer Address Option | ||||
(SLLAO), since it still expects to get the packets and route them | ||||
down the mesh. But the Registered Address belongs to another node, | ||||
the Registered Node, and that address is indicated in the Target | ||||
Address field of the NS message. | ||||
With this convention, a TLLA option 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. | owner device, or a proxy. | |||
Since the Registering Node is the one that has reachability with the | Since the Registering Node is the one that has reachability with the | |||
6LR, and is the one expecting packets for the 6LN, it makes sense to | 6LR, and is the one expecting packets for the 6LN, it makes sense to | |||
maintain compatibility with [RFC6775], and it is REQUIRED that an | maintain compatibility with RFC 6775 [RFC6775], and it is REQUIRED | |||
SLLA Option is always placed in a registration NS(EARO) message. | that an SLLA Option is always placed in a registration NS(EARO) | |||
message. | ||||
3.5. Link-local Addresses and Registration | 5.5. 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 RFC 6775 [RFC6775], this specification only requires that | |||
local address is unique from the perspective of the peering nodes. | a link-local address is unique from the perspective of the peering | |||
This simplifies the Duplicate Address Detection (DAD) for link-local | nodes. This simplifies the Duplicate Address Detection (DAD) for | |||
addresses, and there is no DAR/DAC exchange between the 6LR and a | link-local addresses, and there is no DAR/DAC exchange between the | |||
6LBR for link-local addresses. | 6LR and a 6LBR for link-local addresses. | |||
Additionally, [RFC6775] requires that a 6LoWPAN Node (6LN) uses an | Additionally, RFC 6775 [RFC6775] requires that a 6LoWPAN Node (6LN) | |||
address being registered as the source of the registration message. | uses an address being registered as the source of the registration | |||
This generates complexities in the 6LR to be able to cope with a | message. This generates complexities in the 6LR to be able to cope | |||
potential duplication, in particular for global addresses. To | with a potential duplication, in particular for global addresses. To | |||
simplify this, a 6LN and a 6LR that conform this specification always | simplify this, a 6LN and a 6LR that conform this specification always | |||
use link-local addresses as source and destination addresses for the | use link-local addresses as source and destination addresses for the | |||
registration NS/NA exchange. As a result, the registration is | registration NS/NA exchange. As a result, the registration is | |||
globally faster, and some of the complexity is removed. | globally faster, and some of the complexity is removed. | |||
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 and that at least one of the 2 nodes | |||
acts as a 6LR. A node MUST register a link-local address to a 6LR in | acts as a 6LR. A node MUST register a link-local address to a 6LR in | |||
order to obtain reachability from that 6LR beyond the current | order to obtain reachability from that 6LR beyond the current | |||
exchange, and in particular to use the link-local address as source | exchange, and in particular to use the link-local address as source | |||
address to register other addresses, e.g. global addresses. If there | address to register other addresses, e.g. global addresses. | |||
is no collision with an address previously registered to this 6LR by | ||||
another 6LN, then, from the standpoint of this 6LR, this link-local | If there is no collision with an address previously registered to | |||
address is unique and the registration is acceptable. Conversely, it | this 6LR by another 6LN, then, from the standpoint of this 6LR, this | |||
may possibly happen that two different 6LRs expose a same link-local | link-local address is unique and the registration is acceptable. | |||
address but different link-layer addresses. In that case, a 6LN may | Conversely, it may possibly happen that two different 6LRs expose a | |||
only interact with one of the 6LR so as to avoid confusion in the 6LN | same link-local address but different link-layer addresses. In that | |||
neighbor cache. | case, a 6LN may only interact with one of the 6LR so as to avoid | |||
confusion in the 6LN neighbor cache. | ||||
The DAD process between the 6LR and a 6LoWPAN Border Router (6LBR), | The DAD process between the 6LR and a 6LoWPAN Border Router (6LBR), | |||
which is based on a Duplicate Address Request (DAR) / Duplicate | which is based on a Duplicate Address Request (DAR) / Duplicate | |||
Address Confirmation (DAC) exchange as described in [RFC6775], does | Address Confirmation (DAC) exchange as described in RFC 6775 | |||
not need to take place for link-local addresses. | [RFC6775], does not need to take place for link-local addresses. | |||
It is desired that a 6LR does not need to modify its state associated | It is desired that a 6LR does not need to modify its state associated | |||
to the Source Address of an NS(EARO) message. For that reason, when | to the Source Address of an NS(EARO) message. For that reason, when | |||
possible, it is RECOMMENDED to use an address that is already | possible, it is RECOMMENDED to use an address that is already | |||
registered with a 6LR | registered with a 6LR | |||
When registering to a 6LR that conforms this specification, a node | When registering to a 6LR that conforms 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 already | registered. That link-local Address MUST be either already | |||
skipping to change at page 7, line 46 ¶ | skipping to change at page 9, line 32 ¶ | |||
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 burn-in MAC address. An EARO | globally unique, e.g. derived from a burn-in MAC address. An EARO | |||
option in the response NA indicates that the 6LR supports this | option in the response NA indicates that the 6LR supports this | |||
specification. | specification. | |||
Since there is no DAR/DAC exchange for link-local addresses, the 6LR | Since there is no DAR/DAC exchange for link-local addresses, the 6LR | |||
may answer immediately to the registration of a link-local address, | may answer immediately to the registration of a link-local address, | |||
based solely on its existing state and the Source Link-Layer Option | based solely on its existing state and the Source Link-Layer Option | |||
that MUST be placed in the NS(EARO) message as required in [RFC6775]. | that MUST be placed in the NS(EARO) message as required in RFC 6775 | |||
[RFC6775]. | ||||
A node needs to register its IPv6 Global Unicast IPv6 Addresses (GUA) | A node needs to register its IPv6 Global Unicast IPv6 Addresses (GUA) | |||
to a 6LR in order to obtain a global reachability for these addresses | to a 6LR in order to obtain a global reachability for these addresses | |||
via that 6LR. As opposed to a node that complies to [RFC6775], a | via that 6LR. As opposed to a node that complies to RFC 6775 | |||
Registering Node registering a GUA does not use that GUA as Source | [RFC6775], a Registering Node registering a GUA does not use that GUA | |||
Address for the registration to a 6LR that conforms this | as Source Address for the registration to a 6LR that conforms this | |||
specification. The DAR/DAC exchange MUST take place for non-link- | specification. The DAR/DAC exchange MUST take place for non-link- | |||
local addresses as prescribed by [RFC6775]. | local addresses as prescribed by RFC 6775 [RFC6775]. | |||
4. Applicability and Requirements Served | 6. Updated ND Options | |||
This specification extends 6LoWPAN ND to sequence the registration | This specification does not introduce new options, but it modifies | |||
and serves the requirements expressed Appendix A.1 by enabling the | existing ones and updates the associated behaviours as follow: | |||
mobility of devices from one LLN to the next based on the | ||||
complementary work in [I-D.ietf-6lo-backbone-router]. | ||||
In the context of the the TimeSlotted Channel Hopping (TSCH) mode of | 6.1. New 6LoWPAN capability Bits in the Capability Indication Option | |||
[IEEEstd802154], the 6TiSCH architecture | ||||
[I-D.ietf-6tisch-architecture] introduces how a 6LoWPAN ND host could | ||||
connect to the Internet via a RPL mesh Network, but this requires | ||||
additions to the 6LOWPAN ND protocol to support mobility and | ||||
reachability in a secured and manageable environment. This | ||||
specification details the new operations that are required to | ||||
implement the 6TiSCH architecture and serves the requirements listed | ||||
in Appendix A.2. | ||||
The term LLN is used loosely in this specification to cover multiple | This specification defines a number of capability bits in the CIO | |||
types of WLANs and WPANs, including Low-Power Wi-Fi, BLUETOOTH(R) Low | that was introduced by RFC 7400 [RFC7400]. | |||
Energy, IEEE std 802.11AH and IEEE std 802.15.4 wireless meshes, so | ||||
as to address the requirements discussed in Appendix A.3 | ||||
This specification can be used by any wireless node to associate at | Support for this specification is indicated by setting the "E" flag | |||
Layer-3 with a 6BBR and register its IPv6 addresses to obtain routing | in a CIO option. Routers that are capable of acting as 6LR, 6LBR and | |||
services including proxy-ND operations over the backbone, effectively | 6BBR SHOULD set the L, B andP flags, respectively. | |||
providing a solution to the requirements expressed in Appendix A.4. | ||||
Efficiency aware IPv6 Neighbor Discovery Optimizations | Those flags are not mutually exclusive and if a router is capable of | |||
[I-D.chakrabarti-nordmark-6man-efficient-nd] suggests that 6LoWPAN ND | multiple roles, it SHOULD set all the related flags. | |||
[RFC6775] can be extended to other types of links beyond IEEE std | ||||
802.15.4 for which it was defined. The registration technique is | ||||
beneficial when the Link-Layer technique used to carry IPv6 multicast | ||||
packets is not sufficiently efficient in terms of delivery ratio or | ||||
energy consumption in the end devices, in particular to enable | ||||
energy-constrained sleeping nodes. The value of such extension is | ||||
especially apparent in the case of mobile wireless nodes, to reduce | ||||
the multicast operations that are related to classical ND ([RFC4861], | ||||
[RFC4862]) and plague the wireless medium. This serves scalability | ||||
requirements listed in Appendix A.6. | ||||
5. The Enhanced Address Registration Option (EARO) | 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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Type | Length = 1 |_____________________|L|B|P|E|G| | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|_______________________________________________________________| | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
With the ARO option defined in 6LoWPAN ND [RFC6775], the address | Figure 1: New capability Bits L, B, P, E in the CIO | |||
being registered and its owner can be uniquely identified and matched | ||||
with the Binding Table entries of each Backbone Router. | Option Fields | |||
Type: 36 | ||||
L: Node is a 6LR, it can take registrations. | ||||
B: Node is a 6LBR. | ||||
P: Node is a 6BBR, proxying for nodes on this link. | ||||
E: This specification is supported and applied. | ||||
6.2. The Enhanced Address Registration Option (EARO) | ||||
The Enhanced Address Registration Option (EARO) is intended to be | The Enhanced Address Registration Option (EARO) is intended to be | |||
used as a replacement to the ARO option within Neighbor Discovery NS | used as a replacement to the ARO option within Neighbor Discovery NS | |||
and NA messages between a LLN node and its 6LoWPAN Router (6LR), as | and NA messages between a LLN node and its 6LoWPAN Router (6LR), as | |||
well as in Duplicate Address Request (DAR) and the Duplicate Address | well as in Duplicate Address Request (DAR) and the Duplicate Address | |||
Confirmation (DAC) messages between 6LRs and 6LBRs in LLNs meshes | Confirmation (DAC) messages between 6LRs and 6LBRs in LLNs meshes | |||
such as 6TiSCH networks. | such as 6TiSCH networks. | |||
An NS message with an EARO option is a registration if and only if it | An NS message with an EARO option is a registration if and only if it | |||
also carries an SLLAO option. The AERO option also used in NS and NA | also carries an SLLAO option. The AERO option also used in NS and NA | |||
messages between Backbone Routers over the backbone link to sort out | messages between Backbone Routers over the backbone link to sort out | |||
the distributed registration state, and in that case, it does not | the distributed registration state, and in that case, it does not | |||
carry the SLLAO option and is not confused with a registration. | carry the SLLAO option and is not confused with a registration. | |||
The EARO extends the ARO and is recognized by the setting of the TID | The EARO extends the ARO and is recognized by the "T" flag set. | |||
bit. A node that supports this specification MUST always use an EARO | ||||
as a replacement to an ARO in its registration to a router. This is | ||||
harmless since the TID bit and fields are reserved in [RFC6775] are | ||||
ignored by a legacy router. A router that supports this | ||||
specification answers to an ARO with an ARO and to an EARO with an | ||||
EARO. | ||||
This specification changes the behavior of the peers in a | ||||
registration flows. To enable backward compatibility, a node that | ||||
registers to a router that is not known to support this specification | ||||
MUST behave as prescribed by [RFC6775]. Once the router is known to | ||||
support this specification, the node MUST obey this specification. | ||||
When using the EARO option, the address being registered is found in | When using the EARO option, the address being registered is found in | |||
the Target Address field of the NS and NA messages. This differs | the Target Address field of the NS and NA messages. This differs | |||
from 6LoWPAN ND [RFC6775] which specifies that the address being | from 6LoWPAN ND RFC 6775 [RFC6775] which specifies that the address | |||
registered is the source of the NS. | being registered is the source of the NS. | |||
The reason for this change is to enable proxy-registrations on behalf | ||||
of other nodes in Route-Over meshes, for instance to enable that a | ||||
RPL root registers addresses on behalf LLN nodes that are deeper in a | ||||
6TiSCH mesh. In that case, the Registering Node MUST indicate its | ||||
own address as source of the ND message and its MAC address in the | ||||
Source Link-Layer Address Option (SLLAO), since it still expects to | ||||
get the packets and route them down the mesh. But the Registered | ||||
Address belongs to another node, the Registered Node, and that | ||||
address is indicated in the Target Address field of the NS message. | ||||
One way of achieving all the above is for a node to first register an | ||||
address that it owns in order to validate that the router supports | ||||
this specification, placing the same address in the Source and Target | ||||
Address fields of the NS message. The node may for instance register | ||||
an address that is based on EUI-64. For such address, DAD is not | ||||
required and using the SLLAO option in the NS is actually more | ||||
amenable with older ND specifications such as ODAD [RFC4429]. | ||||
Once that first registration is complete, the node knows from the | ||||
setting of the TID in the response whether the router supports this | ||||
specification. If this is verified, the node may register other | ||||
addresses that it owns, or proxy-register addresses on behalf some | ||||
another node, indicating those addresses being registered in the | ||||
Target Address field of the NS messages, while using one of its own, | ||||
already registered, addresses as source. | ||||
The format of the EARO option is as follows: | The format of the EARO option 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 = 2 | Status | Reserved | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reserved |T| TID | Registration Lifetime | | | Reserved |T| TID | Registration Lifetime | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | |||
+ Owner Unique ID (EUI-64 or equivalent) + | + Owner Unique ID (EUI-64 or equivalent) + | |||
| | | | | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
Figure 1: EARO | Figure 2: EARO | |||
Option Fields | Option Fields | |||
Type: | Type: 33 | |||
Length: 2 | Length: 8-bit unsigned integer. | |||
Status: | Status: 8-bit unsigned integer. Indicates the status of a | |||
registration in the NA response. MUST be set to 0 in NS messages. | ||||
See Table 1 below. | ||||
Reserved: This field is unused. It MUST be initialized to zero by | ||||
the sender and MUST be ignored by the receiver. | ||||
T: One bit flag. Set if the next octet is a used as a TID. | ||||
TID: 1-byte integer; a transaction id that is maintained by the node | ||||
and incremented with each transaction. it is recommended that the | ||||
node maintains the TID in a persistent storage. | ||||
Registration Lifetime: 16-bit integer; expressed in minutes. 0 | ||||
means that the registration has ended and the state should be | ||||
removed. | ||||
Owner Unique Identifier (OUI): A globally unique identifier for the | ||||
node associated. This can be the EUI-64 derived IID of an | ||||
interface, or some provable ID obtained cryptographically. | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| Value | Description | | | Value | Description | | |||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
| 0..2 | See [RFC6775]. Note that a Status of 1 "Duplicate | | | 0..2 | See RFC 6775 [RFC6775]. Note that a Status of 1 | | |||
| | Address" applies to the Registered Address. If the Source | | | | "Duplicate Address" applies to the Registered Address. If | | |||
| | Address conflicts with an existing registration, | | | | the Source Address conflicts with an existing | | |||
| | "Duplicate Source Address" should be used instead | | | | registration, "Duplicate Source Address" should be used | | |||
| | instead | | ||||
| | | | | | | | |||
| 3 | Moved: The registration fails because it is not the | | | 3 | Moved: The registration fails because it is not the | | |||
| | freshest | | | | freshest. This status indicates that the registration is | | |||
| | rejected because another more recent registration was | | ||||
| | done, as indicated by a same OUI and a more recent TID. | | ||||
| | One possible cause is a stale registration that has | | ||||
| | progressed slowly in the network and was passed by a more | | ||||
| | recent one. It could also indicate a OUI 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 | Proof requested: The registering node is challenged for | | | 5 | Proof requested: The registering node is challenged for | | |||
| | owning the registered address or for being an acceptable | | | | owning the registered address or for being an acceptable | | |||
| | proxy for the registration | | | | proxy for the registration. This status is expected in | | |||
| | asynchronous messages from a registrar (6LR, 6LBR, 6BBR) | | ||||
| | to indicate that the registration state is removed, for | | ||||
| | instance due to time out of a lifetime, or a movement. It | | ||||
| | is used for instance by a 6BBR in a NA(ARO) message to | | ||||
| | indicate that the ownership of the proxy state on the | | ||||
| | backbone was transfered to another 6BBR, which is | | ||||
| | indicative of a movement of the device. The receiver of | | ||||
| | the NA is the device that has performed a registration | | ||||
| | that is now stale and it should clean up its state. | | ||||
| | | | | | | | |||
| 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 | Administrative Rejection: The address being registered is | | | 7 | Invalid Source Address: The address used as source of the | | |||
| | reserved for another use by an administrative decision | | | | NS(ARO) is not usable on this link, e.g. it is not | | |||
| | (e.g. placed in a DHCPv6 pool); The Registering Node is | | | | topologically correct | | |||
| | requested to form a different address and retry | | ||||
| | | | | | | | |||
| 8 | Invalid Registered Address: The address being registered | | | 8 | Invalid Registered Address: The address being registered | | |||
| | is not usable on this link, e.g. it is not topologically | | | | is not usable on this link, e.g. it is not topologically | | |||
| | correct | | | | correct | | |||
| | | | ||||
| 9 | Invalid Source Address: The address used as source of the | | ||||
| | NS(ARO) is not usable on this link, e.g. it is not | | ||||
| | topologically correct | | ||||
+-------+-----------------------------------------------------------+ | +-------+-----------------------------------------------------------+ | |||
Table 1 | Table 1: EARO Status | |||
Reserved: This field is unused. It MUST be initialized to zero by | 7. Backward Compatibility | |||
the sender and MUST be ignored by the receiver. | ||||
T: One bit flag. Set if the next octet is a used as a TID. | 7.1. Discovering the capabilities of an ND peer | |||
TID: 1-byte integer; a transaction id that is maintained by the node | 7.1.1. Using the E Flag in the CIO | |||
and incremented with each transaction. it is recommended that the | ||||
node maintains the TID in a persistent storage. | ||||
Registration Lifetime: 16-bit integer; expressed in minutes. 0 | If the CIO is used in an ND message, then the "E" Flag MUST be set by | |||
means that the registration has ended and the state should be | the sending node if supports this specification. | |||
removed. | ||||
Owner Unique Identifier (OUI): A globally unique identifier for the | It is RECOMMENDED that a router that supports this specification | |||
node associated. This can be the EUI-64 derived IID of an | indicates so with a CIO option, but this might not be practical if | |||
interface, or some provable ID obtained cryptographically. | the link-layer MTU is too small. | |||
New status values are introduced, their values to be confirmed by | If the registering node receives a CIO in a RA, then the setting of | |||
IANA: | the E" Flag indicates whether or not this specification is supported. | |||
Moved: This status indicates that the registration is rejected | 7.1.2. Using the T Flag in the EARO | |||
because another more recent registration was done, as indicated by | ||||
a same OUI and a more recent TID. One possible cause is a stale | ||||
registration that has progressed slowly in the network and was | ||||
passed by a more recent one. It could also indicate a OUI | ||||
collision. | ||||
Removed: This status is expected in asynchronous messages from a | One alternate way for a 6LN to discover the router's capabilities to | |||
registrar (6LR, 6LBR, 6BBR) to indicate that the registration | first register a Link Local address, placing the same address in the | |||
state is removed, for instance due to time out of a lifetime, or a | Source and Target Address fields of the NS message, and setting the | |||
movement. It is used for instance by a 6BBR in a NA(ARO) message | "T" Flag. The node may for instance register an address that is | |||
to indicate that the ownership of the proxy state on the backbone | based on EUI-64. For such address, DAD is not required and using the | |||
was transfered to another 6BBR, which is indicative of a movement | SLLAO option in the NS is actually more amenable with existing ND | |||
of the device. The receiver of the NA is the device that has | specifications such as the "Optimistic Duplicate Address Detection | |||
performed a registration that is now stale and it should clean up | (DAD) for IPv6" [RFC4429]. Once that first registration is complete, | |||
its state. | the node knows from the setting of the "T" Flag in the response | |||
whether the router supports this specification. If this is verified, | ||||
the node may register other addresses that it owns, or proxy-register | ||||
addresses on behalf some another node, indicating those addresses | ||||
being registered in the Target Address field of the NS messages, | ||||
while using one of its own, already registered, addresses as source. | ||||
6. Backward Compatibility | A node that supports this specification MUST always use an EARO as a | |||
replacement to an ARO in its registration to a router. This is | ||||
harmless since the "T" flag and TID field are reserved in RFC 6775 | ||||
[RFC6775] are ignored by a legacy router. A router that supports | ||||
this specification answers to an ARO with an ARO and to an EARO with | ||||
an EARO. | ||||
6.1. Legacy 6LoWPAN Node | This specification changes the behavior of the peers in a | |||
registration flows. To enable backward compatibility, a node that | ||||
registers to a router that is not known to support this specification | ||||
MUST behave as prescribed by RFC 6775 [RFC6775]. Once the router is | ||||
known to support this specification, the node MUST obey this | ||||
specification. | ||||
7.2. Legacy 6LoWPAN Node | ||||
A legacy 6LN will use the registered address as source and will not | A legacy 6LN will use the registered address as source and will not | |||
use an EARO option. In order to be backward compatible, an updated | use an EARO option. In order to be backward compatible, an updated | |||
6LR needs to accept that registration if it is valid per [RFC3972], | 6LR needs to accept that registration if it is valid per the | |||
and manage the binding cache accordingly. | "Cryptographically Generated Addresses (CGA)" [RFC3972] | |||
specification, and manage the binding cache accordingly. | ||||
The main difference with [RFC3972] is that DAR/DAC exchange for DAD | The main difference with RFC 3972 [RFC3972] is that DAR/DAC exchange | |||
may be avoided for link-local addresses. Additionally, the 6LR | for DAD may be avoided for link-local addresses. Additionally, the | |||
SHOULD use an EARO in the reply, and may use all the status codes | 6LR SHOULD use an EARO in the reply, and may use any of the status | |||
defined in this specification. | codes defined in this specification. | |||
6.2. Legacy 6LoWPAN Router | 7.3. Legacy 6LoWPAN Router | |||
The first registration by a an updated 6LN is for a link-local | The first registration by a an updated 6LN is for a link-local | |||
address, using that link-local address as source. A legacy 6LN will | address, using that link-local address as source. A legacy 6LN will | |||
not makes a difference and accept -or reject- that registration as if | not makes a difference and accept -or reject- that registration as if | |||
the 6LN was a legacy node. | the 6LN was a legacy node. | |||
An updated 6LN will always use an EARO option in the registration NS | An updated 6LN will always use an EARO option in the registration NS | |||
message, whereas a legacy 6LN will always areply with an ARO option | message, whereas a legacy 6LN will always areply with an ARO option | |||
in the NA message. So from that first registration, the updated 6LN | in the NA message. So from that first registration, the updated 6LN | |||
can figure whether the 6LR supports this specification or not. | can figure whether the 6LR supports this specification or not. | |||
When facing a legacy 6LR, an updated 6LN may attempt to find an | When facing a legacy 6LR, an updated 6LN may attempt to find an | |||
alternate 6LR that is updated. In order to be backward compatible, | alternate 6LR that is updated. In order to be backward compatible, | |||
based on the discovery that a 6LR is legacy, the 6LN needs to | based on the discovery that a 6LR is legacy, the 6LN needs to | |||
fallback to legacy behaviour and source the packet with the | fallback to legacy behaviour and source the packet with the | |||
registrered address. | registrered address. | |||
The main difference is that the updated 6LN SHOULD use an EARO in the | The main difference is that the updated 6LN SHOULD use an EARO in the | |||
request regardless of the type of 6LN, legacy or updated | request regardless of the type of 6LN, legacy or updated | |||
6.3. Legacy 6LoWPAN Border Router | 7.4. Legacy 6LoWPAN Border Router | |||
With this specification, the DAR/DAC transports an EARO option as | With this specification, the DAR/DAC transports an EARO option as | |||
opposed to an ARO option. As described for the NS/NA exchange, | opposed to an ARO option. As described for the NS/NA exchange, | |||
devices that support this specification always use an EARO option and | devices that support this specification always use an EARO option and | |||
all the associated behaviour. | all the associated behaviour. | |||
7. Security Considerations | 8. Security Considerations | |||
This specification expects that the link layer is sufficiently | This specification expects that the link layer is sufficiently | |||
protected, either by means of physical or IP security for the | protected, either by means of physical or IP security for the | |||
Backbone Link or MAC sublayer cryptography. In particular, it is | Backbone Link or MAC sublayer cryptography. In particular, it is | |||
expected that the LLN MAC provides secure unicast to/from the | expected that the LLN MAC provides secure unicast to/from the | |||
Backbone Router and secure Broadcast from the Backbone Router in a | Backbone Router and secure Broadcast from the Backbone Router in a | |||
way that prevents tempering with or replaying the RA messages. | way that prevents tempering with or replaying the RA messages. | |||
The use of EUI-64 for forming the Interface ID in the link-local | The use of EUI-64 for forming the Interface ID in the link-local | |||
address prevents the usage of Secure ND ([RFC3971] and [RFC3972]) and | address prevents the usage of "SEcure Neighbor Discovery (SEND)" | |||
address privacy techniques. This specification RECOMMENDS the use of | [RFC3971] and CGA [RFC3972], and that of address privacy techniques. | |||
additional protection against address theft such as provided by | This specification RECOMMENDS the use of additional protection | |||
[I-D.ietf-6lo-ap-nd], which guarantees the ownership of the OUID. | against address theft such as provided by "Address Protected Neighbor | |||
Discovery for Low-power and Lossy Networks" [I-D.ietf-6lo-ap-nd], | ||||
which guarantees the ownership of the OUID. | ||||
When the ownership of the OUID cannot be assessed, this specification | When the ownership of the OUID cannot be assessed, this specification | |||
limits the cases where the OUID and the TID are multicasted, and | limits the cases where the OUID and the TID are multicasted, and | |||
obfuscates them in responses to attempts to take over an address. | obfuscates them in responses to attempts to take over an address. | |||
The LLN nodes depend on the 6LBR and the 6BBR for their operation. A | The LLN nodes depend on the 6LBR and the 6BBR for their operation. A | |||
trust model must be put in place to ensure that the right devices are | trust model must be put in place to ensure that the right devices are | |||
acting in these roles, so as to avoid threats such as black-holing, | acting in these roles, so as to avoid threats such as black-holing, | |||
or bombing attack whereby an impersonated 6LBR would destroy state in | or bombing attack whereby an impersonated 6LBR would destroy state in | |||
the network by using the "Removed" status code. | the network by using the "Removed" status code. | |||
8. IANA Considerations | 9. IANA Considerations | |||
This document requires the following additions: | IANA is requested to create a new subregistry for "ARO Flags" under | |||
the "Internet Control Message Protocol version 6 (ICMPv6) | ||||
Parameters". This specification defines 8 positions, bit 0 to bit 7, | ||||
and assigns bit 7 for the "T" flag in Section 6.2. The policy is | ||||
"IETF Review" or "IESG Approval" [RFC5226]. The initial content of | ||||
the registry is as shown in Table 2. | ||||
New subregistry for ARO Flags under the "Internet Control Message | ||||
Protocol version 6 (ICMPv6) Parameters" | ||||
+------------+--------------+-----------+ | ||||
| ARO Status | Description | Document | | ||||
+------------+--------------+-----------+ | ||||
| 0..6 | Unassigned | | | ||||
| | | | | ||||
| 7 | "T" Flag | RFC This | | ||||
+------------+--------------+-----------+ | ||||
Table 2: new ARO Flags | ||||
IANA is requested to make additions to existing registries as | ||||
follows: | ||||
Address Registration Option Status Values Registry | Address Registration Option Status Values Registry | |||
+--------+--------------------------+ | +------------+----------------------------+-----------+ | |||
| Status | Description | | | ARO Status | Description | Document | | |||
+--------+--------------------------+ | +------------+----------------------------+-----------+ | |||
| 3 | Moved | | | 3 | Moved | RFC This | | |||
| | | | | | | | | |||
| 4 | Removed | | | 4 | Removed | RFC This | | |||
| | | | | | | | | |||
| 5 | Proof requested | | | 5 | Proof requested | RFC This | | |||
| | | | | | | | | |||
| 6 | Invalid Source Address | | | 6 | Duplicate Source Address | RFC This | | |||
| | | | | | | | | |||
| 7 | Administrative Rejection | | | 7 | Invalid Source Address | RFC This | | |||
+--------+--------------------------+ | | | | | | |||
| 8 | Invalid Registered Address | RFC This | | ||||
+------------+----------------------------+-----------+ | ||||
IANA is required to change the registry accordingly | Table 3: New ARO Status values | |||
Table 2: New ARO Status values | Subregistry for "6LoWPAN capability Bits" under the "Internet Control | |||
Message Protocol version 6 (ICMPv6) Parameters" | ||||
9. Acknowledgments | +----------------+----------------------+-----------+ | |||
| capability Bit | Description | Document | | ||||
+----------------+----------------------+-----------+ | ||||
| 11 | 6LR capable (L bit) | RFC This | | ||||
| | | | | ||||
| 12 | 6LBR capable (B bit) | RFC This | | ||||
| | | | | ||||
| 13 | 6BBR capable (P bit) | RFC This | | ||||
| | | | | ||||
| 14 | EARO support (E bit) | RFC This | | ||||
+----------------+----------------------+-----------+ | ||||
Table 4: New 6LoWPAN capability Bits | ||||
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 at Cisco. | infrastructure at Cisco. | |||
10. References | 11. References | |||
11.1. Normative References | ||||
10.1. Normative References | [I-D.ietf-6lo-backbone-router] | |||
Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- | ||||
backbone-router-03 (work in progress), January 2017. | ||||
[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, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | ||||
Architecture", RFC 4291, DOI 10.17487/RFC4291, February | ||||
2006, <http://www.rfc-editor.org/info/rfc4291>. | ||||
[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, | |||
<http://www.rfc-editor.org/info/rfc4429>. | <http://www.rfc-editor.org/info/rfc4429>. | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc4861>. | <http://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, | |||
<http://www.rfc-editor.org/info/rfc4862>. | <http://www.rfc-editor.org/info/rfc4862>. | |||
[RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy | ||||
Extensions for Stateless Address Autoconfiguration in | ||||
IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007, | ||||
<http://www.rfc-editor.org/info/rfc4941>. | ||||
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | ||||
IANA Considerations Section in RFCs", BCP 26, RFC 5226, | ||||
DOI 10.17487/RFC5226, May 2008, | ||||
<http://www.rfc-editor.org/info/rfc5226>. | ||||
[RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | ||||
Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | ||||
DOI 10.17487/RFC6282, September 2011, | ||||
<http://www.rfc-editor.org/info/rfc6282>. | ||||
[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, | |||
<http://www.rfc-editor.org/info/rfc6550>. | <http://www.rfc-editor.org/info/rfc6550>. | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc6775>. | <http://www.rfc-editor.org/info/rfc6775>. | |||
10.2. Informative References | [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for | |||
IPv6 over Low-Power Wireless Personal Area Networks | ||||
(6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November | ||||
2014, <http://www.rfc-editor.org/info/rfc7400>. | ||||
[RFC7934] Colitti, L., Cerf, V., Cheshire, S., and D. Schinazi, | ||||
"Host Address Availability Recommendations", BCP 204, | ||||
RFC 7934, DOI 10.17487/RFC7934, July 2016, | ||||
<http://www.rfc-editor.org/info/rfc7934>. | ||||
11.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 | |||
802.11ah", draft-delcarpio-6lo-wlanah-01 (work in | 802.11ah", draft-delcarpio-6lo-wlanah-01 (work in | |||
progress), October 2015. | progress), October 2015. | |||
[I-D.ietf-6lo-6lobac] | [I-D.ietf-6lo-6lobac] | |||
Lynn, K., Martocci, J., Neilson, C., and S. Donaldson, | Lynn, K., Martocci, J., Neilson, C., and S. Donaldson, | |||
"Transmission of IPv6 over MS/TP Networks", draft-ietf- | "Transmission of IPv6 over MS/TP Networks", draft-ietf- | |||
6lo-6lobac-06 (work in progress), October 2016. | 6lo-6lobac-08 (work in progress), March 2017. | |||
[I-D.ietf-6lo-ap-nd] | [I-D.ietf-6lo-ap-nd] | |||
Sarikaya, B., Thubert, P., and M. Sethi, "Address | Sarikaya, B., Thubert, P., and M. Sethi, "Address | |||
Protected Neighbor Discovery for Low-power and Lossy | Protected Neighbor Discovery for Low-power and Lossy | |||
Networks", draft-ietf-6lo-ap-nd-00 (work in progress), | Networks", draft-ietf-6lo-ap-nd-00 (work in progress), | |||
November 2016. | November 2016. | |||
[I-D.ietf-6lo-backbone-router] | ||||
Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- | ||||
backbone-router-02 (work in progress), September 2016. | ||||
[I-D.ietf-6lo-dect-ule] | [I-D.ietf-6lo-dect-ule] | |||
Mariager, P., Petersen, J., Shelby, Z., Logt, M., and D. | Mariager, P., Petersen, J., Shelby, Z., Logt, M., and D. | |||
Barthel, "Transmission of IPv6 Packets over DECT Ultra Low | Barthel, "Transmission of IPv6 Packets over DECT Ultra Low | |||
Energy", draft-ietf-6lo-dect-ule-09 (work in progress), | Energy", draft-ietf-6lo-dect-ule-09 (work in progress), | |||
December 2016. | December 2016. | |||
[I-D.ietf-6lo-nfc] | [I-D.ietf-6lo-nfc] | |||
Choi, Y., Youn, J., and Y. Hong, "Transmission of IPv6 | Choi, Y., Hong, Y., Youn, J., Kim, D., and J. Choi, | |||
Packets over Near Field Communication", draft-ietf-6lo- | "Transmission of IPv6 Packets over Near Field | |||
nfc-05 (work in progress), October 2016. | Communication", draft-ietf-6lo-nfc-06 (work in progress), | |||
March 2017. | ||||
[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-10 (work | of IEEE 802.15.4", draft-ietf-6tisch-architecture-11 (work | |||
in progress), June 2016. | in progress), January 2017. | |||
[I-D.ietf-6tisch-terminology] | [I-D.ietf-6tisch-terminology] | |||
Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, | Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, | |||
"Terminology in IPv6 over the TSCH mode of IEEE | "Terminology in IPv6 over the TSCH mode of IEEE | |||
802.15.4e", draft-ietf-6tisch-terminology-08 (work in | 802.15.4e", draft-ietf-6tisch-terminology-08 (work in | |||
progress), December 2016. | progress), December 2016. | |||
[I-D.ietf-bier-architecture] | [I-D.ietf-bier-architecture] | |||
Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and | Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and | |||
S. Aldrin, "Multicast using Bit Index Explicit | S. Aldrin, "Multicast using Bit Index Explicit | |||
skipping to change at page 17, line 20 ¶ | skipping to change at page 20, line 20 ¶ | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc3972>. | <http://www.rfc-editor.org/info/rfc3972>. | |||
[RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | |||
over Low-Power Wireless Personal Area Networks (6LoWPANs): | over Low-Power Wireless Personal Area Networks (6LoWPANs): | |||
Overview, Assumptions, Problem Statement, and Goals", | Overview, Assumptions, Problem Statement, and Goals", | |||
RFC 4919, DOI 10.17487/RFC4919, August 2007, | RFC 4919, DOI 10.17487/RFC4919, August 2007, | |||
<http://www.rfc-editor.org/info/rfc4919>. | <http://www.rfc-editor.org/info/rfc4919>. | |||
[RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | ||||
Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | ||||
DOI 10.17487/RFC6282, September 2011, | ||||
<http://www.rfc-editor.org/info/rfc6282>. | ||||
[RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | |||
Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | |||
2014, <http://www.rfc-editor.org/info/rfc7102>. | 2014, <http://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, | |||
<http://www.rfc-editor.org/info/rfc7217>. | <http://www.rfc-editor.org/info/rfc7217>. | |||
[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, | |||
<http://www.rfc-editor.org/info/rfc7428>. | <http://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, | |||
<http://www.rfc-editor.org/info/rfc7668>. | <http://www.rfc-editor.org/info/rfc7668>. | |||
10.3. External Informative References | 11.3. External Informative References | |||
[IEEEstd802154] | [IEEEstd802154] | |||
IEEE standard for Information Technology, "IEEE Standard | IEEE, "IEEE Standard for Low-Rate Wireless Networks", | |||
for Local and metropolitan area networks-- Part 15.4: Low- | IEEE Standard 802.15.4, | |||
Rate Wireless Personal Area Networks (LR-WPANs)". | <http://ieeexplore.ieee.org/document/7460875/>. | |||
Appendix A. Requirements | Appendix A. Applicability and Requirements Served | |||
This specification extends 6LoWPAN ND to sequence the registration | ||||
and serves the requirements expressed 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" | ||||
[I-D.ietf-6lo-backbone-router] specification. | ||||
In the context of the the TimeSlotted Channel Hopping (TSCH) mode of | ||||
IEEE Std. 802.15.4 [IEEEstd802154], the "6TiSCH architecture" | ||||
[I-D.ietf-6tisch-architecture] introduces how a 6LoWPAN ND host could | ||||
connect to the Internet via a RPL mesh Network, but this requires | ||||
additions to the 6LOWPAN ND protocol to support mobility and | ||||
reachability in a secured and manageable environment. This | ||||
specification details the new operations that are required to | ||||
implement the 6TiSCH architecture and serves the requirements listed | ||||
in Appendix B.2. | ||||
The term LLN is used loosely in this specification to cover multiple | ||||
types of WLANs and WPANs, including Low-Power Wi-Fi, BLUETOOTH(R) Low | ||||
Energy, IEEE std 802.11AH and IEEE std 802.15.4 wireless meshes, so | ||||
as to address the requirements discussed in Appendix B.3 | ||||
This specification can be used by any wireless node to associate at | ||||
Layer-3 with a 6BBR and register its IPv6 addresses to obtain routing | ||||
services including proxy-ND operations over the backbone, effectively | ||||
providing a solution to the requirements expressed in Appendix B.4. | ||||
"Efficiency aware IPv6 Neighbor Discovery Optimizations" | ||||
[I-D.chakrabarti-nordmark-6man-efficient-nd] suggests that 6LoWPAN ND | ||||
[RFC6775] can be extended to other types of links beyond IEEE Std. | ||||
802.15.4 for which it was defined. The registration technique is | ||||
beneficial when the Link-Layer technique used to carry IPv6 multicast | ||||
packets is not sufficiently efficient in terms of delivery ratio or | ||||
energy consumption in the end devices, in particular to enable | ||||
energy-constrained sleeping nodes. The value of such extension is | ||||
especially apparent in the case of mobile wireless nodes, to reduce | ||||
the multicast operations that are related to classical ND ([RFC4861], | ||||
[RFC4862]) and plague the wireless medium. This serves scalability | ||||
requirements listed in Appendix B.6. | ||||
Appendix B. Requirements | ||||
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. This specification meets most of them, but | update to 6LoWPAN ND. This specification meets most of them, but | |||
those listed in Appendix A.5 which are deferred to a different | those listed in Appendix B.5 which are deferred to a different | |||
specification such as [I-D.ietf-6lo-ap-nd]. | specification such as [I-D.ietf-6lo-ap-nd], and those related to | |||
multicast. | ||||
A.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, | |||
and may not be able to notify 6LR-a. Consequently, 6LR-a may still | and may not be able to notify 6LR-a. Consequently, 6LR-a may still | |||
attract traffic that it cannot deliver any more. When links to a 6LR | attract traffic that it cannot deliver any more. When links to a 6LR | |||
change state, there is thus a need to identify stale states in a 6LR | change state, there is thus a need to identify stale states in a 6LR | |||
and restore reachability in a timely fashion. | and restore reachability in a timely fashion. | |||
Req1.1: Upon a change of point of attachment, connectivity via a new | Req1.1: Upon a change of point of attachment, connectivity via a new | |||
6LR MUST be restored timely without the need to de-register from the | 6LR MUST be restored timely without the need to de-register from the | |||
skipping to change at page 18, line 34 ¶ | skipping to change at page 22, line 27 ¶ | |||
Req1.2: For that purpose, the protocol MUST enable to differentiate | Req1.2: For that purpose, the protocol MUST enable to differentiate | |||
between multiple registrations from one 6LoWPAN Node and | between multiple registrations from one 6LoWPAN Node and | |||
registrations from different 6LoWPAN Nodes claiming the same address. | registrations from different 6LoWPAN Nodes claiming the same address. | |||
Req1.3: Stale states MUST be cleaned up in 6LRs. | Req1.3: Stale states MUST be cleaned up in 6LRs. | |||
Req1.4: A 6LoWPAN Node SHOULD also be capable to register its Address | Req1.4: A 6LoWPAN Node SHOULD also be capable to register its Address | |||
to multiple 6LRs, and this, concurrently. | to multiple 6LRs, and this, concurrently. | |||
A.2. Requirements Related to Routing Protocols | B.2. Requirements Related to Routing Protocols | |||
The point of attachment of a 6LN may be a 6LR in an LLN mesh. IPv6 | The point of attachment of a 6LN may be a 6LR in an LLN mesh. IPv6 | |||
routing in a LLN can be based on RPL, which is the routing protocol | routing in a LLN can be based on RPL, which is the routing protocol | |||
that was defined at the IETF for this particular purpose. Other | that was defined at the IETF for this particular purpose. Other | |||
routing protocols than RPL are also considered by Standard Defining | routing protocols than RPL are also considered by Standard Defining | |||
Organizations (SDO) on the basis of the expected network | Organizations (SDO) on the basis of the expected network | |||
characteristics. It is required that a 6LoWPAN Node attached via ND | characteristics. It is required that a 6LoWPAN Node attached via ND | |||
to a 6LR would need to participate in the selected routing protocol | to a 6LR would need to participate in the selected routing protocol | |||
to obtain reachability via the 6LR. | to obtain reachability via the 6LR. | |||
skipping to change at page 19, line 33 ¶ | skipping to change at page 23, line 24 ¶ | |||
to generate a DAO message as specified in [RFC6550] section 6.4, in | to generate a DAO message as specified in [RFC6550] section 6.4, in | |||
particular the capability to compute a Path Sequence and, as an | particular the capability to compute a Path Sequence and, as an | |||
option, a RPLInstanceID. | option, a RPLInstanceID. | |||
Req2.3: Multicast operations SHOULD be supported and optimized, for | Req2.3: Multicast operations SHOULD be supported and optimized, for | |||
instance using BIER or MPL. Whether ND is appropriate for the | instance using BIER or MPL. Whether ND is appropriate for the | |||
registration to the 6BBR is to be defined, considering the additional | registration to the 6BBR is to be defined, considering the additional | |||
burden of supporting the Multicast Listener Discovery Version 2 | burden of supporting the Multicast Listener Discovery Version 2 | |||
[RFC3810] (MLDv2) for IPv6. | [RFC3810] (MLDv2) for IPv6. | |||
A.3. Requirements Related to the Variety of Low-Power Link types | B.3. Requirements Related to the Variety of Low-Power Link types | |||
6LoWPAN ND [RFC6775] was defined with a focus on IEEE std 802.15.4 | 6LoWPAN ND [RFC6775] was defined with a focus on IEEE std 802.15.4 | |||
and in particular the capability to derive a unique Identifier from a | and in particular the capability to derive a unique Identifier from a | |||
globally unique MAC-64 address. At this point, the 6lo Working Group | globally unique MAC-64 address. At this point, the 6lo Working Group | |||
is extending the 6LoWPAN Header Compression (HC) [RFC6282] technique | is extending the 6LoWPAN Header Compression (HC) [RFC6282] technique | |||
to other link types ITU-T G.9959 [RFC7428], Master-Slave/Token- | to other link types ITU-T G.9959 [RFC7428], Master-Slave/Token- | |||
Passing [I-D.ietf-6lo-6lobac], DECT Ultra Low Energy | Passing [I-D.ietf-6lo-6lobac], DECT Ultra Low Energy | |||
[I-D.ietf-6lo-dect-ule], Near Field Communication [I-D.ietf-6lo-nfc], | [I-D.ietf-6lo-dect-ule], Near Field Communication [I-D.ietf-6lo-nfc], | |||
IEEE std 802.11ah [I-D.delcarpio-6lo-wlanah], as well as IEEE1901.2 | IEEE std 802.11ah [I-D.delcarpio-6lo-wlanah], as well as IEEE1901.2 | |||
Narrowband Powerline Communication Networks | Narrowband Powerline Communication Networks | |||
skipping to change at page 20, line 17 ¶ | skipping to change at page 24, line 9 ¶ | |||
Local Address that SHOULD be unique at least within the LLN connected | Local Address that SHOULD be unique at least within the LLN connected | |||
to a 6LBR discovered by ND in each node within the LLN. | to a 6LBR discovered by ND in each node within the LLN. | |||
Req3.3: The Address Registration Option used in the ND registration | Req3.3: The Address Registration Option used in the ND registration | |||
SHOULD be extended to carry the relevant forms of unique Identifier. | SHOULD be extended to carry the relevant forms of unique Identifier. | |||
Req3.4: The Neighbour Discovery should specify the formation of a | Req3.4: The Neighbour Discovery should specify the formation of a | |||
site-local address that follows the security recommendations from | site-local address that follows the security recommendations from | |||
[RFC7217]. | [RFC7217]. | |||
A.4. Requirements Related to Proxy Operations | B.4. Requirements Related to Proxy Operations | |||
Duty-cycled devices may not be able to answer themselves to a lookup | Duty-cycled devices may not be able to answer themselves to a lookup | |||
from a node that uses classical ND on a backbone and may need a | from a node that uses classical ND on a backbone and may need a | |||
proxy. Additionally, the duty-cycled device may need to rely on the | proxy. Additionally, the duty-cycled device may need to rely on the | |||
6LBR to perform registration to the 6BBR. | 6LBR to perform registration to the 6BBR. | |||
The ND registration method SHOULD defend the addresses of duty-cycled | The ND registration method SHOULD defend the addresses of duty-cycled | |||
devices that are sleeping most of the time and not capable to defend | devices that are sleeping most of the time and not capable to defend | |||
their own Addresses. | their own Addresses. | |||
skipping to change at page 20, line 41 ¶ | skipping to change at page 24, line 33 ¶ | |||
proxy register an Address on behalf of a 6LoWPAN node that may be | proxy register an Address on behalf of a 6LoWPAN node that may be | |||
sleeping or located deeper in an LLN mesh. | sleeping or located deeper in an LLN mesh. | |||
Req4.2: The registration mechanism SHOULD be applicable to a duty- | Req4.2: The registration mechanism SHOULD be applicable to a duty- | |||
cycled device regardless of the link type, and enable a 6BBR to | cycled device regardless of the link type, and enable a 6BBR to | |||
operate as a proxy to defend the registered Addresses on its behalf. | operate as a proxy to defend the registered Addresses on its behalf. | |||
Req4.3: The registration mechanism SHOULD enable long sleep | Req4.3: The registration mechanism SHOULD enable long sleep | |||
durations, in the order of multiple days to a month. | durations, in the order of multiple days to a month. | |||
A.5. Requirements Related to Security | B.5. Requirements Related to Security | |||
In order to guarantee the operations of the 6LoWPAN ND flows, the | In order to guarantee the operations of the 6LoWPAN ND flows, the | |||
spoofing of the 6LR, 6LBR and 6BBRs roles should be avoided. Once a | spoofing of the 6LR, 6LBR and 6BBRs roles should be avoided. Once a | |||
node successfully registers an address, 6LoWPAN ND should provide | node successfully registers an address, 6LoWPAN ND should provide | |||
energy-efficient means for the 6LBR to protect that ownership even | energy-efficient means for the 6LBR to protect that ownership even | |||
when the node that registered the address is sleeping. | when the node that registered the address is sleeping. | |||
In particular, the 6LR and the 6LBR then should be able to verify | In particular, the 6LR and the 6LBR then should be able to verify | |||
whether a subsequent registration for a given Address comes from the | whether a subsequent registration for a given Address comes from the | |||
original node. | original node. | |||
skipping to change at page 22, line 7 ¶ | skipping to change at page 25, line 48 ¶ | |||
Req5.8: Routing of packets should continue when links pass from the | Req5.8: Routing of packets should continue when links pass from the | |||
unsecured to the secured state. | unsecured to the secured state. | |||
Req5.9: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for | Req5.9: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for | |||
the 6LR and the 6LBR to validate whether a new registration for a | the 6LR and the 6LBR to validate whether a new registration for a | |||
given address corresponds to the same 6LoWPAN Node that registered it | given address corresponds to the same 6LoWPAN Node that registered it | |||
initially, and, if not, determine the rightful owner, and deny or | initially, and, if not, determine the rightful owner, and deny or | |||
clean-up the registration that is duplicate. | clean-up the registration that is duplicate. | |||
A.6. Requirements Related to Scalability | B.6. Requirements Related to Scalability | |||
Use cases from Automatic Meter Reading (AMR, collection tree | Use cases from Automatic Meter Reading (AMR, collection tree | |||
operations) and Advanced Metering Infrastructure (AMI, bi-directional | operations) and Advanced Metering Infrastructure (AMI, bi-directional | |||
communication to the meters) indicate the needs for a large number of | communication to the meters) indicate the needs for a large number of | |||
LLN nodes pertaining to a single RPL DODAG (e.g. 5000) and connected | LLN nodes pertaining to a single RPL DODAG (e.g. 5000) and connected | |||
to the 6LBR over a large number of LLN hops (e.g. 15). | to the 6LBR over a large number of LLN hops (e.g. 15). | |||
Related requirements are: | Related requirements are: | |||
Req6.1: The registration mechanism SHOULD enable a single 6LBR to | Req6.1: The registration mechanism SHOULD enable a single 6LBR to | |||
register multiple thousands of devices. | register multiple thousands of devices. | |||
Req6.2: The timing of the registration operation should allow for a | Req6.2: The timing of the registration operation should allow for a | |||
large latency such as found in LLNs with ten and more hops. | large latency such as found in LLNs with ten and more hops. | |||
Authors' Addresses | Authors' Addresses | |||
Pascal Thubert (editor) | Pascal Thubert (editor) | |||
Cisco Systems, Inc | Cisco Systems, Inc | |||
Building D | Sophia Antipolis | |||
45 Allee des Ormes - BP1200 | ||||
MOUGINS - Sophia Antipolis 06254 | ||||
FRANCE | FRANCE | |||
Phone: +33 497 23 26 34 | ||||
Email: pthubert@cisco.com | Email: pthubert@cisco.com | |||
Erik Nordmark | Erik Nordmark | |||
Arista Networks | ||||
Santa Clara, CA | Santa Clara, CA | |||
USA | USA | |||
Email: nordmark@arista.com | Email: nordmark@sonic.net | |||
Samita Chakrabarti | Samita Chakrabarti | |||
San Jose, CA | San Jose, CA | |||
USA | USA | |||
Email: samitac.ietf@gmail.com | Email: samitac.ietf@gmail.com | |||
End of changes. 103 change blocks. | ||||
332 lines changed or deleted | 505 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |