RFC 8402 - Segment Routing Architecture¶
| Field | Value |
|---|---|
| Title | Segment Routing Architecture |
| Authors | C. Filsfils, S. Previdi, L. Ginsberg, B. Decraene, S. Litkowski, R. Shakir |
| Date | July 2018 |
| Status | Proposed Standard |
| Link | datatracker.ietf.org/doc/rfc8402 |
Summary¶
RFC 8402 defines the architecture for Segment Routing (SR). It introduces the concept of encoding a packet's forwarding path as an ordered list of segments -- instructions that nodes execute to steer traffic. The architecture is applicable to both the MPLS and the IPv6 data planes, referred to as SR-MPLS and SRv6 respectively.
The document establishes the foundational terminology and concepts that all subsequent SR RFCs build upon. It defines the SR domain, the Segment Routing Global Block (SRGB), the Segment Routing Local Block (SRLB), and the three primary segment types: prefix segments, adjacency segments, and binding segments. Each segment type serves a distinct purpose in constructing source-routed paths through the network.
A key design principle of SR is that it leverages existing link-state IGP protocols (IS-IS, OSPF) for segment distribution, avoiding the need for any additional signaling protocol such as LDP or RSVP-TE. This simplification of the control plane is one of the primary motivations behind Segment Routing.
Key Sections¶
| Section | Topic | Description |
|---|---|---|
| 2 | SR Domain | Defines the set of nodes participating in SR and the trust boundary |
| 3 | Segment Types | Prefix, adjacency, and binding segments |
| 4 | SRGB and SRLB | Global and local label/SID block allocation |
| 5 | IGP Segments | How segments are advertised via link-state protocols |
| 6 | Binding Segments | Policy and service chaining abstraction |
| 8 | SR Policies | Ordered list of segments encoding a path |
Segment Types¶
| Segment Type | Scope | Purpose | Example Use |
|---|---|---|---|
| Prefix SID | Global (SRGB) | Identifies a prefix in the SR domain; the shortest IGP path is used | Steer traffic to a destination node |
| Adjacency SID | Local | Identifies a specific link (adjacency) to a neighbor | Force traffic over a specific link |
| Binding SID | Local or global | Represents an SR Policy or tunnel; provides abstraction | Service chaining, inter-domain TE |
SRGB and SRLB¶
The Segment Routing Global Block (SRGB) is the range of labels (SR-MPLS) or SID values reserved for global segments. Every node in the SR domain should advertise the same SRGB to simplify operations, though the architecture allows per-node SRGB ranges.
The Segment Routing Local Block (SRLB) is the range reserved for local segments such as adjacency SIDs. These values are significant only to the node that allocates them.
| Block | Scope | Default Range (MPLS) | Used For |
|---|---|---|---|
| SRGB | Domain-wide | 16000-23999 | Prefix SIDs |
| SRLB | Node-local | 15000-15999 | Adjacency SIDs, local SIDs |
Data Plane Instantiations¶
| Property | SR-MPLS | SRv6 |
|---|---|---|
| Segment encoding | MPLS label stack | 128-bit IPv6 addresses in SRH |
| SID format | 20-bit MPLS label | LOC:FUNCT:ARG (variable lengths) |
| Transport | MPLS forwarding | IPv6 forwarding |
| MTU impact | 4 bytes per segment | 16 bytes per segment (before compression) |
| IGP extensions | IS-IS / OSPF SR extensions | IS-IS / OSPFv3 SRv6 extensions |
Common Pitfalls
- Assuming the SRGB must be identical on all nodes. The architecture allows different per-node ranges, but operational best practice is to keep them uniform.
- Confusing Prefix SID index with the actual MPLS label. The label is computed as SRGB base + SID index.
- Forgetting that Adjacency SIDs are locally significant -- they cannot be used without knowing which node allocated them.
- Treating Binding SIDs as simple labels -- they represent an entire SR Policy and abstract the underlying segment list.
- Ignoring the SR domain boundary. Nodes outside the SR domain will not understand SR-MPLS labels or SRv6 SIDs.
Related Drafts & Updates¶
- RFC 9524 - SR Replication Segment for multicast (formerly draft-ietf-spring-sr-replication-segment), extended by RFC 9960 SR P2MP Policy
- draft-ietf-spring-sr-service-programming - SR Service Programming
Related¶
- What is SRv6? - Overview of SRv6
- RFC 8754 - IPv6 Segment Routing Header (SRH)
- RFC 8986 - SRv6 Network Programming
- RFC 9256 - SR Policy Architecture
- RFC 9352 - IS-IS Extensions for SRv6