draft-ietf-roll-turnon-rfc8138-18.txt | rfc9035.txt | |||
---|---|---|---|---|
ROLL P. Thubert, Ed. | Internet Engineering Task Force (IETF) P. Thubert, Ed. | |||
Internet-Draft L. Zhao | Request for Comments: 9035 L. Zhao | |||
Updates: 8138 (if approved) Cisco Systems | Updates: 8138 Cisco Systems | |||
Intended status: Standards Track 18 December 2020 | Category: Standards Track April 2021 | |||
Expires: 21 June 2021 | ISSN: 2070-1721 | |||
A RPL DODAG Configuration Option for the 6LoWPAN Routing Header | A Routing Protocol for Low-Power and Lossy Networks (RPL) | |||
draft-ietf-roll-turnon-rfc8138-18 | Destination-Oriented Directed Acyclic Graph (DODAG) Configuration Option | |||
for the 6LoWPAN Routing Header | ||||
Abstract | Abstract | |||
This document updates RFC 8138 by defining a bit in the RPL DODAG | This document updates RFC 8138 by defining a bit in the Routing | |||
Configuration Option to indicate whether compression is used within | Protocol for Low-Power and Lossy Networks (RPL) Destination-Oriented | |||
the RPL Instance, and specify the behavior of RFC 8138-capable nodes | Directed Acyclic Graph (DODAG) Configuration option to indicate | |||
when the bit is set and unset. | whether compression is used within the RPL Instance and to specify | |||
the behavior of nodes compliant with RFC 8138 when the bit is set and | ||||
unset. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
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 https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 21 June 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9035. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Simplified BSD License text | to this document. Code Components extracted from this document must | |||
as described in Section 4.e of the Trust Legal Provisions and are | include Simplified BSD License text as described in Section 4.e of | |||
provided without warranty as described in the Simplified BSD License. | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology | |||
2.1. References . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Related Documents | |||
2.2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2.2. Glossary | |||
2.3. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 2.3. Requirements Language | |||
3. Extending RFC 6550 . . . . . . . . . . . . . . . . . . . . . 4 | 3. Extending RFC 6550 | |||
4. Updating RFC 8138 . . . . . . . . . . . . . . . . . . . . . . 5 | 4. Updating RFC 8138 | |||
5. Transition Scenarios . . . . . . . . . . . . . . . . . . . . 5 | 5. Transition Scenarios | |||
5.1. Coexistence . . . . . . . . . . . . . . . . . . . . . . . 6 | 5.1. Coexistence | |||
5.2. Inconsistent State While Migrating . . . . . . . . . . . 6 | 5.2. Inconsistent State While Migrating | |||
5.3. Rolling Back . . . . . . . . . . . . . . . . . . . . . . 6 | 5.3. Rolling Back | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 6. IANA Considerations | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 7. Security Considerations | |||
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 | 8. References | |||
9. Normative References . . . . . . . . . . . . . . . . . . . . 8 | 8.1. Normative References | |||
10. Informative References . . . . . . . . . . . . . . . . . . . 9 | 8.2. Informative References | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 | Acknowledgments | |||
Authors' Addresses | ||||
1. Introduction | 1. Introduction | |||
The design of Low Power and Lossy Networks (LLNs) is generally | The design of Low-Power and Lossy Networks (LLNs) is generally | |||
focused on saving energy, which is the most constrained resource of | focused on saving energy, which is the most constrained resource of | |||
all. The routing optimizations in the "Routing Protocol for Low | all. The routing optimizations in "RPL: IPv6 Routing Protocol for | |||
Power and Lossy Networks" [RFC6550] (RPL) such as routing along a | Low-Power and Lossy Networks" [RFC6550], such as routing along a | |||
Destination-Oriented Directed Acyclic Graph (DODAG) to a Root Node | Destination-Oriented Directed Acyclic Graph (DODAG) to a Root Node | |||
and the associated routing header compression and forwarding | and the associated routing header compression and forwarding | |||
technique specified in [RFC8138] derive from that primary concern. | technique specified in [RFC8138], derive from that primary concern. | |||
Enabling [RFC8138] on a running network requires a Flag Day where the | Enabling [RFC8138] on a running network requires a "flag day", where | |||
network is upgraded and rebooted. Otherwise, if acting as a Leaf, a | the network is upgraded and rebooted. Otherwise, if acting as a | |||
node that does not support the compression would fail to communicate; | leaf, a node that does not support compression per [RFC8138] would | |||
if acting as a router it would drop the compressed packets and black- | fail to communicate; if acting as a router, it would drop the | |||
hole a portion of the network. This specification enables a hot | compressed packets and black-hole a portion of the network. This | |||
upgrade where a live network is migrated. During the migration, the | specification enables a hot upgrade where a live network is migrated. | |||
compression remains inactive, until all nodes are upgraded. | During the migration, compression remains inactive until all nodes | |||
are upgraded. | ||||
This document complements [RFC8138] and signals whether it should be | This document complements [RFC8138] and signals whether it should be | |||
used within a RPL DODAG with a new flag in the RPL DODAG | used within a RPL DODAG with a new flag in the RPL DODAG | |||
Configuration Option. The setting of this new flag is controlled by | Configuration option. The setting of this new flag is controlled by | |||
the Root and propagates as is in the whole network as part of the | the Root and propagates as is in the whole network as part of the | |||
normal RPL signaling. | normal RPL signaling. | |||
The flag is cleared to maintain the compression inactive during the | The flag is cleared to ensure that compression remains inactive | |||
migration phase. When the migration is complete (e.g., as known by | during the migration phase. When the migration is complete (e.g., as | |||
network management and/or inventory), the flag is set and the | known by network management and/or inventory), the flag is set and | |||
compression is globally activated in the whole DODAG. | compression is globally activated in the whole DODAG. | |||
2. Terminology | 2. Terminology | |||
2.1. References | 2.1. Related Documents | |||
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 the terms provided in, "Terms Used in Routing for | |||
and Lossy Networks (LLNs)" [RFC7102]. Other terms in use in LLNs are | Low-Power and Lossy Networks" [RFC7102]. Other terms in use as | |||
found in "Terminology for Constrained-Node Networks" [RFC7228]. | related to LLNs are found in "Terminology for Constrained-Node | |||
Networks" [RFC7228]. | ||||
"RPL", the "RPL Packet Information" (RPI), and "RPL Instance" | "RPL", "RPL Packet Information" (RPI), and "RPL Instance" (indexed by | |||
(indexed by a RPLInstanceID) are defined in "RPL: IPv6 Routing | a RPLInstanceID) are defined in "RPL: IPv6 Routing Protocol for | |||
Protocol for Low-Power and Lossy Networks" [RFC6550]. The RPI is the | Low-Power and Lossy Networks" [RFC6550]. The RPI is the abstract | |||
abstract information that RPL defines to be placed in data packets, | information that RPL defines to be placed in data packets, e.g., as | |||
e.g., as the RPL Option [RFC6553] within the IPv6 Hop-By-Hop Header. | the RPL Option [RFC6553] within the IPv6 Hop-By-Hop Header. By | |||
By extension the term "RPI" is often used to refer to the RPL Option | extension, the term "RPI" is often used to refer to the RPL Option | |||
itself. The DODAG Information Solicitation (DIS), Destination | itself. The DODAG Information Solicitation (DIS), Destination | |||
Advertisement Object (DAO) and DODAG Information Object (DIO) | Advertisement Object (DAO), and DODAG Information Object (DIO) | |||
messages are also specified in [RFC6550]. | messages are also specified in [RFC6550]. | |||
This document uses the terms RPL-Unaware Leaf (RUL) and RPL-Aware | This document uses the terms "RPL-Unaware Leaf" (RUL) and "RPL-Aware | |||
Leaf (RAL) consistently with "Using RPI Option Type, Routing Header | Leaf" (RAL) consistently with "Using RPI Option Type, Routing Header | |||
for Source Routes and IPv6-in-IPv6 encapsulation in the RPL Data | for Source Routes, and IPv6-in-IPv6 Encapsulation in the RPL Data | |||
Plane" [USEofRPLinfo]. The term RPL-Aware Node (RAN) refers to a | Plane" [RFC9008]. The term "RPL-Aware Node" (RAN) refers to a node | |||
node that is either a RAL or a RPL Router. A RAN manages the | that is either a RAL or a RPL router. A RAN manages the reachability | |||
reachability of its addresses and prefixes by injecting them in RPL | of its addresses and prefixes by injecting them in RPL by itself. In | |||
by itself. In contrast, a RUL leverages "Registration Extensions for | contrast, a RUL leverages "Registration Extensions for IPv6 over | |||
IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Neighbor | Low-Power Wireless Personal Area Network (6LoWPAN) Neighbor | |||
Discovery" [RFC8505] to obtain reachability services from its parent | Discovery" [RFC8505] to obtain reachability services from its parent | |||
router(s) as specified in "Routing for RPL Leaves" [UNAWARE-LEAVES]. | router(s) as specified in "Routing for RPL (Routing Protocol for | |||
Low-Power and Lossy Networks) Leaves" [RFC9010]. | ||||
2.2. Glossary | 2.2. Glossary | |||
This document often uses the following acronyms: | This document often uses the following abbreviations: | |||
6LoWPAN: IPv6 over Low-Power Wireless Personal Area Network | ||||
6LoRH: 6LoWPAN Routing Header | 6LoRH: 6LoWPAN Routing Header | |||
6LoWPAN: IPv6 over Low-Power Wireless Personal Area Network | ||||
DIO: DODAG Information Object (a RPL message) | DIO: DODAG Information Object (a RPL message) | |||
DODAG: Destination-Oriented Directed Acyclic Graph | DODAG: Destination-Oriented Directed Acyclic Graph | |||
LLN: Low-Power and Lossy Network | LLN: Low-Power and Lossy Network | |||
RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks | ||||
SubDAG: A DODAG rooted at a node which is a child of that node and a | ||||
subset of a larger DAG | ||||
MOP: RPL Mode of Operation | MOP: RPL Mode of Operation | |||
RPI: RPL Packet Information | ||||
RAL: RPL-Aware Leaf | RAL: RPL-Aware Leaf | |||
RAN: RPL-Aware Node | RAN: RPL-Aware Node | |||
RPI: RPL Packet Information | ||||
RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks | ||||
RUL: RPL-Unaware Leaf | RUL: RPL-Unaware Leaf | |||
SRH: Source Routing Header | SRH: Source Routing Header | |||
Sub-DODAG: The sub-DODAG of a node is a DODAG rooted at that node | ||||
that is a subset of a main DODAG the node belongs to. It is | ||||
formed by the other nodes in the main DODAG whose paths to the | ||||
main DODAG root pass through that node. | ||||
2.3. Requirements Language | 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 | |||
14 [RFC2119][RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
3. Extending RFC 6550 | 3. Extending RFC 6550 | |||
The DODAG Configuration Option is defined in Section 6.7.6 of | The DODAG Configuration option is defined in Section 6.7.6 of | |||
[RFC6550]. Its purpose is extended to distribute configuration | [RFC6550]. Its purpose is extended to distribute configuration | |||
information affecting the construction and maintenance of the DODAG, | information affecting the construction and maintenance of the DODAG, | |||
as well as operational parameters for RPL on the DODAG, through the | as well as operational parameters for RPL on the DODAG, through the | |||
DODAG. As shown in Figure 1, the Option was originally designed with | DODAG. The DODAG Configuration option was originally designed with | |||
4 bit positions reserved for future use as Flags. | four bit positions reserved for future use as flags. | |||
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 = 0x04 |Opt Length = 14| | |T| |A| ... | | | Type = 0x04 |Opt Length = 14| | |T| |A| ... | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | |||
<- Flags -> | <- flags -> | |||
Figure 1: DODAG Configuration Option (Partial View) | Figure 1: DODAG Configuration Option (Partial View) | |||
This specification defines a new flag "Enable RFC8138 Compression" | This specification defines a new flag, "Enable Compression per RFC | |||
(T). The "T" flag is set to turn-on the use of [RFC8138] within the | 8138 (T)". The 'T' flag is set to turn on the use of [RFC8138] | |||
DODAG. The "T" flag is encoded in position 2 of the reserved Flags | within the DODAG. The 'T' flag is encoded in position 2 of the | |||
in the DODAG Configuration Option (counting from bit 0 as the most | reserved flags in the DODAG Configuration option (counting from bit 0 | |||
significant bit) and set to 0 in legacy implementations as specified | as the most significant bit) and set to 0 in legacy implementations | |||
respectively in Sections 20.14 and 6.7.6 of [RFC6550]. | as specified in Sections 20.14 and 6.7.6 of [RFC6550], respectively. | |||
Section 4.3 of [USEofRPLinfo] updates [RFC6550] to indicate that the | Section 4.1.2 of [RFC9008] updates [RFC6550] to indicate that the | |||
definition of the Flags applies to Mode of Operation (MOP) values | definition of the flags applies to Mode of Operation (MOP) values | |||
zero (0) to six (6) only. For a MOP value of 7, [RFC8138] MUST be | zero (0) to six (6) only. For a MOP value of 7, [RFC8138] MUST be | |||
used on Links where 6LoWPAN Header Compression [RFC6282] applies and | used on links where 6LoWPAN Header Compression [RFC6282] applies and | |||
MUST NOT be used otherwise. | MUST NOT be used otherwise. | |||
The RPL DODAG Configuration Option is typically placed in a DODAG | The RPL DODAG Configuration option is typically placed in a DIO | |||
Information Object (DIO) message. The DIO message propagates down | message. The DIO message propagates down the DODAG to form and then | |||
the DODAG to form and then maintain its structure. The DODAG | maintain its structure. The DODAG Configuration option is copied | |||
Configuration Option is copied unmodified from parents to children. | unmodified from parents to children. [RFC6550] states that "Nodes | |||
[RFC6550] states that "Nodes other than the DODAG Root MUST NOT | other than the DODAG root MUST NOT modify this information when | |||
modify this information when propagating the DODAG Configuration | propagating the DODAG Configuration option." Therefore, a legacy | |||
option". Therefore, a legacy parent propagates the "T" flag as set | parent propagates the 'T' flag as set by the Root, and when the 'T' | |||
by the Root, and when the "T" flag is set, it is transparently | flag is set, it is transparently flooded to all the nodes in the | |||
flooded to all the nodes in the DODAG. | DODAG. | |||
4. Updating RFC 8138 | 4. Updating RFC 8138 | |||
A node SHOULD generate packets in the compressed form using [RFC8138] | A node SHOULD generate packets in compressed form using [RFC8138] if | |||
if and only if the "T" flag is set. This behavior can be overridden | and only if the 'T' flag is set. This behavior can be overridden by | |||
by configuration or network management. Overriding may be needed | configuration or network management. Overriding may be needed, e.g., | |||
e.g., to turn on the compression in a network where all nodes support | to turn on compression in a network where all nodes support [RFC8138] | |||
[RFC8138] but the Root does not support this specification and cannot | but the Root does not support this specification and cannot set the | |||
set the "T" flag, or to disable it locally in case of a problem. | 'T' flag, or to disable it locally in case of a problem. | |||
The decision to use [RFC8138] is made by the originator of the packet | The decision to use [RFC8138] is made by the originator of the | |||
depending on its capabilities and its knowledge of the state of the | packet, depending on its capabilities and its knowledge of the state | |||
"T" flag. A router encapsulating a packet is the originator of the | of the 'T' flag. A router encapsulating a packet is the originator | |||
resulting packet and is responsible for compressing the outer headers | of the resulting packet and is responsible for compressing the outer | |||
with [RFC8138], but it MUST leave the encapsulated packet as is. | headers per [RFC8138], but it MUST NOT perform compression on the | |||
encapsulated packet. | ||||
An external target [USEofRPLinfo] is not expected to support | An external target [RFC9008] is not expected to support [RFC8138]. | |||
[RFC8138]. In most cases, packets to and from an external target are | In most cases, packets to and from an external target are tunneled | |||
tunneled back and forth between the border router (referred to as | back and forth between the border router (referred to as a 6LoWPAN | |||
6LR) that serves the external target and the Root, regardless of the | Router (6LR)) that serves the external target and the Root, | |||
MOP used in the RPL DODAG. The inner packet is typically not | regardless of the MOP used in the RPL DODAG. The inner packet is | |||
compressed with [RFC8138], so for outgoing packets, the border router | typically not compressed per [RFC8138], so for outgoing packets, the | |||
just needs to decapsulate the (compressed) outer header and forward | border router just needs to decapsulate the (compressed) outer header | |||
the (uncompressed) inner packet towards the external target. | and forward the (uncompressed) inner packet towards the external | |||
target. | ||||
A router MUST uncompress a packet that is to be forwarded to an | A border router that forwards a packet to an external target MUST | |||
external target. Otherwise, the router MUST forward the packet in | uncompress the packet first. In all other cases, a router MUST | |||
the form that the source used, either compressed or uncompressed. | forward a 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 | A RUL [RFC9010] is both a leaf and an external target. A RUL does | |||
does not participate in RPL and depends on the parent router to | not participate in RPL and depends on the parent router to obtain | |||
obtain connectivity. In the case of a RUL, forwarding towards an | connectivity. In the case of a RUL, forwarding towards an external | |||
external target actually means delivering the packet. | 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 a homogeneous network. Enabling the [RFC8138] compression | used in a homogeneous network. Enabling compression per [RFC8138] | |||
without a turn-on signaling method requires a "flag day"; by which | without a turn-on signaling method requires a flag day, by which time | |||
time all nodes must be upgraded, and at which point the network can | all nodes must be upgraded and at which point the network can be | |||
be rebooted with the [RFC8138] compression turned on. | rebooted with 6LoRH compression [RFC8138] turned on. | |||
The intent for this specification is to perform a migration once and | The intent of 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, the intent | |||
intention to undo the setting of the "T" flag. Though it is possible | is not to undo the setting of the 'T' flag. Though it is possible to | |||
to roll back (see Section 5.3), the roll back operation SHOULD be | roll back (see Section 5.3), the rollback operation SHOULD be | |||
complete before the network operator adds nodes that do not support | complete before the network operator adds nodes that do not support | |||
[RFC8138]. | [RFC8138]. | |||
5.1. Coexistence | 5.1. Coexistence | |||
A node that supports this specification can operate in a network with | A node that supports this specification can operate in a network with | |||
the [RFC8138] compression turned on or off with the "T" flag set | 6LoRH compression [RFC8138] turned on or off with the 'T' flag set | |||
accordingly and in a network in transition from off to on or on to | accordingly and in a network in transition from off to on or on to | |||
off (see Section 5.2). | off (see Section 5.2). | |||
A node that does not support [RFC8138] can interoperate with nodes | A node that does not support [RFC8138] can interoperate with nodes | |||
that do in a network with [RFC8138] compression turned off. If the | that do in a network with 6LoRH compression [RFC8138] turned off. If | |||
compression is turned on, all the RPL-Aware Nodes are expected to be | compression is turned on, all the RANs are expected to be able to | |||
able to handle compressed packets in the compressed form. A node | handle packets in compressed form. A node that cannot do so may | |||
that cannot do so may remain connected to the network as a RUL as | remain connected to the network as a RUL as described in [RFC9010]. | |||
described in [UNAWARE-LEAVES]. | ||||
5.2. Inconsistent State While Migrating | 5.2. Inconsistent State While Migrating | |||
When the "T" flag is turned on by the Root, the information slowly | When the 'T' flag is turned on by the Root, the information slowly | |||
percolates through the DODAG as the DIO gets propagated. Some nodes | percolates through the DODAG as the DIO gets propagated. Some nodes | |||
will see the flag and start sourcing packets in the compressed form | will see the flag and start sourcing packets in compressed form, | |||
while other nodes in the same RPL DODAG are still not aware of it. | while other nodes in the same RPL DODAG will still not be aware of | |||
In non-storing mode, the Root will start using [RFC8138] with a | it. In Non-Storing mode, the Root will start using [RFC8138] with a | |||
Source Routing Header 6LoRH (SRH-6LoRH) that routes all the way to | Source Routing Header 6LoRH (SRH-6LoRH) that routes all the way to | |||
the parent router or to the leaf. | the parent router or to the leaf. | |||
To ensure that a packet is forwarded across the RPL DODAG in the form | To ensure that a packet is forwarded across the RPL DODAG in the form | |||
in which it was generated, it is required that all the RPL nodes | in which it was generated, it is required that all the RPL nodes | |||
support [RFC8138] at the time of the switch. | support [RFC8138] at the time of the switch. | |||
Setting the "T" flag is ultimately the responsibility of the Network | Setting the 'T' flag is ultimately the responsibility of the network | |||
Administrator. The expectation is that the network management or | administrator. The expectation is that the network management or | |||
upgrading tools in place enable the Network Administrator to know | upgrading tools in place enable the network administrator to know | |||
when all the nodes that may join a DODAG were migrated. In the case | when all the nodes that may join a DODAG were migrated. In the case | |||
of a RPL instance with multiple Roots, all nodes that participate to | of a RPL Instance with multiple Roots, all nodes that participate in | |||
the RPL Instance may potentially join any DODAG. The network MUST be | the RPL Instance may potentially join any DODAG. The network MUST be | |||
operated with the "T" flag unset until all nodes in the RPL Instance | operated with the 'T' flag unset until all nodes in the RPL Instance | |||
are upgraded to support this specification. | are upgraded to support this specification. | |||
5.3. Rolling Back | 5.3. Rolling Back | |||
When turning [RFC8138] compression off in the network, the Network | When turning 6LoRH compression [RFC8138] off in the network, the | |||
Administrator MUST wait until all nodes have converged to the "T" | network administrator MUST wait until each node has its 'T' flag | |||
flag unset before allowing nodes that do not support the compression | unset before allowing nodes that do not support compression in the | |||
in the network. To that effect, whether the compression is active in | network. Information regarding whether compression is active in a | |||
a node SHOULD be exposed the node's management interface. | node SHOULD be exposed in the node's management interface. | |||
Nodes that do not support [RFC8138] SHOULD NOT be deployed in a | Nodes that do not support [RFC8138] SHOULD NOT be deployed in a | |||
network where the compression is turned on. If that is done, the | network where compression is turned on. If that is done, the node | |||
node can only operate as a RUL. | can only operate as a RUL. | |||
6. IANA Considerations | 6. IANA Considerations | |||
This specification updates the Registry that was created for | This specification updates the "DODAG Configuration Option Flags for | |||
[RFC6550] as the registry for "DODAG Configuration Option Flags" and | MOP 0..6" registry [RFC9008] (formerly the "DODAG Configuration | |||
updated as the registry for "DODAG Configuration Option Flags for MOP | Option Flags" registry, which was created for [RFC6550]), by | |||
0..6" by [USEofRPLinfo], by allocating one new Flag as follows: | allocating one new flag as follows: | |||
+---------------+---------------------------------+-----------+ | +------------+-------------------------------------+-----------+ | |||
| Bit Number | Capability Description | Reference | | | Bit Number | Capability Description | Reference | | |||
+---------------+---------------------------------+-----------+ | +------------+-------------------------------------+-----------+ | |||
| 2 (suggested) | Turn on RFC8138 Compression (T) | THIS RFC | | | 2 | Enable Compression per RFC 8138 (T) | RFC 9035 | | |||
+---------------+---------------------------------+-----------+ | +------------+-------------------------------------+-----------+ | |||
Table 1: New DODAG Configuration Option Flag | Table 1: New DODAG Configuration Option Flag | |||
IANA is requested to add [this document] as a reference for MOP 7 in | IANA has added this document as a reference for MOP 7 in the RPL | |||
the RPL Mode of Operation registry. | "Mode of Operation" registry. | |||
7. Security Considerations | 7. Security Considerations | |||
It is worth noting that in RPL [RFC6550], every node in the LLN that | It is worth noting that in RPL [RFC6550], every node in the LLN that | |||
is RPL-aware and has access to the RPL domain can inject any RPL- | is RPL aware and has access to the RPL domain can inject any RPL- | |||
based attack in the network, more in [RFC7416]. This document | based attack in the network; see [RFC7416] for details. This | |||
applies typically to an existing deployment and does not change its | document typically applies to an existing deployment and does not | |||
security requirements and operations. It is assumed that the | change its security requirements and operations. It is assumed that | |||
security mechanisms as defined for RPL are followed. | the security mechanisms as defined for RPL are followed. | |||
Setting the "T" flag before all routers are upgraded may cause a loss | ||||
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 | ||||
if an attacker manages to inject a corrupted configuration. | ||||
Setting and unsetting the "T" flag may create inconsistencies in the | ||||
network but as long as all nodes are upgraded to [RFC8138] support | ||||
they will be able to forward both forms. The source is responsible | ||||
for selecting whether the packet is compressed or not, and all | ||||
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 | ||||
network, at an additional cost of bandwidth for packets in the | ||||
uncompressed form. | ||||
An attacker may unset the "T" flag to force additional energy | Setting the 'T' flag before all routers are upgraded may cause a loss | |||
consumption of child or descendant nodes in its subDAG. Conversely | of packets. The new bit benefits from the same protection as the | |||
it may set the "T" flag, so that nodes located downstream would | rest of the information in the DODAG Configuration option that | |||
compress when that it is not desired, potentially resulting in the | transports it. Touching the new bit is just one of the many attacks | |||
loss of packets. In a tree structure, the attacker would be in | that can happen if an attacker manages to inject a corrupted | |||
position to drop the packets from and to the attacked nodes. So the | configuration option in the network. | |||
attacks above would be more complex and more visible than simply | ||||
dropping selected packets. The downstream node may have other | ||||
parents and see both settings, which could raise attention. | ||||
8. Acknowledgments | Setting and unsetting the 'T' flag may create inconsistencies in the | |||
network, but as long as all nodes are upgraded to provide support for | ||||
[RFC8138], they will be able to forward both forms. The source is | ||||
responsible for selecting whether the packet is compressed or not, | ||||
and all 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 network, at an additional cost of bandwidth for | ||||
packets in uncompressed form. | ||||
The authors wish to thank Murray Kucherawy, Meral Shirazipour, Barry | An attacker may unset the 'T' flag to force additional energy | |||
Leiba, Tirumaleswar Reddy, Nagendra Kumar Nainar, Stewart Bryant, | consumption of child or descendant nodes in its sub-DODAG. | |||
Carles Gomez, Eric Vyncke, Roman Danyliw, and especially Benjamin | Conversely, it may set the 'T' flag so that nodes located downstream | |||
Kaduk, Alvaro Retana, Dominique Barthel and Rahul Jadhav for their | would compress packets even when compression is not desired, | |||
in-depth reviews and constructive suggestions. | potentially causing packet loss. In a tree structure, the attacker | |||
would be in a position to drop the packets from and to the attacked | ||||
nodes. So, the attacks mentioned above would be more complex and | ||||
more visible than simply dropping selected packets. The downstream | ||||
node may have other parents and see the bit with both settings; such | ||||
a situation may be detected, and an alert may be triggered. | ||||
Also many thanks to Michael Richardson for being always helpful and | 8. References | |||
responsive when need comes. | ||||
9. Normative References | 8.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | |||
Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | |||
JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | |||
Low-Power and Lossy Networks", RFC 6550, | Low-Power and Lossy Networks", RFC 6550, | |||
DOI 10.17487/RFC6550, March 2012, | DOI 10.17487/RFC6550, March 2012, | |||
<https://www.rfc-editor.org/info/rfc6550>. | <https://www.rfc-editor.org/info/rfc6550>. | |||
[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>. | |||
[RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, | |||
"IPv6 over Low-Power Wireless Personal Area Network | "IPv6 over Low-Power Wireless Personal Area Network | |||
(6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, | |||
April 2017, <https://www.rfc-editor.org/info/rfc8138>. | April 2017, <https://www.rfc-editor.org/info/rfc8138>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
[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>. | |||
[UNAWARE-LEAVES] | [RFC9010] Thubert, P., Ed. and M. Richardson, "Routing for RPL | |||
Thubert, P. and M. Richardson, "Routing for RPL Leaves", | (Routing Protocol for Low-Power and Lossy Networks) | |||
Work in Progress, Internet-Draft, draft-ietf-roll-unaware- | Leaves", RFC 9010, DOI 10.17487/RFC9010, April 2021, | |||
leaves-27, 17 December 2020, <https://tools.ietf.org/html/ | <https://www.rfc-editor.org/info/rfc9010>. | |||
draft-ietf-roll-unaware-leaves-27>. | ||||
10. Informative References | 8.2. Informative References | |||
[RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | |||
Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | |||
DOI 10.17487/RFC6282, September 2011, | DOI 10.17487/RFC6282, September 2011, | |||
<https://www.rfc-editor.org/info/rfc6282>. | <https://www.rfc-editor.org/info/rfc6282>. | |||
[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, | |||
skipping to change at page 9, line 41 ¶ | skipping to change at line 420 ¶ | |||
Constrained-Node Networks", RFC 7228, | Constrained-Node Networks", RFC 7228, | |||
DOI 10.17487/RFC7228, May 2014, | DOI 10.17487/RFC7228, May 2014, | |||
<https://www.rfc-editor.org/info/rfc7228>. | <https://www.rfc-editor.org/info/rfc7228>. | |||
[RFC7416] Tsao, T., Alexander, R., Dohler, M., Daza, V., Lozano, A., | [RFC7416] Tsao, T., Alexander, R., Dohler, M., Daza, V., Lozano, A., | |||
and M. Richardson, Ed., "A Security Threat Analysis for | and M. Richardson, Ed., "A Security Threat Analysis for | |||
the Routing Protocol for Low-Power and Lossy Networks | the Routing Protocol for Low-Power and Lossy Networks | |||
(RPLs)", RFC 7416, DOI 10.17487/RFC7416, January 2015, | (RPLs)", RFC 7416, DOI 10.17487/RFC7416, January 2015, | |||
<https://www.rfc-editor.org/info/rfc7416>. | <https://www.rfc-editor.org/info/rfc7416>. | |||
[USEofRPLinfo] | [RFC9008] Robles, M.I., Richardson, M., and P. Thubert, "Using RPI | |||
Robles, I., Richardson, M., and P. Thubert, "Using RPI | Option Type, Routing Header for Source Routes, and IPv6- | |||
Option Type, Routing Header for Source Routes and IPv6-in- | in-IPv6 Encapsulation in the RPL Data Plane", RFC 9008, | |||
IPv6 encapsulation in the RPL Data Plane", Work in | DOI 10.17487/RFC9008, April 2021, | |||
Progress, Internet-Draft, draft-ietf-roll-useofrplinfo-42, | <https://www.rfc-editor.org/info/rfc9008>. | |||
12 November 2020, <https://tools.ietf.org/html/draft-ietf- | ||||
roll-useofrplinfo-42>. | Acknowledgments | |||
The authors wish to thank Murray Kucherawy, Meral Shirazipour, Barry | ||||
Leiba, Tirumaleswar Reddy, Nagendra Kumar Nainar, Stewart Bryant, | ||||
Carles Gomez, Éric Vyncke, Roman Danyliw, and especially Benjamin | ||||
Kaduk, Alvaro Retana, Dominique Barthel, and Rahul Jadhav for their | ||||
in-depth reviews and constructive suggestions. | ||||
Also, many thanks to Michael Richardson for always being helpful and | ||||
responsive when the need arises. | ||||
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 | |||
Phone: +33 497 23 26 34 | Phone: +33 497 23 26 34 | |||
Email: pthubert@cisco.com | Email: pthubert@cisco.com | |||
Li Zhao | Li Zhao | |||
Cisco Systems, Inc | Cisco Systems, Inc. | |||
Xinsi Building | Xinsi Building | |||
No. 926 Yi Shan Rd | No. 926 Yi Shan Rd | |||
SHANGHAI | Shanghai | |||
200233 | 200233 | |||
China | China | |||
Email: liz3@cisco.com | Email: liz3@cisco.com | |||
End of changes. 71 change blocks. | ||||
239 lines changed or deleted | 251 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |