ietf-corpus

rfc-8012

Label Switched Path (LSP) and Pseudowire (PW) Ping/Trace over MPLS Networks Using Entropy Labels (ELs)

N. Akiya, G. Swallow, C. Pignataro, A. Malis, S. Aldrin
date2016-11 streamIETF areartg wgmpls statusPROPOSED STANDARD pages23 canonicalhttps://www.rfc-editor.org/rfc/rfc8012 doi10.17487/RFC8012
Multiprotocol Label Switching (MPLS) Label Switched Path (LSP) ping and traceroute are methods used to test Equal-Cost Multipath (ECMP) paths. Ping is known as a connectivity-verification method and traceroute is known as a fault-isolation method, as described in RFC 4379. When an LSP is signaled using the Entropy Label (EL) described in RFC 6790, the ability for LSP ping and traceroute operations to discover and exercise ECMP paths is lost for scenarios where Label Switching Routers (LSRs) apply different load-balancing techniques. One such scenario is when some LSRs apply EL-based load balancing while other LSRs apply load balancing that is not EL based (e.g., IP). Another scenario is when an EL-based LSP is stitched with another LSP that can be EL based or not EL based. This document extends the MPLS LSP ping and traceroute multipath mechanisms in RFC 6424 to allow the ability of exercising LSPs that make use of the EL. This document updates RFC 6790.

updates

Extracted elements (30)

design-rationale §1

Existing MPLS LSP ping/traceroute multipath mechanisms break when some LSRs use EL-based load balancing and others use IP-based load balancing, or when EL-based LSPs are stitched with non-EL LSPs. The initiating LSR loses the ability to discover and exercise specific ECMP paths in these mixed environments, which are common in real deployments.

mpls, routing

design-rationale §2

Multipath Type {9} is defined to apply to the first label in the stack that corresponds to an EL-FEC; if no such label is found, it applies to the bottom-of-stack label. This clarification addresses the incompleteness identified in RFC 6790 regarding the specific EL location, particularly for flow-aware pseudowires where EL appears without ELI.

mpls, routing

design-rationale §2

RFC 6790 pointed out that the procedures for Multipath Information Type {9} in RFC 4379 are incomplete because the specific location of the label being varied was not defined. It was incorrectly assumed that Multipath Type {9} implied variation of the bottom-of-stack label. This document clarifies that Type {9} applies to the first label corresponding to an EL-FEC, falling back to the bottom-of-stack label if none is found.

mpls, routing

design-rationale §4

The Nil FEC is used (not a new sub-TLV) to account for ELI in the Target FEC Stack because ELI is a reserved label with no associated explicit FEC. A new EL-FEC sub-TLV is defined only for the EL itself, since the EL carries a discretionary (non-reserved) label value that must be explicitly described for LSP verification.

mpls, routing

interoperability-note §1.2

Deployments of RFC 6790 typically have a mixture of nodes that support ELI/EL and nodes that do not, and a mixture of areas that use ELI/EL and areas that do not. The existing RFC 4379 and RFC 6424 mechanisms are insufficient in these mixed environments, which motivated this extension.

mpls, routing

interoperability-note §9

RFC 4379, RFC 6424, and this document support only IP-based load balancers (case 1) and label-based load balancers that include only the first (top-most) entropy label (case 2a1). Cases involving multiple entropy labels, top-N/bottom-N label subsets that exclude the entropy label, or label-and-IP combined load balancers are out of scope.

mpls, routing

interoperability-note §1

To use the enhanced EL-based multipath discovery end-to-end, all LSRs along the LSP must understand the new DS flags (L and E) and Multipath Information Type {10}. Mechanisms to verify this condition are out of scope of this document.

mpls, routing

normative-requirement §8.3 MUST

A label-based load balancer that does not push ELI/EL MUST set {L=1, E=0} in DS Flags, MUST reply with Type {0} for received Types {2,4,8}, and MUST reply with Type {10} omitting IP and Associated Label sections when it receives Type {10}.

mpls, routing

normative-requirement §8.4 MUST

A label-based load balancer that pushes ELI/EL MUST set {L=1, E=1} in DS Flags and MUST respond with Multipath Type {10} including Associated Label Multipath Information (new ELs) mapped to each returned label from the Label Multipath Information section.

mpls, routing

normative-requirement §8 MUST

A responder receiving Multipath Information Type {10} MUST validate that IP Multipath Information is included and that Associated Label Multipath Information is omitted (NULL). Any deviation MUST cause the responder to return error code 1 (Malformed echo request received).

mpls, routing

normative-requirement §8.1 MUST

An IP-based load balancer that does not push ELI/EL MUST set {L=0, E=0} in DS Flags, MUST reply with Type {0} if it receives Type {9}, and MUST reply using Type {10} (omitting Label and Associated Label sections) if it receives Type {10}.

mpls, routing

normative-requirement §8.2 MUST

An IP-based load balancer that pushes ELI/EL MUST set {L=0, E=1} in DS Flags and MUST respond with Multipath Type {10} including Associated Label Multipath Information (the EL values) mapped to each returned IP address when matching addresses are found.

mpls, routing

normative-requirement §5 MUST

An LSR that performs load balancing on a label MUST set the L flag in the echo reply; an LSR that performs IP-based load balancing MUST NOT set the L flag. An LSR that pushes ELI/EL MUST set the E flag in the echo reply; an LSR that does not push ELI/EL MUST NOT set the E flag.

mpls, routing

normative-requirement §5 MUST NOT

Both the L flag and the E flag MUST NOT be set in MPLS echo request packets. Zero, one, or both flags MUST be set in echo reply packets to indicate the responder's load-balancing behavior.

mpls, routing

normative-requirement §6 MUST

The Associated Label Multipath Information section MUST be omitted in MPLS echo request messages. A midpoint that pushes ELI/EL SHOULD include Associated Label Multipath Information in its echo reply, and each associated label MUST map one-to-one to an IP address or label in the corresponding IP or Label Multipath Information section.

mpls, routing

normative-requirement §7 MUST

The initiating LSR MUST set EL_LSP=True when it pushes ELI/EL and MUST use Multipath Information Type {10} (unless the responder cannot handle it) when EL_LSP is True. When sending Type {10} with EL_LSP=True, both IP and Label Multipath Information MUST be included and Associated Label Multipath Information MUST be omitted.

mpls, routing

normative-requirement §8 MUST

The responder LSR MUST first determine whether the initiating LSR supports the EL extension (by detecting Type {10} or an EL-FEC in the Target FEC Stack). If the initiating LSR does not support the extension, the responder MUST NOT set the new DS flags or use Multipath Type {10} in its echo reply.

mpls, routing

normative-requirement §7 MUST

When the initiating LSR receives an echo reply with {L=0, E=1} DS Flags and valid contents, it MUST set EL_LSP=True, enabling the use of Multipath Information Type {10} for subsequent echo requests to discover entropy-label-based paths downstream.

mpls, routing

normative-requirement §3 MUST

When tracing a pseudowire with a control word in use, the N flag in the DDMAP MUST be set. When a control word is not in use, the returned DDMAPs may not be accurate.

mpls, routing

protocol-element §8.5

A flow-aware MS-PW stitching LSR either (a) carries over the same flow label (behave as label-based LB without EL push, Section 8.3) or (b) replaces the flow label with a newly computed one (behave as label-based LB with EL push, Section 8.4), depending on its local behavior.

mpls, routing

protocol-element §6

Multipath Information Type {10} (IP and Label set) is a new type for the DDMAP TLV that combines three sections: IP Multipath Information (reusing types {2,4,8}), Label Multipath Information (reusing type {9}), and Associated Label Multipath Information (a list of 24-bit labels mapping one-to-one to the IP addresses or labels in the other sections).

mpls, routing

protocol-element §4

The Entropy Label FEC (EL-FEC) is a new Target FEC Stack sub-TLV (type 33) that identifies an Entropy Label within a label stack. It is needed because the EL is a discretionary-value label (not from the reserved range) and may appear in label stacks without an ELI (e.g., flow-aware pseudowires).

mpls, routing

protocol-element §5

Two new DS Flags, L (Label-based load balance indicator, bit 4) and E (ELI/EL push indicator, bit 5), are added to the DDMAP TLV. These four combinations ({L=0,E=0}, {L=0,E=1}, {L=1,E=0}, {L=1,E=1}) allow a responder LSR to signal its load-balancing technique and ELI/EL push behavior to the initiating LSR.

mpls, routing

registry §11.1

IANA assigned sub-TLV type 33 (Entropy Label FEC) in the 'Sub-TLVs for TLV Types 1, 16, and 21' section of the MPLS LSP Ping Parameters registry.

registry, mpls

registry §11.2

IANA assigned two new bit numbers in the DS Flags subregistry of the MPLS LSP Ping Parameters registry: bit 5 (E: ELI/EL push indicator) and bit 4 (L: Label-based load balance indicator), both defined by this document.

registry, mpls

registry §11.3

IANA assigned value 10 (IP and label set) in the Multipath Type subregistry of the MPLS LSP Ping Parameters registry, corresponding to the new Multipath Information Type {10} defined in Section 6.

registry, mpls

security-consideration §10

LSP ping packets used for multipath discovery can be leveraged for network reconnaissance, since sourcing or inspecting these packets reveals ECMP path topology. The extended EL-based mechanism requires additional processing on both initiator and responder nodes to compute and exchange multipath data including associated ELs.

security, mpls

security-consideration §10

The security measures of RFC 4379, RFC 6424, and RFC 6790 all apply to this extension. RFC 4379 already covers Denial-of-Service attacks by regulating LSP ping traffic going to the control plane. RFC 6424 provides guidelines for operators who want to prevent tracing or avoid exposing tunnel details.

security, mpls

wire-format §6

Multipath Information Type {10} encodes IPMultipathType (1 byte), IP Multipath Length (2 bytes), Reserved (1 byte), variable IP Multipath Information, then LbMultipathType (1 byte), Label Multipath Length (2 bytes), Reserved (1 byte), variable Label Multipath Information, then Associated Label Multipath Length (2 bytes), Reserved (2 bytes), and variable Associated Label Multipath Information (24 bits per label entry).

mpls, routing

wire-format §4

The Entropy Label FEC sub-TLV has a length of 4 bytes. It contains a 20-bit Label field (the actual label value inserted in the label stack) followed by a 12-bit MBZ field that MUST be zero on send and ignored on receipt.

mpls, routing