draft-ietf-roll-turnon-rfc8138-07.txt | draft-ietf-roll-turnon-rfc8138-08.txt | |||
---|---|---|---|---|
ROLL P. Thubert, Ed. | ROLL P. Thubert, Ed. | |||
Internet-Draft L. Zhao | Internet-Draft L. Zhao | |||
Updates: 6550, 8138 (if approved) Cisco Systems | Updates: 8138 (if approved) Cisco Systems | |||
Intended status: Standards Track 17 April 2020 | Intended status: Standards Track 8 July 2020 | |||
Expires: 19 October 2020 | Expires: 9 January 2021 | |||
A RPL Configuration Option for the 6LoWPAN Routing Header | A RPL DODAG Configuration Option for the 6LoWPAN Routing Header | |||
draft-ietf-roll-turnon-rfc8138-07 | draft-ietf-roll-turnon-rfc8138-08 | |||
Abstract | Abstract | |||
This document updates RFC 8138 and RFC 6550 by defining a bit in the | This document updates RFC 8138 and RFC 6550 by defining a bit in the | |||
RPL configuration option to indicate whether RFC 8138 compression is | RPL DODAG Configuration Option to indicate whether RFC 8138 | |||
used within the RPL Instance, and specify the behavior of RFC | compression is used within the RPL Instance, and specify the behavior | |||
8138-capable nodes when the bit is set and reset. | of RFC 8138-capable nodes when the bit is set and reset. | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 19 October 2020. | This Internet-Draft will expire on 9 January 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 11 ¶ | skipping to change at page 2, line 11 ¶ | |||
extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. References . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. References . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2.3. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.3. Requirements Language . . . . . . . . . . . . . . . . . . 4 | |||
3. Updating RFC 6550 . . . . . . . . . . . . . . . . . . . . . . 4 | 3. The RPL DODAG Configuration Option . . . . . . . . . . . . . 4 | |||
4. Updating RFC 8138 . . . . . . . . . . . . . . . . . . . . . . 4 | 4. Updating RFC 8138 . . . . . . . . . . . . . . . . . . . . . . 5 | |||
5. Transition Scenarios . . . . . . . . . . . . . . . . . . . . 5 | 5. Transition Scenarios . . . . . . . . . . . . . . . . . . . . 5 | |||
5.1. Inconsistent State While Migrating . . . . . . . . . . . 6 | 5.1. Coexistence . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
5.2. Single RPL Instance Scenario . . . . . . . . . . . . . . 6 | 5.2. Inconsistent State While Migrating . . . . . . . . . . . 6 | |||
5.3. Double RPL Instances Scenario . . . . . . . . . . . . . . 7 | 5.3. Rolling Back . . . . . . . . . . . . . . . . . . . . . . 6 | |||
5.4. Rolling Back . . . . . . . . . . . . . . . . . . . . . . 8 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | 9. Normative References . . . . . . . . . . . . . . . . . . . . 8 | |||
9. Normative References . . . . . . . . . . . . . . . . . . . . 9 | 10. Informative References . . . . . . . . . . . . . . . . . . . 8 | |||
10. Informative References . . . . . . . . . . . . . . . . . . . 9 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
1. Introduction | 1. Introduction | |||
The transition of a RPL [RFC6550] network to activate the compression | The packet compression technique defined in [RFC8138] can only be | |||
defined in [RFC8138] can only be done when all routers in the network | activated in a RPL [RFC6550] network when all the nodes support it. | |||
support it. Otherwise, a non-capable node acting as a router would | Otherwise, a non-capable node acting as leaf-only would fail to | |||
drop the compressed packets and black-hole its subDAG. In a mixed | communicate, and acting as a router it would drop the compressed | |||
case with both RFC8138-capable and non-capable nodes, the compression | packets and black-hole a portion of the network. | |||
may be turned on only if all the non-capable nodes act as Hosts and | ||||
their RPL parents handle the compression/decompression for them. | ||||
The original idea was to use a flag day but that proved impractical | ||||
in a number of situations such as a large metering network that is | ||||
used in production and incurs financial losses when interrupted. | ||||
This specification is designed for the scenario where a live network | ||||
is upgraded to support [RFC8138]. During the migration, the | ||||
compression should remain inactive, until all nodes are upgraded. | ||||
This document complements [RFC8138] and dedicates a flag in the RPL | This document complements [RFC8138] and dedicates a flag in the RPL | |||
configuration option to indicate whether [RFC8138] compression should | DODAG Configuration Option to indicate whether the [RFC8138] | |||
be used within the RPL Instance. The setting of this new flag is | compression should be used within the RPL DODAG. | |||
controlled by the Root and propagates as is in the whole network. | ||||
When the bit is not set, source nodes that support [RFC8138] should | ||||
refrain from using the compression unless the information is | ||||
superseded by configuration. | ||||
With RPL, a leaf is an IPv6 Host, which implies that leaves do not | The setting of this new flag is controlled by the Root and propagates | |||
forward packets. This specification provides scenarios that force a | as is in the whole network as part of the normal RPL signaling. | |||
non-capable RPL-Aware Node (RAN) to become a leaf. The parent router | ||||
must know, e.g., by configuration, or leveraging "RPL Capabilities" | The idea is to use the flag to maintain the compression inactive | |||
[CAPABILITIES], when a leaf does not support the compression defined | during the migration phase. When the migration is complete (e.g., as | |||
in [RFC8138]. This is implicitly the case for a RPL-Unaware Leaf | known by network management and/or inventory), the flag is set and | |||
(RUL) but is not known for a RPL-Aware Leaf (RAL). The parent router | the compression is globally activated in the whole DODAG. | |||
must uncompress the packets before delivering them to a non-capable | ||||
leaf and it must compress the traffic from the leaf. | ||||
2. Terminology | 2. Terminology | |||
2.1. References | 2.1. References | |||
The Terminology used in this document is consistent with and | The Terminology used in this document is consistent with and | |||
incorporates that described in "Terms Used in Routing for Low-Power | incorporates that described in "Terms Used in Routing for Low-Power | |||
and Lossy Networks (LLNs)" [RFC7102]. Other terms in use in LLNs are | and Lossy Networks (LLNs)" [RFC7102]. Other terms in use in LLNs are | |||
found in "Terminology for Constrained-Node Networks" [RFC7228]. | found in "Terminology for Constrained-Node Networks" [RFC7228]. | |||
skipping to change at page 4, line 5 ¶ | skipping to change at page 4, line 5 ¶ | |||
RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks | RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks | |||
OF: RPL Objective Function | OF: RPL Objective Function | |||
OCP: RPL Objective Code Point | OCP: RPL Objective Code Point | |||
MOP: RPL Mode of Operation | MOP: RPL Mode of Operation | |||
RPI: RPL Packet Information | RPI: RPL Packet Information | |||
RAL: RPL-Aware Leaf | RAL: RPL-Aware Leaf | |||
RAN: RPL-Aware Node | RAN: RPL-Aware Node | |||
RUL: RPL-Unaware Leaf | RUL: RPL-Unaware Leaf | |||
SRH: Source Routing Header | SRH: Source Routing Header | |||
2.3. BCP 14 | 2.3. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119][RFC8174] when, and only when, they appear in all | 14 [RFC2119][RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Updating RFC 6550 | 3. The RPL DODAG Configuration Option | |||
The DODAG Configuration Option is defined in Section 6.7.6 of | ||||
[RFC6550]. | ||||
The RPL DODAG Configuration Option is typically placed in a DODAG | ||||
Information Object (DIO) message. The DIO message propagates down | ||||
the DODAG to form and then maintain its structure. The DODAG | ||||
Configuration Option is copied unmodified from parents to children. | ||||
As shown in Figure 1, the DODAG Configuration Option was designed | ||||
with 4 bit positions reserved for future use as Flags. | ||||
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 = 0x04 |Opt Length = 14| Flags |A| ... | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | ||||
| ... | | ||||
Figure 1: DODAG Configuration Option (Partial View) | ||||
This specification defines a new flag "Enable RFC8138 Compression" | This specification defines a new flag "Enable RFC8138 Compression" | |||
(T). The "T" flag is set to turn on the use of the compression of | (T). The "T" flag is set to turn-on the use of the compression of | |||
RPL artifacts with [RFC8138] within a RPL Instance. If a RPL | RPL artifacts with [RFC8138] within the DODAG. The new "T" flag is | |||
Instance has multiple Roots then they must be coordinated to use the | encoded in one of the reserved bits in the RPL DODAG Configuration | |||
same setting. | Option. The suggested bit position of the "T" flag is indicated in | |||
Section 6. | ||||
RPL defines a Configuration Option that is registered to IANA in | /[RFC6550] states, [RFC6550] states, when referring to the DODAG | |||
section 20.14. of [RFC6550]. The "T" flag is encoded in one of the | Configuration Option, that "Nodes other than the DODAG Root MUST NOT | |||
reserved control bits in the RPL Configuration Option. The bit | modify this information when propagating the DODAG Configuration | |||
position of the "T" flag is indicated in Section 6. | option". Therefore, even a legacy parent propagates the "T" flag as | |||
set by the Root whether it supports this specification or not. So | ||||
when the "T" flag is set, it is transparently flooded to all the | ||||
nodes in the DODAG. | ||||
Section 6.3.1. of [RFC6550] defines a 3-bit Mode of Operation (MOP) | Section 6.3.1. of [RFC6550] defines a 3-bit Mode of Operation (MOP) | |||
in the DIO Base Object. The new "T" flag is defined only for MOP | in the DIO Base Object. The new "T" flag is defined only for MOP | |||
value between 0 to 6. For a MOP value of 7 or above, the flag MAY | value between 0 to 6. | |||
indicate something different and MUST NOT be interpreted as "Enable | ||||
RFC8138 Compression" unless the specification of the MOP indicates to | ||||
do so. | ||||
4. Updating RFC 8138 | 4. Updating RFC 8138 | |||
A node that supports this specification MUST source packets in the | A node SHOULD source packets in the compressed form using [RFC8138] | |||
compressed form using [RFC8138] if and only if the "T" flag is set. | if and only if the "T" flag is set. This behaviour can be overridden | |||
This behaviour can be overridden by the configuration of the node in | by e.g., configuration or network management. Overriding may be | |||
order to cope with intermediate implementations of the Root that | needed e.g., to cope with a legacy implementations of the Root that | |||
support [RFC8138] but not this specification and cannot set the "T" | supports [RFC8138] but not this specification and cannot set the "T" | |||
flag. | flag. | |||
The decision of using [RFC8138] is made by the originator of the | The decision of using [RFC8138] is made by the originator of the | |||
packet depending on its capabilities and its knowledge of the state | packet depending on its capabilities and its knowledge of the state | |||
of the "T" flag. A router that encapsulates a packet is the | of the "T" flag. A router that encapsulates a packet is the | |||
originator of the resulting packet and decides whether to compress | originator of the resulting packet and is responsible to compress the | |||
the outer headers as indicated above. An external target | outer headers with [RFC8138], but it MUST leave the encapsulated | |||
[USEofRPLinfo] is not expected to support [RFC8138]. An intermediate | packet as is. | |||
router MUST forward the packet in the form that the source used, | ||||
either compressed or uncompressed, unless it is forwarding to an | An external target [USEofRPLinfo] is not expected to support | |||
external target or delivering to a leaf that is not known to support | [RFC8138]. In most cases, packets from/to an external target are | |||
[RFC8138], in which cases it MUST uncompress the packet. | tunneled back and forth between the RPL border router and the Root | |||
regardless of the MOP used in the RPL DODAG. The inner packet is | ||||
typically not compressed with [RFC8138] so the 6LR just needs to | ||||
decapsulate the (compressed) outer header and forward the | ||||
(uncompressed) inner packet towards the external target. | ||||
A router MUST uncompress a packet that is to be forwarded to an | ||||
external target. Otherwise, the router MUST forward the packet in | ||||
the form that the source used, either compressed or uncompressed. | ||||
A RUL [UNAWARE-LEAVES] is both a leaf and an external target . A RUL | ||||
does not participate in RPL and depends on the parent router to | ||||
obtain connectivity. In the case of a RUL, forwarding towards an | ||||
external target actually means delivering the packet. | ||||
5. Transition Scenarios | 5. Transition Scenarios | |||
A node that supports [RFC8138] but not this specification can only be | A node that supports [RFC8138] but not this specification can only be | |||
used in an homogeneous network. Enabling the [RFC8138] compression | used in an homogeneous network. Enabling the [RFC8138] compression | |||
requires a "flag day"; all nodes must be upgraded, and then the | requires a "flag day"; all nodes must be upgraded, and then the | |||
network can be rebooted with the [RFC8138] compression turned on. | network can be rebooted with the [RFC8138] compression turned on. | |||
A node that supports this specification can work in a network with | ||||
[RFC8138] compression turned on or off with the "T" flag set | ||||
accordingly and in a network in transition from off to on or on to | ||||
off (see Section 5.1). | ||||
A node that does not support [RFC8138] can interoperate with nodes | ||||
that do in a network with [RFC8138] compression turned off. If the | ||||
compression is turned on, the node cannot forward compressed packets | ||||
and therefore it cannot act as a router. It may remain connected to | ||||
that network as a leaf, generates uncompressed packets, and can | ||||
receive packets if they are delivered by the parent router in the | ||||
uncompressed form. Unless this is known by other means, the node | ||||
SHOULD join as a RUL as an indication that its parent router needs to | ||||
uncompress the packets before delivering. | ||||
[RFC6550] states that "Nodes other than the DODAG Root MUST NOT | ||||
modify this information when propagating the DODAG Configuration | ||||
option". Therefore, even a legacy parent propagates the "T" flag as | ||||
set by the Root whether it supports this specification or not. So | ||||
when the "T" flag is set, it is transparently flooded to all the | ||||
nodes in the RPL Instance. | ||||
Sections 8.5 and 9.2 of [RFC6550] also suggests that a RAN may only | ||||
attach to a DODAG as a leaf when it does not support the Mode of | ||||
Operation of a RPL Instance, the Objective Function (OF) as indicated | ||||
by the Objective Code Point (OCP) or some other parameters in the | ||||
configuration option. | ||||
This specification reiterates that a RAN that is configured to | ||||
operate in a RPL Instance but does not support a value for a known | ||||
parameter that is mandatory for routing, such as the OCP, MUST NOT | ||||
operate as a router but MAY still join as a leaf. Note that a legacy | ||||
RAN will not recognize when a reserved field is used and will not | ||||
turn to a leaf when the "T" flag is set. | ||||
The intent for this specification is to perform a migration once and | The intent for this specification is to perform a migration once and | |||
for all without the need for a flag day. In particular it is not the | for all without the need for a flag day. In particular it is not the | |||
intention to undo the setting of the "T" flag, and though it is | intention to undo the setting of the "T" flag. Though it is possible | |||
possible to roll back (see Section 5.4), adding nodes that do not | to roll back (see Section 5.3), adding nodes that do not support | |||
support [RFC8138] after a roll back may be problematic if the roll | [RFC8138] after a roll back may be problematic if the roll back did | |||
back is not fully complete (see caveats in Section 5.2). | not fully complete. | |||
5.1. Inconsistent State While Migrating | ||||
When the "T" flag is turned on in the configuration option by the | ||||
Root, the information slowly percolates through the DODAG as the DIO | ||||
gets propagated. | ||||
Some nodes will see the flag and start sourcing packets in the | ||||
compressed form while other nodes in the same RPL Instance are still | ||||
not aware of it. Conversely, in non-storing mode, the Root will | ||||
start using [RFC8138] with a Source Routing Header 6LoRH (SRH-6LoRH) | ||||
that routes all the way to the parent router or to the leaf. | ||||
To ensure that a packet is forwarded across the RPL Instance in the | ||||
form in which it was generated, it is required that all the routers | ||||
support [RFC8138] at the time of the switch, and that all nodes that | ||||
do not support [RFC8138] only operate as leaves. | ||||
Setting the "T" flag is ultimately the responsibility of the network | ||||
administrator. In a case of upgrading a network to turn the | ||||
compression on, the network SHOULD be operated with the "T" flag | ||||
reset until all targeted nodes are upgraded to support this | ||||
specification. Section 5.2 and Section 5.3 provide possible | ||||
transition scenarios where this can be enforced. | ||||
5.2. Single RPL Instance Scenario | ||||
In a Single RPL Instance Scenario, nodes that support [RFC8138] are | ||||
configured with a new OCP, that may use the same OF operation or a | ||||
variation of it, while nodes that do not support [RFC8138] are not, | ||||
but are configured to join an unknown OCP. | ||||
The Root migrates to the new OCP before it sets the "T" flag, so that | ||||
nodes that do not support [RFC8138] are all attached as leaves when | ||||
the "T" flag is eventually set. | ||||
The parent router - which supports [RFC8138] - compresses the packets | ||||
originated from the leaf and uncompresses the packets going to the | ||||
leaf. This may be done on the fly by the parent of a non-capable | ||||
RAL, or as part of the tunneling operation between the parent and the | ||||
Root, if the leaf behaves as a RUL. This is described in section 7, | ||||
8, and 9 of [USEofRPLinfo]. | ||||
Note that though tunneling from the Root to the parent is the generic | ||||
case for RULs, on paper it is possible for the Root to avoid it for | ||||
the traffic that it originates. The Root SHOULD always use tunneling | ||||
to the parent of a RUL, even for its own packets, unless it knows | ||||
that the leaf supports [RFC8138]. | ||||
This scenario presents a number of caveats: | ||||
* The method consumes an extra OCP. It also forces nodes that do | ||||
not support [RFC8138] to operate as RULs, unless there is a method | ||||
to let the parent router know that it must uncompress the packet | ||||
for this RAL. | ||||
* If the RPL implementation of a node does not turn it to a leaf | ||||
when the OCP is changed to an unknown one, then the node may be | ||||
stalled. | ||||
* If the only possible parents of a node are nodes that do not | 5.1. Coexistence | |||
support [RFC8138], then that node will loose all its parent at the | ||||
time of the migration and it will be stalled until a parent is | ||||
deployed with the new capability. | ||||
5.3. Double RPL Instances Scenario | A node that supports this specification can operate in a network with | |||
the [RFC8138] compression turned on or off with the "T" flag set | ||||
accordingly and in a network in transition from off to on or on to | ||||
off (see Section 5.2). | ||||
An alternative to the Single RPL Instance Scenario is to deploy an | A node that does not support [RFC8138] can interoperate with nodes | |||
additional RPL Instance for the nodes that support [RFC8138]. | that do in a network with [RFC8138] compression turned off. If the | |||
compression is turned on, all the RPL-Aware Nodes are expected to be | ||||
able to handle compressed packets in the compressed form. A node | ||||
that cannot do so may remain connected to the network as a RUL, but | ||||
how the node is modified to turn into a RUL is out of scope. | ||||
The two RPL Instances operate independently as specified in | 5.2. Inconsistent State While Migrating | |||
[RFC6550]. The preexisting RPL Instance does not use [RFC8138], | ||||
whereas the new RPL Instance does. This is signaled by the "T" flag | ||||
which is only set in the configuration option in DIO messages in the | ||||
new RPL Instance. | ||||
Nodes that support [RFC8138] participate in both Instances but favor | When the "T" flag is turned on by the Root, the information slowly | |||
the new RPL Instance for the traffic that they source. By contrast, | percolates through the DODAG as the DIO gets propagated. Some nodes | |||
nodes that only support the uncompressed format would either not be | will see the flag and start sourcing packets in the compressed form | |||
configured for the new RPL Instance, or would be configured to join | while other nodes in the same RPL DODAG are still not aware of it. | |||
it as leaves only. | Conversely, in non-storing mode, the Root will start using [RFC8138] | |||
with a Source Routing Header 6LoRH (SRH-6LoRH) that routes all the | ||||
way to the parent router or to the leaf. | ||||
This method eliminates the risks of nodes being stalled that are | To ensure that a packet is forwarded across the RPL DODAG in the form | |||
described in Section 5.2 but requires implementations to support at | in which it was generated, it is required that all the RPL nodes | |||
least two RPL Instances and demands management capabilities to | support [RFC8138] at the time of the switch. | |||
introduce new RPL Instances and deprecate old ones. | ||||
The 2 instances MUST be operated with the same security guarantees, | Setting the "T" flag is ultimately the responsibility of the Network | |||
e.g., both "unsecured" with a lower layer security of a same | Administrator. The expectation is that the network management or | |||
strength, both "preinstalled" or both "authenticated" security mode | upgrading tools in place enable the Network Administrator to know | |||
(see section 3.2.3 of [RFC6550] for more details on those modes). | when all the nodes that may join a DODAG were migrated. In the case | |||
The latter mode could be use to enforce the segregation of updated | of a RPL instance with multiple Roots, all nodes that participate to | |||
and non-updated nodes, by providing the keys for joining as routers | the RPL Instance may potentially join any DODAG. The network MUST be | |||
to the updated nodes only. | operated with the "T" flag reset until all nodes in the RPL Instance | |||
are upgraded to support this specification. | ||||
5.4. Rolling Back | 5.3. Rolling Back | |||
After downgrading a network to turn the [RFC8138] compression off, | When turning [RFC8138] compression off in the network, the Network | |||
the administrator SHOULD make sure that all nodes have converged to | Administrator MUST wait until all nodes have converged to the "T" | |||
the "T" flag reset before allowing nodes that do not support the | flag reset before allowing nodes that do not support the compression | |||
compression in the network (see caveats in Section 5.2). | in the network. | |||
It is RECOMMENDED to only deploy nodes that support [RFC8138] in a | It is RECOMMENDED to only deploy nodes that support [RFC8138] in a | |||
network where the compression is turned on. A node that does not | network where the compression is turned on. A node that does not | |||
support [RFC8138] MUST only be used as a leaf. | support [RFC8138] MUST only be used as a RUL. | |||
6. IANA Considerations | 6. IANA Considerations | |||
This specification updates the Registry for the "DODAG Configuration | IANA is requested to assign a new option flag from the Registry for | |||
Option Flags" that was created for [RFC6550] as follows: | the "DODAG Configuration Option Flags" that was created for [RFC6550] | |||
as follows: | ||||
+------------+---------------------------------+-----------+ | +---------------+---------------------------------+-----------+ | |||
| Bit Number | Capability Description | Reference | | | Bit Number | Capability Description | Reference | | |||
+============+=================================+===========+ | +---------------+---------------------------------+-----------+ | |||
| 2 | Turn on RFC8138 Compression (T) | THIS RFC | | | 2 (suggested) | Turn on RFC8138 Compression (T) | THIS RFC | | |||
+------------+---------------------------------+-----------+ | +---------------+---------------------------------+-----------+ | |||
Table 1: New DODAG Configuration Option Flag | Table 1: New DODAG Configuration Option Flag | |||
The DODAG Configuration Option Flags defined so far will be obsolete | ||||
for RPL Mode of Operation (MOP) above and including 7. | ||||
IANA is requested to update the name of the Registry from "DODAG | ||||
Configuration Option Flags" to "DODAG Configuration Option Flags for | ||||
RPL MOP 0..6". | ||||
When MOP values of 7 and more are defined, a new registry will be | ||||
needed. | ||||
7. Security Considerations | 7. Security Considerations | |||
First of all, it is worth noting that with [RFC6550], every node in | First of all, it is worth noting that with [RFC6550], every node in | |||
the LLN that is RPL-aware can inject any RPL-based attack in the | the LLN that is RPL-aware can inject any RPL-based attack in the | |||
network. A trust model MUST be put in place so that rogue nodes are | network. A trust model has to be put in place in an effort to | |||
excluded from participating to the RPL and the 6LowpAN signaling, and | exclude rogue nodes from participating to the RPL and the 6LoWPAN | |||
from the data packet exchange. This trust model could be at a | signaling, as well as from the data packet exchange. This trust | |||
minimum based on a Layer-2 Secure joining and the Link-Layer | model could be at a minimum based on a Layer-2 Secure joining and the | |||
security. This is a generic RPL and 6LoWPAN requirement, see Req5.1 | Link-Layer security. This is a generic RPL and 6LoWPAN requirement, | |||
in Appendix of [RFC8505]. | see Req5.1 in Appendix of [RFC8505]. | |||
Setting the "T" flag before some routers are upgraded may cause a | Setting the "T" flag before all routers are upgraded may cause a loss | |||
loss of packets. The new bit is protected as the rest of the | of packets. The new bit is protected as the rest of the | |||
configuration so this is just one of the many attacks that can happen | configuration so this is just one of the many attacks that can happen | |||
if an attacker manages to inject a corrupted configuration. | if an attacker manages to inject a corrupted configuration. | |||
Setting and resetting the "T" flag may create inconsistencies in the | Setting and resetting the "T" flag may create inconsistencies in the | |||
network but as long as all nodes are upgraded to [RFC8138] support | network but as long as all nodes are upgraded to [RFC8138] support | |||
they will be able to forward both forms. The source is responsible | they will be able to forward both forms. The source is responsible | |||
for selecting whether the packet is compressed or not, and all | for selecting whether the packet is compressed or not, and all | |||
routers must use the format that the source selected. So the result | routers must use the format that the source selected. So the result | |||
of an inconsistency is merely that both forms will be present in the | of an inconsistency is merely that both forms will be present in the | |||
network, at an additional cost of bandwidth for packets in the | network, at an additional cost of bandwidth for packets in the | |||
uncompressed form. | uncompressed form. | |||
8. Acknowledgments | 8. Acknowledgments | |||
The authors wish to thank Dominique Barthel and Rahul Jadhav for | The authors wish to thank Alvaro Retana, Dominique Barthel and Rahul | |||
their in-depth reviews and constructive suggestions. | Jadhav for their in-depth reviews and constructive suggestions. | |||
Also many thanks to Michael Richardson for being always helpful and | ||||
responsive when need comes. | ||||
9. Normative References | 9. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
skipping to change at page 9, line 32 ¶ | skipping to change at page 8, line 35 ¶ | |||
Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | |||
JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | |||
Low-Power and Lossy Networks", RFC 6550, | Low-Power and Lossy Networks", RFC 6550, | |||
DOI 10.17487/RFC6550, March 2012, | DOI 10.17487/RFC6550, March 2012, | |||
<https://www.rfc-editor.org/info/rfc6550>. | <https://www.rfc-editor.org/info/rfc6550>. | |||
[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, <https://www.rfc-editor.org/info/rfc7102>. | 2014, <https://www.rfc-editor.org/info/rfc7102>. | |||
[RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | |||
Constrained-Node Networks", RFC 7228, | "IPv6 over Low-Power Wireless Personal Area Network | |||
DOI 10.17487/RFC7228, May 2014, | (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | |||
<https://www.rfc-editor.org/info/rfc7228>. | April 2017, <https://www.rfc-editor.org/info/rfc8138>. | |||
[USEofRPLinfo] | ||||
Robles, I., Richardson, M., and P. Thubert, "Using RPI | ||||
Option Type, Routing Header for Source Routes and IPv6-in- | ||||
IPv6 encapsulation in the RPL Data Plane", Work in | ||||
Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-38, | ||||
23 March 2020, <https://tools.ietf.org/html/draft-ietf- | ||||
roll-useofrplinfo-38>. | ||||
[UNAWARE-LEAVES] | ||||
Thubert, P. and M. Richardson, "Routing for RPL Leaves", | ||||
Work in Progress, Internet-Draft, draft-ietf-roll-unaware- | ||||
leaves-14, 11 April 2020, <https://tools.ietf.org/html/ | ||||
draft-ietf-roll-unaware-leaves-14>. | ||||
10. Informative References | 10. Informative References | |||
[RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | [RFC6553] Hui, J. and JP. Vasseur, "The Routing Protocol for Low- | |||
Power and Lossy Networks (RPL) Option for Carrying RPL | Power and Lossy Networks (RPL) Option for Carrying RPL | |||
Information in Data-Plane Datagrams", RFC 6553, | Information in Data-Plane Datagrams", RFC 6553, | |||
DOI 10.17487/RFC6553, March 2012, | DOI 10.17487/RFC6553, March 2012, | |||
<https://www.rfc-editor.org/info/rfc6553>. | <https://www.rfc-editor.org/info/rfc6553>. | |||
[RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | |||
"IPv6 over Low-Power Wireless Personal Area Network | Constrained-Node Networks", RFC 7228, | |||
(6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | DOI 10.17487/RFC7228, May 2014, | |||
April 2017, <https://www.rfc-editor.org/info/rfc8138>. | <https://www.rfc-editor.org/info/rfc7228>. | |||
[RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. | |||
Perkins, "Registration Extensions for IPv6 over Low-Power | Perkins, "Registration Extensions for IPv6 over Low-Power | |||
Wireless Personal Area Network (6LoWPAN) Neighbor | Wireless Personal Area Network (6LoWPAN) Neighbor | |||
Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, | |||
<https://www.rfc-editor.org/info/rfc8505>. | <https://www.rfc-editor.org/info/rfc8505>. | |||
[CAPABILITIES] | [UNAWARE-LEAVES] | |||
Jadhav, R., Thubert, P., Richardson, M., and R. Sahoo, | Thubert, P. and M. Richardson, "Routing for RPL Leaves", | |||
"RPL Capabilities", Work in Progress, Internet-Draft, | Work in Progress, Internet-Draft, draft-ietf-roll-unaware- | |||
draft-ietf-roll-capabilities-02, 11 March 2020, | leaves-18, 12 June 2020, <https://tools.ietf.org/html/ | |||
<https://tools.ietf.org/html/draft-ietf-roll-capabilities- | draft-ietf-roll-unaware-leaves-18>. | |||
02>. | ||||
[USEofRPLinfo] | ||||
Robles, I., Richardson, M., and P. Thubert, "Using RPI | ||||
Option Type, Routing Header for Source Routes and IPv6-in- | ||||
IPv6 encapsulation in the RPL Data Plane", Work in | ||||
Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-40, | ||||
25 June 2020, <https://tools.ietf.org/html/draft-ietf- | ||||
roll-useofrplinfo-40>. | ||||
Authors' Addresses | Authors' Addresses | |||
Pascal Thubert (editor) | Pascal Thubert (editor) | |||
Cisco Systems, Inc | Cisco Systems, Inc | |||
Building D | Building D | |||
45 Allee des Ormes - BP1200 | 45 Allee des Ormes - BP1200 | |||
06254 MOUGINS - Sophia Antipolis | 06254 MOUGINS - Sophia Antipolis | |||
France | France | |||
End of changes. 38 change blocks. | ||||
248 lines changed or deleted | 195 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |