Internet Engineering Task Force | N. Akiya |
Internet-Draft | Big Switch Networks |
Updates: 7110 (if approved) | G. Swallow |
Intended status: Standards Track | C. Pignataro |
Expires: November 2, 2015 | Cisco Systems |
L. Andersson | |
M. Chen | |
Huawei | |
May 1, 2015 |
Label Switched Path (LSP) Ping/Traceroute Reply Mode Simplification
draft-ietf-mpls-lsp-ping-reply-mode-simple-03
The Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) Ping and Traceroute use the Reply Mode field to signal the method to be used in the MPLS echo reply. This document updates the "Reply via Specified Path (5)" Reply Mode value to easily indicate the reverse LSP. This document also adds an optional TLV which can carry ordered list of Reply Mode values.
This document updates RFC7110.
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].
This Internet-Draft is submitted in full conformance with the 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 http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 2, 2015.
Copyright (c) 2015 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 review these documents carefully, as they describe 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 are provided without warranty as described in the Simplified BSD License.
The MPLS LSP Ping, described in [RFC4379], allows an initiator LSR to encode instructions (Reply Mode) on how a responder LSR should send the response back to the initiator LSR. [RFC7110] also allows the initiator LSR to encode a TLV (Reply Path TLV) which can instruct the responder LSR to use specific LSP to send the response back to the initiator LSR. Both approaches are powerful as they provide the ability for the initiator LSR to control the return path.
However, it is becoming increasingly difficult for an initiator LSR to select a valid return path to encode in the MPLS LSP echo request packets. If the initiator LSR does not select a valid return path, the MPLS LSP echo reply will not get back to the initiator LSR. This results in a false failure of MPLS LSP Ping and Traceroute operation. In an effort to minimize such false failures, different implementations have chosen different default return path encoding for different LSP types and LSP operations. The problem with implementations having different default return path encoding is that the MPLS echo reply will not work in many cases, and the default value may not be the preferred choice by the operators.
This document describes: [RFC7110] by allowing the usage of the Reply Mode value 5 (Reply via Specified Path) without including the Reply Path TLV.
This documents updates
It is becoming increasingly difficult for implementations to automatically supply a workable return path encoding for all MPLS LSP Ping and Traceroute operations across all LSP types. There are several factors which are contributing to this complication.
Except for the case where the responder LSR does not have an IP route back to the initiator LSR, it is possible to use the "Reply via an IPv4/IPv6 UDP packet (2)" Reply Mode value in all cases. However, some operators are preferring control-channel and reverse LSP as default return path if they are available, which is not always the case.
When specific return path encoding is supplied by users or applications, then there are no issues in choosing the return path encoding. When specific return path encoding is not supplied by users or applications, then implementations use extra logic to compute, and sometimes guess, the default return path encodings. If a responder LSR receives an MPLS echo request containing return path instructions which cannot be accommodated due to unavailability, then the responder LSR often drops such packets. This results in the initiator LSR not receiving the MPLS LSP echo reply packets back. This consequence may be acceptable for failure cases (e.g., broken LSPs) where the MPLS echo request terminated on unintended target. However, the initiator LSR not receiving back MPLS echo reply packets, even when the intended target received and verified the requests, is not desirable as false failures will be conveyed to users.
Many operators prefer some return path(s) over others for specific LSP types. To accommodate this, implementations may default to operator preferred return path (or allow default return path to be configured) for a specific operation. However, if the sender of MPLS echo request knew that preferred return path will not be available at the intended target node, then it is not very beneficial to use a Reply Mode corresponding to preferred return path (i.e., the sender of the MPLS echo request will not receive the MPLS echo reply in the successful case). What would be beneficial, for a given operation, is for the sender of the MPLS echo request to determine which return path(s) can and cannot be used ahead of time.
This document adds one Reply Mode value to describe the reverse LSP, and one optional TLV to describe an ordered list of reply modes. Based on operational needs, the TLV can describe multiple Reply Mode values in a preferred order to allow the responder LSR to use the first available Reply Mode from the list. This eliminates the need for the initiator LSR to compute, or sometimes guess, the default return path encoding. And that will result in simplified implementations across vendors, and result in improved usability to fit operational needs.
This document updates "Reply via Specified Path (5)" Reply Mode to easily indicate the reverse LSP. This document also adds an optional TLV which can carry ordered list of reply modes.
Some LSP types are capable of having related LSP in reverse direction, through signaling or other association mechanisms. Examples of such LSP types are RSVP LSPs and TP LSPs. This document uses the term "Reverse LSP" to refer to the LSP in reverse direction of such LSP types. Note that this document restricts the scope of "Reverse LSP" applicability to those reverse LSPs which are capable and allowed to carry the IP encapsulated MPLS echo reply.
[RFC7110] has defined the Reply Mode "Reply via Specified Path (5)" which allows the initiator LSR to instruct the responder LSR to send the MPLS echo reply message on the reverse LSP. However, the instruction also requires the initiator LSR to include the "Reply Path TLV" with the B bit (Bidirectional bit) set in the Flags field. Additionally, [RFC7110] defines the usage of the "Reply via Specified Path (5)" Reply Mode without inclusion of the "Reply Path TLV" to be invalid.
This document updates the "Reply via Specified Path (5)" Reply Mode as follows:
Note that the reverse LSP is in relation to the last FEC specified in the Target FEC Stack TLV.
When a responder LSR is using this Reply Mode, transmitting MPLS echo reply packet MUST use IP destination address of 127/8 for IPv4 and 0:0:0:0:0:FFFF:7F00/104 for IPv6.
This document also introduces a new optional TLV to describe list of Reply Mode values. The new TLV will contain one or more Reply Mode value(s) in preferred order. The first Reply Mode value is the most preferred and the last Reply Mode value is the least preferred. Following rules apply when using Reply Mode Order TLV.
The responder LSR is to select the first available return path in this TLV. Reply Mode value corresponding to the selected return path MUST be set in Reply Mode field of MPLS echo reply to communicate back to the initiator LSR which return path was chosen.
The format of the TLV is as follows:
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reply Mode Order TLV Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Reply mode 1 | Reply mode 2 | Reply mode 3 | Reply mode 4 ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1 Reply Mode Order TLV
This is a variable length optional TLV. Each Reply Mode field is 1 octet.
[RFC7110] has defined that the "Reply Path TLV" can include Sub-TLVs describing multiple FECs, from which the responder LSR can choose the FEC to send the MPLS echo reply message. [RFC7110] has also defined that Sub-TLVs, within the "Reply Path TLV", describing FECs for return paths SHOULD be ignored when the B bit is set in the Flags field. Therefore, when the initiator LSR wants to use the Reply Mode Order TLV to describe the reverse LSP and other FECs for return paths, then the initiator SHOULD include two "Reply via Specified Path (5)" Reply Mode values and two "Reply Path TLV" objects (one "Reply Path TLV" corresponding to each "Reply via Specified Path (5)").
If the initiator LSR was interested in encoding following return paths:
Then the MPLS echo request message is to carry:
Described encoding of the Reply Mode Order TLV and the Reply Path TLV in the MPLS echo request message will result in the responder LSR to prefer "Reply via application level control channel (4)", followed by FEC X, FEC Y and then "Reply via an IPv4/IPv6 UDP packet (2)".
If the initiator LSR was interested in encoding following return paths:
Then the MPLS echo request message is to carry:
Described encoding of the Reply Mode Order TLV and the Reply Path TLV in the MPLS echo request message will result in the responder LSR to prefer the reverse LSP, followed by "Reply via an IPv4/IPv6 UDP packet (2)", FEC X and then FEC Y.
The mechanism defined in this document will work with Proxy LSP Ping defined by [I-D.ietf-mpls-proxy-lsp-ping]. The MPLS proxy ping request message can carry a Reply Mode value in the header and one or more Reply Mode values in the Reply Mode Order TLV. It is RECOMMENDED that the Reply Mode 2 (Reply via an IPv4/IPv6 UDP packet) be used in the Reply Mode field of the MPLS proxy ping request message.
If the proxy LSR is sending an MPLS echo request, then the proxy LSR MUST copy following elements from the MPLS proxy ping request message to the MPLS echo request message.
If the proxy LSR is sending an MPLS proxy ping reply, then it is RECOMMENDED that the Reply Mode Order TLV be ignored and the Reply Mode field in the MPLS proxy ping request message be used.
Beyond those specified in [RFC4379] and [RFC7110], there are no further security measures required.
IANA is requested to assign a new TLV type value from the "TLVs" sub-registry within the "Multiprotocol Label Switching Architecture (MPLS)" registry, for the "Reply Mode Order TLV".
The new TLV Type value should be assigned from the range (32768-49161) specified in [RFC4379] section 3 that allows the TLV type to be silently dropped if not recognized.
Type Meaning Reference ---- ------- --------- TBD1 Reply Mode Order TLV this document
Authors would like to thank Santiago Alvarez and Faisal Iqbal for discussions which motivated creation of this document. Authors would also like to thank Sam Aldrin, Curtis Villamizar, Ross Callon, Jeffrey Zhang, Jeremy Whittaker, Mustapha Alissaoui, Qin Wu, Jie Dong and Adrian Farrel for providing valuable comments to influence the contents of the draft.
Shaleen Saxena
Brocade
Email: ssaxena@brocade.com
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC4379] | Kompella, K. and G. Swallow, "Detecting Multi-Protocol Label Switched (MPLS) Data Plane Failures", RFC 4379, February 2006. |
[RFC7110] | Chen, M., Cao, W., Ning, S., Jounay, F. and S. Delord, "Return Path Specified Label Switched Path (LSP) Ping", RFC 7110, January 2014. |
[I-D.ietf-mpls-proxy-lsp-ping] | Swallow, G., Lim, V. and S. Aldrin, "Proxy MPLS Echo Request", Internet-Draft draft-ietf-mpls-proxy-lsp-ping-05, March 2015. |
This section lists examples of how the Reply Mode Order TLV can benefit.
A network has a following LSP, and the LSP has a control channel.
A------B------C------D------E | | F Forward Paths: A-B-C-D-E Figure 2: Incorrect Forwarding
A network has a following bidirectional LSP where the forward LSP and the reverse LSP are not fully co-routed.
+----C------D----+ / \ A------B G------H \ / +----E------F----+ Forward Paths: A-B-C-D-G-H (upper path) Reverse Paths: H-G-F-E-B-A (lower path) Figure 3: Non-Co-Routed Bidirectional LSP
One can argue that the initiator LSR can automatically generate a same MPLS echo request with different Reply Mode value to those nodes that timeout. However, such mechanism will result in extended time for the entire operation to complete (i.e. multiple seconds to multiple minutes). This is undesirable, and perhaps unacceptable if the "user" is an application.
With the extension described in this document, same procedures can be performed with the Reply Mode Order TLV carrying {5, 2}. When LSP Traceroute is issued, then following output may be displayed without any unnecessary timeout.