rfc-9703

Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) Egress Peer Engineering (EPE) Segment Identifiers (SIDs) with MPLS Data Plane

S. Hegde, M. Srivastava, K. Arora, S. Ninan, X. Xu
date2024-12 streamIETF areartg wgmpls statusPROPOSED STANDARD pages15 canonicalhttps://www.rfc-editor.org/rfc/rfc9703 doi10.17487/RFC9703
Egress Peer Engineering (EPE) is an application of Segment Routing (SR) that solves the problem of egress peer selection. The SR-based BGP-EPE solution allows a centralized controller, e.g., a Software-Defined Network (SDN) controller, to program any egress peer. The EPE solution requires the node or the SDN controller to program 1) the PeerNode Segment Identifier (SID) describing a session between two nodes, 2) the PeerAdj SID describing the link or links that are used by the sessions between peer nodes, and 3) the PeerSet SID describing any connected interface to any peer in the related group. This document provides new sub-TLVs for EPE-SIDs that are used in the Target FEC Stack TLV (Type 1) in MPLS Ping and Traceroute procedures.

Extracted elements (25)

design-rationale §4.1

BGP Confederation member AS numbers are used in the Local AS and Remote AS fields rather than the Confederation Identifier, because EPE-SIDs within a confederation operate between Member-ASes, not between a member and the confederation as a whole.

bgp, routing, mpls

design-rationale §4.1

For multi-hop EBGP sessions with PeerNode SIDs where traffic may be load-balanced across multiple interfaces, the advertising node sends a Downstream Detailed Mapping (DDMAP) TLV specifying next-hop interface details, allowing a controller to verify actual forwarding state against topology information. Discrepancies between controller state and forwarding state are not detected by the OAM procedures alone.

mpls, bgp, routing

design-rationale §1

The EPE-SID FEC sub-TLVs are defined for the Target FEC Stack TLV to enable control plane to forwarding plane synchronization validation for inter-AS EPE SIDs; without this, mismatches (e.g., a PeerAdj SID bound to the wrong adjacency in the data plane) could go unnoticed by network operators.

mpls, bgp, routing

interoperability-note §2

During AS migration scenarios using procedures from RFC 7705, if the local and remote AS fields in the FEC carry the globally configured AS Number rather than the 'local AS', the FEC validation procedures may fail.

bgp, routing, mpls

interoperability-note §2

If a ping or traceroute packet enters a non-cooperating AS domain it might be dropped; while complete path validation cannot be done across non-cooperating domains, the mechanism still provides useful information that the packet entered a non-cooperating domain.

mpls, bgp, routing

interoperability-note §2

Unnumbered interfaces, anycast and multicast addresses, and scenarios involving EPE-SIDs in ingress SR policies for remote ASes of completely different ownership are explicitly out of scope for this document.

mpls, bgp, routing

normative-requirement §4.3 MUST

For PeerSet SID, the remote AS number and the Router ID of each associated PeerNode SID and PeerAdj SID MUST be included in the FEC.

mpls, bgp, routing

normative-requirement §5 MUST

If a malformed FEC sub-TLV is received, a return code of 1 ('Malformed echo request received') as defined in RFC 8029 MUST be sent.

mpls, bgp, routing

normative-requirement §4.2 RECOMMENDED

It is RECOMMENDED to send the optional local and remote interface address descriptors in PeerAdj SID sub-TLV and use them to validate incoming interfaces; when unavailable, an ingress node can send 0 in those fields.

mpls, bgp, routing

normative-requirement §2 MAY

MPLS Ping and Traceroute procedures MAY be initiated by the head-end of the SR path or a centralized topology-aware data plane monitoring system as described in RFC 8403.

mpls, bgp, routing

normative-requirement §4.2 SHOULD

The receiver SHOULD skip the incoming interface validation for PeerAdj SID if the local or remote interface address field contains 0.

mpls, bgp, routing

normative-requirement §4.2 MUST

The RESERVED field in the PeerAdj SID Sub-TLV (3 octets) and the Reserved field in the PeerSet SID Sub-TLV (2 octets) MUST be zero when sent and ignored on receiving.

mpls, bgp, routing

normative-requirement §5 MUST

When a remote ASBR receives an MPLS OAM packet with the top FEC being an EPE-SID, it MUST perform validity checks on the content of the EPE-SID FEC sub-TLV, including basic length checks.

mpls, bgp, routing

protocol-element §4.2

PeerAdj SID Sub-TLV (Type 38) identifies a specific inter-AS adjacency link, carrying Adj type (1 octet; 1=IPv4, 2=IPv6), 3 reserved octets, Local/Remote AS Numbers (4 octets each), Local/Remote BGP Router IDs (4 octets each), and Local/Remote Interface Addresses (4 octets each for IPv4, 16 octets each for IPv6), yielding a length of 28 (IPv4) or 52 (IPv6) octets.

mpls, bgp, routing

protocol-element §4.1

PeerNode SID Sub-TLV (Type 39) is a new sub-TLV for the Target FEC Stack TLV that identifies a multi-hop EBGP session between two ASBRs using Local AS Number, Remote AS Number, Local BGP Router ID, and Remote BGP Router ID, each 4 octets, for a fixed length of 16 octets.

mpls, bgp, routing

protocol-element §4.3

PeerSet SID Sub-TLV (Type 40) represents a set of peer nodes/links over which load-balancing occurs, carrying Local AS Number (4 octets), Local BGP Router ID (4 octets), No. of elements in set (2 octets), Reserved (2 octets), followed by one or more Remote AS Number / Remote BGP Router ID pairs (8 octets each).

mpls, bgp, routing

registry §6

IANA allocated three new sub-TLVs in the 'Sub-TLVs for TLV Types 1, 16, and 21' registry within the MPLS LSP Ping Parameters registry group: sub-type 38 (PeerAdj SID), sub-type 39 (PeerNode SID), and sub-type 40 (PeerSet SID).

registry, mpls, bgp

security-consideration §7

If an initiator does not remove FECs belonging to a previously traversed AS from the Target FEC Stack TLV in subsequent traceroute requests, it may expose internal AS topology information to subsequent ASes being traversed.

security, mpls, bgp, routing

security-consideration §7

When EPE-SIDs are created for egress TE links where the neighbor AS is an independent entity, the neighboring AS may not allow OAM packets from the external world to reach its control plane, causing MPLS OAM packets to be dropped at the AS boundary.

security, mpls, bgp

state-machine §5.1

PeerAdj SID FEC validation (sub-TLV type 38): when label-stack-depth is 0, validate that the receiving node's BGP Local AS matches the FEC's remote AS, BGP Router-ID matches the Remote Router ID, and an EBGP session exists with the specified peer; if remote interface address is non-zero, also validate the incoming interface. Set return code 3 on full success, 10 on AS/Router-ID mismatch, 35 on interface mismatch.

mpls, bgp, routing

state-machine §5.1

PeerNode SID FEC validation (sub-TLV type 39): validate that the receiving node's BGP Local AS matches the FEC's remote AS, BGP Router-ID matches the Remote Router ID, and an EBGP session exists with the specified peer. Set Best-return-code to 10 initially; if all conditions pass, set return code to 3.

mpls, bgp, routing

state-machine §5.1

PeerSet SID FEC validation (sub-TLV type 40): validate that the receiving node's BGP Local AS matches one of the remote AS fields, BGP Router-ID matches one of the Remote Router ID fields, and an EBGP session exists with the specified local AS/Router-ID. Set Best-return-code to 10 initially; set to 3 if all conditions pass.

mpls, bgp, routing

wire-format §4.2

PeerAdj SID Sub-TLV encoding: Type=38 (2 octets), Length variable (28 for IPv4, 52 for IPv6); fields are Adj type (1 octet), RESERVED (3 octets), Local AS Number (4), Remote AS Number (4), Local BGP Router ID (4), Remote BGP Router ID (4), Local Interface Address (4 or 16), Remote Interface Address (4 or 16).

mpls, bgp, routing

wire-format §4.1

PeerNode SID Sub-TLV encoding: Type=39 (2 octets), Length=16 (2 octets), Local AS Number (4 octets), Remote AS Number (4 octets), Local BGP Router ID (4 octets), Remote BGP Router ID (4 octets). Total payload is exactly 16 octets.

mpls, bgp, routing

wire-format §4.3

PeerSet SID Sub-TLV encoding: Type=40 (2 octets), Length variable based on the number of set elements; each element in the set consists of Remote AS Number (4 octets) and Remote BGP Router ID (4 octets); the No. of elements field (2 octets) specifies how many such element pairs follow.

mpls, bgp, routing