RFC 8629

Dynamic Link Exchange Protocol (DLEP) Multi-Hop Forwarding Extension

πŸ“… published July 2019, from ietf

RFC 8629 πŸ’– published July 2019 by the IETF, as a Standards Track document (ISSN 2070-1721).

  • Authors: B. Cheng (MIT Lincoln Laboratory) and L. Berger, Ed. (LabN Consulting, L.L.C.)
  • Category: Standards Track, so this is an official Internet Standards Track document πŸŽ€

Abstract

This document defines an extension to the Dynamic Link Exchange Protocol (DLEP) that enables the reporting and control of multi-hop forwarding by DLEP-capable modems. πŸ¦‹

Status of This Memo

okay so this is an Internet Standards Track document πŸ’…

It's a product of the Internet Engineering Task Force (IETF), and it represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check out Section 2 of RFC 7841 🌸

Info about the current status of this document, any errata, and how to give feedback is at https://www.rfc-editor.org/info/rfc8629 ✨

Copyright (c) 2019 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 (https://trustee.ietf.org/license-info) in effect on the date of publication. Please read these carefully, because they describe your rights and restrictions for 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 they're provided without warranty as described in the Simplified BSD License. πŸ™ˆ


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Key Words . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Extension Usage and Identification  . . . . . . . . . . . . .   3
   3.  Extension Data Items  . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Hop Count . . . . . . . . . . . . . . . . . . . . . . . .   3
     3.2.  Hop Control . . . . . . . . . . . . . . . . . . . . . . .   5
       3.2.1.  Reset . . . . . . . . . . . . . . . . . . . . . . . .   6
       3.2.2.  Terminate . . . . . . . . . . . . . . . . . . . . . .   7
       3.2.3.  Direct Connection . . . . . . . . . . . . . . . . . .   7
       3.2.4.  Suppress Forwarding . . . . . . . . . . . . . . . . .   7
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
     5.1.  Extension Type Value  . . . . . . . . . . . . . . . . . .   8
     5.2.  Data Item Values  . . . . . . . . . . . . . . . . . . . .   9
     5.3.  Hop Control Actions Registry  . . . . . . . . . . . . . .   9
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  10
     6.1.  Normative References  . . . . . . . . . . . . . . . . . .  10
     6.2.  Informative References  . . . . . . . . . . . . . . . . .  10
   Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1. Introduction 🌈

DLEP is defined in [RFC8175]. It's the protocol that swaps link-related control info between a modem and a router. DLEP has a base set of mechanisms plus support for possible extensions, and this document defines one of those extensions 🧚

Some modem technologies support mobile ad hoc network (MANET) forwarding, where you reach destinations by having intermediate modems forward your traffic. This document calls that forwarding by intermediate modems "multi-hop forwarding" ✨ DLEP Destination Messages can report these reachable destinations (see [RFC8175]), but they don't tell you anything about how many hops there are or how much capacity they have, which is lowkey a problem πŸ’€

So this extension lets modems tell routers when multi-hop forwarding is in use, and lets routers ask modems to change how they forward. It's called "Multi-Hop Forwarding", and every modem that transmits or sends data to reach a destination counts as a hop πŸ“

⚠️ Heads up, bestie: using the Hop Control mechanism from this document can change connectivity, and it can even make one or more destinations unreachable. The mechanism reports those changes, but what a router does about them, or how it reacts, is out of scope for this document. πŸ™ˆ

This document defines a new DLEP Extension Type Value in Section 2, which signals that the extension is being used. It also defines three new DLEP Data Items in Section 3 πŸ’–

1.1. Key Words πŸ’…

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read as described in BCP 14 [RFC2119] [RFC8174], but only when they show up in all capitals, just like they do here πŸŽ€

2. Extension Usage and Identification πŸ¦‹

The Multi-Hop Forwarding Extension SHOULD be configurable. 🌸

To say that the extension is in use, an implementation puts the Multi-Hop Forwarding Extension Type Value in the Extensions Supported Data Item, per [RFC8175]. The Extensions Supported Data Item gets sent and processed according to [RFC8175] too ✨

The Multi-Hop Forwarding Extension Type Value is 1 (see Section 5) πŸ‘‘

3. Extension Data Items πŸ’œ

This extension defines three data items 🧚

  • The Hop Count Data Item is how a modem tells you how many modem hops it took to reach a particular destination.
  • The Hop Control Data Item is how a router asks a modem to change connectivity to a particular destination.
  • The Suppress Forwarding Data Item is how a router asks a modem to turn off multi-hop forwarding, either per device or per destination.

3.1. Hop Count πŸ“

The Hop Count Data Item is how a modem indicates the number of modems that transmit or send data to reach a particular destination (aka hops) between the modem and a specific destination. Basically, every hop is one transmission, so the number of hops equals the number of transmissions needed to go from a router's connected modem to the destination's connected modem πŸš€ The minimum is 1, which covers destinations you can reach directly through the router's locally connected modem.

The data item also says when a destination with a hop count greater than one (1) could be made directly reachable by a modem, like by reaiming an antenna πŸ“‘

The Hop Count Data Item SHOULD be carried in the Destination Up, Destination Update, Destination Announce Response, and Link Characteristics Response Messages whenever the Hop Count to a destination is greater than one (1). ✨

A router that gets a Hop Count Data Item can use it in forwarding and routing decisions, but the specific use is out of scope for this document. When this extension is in use, a router MUST interpret the absence of the Hop Count Data Item as a Hop Count value of one (1). πŸ’…

Here's the format of the Hop Count Data Item πŸ‘€

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Data Item Type                | Length                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |P|  Reserved   |   Hop Count   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • Data Item Type: 21
  • Length: 2
  • P: This is the P-bit. It says a destination is potentially directly reachable. When the P-bit is set, a router MAY ask for a direct link to that destination using the Hop Control Data Item (described in Section 3.2). If the value in the Hop Count field is one (1), the P field MUST be ignored. πŸŽ€
  • Reserved: The sender (a modem) MUST set this to zero, and the receiver (a router) MUST ignore it. 🌸
  • Hop Count: This is an unsigned 8-bit integer that gives the number of modem hops needed to reach the destination in the message. That's the number of times a packet will be transmitted. The special value 255 (0xFF) means the number of hops is unknown but greater than one (1). If the associated destination is reachable, this field MUST contain a value of at least one (1). ✨

A value of zero (0) means the Hop Control action (see Section 3.2) left the destination unreachable. A zero value MUST NOT be used in any message other than a Link Characteristics Response Message. πŸ’€

(Part 2 is coming next, bestie. Stay tuned πŸ¦‹)

3.2. Hop Control πŸ¦‹

okay bestie, the Hop Control Data Item is how a router asks for a change in connectivity to one particular destination, or asks for multi-hop processing across the whole device πŸ’…. A router can ask for a multi-hop-reachable destination to become a single-hop destination ✨. It can also say that the modem terminates a previous direct connectivity request to a particular destination 🌸.

The Hop Control Data Item MAY be carried in a Session Update Message sent by a router when the control applies to the whole device. It can also ride in a Link Characteristics Request Message when the control applies to a particular destination πŸŽ€.

When a modem gets the Hop Control Data Item in a Link Characteristics Request Message, it SHOULD do whatever is needed to make the change for the associated destination Media Access Control (MAC) address πŸ”§. Once the change is made, fails, or gets rejected, the modem MUST send back a Link Characteristics Response Message that has an updated Hop Count Data Item πŸ“¬. Note that other destinations can get affected by the change too πŸ‘€. Those changes get reported in Destination Down and Destination Update Messages. The modem MUST tell the router, via a Destination Down Message, about each destination that isn't in the Link Characteristics Response Message and is no longer reachable πŸ’€. The modem MUST ALSO tell the router, via a Destination Update Message, about each impacted destination that isn't in the Link Characteristics Response Message 🫢.

Failures can happen for lots of reasons, like the link's transmission characteristics not supporting the one-hop connection when the request comes in πŸ“‘. Requests can also get rejected by local policy πŸ™…β€β™€οΈ.

When a modem gets the Hop Control Data Item in a Session Update Message, it SHOULD do whatever is needed to make the change for all known destinations 🌈. Once the change is made, fails, or gets rejected, the modem MUST send back a Session Update Response Message with an appropriate Status Code πŸ“¨. The destination-specific impact of processing a Hop Control Data Item in a Session Update Message is shared through Destination Down and Destination Update Messages πŸ’–. The modem MUST tell the router about each destination that is no longer reachable via a Destination Down Message 😭. The modem MUST tell the router about any changes in Hop Counts via Destination Update Messages 🧚.

Here's the format of the Hop Control Data Item πŸ‘€:

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Data Item Type                | Length                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       Hop Control Actions     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Data Item Type:  22

Length:  2

The Hop Control Actions field is an unsigned 16-bit value with the following meaning 🎯:

                +-------+---------------------+
                | Value | Action              |
                +-------+---------------------+
                | 0     | Reset               |
                | 1     | Terminate           |
                | 2     | Direct Connection   |
                | 3     | Suppress Forwarding |
                +-------+---------------------+

              Table 1: Hop Control Actions Values

3.2.1. Reset πŸ”„

Reset is basically the "take me back to normal" button πŸ“. The Reset Action requests that the default behavior be restored. When a modem gets it in a Session Update Message, the modem MUST clear all control actions that were previously processed on a device-wide basis, and go back to its configured behavior ✨. When a modem gets it in a Link Characteristics Request Message, the modem MUST clear all control actions that were previously processed for the destination named in the message πŸ’….

3.2.2. Terminate πŸšͺ

Terminate is only valid per destination, and it MUST NOT be sent in a Session Update Message πŸ™…β€β™€οΈ. It says that a direct connection is no longer needed with the destination named in the message. This request has no impact on multi-hop destinations 🌸. It may also fail even in a single-hop case. In other words, it can end up with the Hop Count to the destination not being impacted by processing the request 🫠.

3.2.3. Direct Connection 🀝

Direct Connection is also only valid per destination, and it MUST NOT be sent in a Session Update Message 🚫. It says the modem SHOULD try to set up a direct connection with the destination named in the message ✨. This action SHOULD only be sent for destinations where the Hop Count is greater than 1 AND has the P-Bit set in the previously received Hop Count Data Item πŸ‘‘. Results for the destination named in the message are shared the same way as described above πŸ’œ.

3.2.4. Suppress Forwarding πŸ›‘

Suppress Forwarding is how a router tells its peer that the multi-hop forwarding done by the modem should be shut down πŸ™ˆ. A router can ask for multi-hop forwarding to be suppressed on a device-wide basis or for a specific destination πŸŽ€.

When a modem gets the Suppress Forwarding Data Item in a Session Update Message, it MUST suppress multi-hop forwarding device-wide 😀. That means data traffic from the modem's peer router SHALL only be sent by the modem to destinations that are one modem hop away 🧭. It also means any data traffic the modem gets from another modem that isn't destined for the peer router SHALL be dropped πŸ—‘οΈ. The impact on destination hop counts gets reported to the router by the modem, as described above πŸ“Š.

When a modem gets the Suppress Forwarding Data Item in a Link Characteristics Request Message, it MUST suppress multi-hop forwarding for ONLY the destination named in the message 🎯. That means data traffic from the modem's peer router SHALL be sent by the modem to the destination named in the Link Characteristics Request Message only when that destination is one modem hop away 🫢. Notably, data traffic the modem gets from another modem can still be forwarded by the modem per its normal processing πŸ’β€β™€οΈ. Results get reported as described above πŸ’Œ.

4. Security Considerations 🚨

Okay this part is serious bestie, so read it carefully πŸ₯Ί. The extension defined in this document enables reporting and control of forwarding information by DLEP-capable modems πŸ“‘. It does not inherently add any vulnerabilities beyond the ones documented in [RFC8175] πŸ”. The security approach taken in that document applies just as much when you run the extension defined in this document πŸ›‘οΈ.

The extension does define one mechanism that's worth special attention πŸ‘€. It includes a Hop Control mechanism (see Section 3.2) that's similar to the Link Characteristics Request Message defined in [RFC8175], because it can change the set of destinations reported as reachable 😬. With the Link Characteristics Request Message, this risk is implicit. With the Hop Control mechanism defined in this document, it's more likely 🚩. From a security perspective, implementations should be aware of this increased risk, and they may choose to add extra configuration controls so the Hop Control mechanism is only used under conditions the network operator intends 🧐.

Implementations of the extension defined in this document MUST support configuring TLS usage, as described in [RFC8175], so they can protect configurations where injection attacks are possible πŸ”’. That's the case when the link between a modem and a router isn't otherwise protected πŸ’€.

Note that this extension does allow a compromised or impersonating modem to suppress transmission by the router, or by a switch that interconnects the modem and router 😱. Similar attacks are generally possible for DLEP too. For example, an impersonating modem may cause a session reset, or a compromised modem may simply drop all traffic destined to, or sent by, a router πŸ™€. [RFC8175] defines the use of TLS to protect against the impersonating attacker πŸ”βœ¨.

5. IANA Considerations πŸ“‹

As described below, IANA has assigned 3 values to registries defined by [RFC8175], and it has created a new registry πŸ—‚οΈ.

5.1. Extension Type Value 🏷️

IANA has registered the following new value in the Specification Required range of the "Extension Type Values" registry, which lives within the "Dynamic Link Exchange Protocol (DLEP) Parameters" registry πŸ’–.

                +------+----------------------+
                | Code | Description          |
                +------+----------------------+
                | 1    | Multi-Hop Forwarding |
                +------+----------------------+

            Table 2: Requested Extension Type Value

5.2. Data Item Values 🧩

IANA has registered the following 2 values in the Specification Required range of the "Data Item Type Values" registry, which lives within the "Dynamic Link Exchange Protocol (DLEP) Parameters" registry 🌸.

                  +-----------+-------------+
                  | Type Code | Description |
                  +-----------+-------------+
                  | 21        | Hop Count   |
                  | 22        | Hop Control |
                  +-----------+-------------+

              Table 3: Requested Data Item Values

5.3. Hop Control Actions Registry πŸ—ƒοΈ

IANA has created the "Hop Control Actions Values" registry within the "Dynamic Link Exchange Protocol (DLEP) Parameters" registry πŸŽ€. The table below gives the initial registry values and the registration procedures [RFC8126] that apply ✨.

           +-------------+------------------------+
           | Value       | Action/Policy          |
           +-------------+------------------------+
           | 0           | Reset                  |
           | 1           | Terminate              |
           | 2           | Direct Connection      |
           | 3           | Suppress Forwarding    |
           | 4-65519     | Specification Required |
           | 65520-65534 | Private Use            |
           | 65535       | Reserved               |
           +-------------+------------------------+

              Table 4: Hop Control Actions Values

6. References πŸ“š

6.1. Normative References πŸ“–

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <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>.

[RFC8175]  Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B.
           Berry, "Dynamic Link Exchange Protocol (DLEP)", RFC 8175,
           DOI 10.17487/RFC8175, June 2017,
           <https://www.rfc-editor.org/info/rfc8175>.

6.2. Informative References 🌟

[RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
           Writing an IANA Considerations Section in RFCs", BCP 26,
           RFC 8126, DOI 10.17487/RFC8126, June 2017,
           <https://www.rfc-editor.org/info/rfc8126>.

Acknowledgments 🫢

Helpful comments were received from members of the MANET working group, including Henning Rogge, Victoria Pritchard, and David Wiggins πŸ’–βœ¨.

Authors' Addresses πŸ’Œ

Last stop, bestie! Here's who wrote this and how to slide into their inbox 🫢

Bow-Nan Cheng from MIT Lincoln Laboratory πŸŽ€

Bow-Nan Cheng
MIT Lincoln Laboratory
Massachusetts Institute of Technology
244 Wood Street
Lexington, MA  02421-6426

Email: bcheng@ll.mit.edu

And Lou Berger, the editor who kept everything together πŸ‘‘

Lou Berger (editor)
LabN Consulting, L.L.C.

Email: lberger@labn.net
πŸ“¦ where this page comes from