Label Switched Path (LSP) and Pseudowire (PW) Ping/Trace over MPLS Networks Using Entropy Labels (ELs)
updates
- rfc-6790 — The Use of Entropy Labels in MPLS Forwarding
Extracted elements (30)
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.
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.
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.
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.
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.
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.
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.
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}.
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.
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).
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}.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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).
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.
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.
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.
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.
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.
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.
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).
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.