rfc-8402

Segment Routing Architecture

C. Filsfils (Editor), S. Previdi (Editor), L. Ginsberg, B. Decraene, S. Litkowski, R. Shakir
date2018-07 streamIETF areartg wgspring statusPROPOSED STANDARD pages32 canonicalhttps://www.rfc-editor.org/rfc/rfc8402 doi10.17487/RFC8402 errataview
Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain. SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack. SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.

updated by

Extracted elements (27)

design-rationale §5

BSID provides scalability, network opacity, and service independence: policy instantiation (the SID list) is stored only at the nodes imposing the policy. Traffic directed toward those nodes requires only the BSID, so policy changes affect only the imposing nodes and not the traffic sources.

routing

design-rationale §3.3.1

Identical SRGBs are strongly recommended on all nodes in an SR-MPLS domain because computing the label following an anycast segment requires knowing which label a set of topologically-equal next-hops will use. Without identical SRGBs, the label stack following an anycast segment cannot be correctly computed and misrouting (including VPN traffic leakage) may result.

routing, mpls

interoperability-note §3.4.2

For LAN subnetworks, additional IGP protocol mechanisms (IS-IS and OSPF extensions) are required so that each router in the LAN can advertise an Adj-SID per neighbor, since standard DR/DIS flooding does not expose individual node-to-node adjacencies.

routing

interoperability-note §3.1.3

In SRv6, non-SR-capable routers can still forward packets toward a node that owns an SRv6 SID because standard IPv6 FIB entries for shorter-mask covering prefixes suffice. This allows SR traffic to traverse nodes that do not understand SR, which is a key backward-compatibility property of SRv6.

routing, ip

normative-requirement §3.4.1 MUST

A node MUST install a FIB entry for any locally originated Adj-SID of value W attached to a set of links B with: Incoming Active Segment = W, Ingress Operation = NEXT, Egress interfaces = load-balance across any data-link within set B.

routing, mpls

normative-requirement §3.1.1 MUST NOT

A source SR node MUST NOT use an SR Policy containing a Strict-SPF segment if the path crosses a node that does not support the Strict-SPF algorithm, since such nodes will not install forwarding entries for it.

routing

normative-requirement §3.3 MUST

An IGP-Anycast segment MUST NOT reference a particular node. Within an anycast group, all routers in the SR domain MUST advertise the same prefix with the same SID value.

routing

normative-requirement §3.2 MUST NOT

An IGP Node-SID MUST NOT be associated with a prefix that is owned by more than one router within the same routing domain.

routing

normative-requirement §9 MUST

Each global segment MUST be bound to a unique index or address within an SR domain. Implementations SHOULD protect the network in case of conflict detection by providing a deterministic resolution approach.

routing

normative-requirement §3.1.2 MUST

For SR-MPLS, node N advertising Prefix-SID SID-R with CONTINUE behavior for directly connected neighbors MUST maintain a FIB entry: Incoming Active Segment = SID-R, Ingress Operation = NEXT, Egress interface = NULL.

routing, mpls

normative-requirement §3.1.2 MUST NOT

If a node learns of a Prefix-SID whose value falls outside the locally configured SRGB range, the node MUST NOT use that Prefix-SID and SHOULD issue an error log reporting a misconfiguration.

routing, mpls

normative-requirement §3.1.2 MUST

In SR-MPLS, a remote node M MUST maintain a FIB entry for each learned Prefix-SID SID-R: Ingress Operation is NEXT if the next-hop is the originator and M is instructed to remove the active segment, otherwise CONTINUE; Egress interface is towards the next-hop along the path computed by the advertised algorithm.

routing, mpls

normative-requirement §3.1.3 MUST

In SRv6, an operator MUST explicitly instantiate an SRv6 SID; IPv6 node addresses are not SRv6 SIDs by default. A node advertising address R as a segment MUST maintain a FIB entry with Incoming Active Segment = R, Ingress Operation = NEXT, Egress interface = NULL.

routing, ip

normative-requirement §3.4 MUST NOT

Parallel adjacency suppression MUST NOT be performed by the IGP, so that all Adj-SIDs representing IGP adjacencies between two nodes can be advertised. When a node binds Adj-SID V to local data-link L it MUST install a FIB entry: Incoming Active Segment = V, Ingress Operation = NEXT, Egress Interface = L.

routing

normative-requirement §3.1.2 MUST NOT

The Prefix-SID allocation process MUST NOT allocate the same Prefix-SID value to different prefixes within the SR domain.

routing, mpls

protocol-element §5 MUST

A Binding SID (BSID) is bound to an SR Policy; packets arriving with an active segment equal to the BSID are steered onto the bound SR Policy. A local BSID SHOULD be allocated from the SRLB; a global BSID MUST be allocated from the SRGB.

routing, mpls

protocol-element §3.4

An IGP-Adjacency Segment (Adj-SID) is attached to a unidirectional adjacency or set of adjacencies and enforces switching of the packet toward a specific interface or set of interfaces, overriding SPF routing decisions. Its flags convey eligibility for protection, local/global scope, and persistence across restarts.

routing

protocol-element §3.1

An IGP-Prefix Segment (Prefix-SID) is an IGP segment attached to an IGP prefix, global by default within the SR domain. Its context is the tuple <prefix, topology, algorithm>; multiple SIDs MAY be allocated to the same prefix so long as this tuple is unique.

routing

protocol-element §4.2

BGP Peering Segments enable source-routed inter-domain paths for Egress Peer Engineering (EPE). Three types are defined: PeerNode SID (next-hop is the peering node), PeerAdj SID (next-hop via the specific peering interface), and PeerSet SID (load-balance across a group of peers).

routing, bgp

protocol-element §1

SR-MPLS encodes a segment as an MPLS label and an SR Policy as a stack of labels. The active segment is the top label; upon completion of a segment, the label is popped (NEXT operation), and an incomplete segment performs a SWAP (CONTINUE operation).

routing, mpls

protocol-element §1

SRv6 encodes a segment as an IPv6 address and an SR Policy as an ordered list of IPv6 addresses in a Segment Routing Header (SRH). The active segment is the Destination Address (DA) of the IPv6 packet; NEXT is implemented by decrementing SegmentsLeft (SL) and copying the next segment to DA.

routing, ip

protocol-element §2

The SR Global Block (SRGB) is the set of global segments in an SR domain. In SR-MPLS it is a node-local set of labels reserved for global segments; in SRv6 it is the set of global SRv6 SIDs. Using identical SRGBs on all nodes in the SR-MPLS domain is strongly recommended.

routing, mpls

protocol-element §2

The SR Local Block (SRLB) is a local property of an SR node containing labels (SR-MPLS) or IPv6 addresses (SRv6) reserved for local segments. Controllers may discover available local segments via the control plane.

routing, mpls, ip

protocol-element §3.1.1

Two Prefix-SID algorithms are defined: Algorithm 0 (Shortest Path First) follows the standard ECMP-aware SPF and permits local policy overrides; Algorithm 1 (Strict-SPF) mandates ECMP-aware SPF forwarding and prohibits any local policy override, though FRR mechanisms remain compliant.

routing

security-consideration §8.1 MUST

By default, SR operates within a trusted domain and traffic MUST be filtered at the domain boundaries. For SR-MPLS, domain boundary routers MUST filter any external traffic destined to labels within the SRGB, SRLB, or outside these blocks. Explicit routing information MUST NOT be leaked through the boundaries of the administered domain.

security, routing, mpls

security-consideration §8.2 MUST

For SRv6, domain boundary routers MUST filter external traffic destined to addresses within the SRGB or SRLB of the trusted domain. Violations of the trust model can result in malicious looping, evasion of access controls, and hiding the source of DoS attacks.

security, routing, ip

security-consideration §8.3

SR does not introduce new congestion control requirements; best-effort delivery is assumed. Where SR policies are in use, bandwidth allocation may be managed by monitoring traffic associated with the binding SID, and circuit-breaker mechanisms such as RFC 8084 may be applicable.

security, routing, congestion