Segment Routing (SR)

Module Introduction

This module deals with the basic concepts and terms of MPLS Segment Routing (SR). Segment Routing is implemented as extension to various routing protocols including IS-IS and OSPF. The protocol specific details and configuration is covered in the subsequent modules.

There are no exercises in this module.

MPLS Segment Routing Basis

The Label Distribution Protocol (LDP) has been around since the late 1990s but also has a couple of disadvantages, e.g.,

  • need to maintain two separate protocols (LDP for label exchange and IGP for route information exchange) without any additional benefits

  • need to synchronize between LDP and IGP to avoid running into blackholing

  • limited scaling of label database

  • no support for traffic engineering

The lack of support for traffic engineering was addressed by using Resource Reservation Protocol (RSVP) for label distribution. However, RSVP does not scale well as there is a lot of state to be kept in the routers.

Segment Routing (SR) was introduced to overcome these issues. Segment Routing makes use of the source routing paradigm, i.e., a node steers the traffic based on an ordered list of instructions which are called segments. The Segment Routing architecture is defined in RFC 8402. There are two data plane options for Segment routing: SR over MPLS (SR-MPLS) and SR over IPv6 (SRv6). This module only covers SR-MPLS.

Using SR-MPLS, the existing MPLS forwarding plane can be re-used without any modification. The benefits of using Segment Routing include

  • support of existing MPLS VPN services

  • optimization of MPLS Fast Reroute mechanisms

  • support for traffic engineering (without explicit resource allocation)

  • support for distributed architectures and centralized architectures, e.g., Software Defined Networks (SDN) based solutions.

Segments

A segment is a network instruction that a node executes on an incoming packet. This segment can be a topology instruction or a service instruction. Each segment is identified by a segment identifier (SID). In SR-MPLS, the SID is encoded as a standard MPLS label.

With Segment Routing, the MPLS label bindings are not longer exchanged via LDP, but via IGP or BGP. In this module, we focus on IS-IS. In order to support Segment Routing, a couple of extensions for IS-IS are defined in RFC 8667 including new TLVs to encode the segment identifier. IS-IS supports different types of segments:

  • Prefix Segments

  • Adjacency Segments

Segments can be either global or local. A global segment is an instruction that any node in the network must understand and install in its forwarding table, while a local segment is an instruction that only the originating node understands.

Prefix Segments

A prefix segment is a global IGP segment that is associated with an IGP prefix and represented by the Prefix-SID.

The MPLS architecture defines that MPLS labels are only locally significant and allocated by the downstream node. If a Prefix-SID is global, the question is how MPLS label allocation works without breaking basic MPLS concepts?

The solution is to introduce a Segment Routing Global Block (SRGB) which is a range of labels reserved for global segments. The Prefix-SID points to a unique MPLS label within the SRGB using the simple rule MPLS label = SRGB_Base + Prefix-SID.

mpls sr prefixsid
Figure 1. Segment Routing Prefix SID
Prefix-SIDs must be unique in the SR domain.
For sake of simplicity and troubleshooting, it is strongly recommended to use identical SRGBs on all nodes within the SR domain.

Adjacency Segments

An adjacency is a term for either an OSPF or IS-IS neighborship between two routers over a link. An adjacency segment is a local segment that is only significant to the advertising router itself and represents the link between the local router and its IGP neighbor. Thus, the adjacency segment is an instruction that forces a packet to be switches to a specific interface instead of the shortest path to a prefix. As a result, an adjacency segment is always associated with a MPLS pop operation.

In contrast to the prefix segment, the adjacency segment is advertised as a label instead of an index.

mpls sr adjsid
Figure 2. Segment Routing Adjacency SID

Because adjacency segments are local to a specific router, in general they must be combined with a node segment in order to reach that specific router. In the figure above, the adjacency segment is used to steer the packet towards router R3 instead of sending it to R4 directly.

Summary

This module outlined the basic concept of MPLS-based Segment Routing shared by all protocols. In order to become more familiar with the MPLS SR concepts, we recommend that you complete the exercises for a protocol of your choice.