RFC 7394
Definition of Time to Live TLV for LSP-Ping Mechanisms
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 Notice ๐ซถ
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 ๐ญ
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, <http://www.rfc-editor.org/info/rfc2119>. ๐ธ
- [RFC4379] Kompella, K. and G. Swallow, "Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures", RFC 4379, February 2006, <http://www.rfc-editor.org/info/rfc4379>. ๐ฆ
- [RFC5085] Nadeau, T., Ed., and C. Pignataro, Ed., "Pseudowire Virtual Circuit Connectivity Verification (VCCV): A Control Channel for Pseudowires", RFC 5085, December 2007, <http://www.rfc-editor.org/info/rfc5085>. ๐
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
- ietf: rfc7394 2014-11
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms