rfc-8287

Label Switched Path (LSP) Ping/Traceroute for Segment Routing (SR) IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data Planes

N. Kumar (Editor), C. Pignataro (Editor), G. Swallow, N. Akiya, S. Kini, M. Chen
date2017-12 streamIETF areartg wgmpls statusPROPOSED STANDARD pages25 canonicalhttps://www.rfc-editor.org/rfc/rfc8287 doi10.17487/RFC8287 errataview
A Segment Routing (SR) architecture leverages source routing and tunneling paradigms and can be directly applied to the use of a Multiprotocol Label Switching (MPLS) data plane. A node steers a packet through a controlled set of instructions called "segments" by prepending the packet with an SR header. The segment assignment and forwarding semantic nature of SR raises additional considerations for connectivity verification and fault isolation for a Label Switched Path (LSP) within an SR architecture. This document illustrates the problem and defines extensions to perform LSP Ping and Traceroute for Segment Routing IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with an MPLS data plane.

updated by

Extracted elements (31)

design-rationale §4.1

The Adjacency Segment ID forwarding semantic allows a misprogrammed node to forward a packet to the wrong neighbor or over the wrong link, yet the exposed next segment may still deliver the packet to the intended destination — making simple connectivity verification insufficient for path validation in SR networks.

mpls, routing, security

design-rationale §5

The format of Segment ID sub-TLVs follows the philosophy of the Target FEC Stack TLV carrying FECs corresponding to each label in the label stack, enabling LSP Ping/Traceroute to function even when the Target FEC Stack TLV contains more FECs than label stacks received at responder nodes.

mpls, routing

design-rationale §1

Unlike LDP or RSVP where segment assignment is hop-by-hop, SR Segment IDs may be unique to a node or domain-wide, raising the need for new FEC sub-TLVs and additional operational considerations beyond those in RFC 8029.

mpls, routing

interoperability-note §8

In networks where SR-capable and non-SR-capable nodes coexist, the responder may set FEC-return-code to 4 ('Replying router has no mapping for the FEC at stack-depth') because it has no FEC mapping for SR sub-TLVs, analogous to existing LDP/RSVP interoperation scenarios.

mpls, routing

interoperability-note §7.5

LSP Traceroute can properly traverse every SR hop under the Uniform TTL Model (RFC 3443), but may not traverse every hop under the Short Pipe Model due to absence of TTL copy when the outer label is popped; a special TTL manipulation technique is defined to address this.

mpls, routing

interoperability-note §8

When an SR-capable node assigns Adj-SID for a non-SR-capable node, LSP traceroute may fail because the non-SR-capable node is unaware of the 'IGP Adjacency Segment ID' sub-TLV and may not reply with FEC Stack Change sub-TLVs, causing downstream nodes to return code 4.

mpls, routing

normative-requirement §5.3 MUST

For a Parallel Adjacency Segment ID, the Local Interface ID and Remote Interface ID fields are each 4 octets and MUST be set to 4 octets of zeroes.

mpls, routing

normative-requirement §7.4 REQUIRED

For IGP-Adjacency Segment ID validation when Adj. Type is 4 or 6, the responder must validate that the Remote Interface ID matches the local identifier of the interface on which the packet was received, and that the Receiving Node Identifier is the local IGP identifier.

mpls, routing

normative-requirement §7.1 MUST

For LSP Ping, the initiator MUST include FEC(s) corresponding to the destination segment, and MAY include FECs corresponding to some or all of the segments imposed in the label stack.

mpls, routing

normative-requirement §7.1 MUST

For LSP Traceroute, the initiator MUST initially include FECs corresponding to all segments imposed in the label stack.

mpls, routing

normative-requirement §7.5 SHOULD

For SR Traceroute with Short Pipe Model, the initiating LSR SHOULD start by setting the TTL to 1 for the outermost tunnel label, set outer labels to max TTL, and set inner labels to TTL of zero.

mpls, routing

normative-requirement §5.1 SHOULD

For the IPv4 IGP-Prefix Segment ID sub-TLV, if the prefix is shorter than 32 bits, trailing bits SHOULD be set to zero.

mpls, routing, ip

normative-requirement §5.2 SHOULD

For the IPv6 IGP-Prefix Segment ID sub-TLV, if the prefix is shorter than 128 bits, trailing bits SHOULD be set to zero.

mpls, routing, ip

normative-requirement §7.3 SHOULD

Implementations SHOULD use the Implicit Null for the Node Segment ID PHP and Adjacency Segment ID PHP cases, so that RFC 8029 Stack-D and Stack-R procedures function correctly.

mpls, routing

normative-requirement §7.1 MUST

The initiator MUST derive the Prefix mapped to the Prefix SID (whether advertised as absolute value, index, or range) and use it in the IGP-Prefix Segment ID sub-TLV.

mpls, routing

normative-requirement §7.2 REQUIRED

The network node that advertised the Node Segment ID is responsible for generating a FEC Stack Change sub-TLV with POP operation for the Node Segment ID, regardless of whether PHP is enabled.

mpls, routing

normative-requirement §5.1 MUST

The Reserved field in Segment ID sub-TLVs MUST be set to 0 when sent and MUST be ignored on receipt.

mpls, routing

normative-requirement §7.1 MUST NOT

When a received echo reply does not contain the FEC Stack Change TLV, the initiator MUST NOT attempt to remove any FECs from the Target FEC Stack TLV in the next (TTL+1) traceroute request.

mpls, routing

normative-requirement §7.4 MUST

When the Protocol field in any received Segment ID sub-TLV is an unrecognized value, it MUST be treated as a Protocol value of 0 (any IGP protocol).

mpls, routing

protocol-element §5.3

The Advertising Node Identifier field in the IGP-Adjacency Segment ID sub-TLV is 4 octets carrying the 32-bit OSPF Router ID when Protocol=1, 6 octets carrying the 48-bit IS-IS System ID when Protocol=2, or 4 octets set to zero when Protocol=0.

mpls, routing

protocol-element §5

Three new sub-TLVs are defined for the Target FEC Stack TLV (Type 1), Reverse-Path Target FEC Stack TLV (Type 16), and Reply Path TLV (Type 21): sub-type 34 (IPv4 IGP-Prefix Segment ID), sub-type 35 (IPv6 IGP-Prefix Segment ID), and sub-type 36 (IGP-Adjacency Segment ID).

mpls, routing, registry

protocol-element §6

Two new signaling protocol values are added to the Downstream Detailed Mapping TLV Protocol field: value 5 for OSPF and value 6 for IS-IS, extending the existing list defined in RFC 8029.

mpls, routing, registry

registry §9.5

IANA assigned Return Code value 35 ('Mapping for this FEC is not associated with the incoming interface') in the MPLS LSP Ping Parameters Return Codes subregistry, used when IGP-Adjacency Segment ID validation fails.

mpls, routing, registry

registry §9.1

IANA assigned three new sub-TLVs in the 'sub-TLVs for TLV Types 1, 16, and 21' subregistry of the MPLS LSP Ping Parameters registry: 34 (IPv4 IGP-Prefix Segment ID), 35 (IPv6 IGP-Prefix Segment ID), 36 (IGP-Adjacency Segment ID).

mpls, routing, registry

registry §9.3

IANA created a new 'Adjacency Type in the IGP-Adjacency Segment ID' registry with initial values: 0 (unnumbered interface), 1 (parallel adjacency), 4 (IPv4 non-parallel), 6 (IPv6 non-parallel); range 0-250 by Standards Action.

mpls, routing, registry

registry §9.4

IANA created a new 'Protocol in the Label Stack sub-TLV of the Downstream Detailed Mapping TLV' registry adding values 5 (OSPF) and 6 (IS-IS) to the existing RFC 8029 protocol values 0-4.

mpls, routing, registry

registry §9.2

IANA created a new 'Protocol in the Segment ID sub-TLV' registry under MPLS LSP Ping Parameters, with initial values: 0 (any IGP), 1 (OSPF), 2 (IS-IS); range 0-250 assigned by Standards Action, 251-254 reserved for experimental use, 255 reserved.

mpls, routing, registry

security-consideration §10

This document defines additional MPLS LSP Ping sub-TLVs and follows the mechanisms defined in RFC 8029; all security considerations from RFC 8029 apply, and no additional security challenges beyond those are introduced.

mpls, routing, security

wire-format §5.3

The IGP-Adjacency Segment ID sub-TLV contains a 1-octet Adj. Type field (0=unnumbered, 1=parallel, 4=IPv4, 6=IPv6), a 1-octet Protocol field, a 2-octet Reserved field, variable-length Local Interface ID (4 or 16 octets), Remote Interface ID (4 or 16 octets), Advertising Node Identifier (4 or 6 octets), and Receiving Node Identifier (4 or 6 octets).

mpls, routing

wire-format §5.1

The IPv4 IGP-Prefix Segment ID sub-TLV contains a 32-bit IPv4 Prefix field, a 1-octet Prefix Length field (1-32 bits), a 1-octet Protocol field (0=any IGP, 1=OSPF, 2=IS-IS), and a 2-octet Reserved field that MUST be set to zero on send.

mpls, routing, ip

wire-format §5.2

The IPv6 IGP-Prefix Segment ID sub-TLV contains a 128-bit IPv6 Prefix field, a 1-octet Prefix Length field (1-128 bits), a 1-octet Protocol field (0=any IGP, 1=OSPF, 2=IS-IS), and a Reserved field that MUST be set to zero on send.

mpls, routing, ip