6Lo | P. Thubert, Ed. |
Internet-Draft | cisco |
Intended status: Standards Track | October 27, 2014 |
Expires: April 30, 2015 |
Requirements for an update to 6LoWPAN ND
draft-thubert-6lo-rfc6775-update-reqs-05
Work presented at the ROLL, 6lo, 6TiSCH and 6MAN Working Groups suggest that enhancements to the 6LoWPAN ND mechanism are now needed. This document elaborates on those requirements and suggests approaches to serve them.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 30, 2015.
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
A number of use cases, including the Industrial Internet, require a large scale deployment of sensors that can not be realized with wires and is only feasible over wireless Low power and Lossy Network (LLN) technologies. When simpler hub-and-spoke topologies are not sufficient for the expected throughput and density, mesh networks must be deployed, which implies the concepts of hosts and routers, whether operated at Layer-2 or Layer-3.
The IETF has designed the LLN host-to-router and router-to-router protocol that supports address assignment and the router-to-router protocol that supports reachability across Route-Over LLNs in different Areas. It was clear for both efforts that the scalability requirements could only be met with IPv6 [RFC2460], and there is no fundamental contradiction between those protocols to that regard.
While DHCPv6 is still a viable option in LLNs, the new IETF standard that supports address assignment specifically for LLNs is 6LoWPAN ND, the Neighbor Discovery Optimization for Low-power and Lossy Networks [RFC6775]. 6LoWPAN ND was designed as a stand-alone mechanism separately from its IETF routing counterpart, the IPv6 Routing Protocol for Low power and Lossy Networks [RFC6550] (RPL), and the interaction between the 2 protocols was not defined.
The 6TiSCH WG is now considering an architecture [I-D.ietf-6tisch-architecture] whereby a 6LowPAN ND host could connect to the Internet via a RPL Network, but this requires additions to the protocol to support mobility and reachability in a secured and manageable environment.
At the same time, new work at 6MAN on Efficiency aware IPv6 Neighbor Discovery Optimizations [I-D.chakrabarti-nordmark-6man-efficient-nd] suggests that 6LoWPAN ND can be extended to other types of networks on top of the Low power and Lossy Networks (LLNs) for which it was already defined. The value of such extension is especially apparent in the case of mobile wireless devices, to reduce the multicast operations that are related to classical ND ([RFC4861], [RFC4862]) and plague the wireless medium. In this context also, there is a need for additions to the protocol.
The Optimistic Duplicate Address Detection [RFC4429] (ODAD) specification details how an address can be used before a Duplicate Address Detection (DAD) is complete, and insists that an address that is TENTATIVE should not be associated to a Source Link-Layer Address Option in a Neighbor Solicitation message. As we expect the 6LoWPAN ND protocol for a more general use, it can make sense to keep respecting that rule, which is another change to the specification.
This document suggests a limited evolution to [RFC6775] so as to allow operation of a 6LoWPAN ND node as a leaf in a RPL network. It also suggests a more generalized use of the information in the ARO option outside of the strict LLN domain, for instance over a converged backbone.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
Readers are expected to be familiar with all the terms and concepts that are discussed in "Neighbor Discovery for IP version 6" [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 "Transmission of IPv6 Packets over IEEE 802.15.4 Networks" [RFC4944].
Additionally, this document uses terminology from 6TiSCH [I-D.ietf-6tisch-terminology] and ROLL [RFC7102].
The 6TiSCH architecture [I-D.ietf-6tisch-architecture] expects that a 6LoWPAN device can connect as a leaf to a RPL network, where the leaf support is the minimal functionality to connect as a host to a RPL network without the need to participate to the full routing protocol. The support of leaf can be implemented as a minor increment to 6LoWPAN ND, with the additional capability to carry a sequence number that is used to track the movements of the device, and optionally some information about the RPL topology that this device will join.
---+------------------------ | Plant Network | +-----+ | | Gateway | | +-----+ | | Backbone Link (with VLANs) +--------------------+------------------+ | | | +-----+ +-----+ +-----+ | | Backbone | | Backbone | | Backbone | | router | | router | | router +-----+ +-----+ +-----+ | | | | | | 0 0 0 0 0 (6LBR == RPL root) o o o o o o o o o o o o o o o o o o o o o o o o (6LR == RPL router) o o o o o o o z o o o o o z RPL Instances (6LoWPAN Host == RPL leaf)
Figure 1: 6TiSCH architecture
The scope of the 6TiSCH Architecture is a Backbone Link that federates multiple LLNs as a single IPv6 Multi-Link Subnet. Each LLN in the subnet is anchored at a Backbone Router (6BBR). The Backbone Routers interconnect the LLNs over the Backbone Link and emulate that the LLN nodes are present on the Backbone by proxy-ND operations. An LLN node can move freely from an LLN Route-Over mesh anchored at a Backbone Router to another anchored at a same or a different Backbone Router inside the Multi-Link Subnet and conserve its addresses.
6LoWPAN Node 6LR 6LBR 6BBR (RPL leaf) (router) (root) | | | | | 6LoWPAN ND |6LoWPAN ND+RPL | Efficient ND | IPv6 ND | LLN link |Route-Over mesh| IPv6 link | Backbone | | | | | NS(ARO) | | | |-------------->| | | | 6LoWPAN ND | DAR (then DAO)| | | |-------------->| | | | | NS(ARO) | | | |-------------->| | | | | DAD | | | |------> | | | | | | | NA(ARO) | | | |<--------------| | | DAC | | | |<--------------| | | NA(ARO) | | | |<--------------| | |
Figure 2: (Re-)Registration Flow over Multi-Link Subnet
The root of the RPL topology is logically separated from the 6BBR that is used to connect the RPL topology to the backbone. The RPL root can use Efficient ND as the interface to register an LLN node in its topology to the 6BBR for whatever operation the 6BBR performs, such as ND proxy operations, or injection in a routing protocol. It results that, as illustrated in Figure 2, the periodic signaling could start at the leaf node with 6LoWPAN ND, then would be carried over RPL to the RPL root, and then with Efficient-ND to the 6BBR. Efficient ND being an adaptation of 6LoWPAN ND, it makes sense to keep those two homogeneous in the way they use the source and the target addresses in the Neighbor Solicitation (NS) messages for registration, as well as in the options that they use for that process.
As the network builds up, a node should start as a leaf to join the RPL network, and may later turn into both a RPL-capable router and a 6LR, so as to accept leaf nodes to recursively join the network.
Section 5 of the 6TiSCH architecture [I-D.ietf-6tisch-architecture] provides more information on the need to update the protocols that sustain the requirements in the next section.
Due to the nature of LLN networks, even a fixed 6LoWPAN Node may change its point of attachment (a 6LR) and may not be able to notify the 6LR that it has disconnected from. It results that the previous 6LR may still attract traffic that it cannot deliver any more. When the 6LR changes, there is thus a need to identify stale states and restore reachability timely.
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 previous 6LR.
Req1.2: For that purpose, the protocol MUST enable to differentiate multiple registrations from a same 6LoWPAN Node from two different 6LoWPAN Nodes claiming a same address.
Req1.3: This information MUST be passed from the 6LR to the 6LBR, and the 6LBR SHOULD be able to clean up the stale state asynchronously in the previous 6LR.
Req1.4: A 6LoWPAN Node SHOULD also be capable to register a same Address to multiple 6LRs, and this, concurrently.
The point of attachment of a 6LoWPAN Node may be a 6LR in an LLN mesh. An LLN route-over mesh is typically based on RPL, which is the routing protocol that was defined at the IETF for this particular purpose. It derives that in this scenario, the 6LR would classically support RPL. One goal is that a 6LoWPAN Node attached via ND to a RPL-capable 6LR would not need to participate to the RPL protocol to obtain reachability via the 6LR. An additional goal would be to obtain reachability via other routing protocols through a same ND-based abstraction.
Related requirements are:
Req2.1: The ND registration method SHOULD be extended in such a fashion that the 6LR MAY advertise the Address of a 6LoWPAN Node over RPL and obtain reachability to that Address over the RPL domain.
Req2.2: The Address Registration Option that is used in the ND registration SHOULD be extended to carry enough information to generate a DAO message as specified in [RFC6550] section 6.4, in particular the capability to compute a DAOSequence and, as an option, a RPLInstanceID.
Req2.3: Depending on their applicability to LLNs, other standard mesh/MANET protocols MAY be considered as well.
Req2.4: Multicast operations SHOULD be supported and optimized. Groups MAY be formed by device type (e.g. routers, street lamps), location (Geography, RPL sub-tree), or both. RPL already has the capability to advertise multicast groups; whether ND is appropriate for the registration to the 6BBR is to be defined, considering the additional burden of supporting the Multicast Listener Discovery Version 2 [RFC3810] (MLDv2) for IPv6.
6LoWPAN ND [RFC6775] was defined with a focus on IEEE802.15.4 and in particular the capability to derive a unique Identifier from a globally unique MAC-64 address. At this point, the 6lo Working Group is extending the 6LoWPAN Header Compression (HC) [RFC6282] technique to other link types ITU-T G.9959 [I-D.brandt-6man-lowpanz], Master-Slave/Token-Passing [I-D.ietf-6lo-6lobac], DECT Ultra Low Energy [I-D.ietf-6lo-dect-ule], Near Field Communication [I-D.hong-6lo-ipv6-over-nfc], as well as IEEE1901.2 Narrowband Powerline Communication Networks [I-D.popa-6lo-6loplc-ipv6-over-ieee19012-networks] and BLUETOOTH(R) Low Energy [I-D.ietf-6lo-btle].
Related requirements are:
Req3.1: The support of the registration mechanism SHOULD be extended to more LLN links, matching at least the links that are considered by 6lo as well as other popular Low-Power links such as Low-Power Wi-Fi.
Req3.2: As part of this extension, a mechanism to compute a unique Identifier should be provided, with the capability to form a Link-Local Address that can not be a duplicate. The Identifier SHOULD be unique at least to the domain where an Address formed by this device may be advertised through ND mechanisms.
Req3.3: The Address Registration Option used in the ND registration SHOULD be extended to carry the relevant forms of unique Identifier.
Sleeping 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 proxy operation by a 6BBR. Additionally, the device may need to rely on the 6LBR to perform that registration to the 6BBR.
Related requirements are:
Req4.1: The registration mechanism SHOULD enable a third party to proxy register an Address on behalf of a 6LoWPAN node that may be sleeping or located deeper in an LLN mesh.
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 node successfully registers an address, 6LoWPAN ND should provide energy-efficient means to protect that ownership even if the node is sleeping. In particular, the 6LR and the 6LBR then should be able to verify whether a subsequent registration for a same Address comes from a same node or is a duplicate.
Related requirements are:
Req5.1: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for the 6LR, 6LBR and 6BBR to authenticate and authorize one another for their respective roles, as well as with the 6LoWPAN Node for the role of 6LR.
Req5.2: 6LoWPAN ND security mechanisms SHOULD provide a mechanism for the 6LR and the 6LBR to validate whether a new registration corresponds to a same 6LoWPAN Node, and, if not, determine the rightful owner, and deny or clean-up the registration that is deemed in excess.
Req5.3: 6LoWPAN ND security mechanisms SHOULD lead to small packet sizes. In particular, the NS, NA, DAR and DAC messages for a re-registration flow SHOULD NOT exceed 80 octets so as to fit in a secured IEEE802.15.4 frame.
Req5.4: Recurrent 6LoWPAN ND security operations MUST NOT be computationally intensive on the LoWPAN Node CPU. When a Key hash calculation is employed, a mechanism lighter than SHA-1 SHOULD be preferred.
Req5.5: The number of Keys that the 6LoWPAN Node needs to manipulate SHOULD be minimized.
Req5.6: The 6LoWPAN ND security mechanisms SHOULD enable CCM* for use at both Layer 2 and Layer 3, and SHOULD enable the reuse of security code that has to be present on the device for upper layer security such as TLS.
Req5.7: Public key and signature sizes SHOULD be minimized while maintaining adequate confidentiality and data origin authentication for multiple types of applications with various degrees of criticality.
The ND registration method is designed to save energy on Low-Power devices, and in particular enable duty-cycled devices that are sleeping most of the time and not capable to defend their own Addresses against always-on devices.
Related requirements are:
Req6.1: The registration mechanism SHOULD be applicable to a Low-Power device regardless of the link type, and enable a 6BBR to operate as a proxy to defend the registered Addresses on its behalf.
Req6.2: The registration mechanism SHOULD enable long sleep durations, in the order of multiple days to a month, for devices capable of operating over the course of ten or more years without the need to recharge or replace the batteries.
Use cases from Automatic Meter Reading (AMR, collection tree operations) and Advanced Metering Infrastructure (AMI, bi-directional 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 to the 6LBR over a large number of LLN hops (e.g. 15).
Related requirements are:
Req7.1: The registration mechanism SHOULD enable a single 6LBR to register multiple thousands of devices.
Req7.2: The timing of the registration operation should allow for a large latency such as found in LLNs with ten and more hops.
This specification expects that the link layer is sufficiently protected, either by means of physical or IP security for the Backbone Link or MAC sublayer cryptography. In particular, it is expected that the LLN MAC provides secure unicast to/from the Backbone Router and secure broadcast from the Backbone Router in a way that prevents tempering with or replaying the RA messages. Still, Section 4.5 has a requirement for a mutual authentication and authorization for a role for 6LRs, 6LBRs and 6BBRs.
This documents also suggests in Appendix A.4 that a 6LoWPAN Node could form a single Unique Interface ID (CUID) based on cryptographic techniques similar to CGA. The CUID would be used as Unique Interface Identifier in the ARO option and new Secure ND procedures would be proposed to use it as opposed to the source IPv6 address to secure the binding between an Address and its owning Node, and enforce First/Come-First/Serve at the 6LBR.
This draft does not require an IANA action.
The author wishes acknowledge the contributions by Samita Chakrabarti, Erik Normark, JP Vasseur, Eric Levy-Abegnoli, Patrick Wetterwald, Thomas Watteyne, and Behcet Sarikaya.
The NS message used for registration should use a source address that respects the rules in [RFC6775], [RFC4861], and [RFC4429] for DAD. The SLLA Option may be present but only if the address passed DAD, and it is used to allow the 6LR to respond as opposed to as a registration mechanism.
The address that is being registered is the target address in the NS message and the TLLA Option must be present.
[I-D.chakrabarti-nordmark-6man-efficient-nd] adds an 'E' bit in the Router Advertisement flag, as well as a new Registrar Address Option (RAO). These fields are probably pertinent to LLNs inclusion into a revised 6LoWPAN ND should be studied. If the new 6LoWPAN flows require a change of behaviour (e.g. registering the Target of the NS message) then the RA must indicate that the router supports the new capability, and the NS must indicate that the Target is registered as opposed to the Source in an unequivocal fashion.
There is some amount of duplication between the options in the RPL DIO [RFC6550] and the options in the ND RA messages. At the same time, there are a number of options, including the 6LoWPAN Context Option (6CO) [RFC6775], the MTU and the SLLA Options [RFC4861] that can only be found in the RA messages. Considering that these options are useful for a joining node, the recommendation would be to associate the RA messages to the join beacon, and make them rare when the network is stable. On the other hand, the DIO message is to be used as the propagated heartbeat of the RPL network and provide the sense of time and liveliness.
RAs should also be issued and the information therein propagated when a change occurs in the information therein, such as a router or a prefix lifetime.
If the RPL root serves as 6LBR, it makes sense to add at least a bit of information in the DIO to signal so. A Registrar Address Option (RAO) may also be considered for addition.
The ARO option contains a Unique ID that is supposed to identify the device across multiple registrations. It is envisioned that the device could form a single CGA-based Unique Interface ID (CUID) to securely bind all of its addresses. The CUID would be used as Unique Interface Identifier in the ARO option and to form a Link-Local address that would be deemed unique regardless of the Link type. Provided that the relevant cryptographic material is passed to the 6LBR upon the first registration or on-demand at a later time, the 6LBR can validate that a Node is effectively the owner of a CUID, and ensure that the ownership of an Address stays with the CUID that registered it first.
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 | Status | RPLInstanceID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Res|P|N| IDS |T| TID | Registration Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Unique Interface Identifier (variable length) ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: EARO
This option is designed to be used with standard NS and NA messages between backbone Routers as well as between nodes and 6LRs over the LLN and between the 6LBR and the 6BBR over whatever IP link they use to communicate.
The representation above is based on [I-D.chakrabarti-nordmark-6man-efficient-nd]. Only the proposed changes from that specification are discussed below but the expectation is that 6LoWPAN ND and Efficient ND converge on the ARO format.