Segment Routing 101 and the Future of MPLS
By Said Jilani, Sr Customer Solutions Architect
Segment Routing is a new routing paradigm that aims to optimize, simplify, and improve the scalability of IP/MPLS based networks. Segment Routing utilizes source-based routing scheme where a network node steers a packet based on a list of instructions carried in the packet header (called “segments”). The list of segments carried in the packet header provide a strict or a loose specification of the required network path or tunnel eliminating the need for transit nodes to hold and maintain that path/tunnel information.
The standards for Segment Routing are championed by the IETF SPRING Working Group which defines the specifications for network operations, applications, interoperability, and management. Segment Routing architecture is defined in RFC8402. The IETF SPRING WG collaborates with other IETF Working Groups on the extensions of existing protocols to support Segment Routing including OSPF/IS-IS, BGP, VPN services, Traffic Engineering, IPv6 and MPLS VPN.
Segment Routing Overview
In an IP/MPLS network, “segments” represent either network links, network nodes or services. A path or route that an IP packet traverses in a network is similar to a car driving route which typically includes roads, intersections, and a destination; an intersection represents a network node segment, a road between two intersections represents a link segment and a destination represents a network service. In an IP/MPLS transport network, a node segment represents an MPLS enabled router, a link segment represents a connection between two adjacent routers, and a service segment represents a customer VPN service (a Layer 3 VPN or Layer 2 VPN.)
Each segment in the network is represented by a Segment Identifier or SID. The SIDs are encoded differently in IPv4 and IPv6 networks. In IPv4 networks, the SID is encoded as a standard MPLS label and can be stacked as multiple MPLS labels. In IPv6, the SID is encoded as a standard IPv6 address associated with the segment. The SIDs can be stacked as multiple IPv6 addresses within the IPv6 Segment Routing Extension Header. The active segment is indicated by the IPv6 Destination Address (DA). As the packet is forwarded along the path, a pointer helps copy the next segment in the stack to the IPv6 Destination Address.
The segment value and type define the forwarding action for the router that is processing the incoming packet. The SIDs within a Segment Routing domain are normally advertised via OSPF or IS-IS protocol extensions for Segment Routing. In advanced traffic engineering applications, the SIDs can be advertised by BGP extensions or defined by a centralized controller and then communicated to the edge routers using standard protocols such as Path Computation Element Protocol (PCEP).
Segment Routing Packet Forwarding (Data Plane)
When an IP packet is inserted into an SR domain, the first router adds a segment or a list of segments based on the destination address and the local routing policy. The IP packet is then forwarded within the SR domain based on the type and value of the SR segment and the routing algorithm. The default routing algorithm within the SR domain is based on IGP ECMP-aware shortest path algorithm.
The ability to specify transit nodes or links for certain traffic flows or under certain conditions enables SR to support advanced protection algorithms that provide fast reroute function without an additional traffic engineering protocol (i.e., RSVP-TE.)
Segment Routing Signaling (Control Plane)
IGP protocols running between adjacent routers maintain session information and advertise IP Prefixes to enable routers to build a complete network topology. In addition, IGP protocols run the Shortest Path Algorithm on each router to determine the best route for each destination and then populate these routes in the routing table. The structure of IGP protocols allows for extensions to enable the exchange of additional network attributes required to support advanced functions such as traffic engineering. For segment routing, these extensions include router capabilities, segment types, segment values, and forwarding options.
Segment Routing Applications
In transport networks, Segment Routing supports the same applications enabled by MPLS using a simplified design and enhanced scalability. These applications include MPLS VPNs, network protection and traffic engineering. Segment Routing supports existing MPLS VPN services and the native protocols required to set up and establish these services (i.e., M-BGP and Targeted LDP). Segment Routing enhances and optimizes IP and MPLS Fast Reroute schemes using an advanced algorithm supporting optimal routes over any topology. Additionally, Segment Routing provides multiple options for traffic engineering using a distributed architecture used in most networks deployed today, in addition to supporting a centralized architecture that is more aligned with future Software Defined Networks.
Segment routing is an evolution of IP routing protocols that enables routers to include routing instructions in the IP packets to determine their path across the network. The routing instructions are carried in a form of segments that can represent nodes, links or services. Segment Routing leverages the mature packet forwarding schemes provided by MPLS and IPv6 while significantly simplifying the control plane. This simplification is achieved by consolidating label signaling with IGP link and route advertisements, thus eliminating the complexity and the scalability limitations imposed by path setup and label distribution protocols (i.e., LDP and RSVP-TE.)
The simplicity and scalability attributes coupled with advanced protection and traffic engineering capabilities make Segment Routing an attractive option for designing next-generation IP/MPLS transport networks that support modern mission-critical services and applications.