Segment Routing is the technology quietly replacing LDP and RSVP-TE in modern service-provider and large-enterprise cores. The pitch is simple: take the MPLS data plane that already works well, and throw away the separate label-distribution protocols that made it complicated. SR-MPLS keeps the labels and drops the protocols that used to hand them out. This post explains what segment routing is, how SR-MPLS works, and why networks are migrating to it.
For the cluster overview, see the MPLS complete guide.
The problem with traditional MPLS
Classic MPLS works, but it needs a lot of moving parts. To forward a labeled packet, every router in the path needs a label for every destination, and those labels have to be distributed somehow. Traditional MPLS used dedicated protocols for that:
- LDP distributed labels for basic hop-by-hop MPLS forwarding.
- RSVP-TE distributed labels and held state for traffic-engineered paths.
Both run alongside the IGP (OSPF or IS-IS). So a traditional MPLS core runs an IGP and LDP and, if you do traffic engineering, RSVP-TE. RSVP-TE is the worst offender: it builds per-tunnel state on every router along every path. In a large network with many TE tunnels, that state explodes, and it does not scale gracefully.
The segment routing idea
Segment Routing makes one clean observation: the IGP already floods information about the whole topology to every router. So why run a separate protocol just to distribute labels? Let the IGP do it.
In SR-MPLS, OSPF or IS-IS is extended to also advertise segments - and a segment is just a label with a meaning. The IGP that already knows the topology now also distributes the labels. LDP is no longer needed. RSVP-TE is no longer needed. One protocol (the IGP) does the job that previously took three.
The MPLS data plane does not change at all. Packets still carry MPLS labels, still get label-swapped hop by hop, still use the same hardware forwarding path. SR-MPLS is a control-plane simplification riding on the unchanged MPLS data plane.
The two segment types
A prefix-SID is a globally significant label assigned to a destination (usually a router's loopback). Every router in the domain installs the same prefix-SID for that destination and forwards toward it by the shortest path. It is allocated from a shared range called the SRGB (Segment Routing Global Block), which is why the value is consistent network-wide.
An adjacency-SID is a locally significant label for one specific link. It says "send this out exactly this interface" regardless of what the shortest path would do.
Source routing: the path lives in the packet
Here is the part that makes traffic engineering elegant. To steer a packet along a specific path, the ingress router pushes a stack of segment labels onto it. Each label is a waypoint. The packet itself carries its own itinerary.
Want a packet to go through router B, then over a specific link, then to router E? The ingress router pushes the label stack [prefix-SID of B, adjacency-SID of that link, prefix-SID of E]. Each router along the way pops the top segment when it is reached and forwards toward the next. No router in the middle holds any per-flow or per-tunnel state. The path is encoded in the packet, not stored in the network.
This is the death of RSVP-TE state. Traffic engineering in SR is just "push the right label stack at the edge." The core routers stay stateless. That is the scaling win.
Configuration shape on Cisco IOS XE
Enabling SR-MPLS is mostly turning it on under the IGP and defining the global label block. The shape, with IS-IS:
segment-routing mpls
global-block 16000 23999
!
router isis CORE
segment-routing mpls
!
interface Loopback0
ip address 10.255.0.1 255.255.255.255
isis prefix-sid index 1The SRGB here is 16000-23999. The loopback gets prefix-SID index 1, so its global label is 16000 + 1 = 16001, and every router in the domain will use 16001 to reach this router. No LDP anywhere in the config - the IGP carries the labels.
SR-MPLS vs SRv6
Segment Routing comes in two data-plane flavors, and it is worth knowing the difference:
SR-MPLS is the pragmatic upgrade for any network that already runs MPLS - same data plane, simpler control plane. SRv6 is the more ambitious version that drops MPLS entirely and encodes segments directly in IPv6 addresses. Most MPLS networks migrating today go SR-MPLS first.
Why networks migrate to SR-MPLS
Migration reality
SR-MPLS and LDP can run at the same time during a transition, so migration is incremental rather than a flag day. A common path: enable SR under the IGP across the core, let SR and LDP coexist with a defined preference, move services onto SR, then decommission LDP once nothing depends on it. RSVP-TE tunnels get rebuilt as SR policies. None of this requires touching the data-plane hardware.
Key takeaways
Segment Routing keeps the MPLS data plane and removes the separate label-distribution protocols. In SR-MPLS, the IGP (OSPF or IS-IS) is extended to distribute segments - labels with meaning - so LDP and RSVP-TE are no longer needed. Prefix-SIDs are global "shortest path to here" labels; adjacency-SIDs are local "use this link" labels. Traffic engineering becomes a label stack pushed at the edge, leaving core routers stateless, which is the headline scaling win over RSVP-TE. SR-MPLS is the low-friction upgrade for existing MPLS networks; SRv6 is the more radical IPv6-native variant. The migration is control-plane only and can run alongside LDP during the transition.
For the MPLS cluster, see the MPLS pillar.