RFC 7394

Definition of Time to Live TLV for LSP-Ping Mechanisms

๐Ÿ“… published November 2014, from ietf

RFC 7394: Definition of Time to Live TLV for LSP-Ping Mechanisms ๐ŸŽ€

Okay bestie, this is RFC 7394 ๐Ÿ’–, and the title is Definition of Time to Live TLV for LSP-Ping Mechanisms. It's a Standards Track document (ISSN 2070-1721) from November 2014 โœจ. The authors are S. Boutros, S. Sivabalan, G. Swallow, and S. Saxena from Cisco Systems, V. Manral from Ionos Networks, and S. Aldrin from Huawei Technologies, Inc. ๐ŸŒธ Nothing is listed in its header as obsoleted or updated, so it stands on its own ๐Ÿ‘‘.


Abstract ๐ŸŒˆ

LSP-Ping is a widely deployed Operation, Administration, and Maintenance (OAM) mechanism in MPLS networks ๐Ÿงš. The thing is, in its current form it's not good enough to verify connectivity of a segment of a Multi-Segment Pseudowire (MS-PW) and/or bidirectional co-routed Label Switched Path (LSP) from any node on the path of the MS-PW and/or bidirectional co-routed LSP ๐Ÿ™ˆ. This document defines a TLV to fix that shortcoming ๐Ÿ’….

Status of This Memo โœจ

This is an Internet Standards Track document ๐ŸŽ€.

This document is a product of the Internet Engineering Task Force (IETF) ๐Ÿฆ‹. It represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG) ๐Ÿ’œ. If you want more on Internet Standards, check Section 2 of RFC 5741 ๐Ÿ“š.

Info about the current status of this document, any errata, and how to give feedback on it lives at http://www.rfc-editor.org/info/rfc7394 ๐Ÿ”—.

Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved ๐Ÿ’–.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please read these carefully, because they spell out your rights and restrictions with respect to this document ๐Ÿ“œ. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they're provided without warranty as described in the Simplified BSD License ๐Ÿ“.

Table of Contents ๐Ÿ—บ๏ธ

   1. Introduction ....................................................2
   2. Terminology .....................................................3
   3. Time To Live TLV ................................................4
      3.1. TTL TLV Format .............................................4
      3.2. Usage ......................................................4
   4. Operation .......................................................5
      4.1. Traceroute Mode ............................................6
      4.2. Error Scenario .............................................6
   5. Security Considerations .........................................6
   6. IANA Considerations .............................................7
   7. References ......................................................7
      7.1. Normative References .......................................7
   Acknowledgements ...................................................7
   Contributors .......................................................7
   Authors' Addresses .................................................8

1. Introduction ๐Ÿ’–

Okay so an MS-PW can span across multiple service provider networks ๐ŸŒ. To let Service Providers (SPs) verify segments of these MS-PWs from any node on the path, any node along the path of the MS-PW should be able to send an MPLS Echo Request packet to any other node along that path and get the matching MPLS Echo Reply back ๐Ÿงšโ€โ™€๏ธ. If the originator of the MPLS Echo Request is at the end of an MS-PW, the receiver can send the reply back without knowing how many hops away the originator is ๐Ÿ™Œ. The reply gets intercepted by the originator no matter what TTL value is on the reply packet โœจ. But if the originator is not at the end of the MS-PW, the receiver of the MPLS Echo Request may need to know how many hops away the originator is, so it can set the TTL value on the MPLS header for the MPLS Echo Reply and get it intercepted at the originator node ๐ŸŽฏ.

Now for bidirectional co-routed LSPs ๐Ÿฆ‹: if you want to verify connectivity from any intermediate Label Switching Router (LSR) on the LSP to any other LSR on the LSP, the receiver may need to know which TTL to use for the MPLS Echo Reply, so the packet gets intercepted at the originator node ๐Ÿ’….

This document defines a new optional TTL TLV ๐ŸŽ€. The originator of the MPLS Echo Request adds this TLV to tell the receiver how many hops away the originator is on the path of the MS-PW or bidirectional LSP ๐Ÿ’œ.

This mechanism only works if the MPLS Echo Reply is sent down the co-routed LSP, so the scope of this TTL TLV is currently limited to MS-PW or bidirectional co-routed MPLS LSPs ๐Ÿšง. The presence of the TLV implies the use of the return path of the co-routed LSP. If the return path is any other mechanism, then the TLV in the MPLS Echo Request MUST be ignored ๐Ÿ™ˆ.

2. Terminology ๐Ÿ“š

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] ๐Ÿ”‘.

  • LSR: Label Switching Router
  • MPLS-TP: MPLS Transport Profile
  • MS-PW: Multi-Segment Pseudowire
  • PW: Pseudowire
  • TLV: Type Length Value
  • TTL: Time To Live

3. Time To Live TLV ๐ŸŽ€

3.1. TTL TLV Format ๐Ÿฆ‹

   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 = 32769                 |   Length = 8                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Value       |   Reserved    |   Flags                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 1: Time To Live TLV Format

The TTL TLV has the format shown in Figure 1 ๐Ÿงฉ.

Value ๐Ÿ’–: The value of the TTL as specified by this TLV.

Flags ๐ŸŒธ: The Flags field is a bit vector with the following format:

       0                   1
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             MBZ             |R|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Only one flag is defined for now, the R flag ๐Ÿšฉ. All the rest of the flags are Reserved, and they MUST be zero (MBZ) when sending and ignored on receipt ๐Ÿ™…โ€โ™€๏ธ.

The R flag (Reply TTL) is set to signify that the value is meant to be used as the TTL for the reply packet โœจ. Other bits may be defined later to expand the scope of this TLV ๐ŸŒˆ.

3.2. Usage ๐Ÿ’…

The TTL TLV MAY be included in the MPLS Echo Request by the originator of the request ๐ŸŽ€.

If the TTL TLV is present but the receiver doesn't understand TTL TLVs, it just ignores the TLV, same as it does for all optional TLVs ๐Ÿ™ƒ. If the TTL TLV is not present, or the receiver doesn't process it, figuring out the TTL value used in the MPLS label on the LSP-Ping echo reply is beyond the scope of this document ๐Ÿคทโ€โ™€๏ธ.

If the TTL TLV is present and the receiver understands TTL TLVs, one of the following two conditions applies ๐Ÿ‘‘:

  • If the TTL TLV value field is zero, the LSP-Ping echo request packet SHOULD be dropped ๐Ÿ—‘๏ธ.
  • Otherwise, the receiver MUST use the TTL value specified in the TTL TLV when it creates the MPLS header of the MPLS Echo Reply ๐ŸŽฏ. The TTL value in the TTL TLV takes precedence over any TTL value determined by other means, such as from the Switching Point TLV in the MS-PW ๐Ÿ’œ. This precedence helps the originator of the LSP-Ping echo request analyze the return path ๐Ÿ”.

4. Operation ๐Ÿ”ฅ

In this section, we walk through a use case for the TTL TLV with an MPLS MS-PW ๐Ÿง .

            <------------------MS-PW --------------------->

            A          B          C           D           E
            o -------- o -------- o --------- o --------- o
                       ---MPLS Echo Request--->
                       <--MPLS Echo Reply------

Figure 2: Use-Case with MS-PWs

Let's say an MS-PW goes through LSRs A, B, C, D, and E ๐Ÿ›ฃ๏ธ. Now an operator wants to run a connectivity check between B and D, starting from B ๐Ÿซถ. So an MPLS Echo Request with the TTL TLV gets originated from B and sent toward D ๐Ÿš€. The MPLS Echo Request packet carries the FEC of the PW Segment between C and D ๐Ÿงพ. The value field of the TTL TLV and the TTL field of the MPLS label are both set to 2. The choice of the value 2 is based on either the operator input asking for the MPLS Echo Request or the optional LDP switching point TLV ๐ŸŽ›๏ธ. The MPLS Echo Request gets intercepted at D because of TTL expiry โฐ. D spots the TTL TLV in the request and uses the TTL value (i.e., 2) specified in the TLV on the MPLS label of the MPLS Echo Reply ๐Ÿช„. The MPLS Echo Reply then gets intercepted by B because of TTL expiry ๐Ÿ’–.

The same operation applies when you have a co-routed bidirectional LSP and want to check connectivity from an intermediate LSR "B" to another LSR "D" ๐Ÿฆ‹.

4.1. Traceroute Mode ๐Ÿ—บ๏ธ

In traceroute mode, the TTL value in the TLV is set to 1 for the first Echo Request, then to 2 for the next one, and so on ๐Ÿชœ. This is similar to the TTL values used for the label set on the packet ๐ŸŒธ.

4.2. Error Scenario ๐Ÿ’€

It's possible that the MPLS Echo Request packet got intercepted before reaching the intended destination for reasons other than label TTL expiry ๐Ÿ˜ฌ. This could be due to network faults, misconfiguration, or other reasons ๐Ÿ› ๏ธ. In those cases, if the return TTL is set to the value specified in the TTL TLV, then the echo response packet keeps going beyond the originating node ๐Ÿ˜ฑ. This becomes a security issue ๐Ÿšจ.

To prevent this, the label TTL value used in the MPLS Echo Reply packet MUST be modified by deducting the incoming label TTL on the received packet from TTL TLV value ๐Ÿ›ก๏ธ. If the MPLS Echo Request packet is punted to the CPU before the incoming label TTL is deducted, then another 1 MUST be added ๐Ÿงฎ. In other words:

Return TTL Value on the MPLS Echo Reply packet = (TTL TLV Value) - (Incoming Label TTL) + 1

6. IANA Considerations โœจ

okay so IANA has given a TLV type value to the Time To Live TLV bestie ๐ŸŽ€ it came from the "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" registry, specifically the "TLVs" subregistry ๐Ÿ’…

the Time To Live TLV is the one from Section 3 ๐Ÿงš

and the value they allocated is:

32769 ๐Ÿ”ฅ


7. References ๐Ÿ“š

7.1. Normative References ๐Ÿ’–

okay here's the list of the must-read stuff, no cap ๐Ÿ˜ญ

Acknowledgements ๐Ÿซถ

the authors want to thank Greg Mirsky for his comments, literally so sweet ๐Ÿฅน

Contributors ๐ŸŽ€

  • Michael Wildt
  • Cisco Systems, Inc.
  • 1414 Massachusetts Avenue
  • Boxborough, MA 01719
  • United States
  • EMail: mwildt@cisco.com

Authors' Addresses ๐Ÿฆ‹

Sami Boutros Cisco Systems, Inc. 3750 Cisco Way San Jose, CA 95134 United States EMail: sboutros@cisco.com

Siva Sivabalan Cisco Systems, Inc. 2000 Innovation Drive Kanata, Ontario, K2K 3E8 Canada EMail: msiva@cisco.com

George Swallow Cisco Systems, Inc. 300 Beaver Brook Road Boxborough, MA 01719 United States EMail: swallow@cisco.com

Shaleen Saxena Cisco Systems, Inc. 1414 Massachusetts Avenue Boxborough, MA 01719 United States EMail: ssaxena@cisco.com

Vishwas Manral Ionos Networks 4100 Moorpark Ave, Suite 122 San Jose, CA 95117 United States EMail: vishwas@ionosnetworks.com

Sam Aldrin Huawei Technologies, Inc. 1188 Central Express Way, Santa Clara, CA 95051 United States EMail: aldrin.ietf@gmail.com ๐Ÿ’œ

๐Ÿ“ฆ where this page comes from