Segment routing
| Communication protocol | |
| Abbreviation | SR |
|---|---|
| Purpose | Traffic engineering, explicit path routing |
| Developer | IETF SPRING Working Group |
| Introduction | 2013 |
| Based on | Source routing |
| OSI layer | Network layer (Layer 3) |
| RFC | 8402 |
Segment routing (SR) is a computer networking technology that enables packets to be forwarded through a network according to an ordered list of instructions, referred to as segments. It was developed within the SPRING an IPv6 working group of the Internet Engineering Task Force (IETF) as an extension of source routing concepts for IP and MPLS.
In a segment routing domain, the ingress router inserts a list of segments into each packet. Each segment identifies a forwarding instruction or network function that is executed by subsequent routers. The forwarding path is therefore determined by the segment list carried by the packet rather than solely by hop-by-hop routing decisions.
History
[edit]The concepts underlying Segment Routing originated from research into simplifying traffic engineering in IP and MPLS networks. Traditional MPLS Traffic Engineering relied on signaling protocols such as Resource Reservation Protocol-Traffic Engineering (RSVP-TE) to establish explicit forwarding paths, requiring routers to maintain per-tunnel state throughout the network. As service provider networks increased in size and complexity, alternative approaches that reduced signaling requirements and simplified network operation were investigated.[1]
In 2013, the IETF established the SPRING (Source Packet Routing in Networking) Working Group to develop a standardized architecture based on source routing principles for packet-switched networks. Early work focused on integrating Segment Routing with MPLS labels without requiring additional signaling protocols[2]. This approach later became known as SR-MPLS.[3]
Subsequent work extended the architecture to IPv6 through the introduction of the Segment Routing Header (SRH), an IPv6 extension header carrying a list of Segment Identifiers (SIDs).[4] This extension, commonly referred to as Segment Routing over IPv6 (SRv6)[5], introduced the ability to represent forwarding behaviors and network functions using IPv6 addresses.
The architecture was standardized through a series of IETF publications, including RFC 8402, which defines the Segment Routing architecture, RFC 8754, which specifies the Segment Routing Header for IPv6, and RFC 8986, which defines the SRv6 Network Programming protocol extensions for MPLS, OSPF, IS-IS, BGP, and related technologies, while further development continues within the IETF SPRING Working Group.
Overview
[edit]Segment routing is designed to operate using the topology information distributed by existing link-state routing protocols, including OSPF and IS-IS. Segment Identifiers (SIDs) are advertised through protocol extensions, allowing routers within the routing domain to maintain a consistent view of available segments.
Unlike traditional MPLS Traffic Engineering deployments based on signaling protocols such as RSVP-TE, Segment Routing relies on the information already exchanged by the routing protocol to construct forwarding paths. The segment list may be generated by the ingress router itself or computed by an external controller such as a Path Computation Element (PCE).
Segments
[edit]A segment represents an instruction executed by a router when forwarding a packet. Different types of segments may identify:
- A router within the routing domain (Node SID)
- A network prefix (Prefix SID)
- An outgoing interface or adjacency (Adjacency SID)
- A forwarding policy (Binding SID)
- A locally defined forwarding behavior
A packet may contain one or more segments. Routers process the current segment before forwarding the packet toward the next destination. Processing continues until all segments have been consumed.
Segment Routing over MPLS
[edit]Segment Routing can be deployed over a MPLS network, where it is commonly referred to as SR-MPLS.
In SR-MPLS, Segment Identifiers are encoded as MPLS labels. The ingress router pushes a stack of labels onto the packet, and each router forwards the packet according to the label at the top of the stack before removing it. The remaining labels determine the subsequent forwarding path.
SIDs are distributed through extensions to Interior Gateway Protocols (IGPs), including OSPF and IS-IS.
Segment Routing over IPv6
[edit]Segment Routing may also operate over IPv6 using SRv6 (Segment Routing over IPv6).
In SRv6, segments are represented by IPv6 addresses contained within an IPv6 extension known as the Segment Routing Header (SRH), defined by the IETF. Each segment identifies either a forwarding destination or a specific forwarding behavior associated with an IPv6 address.
As a packet traverses the network, routers process the Segment Routing Header sequentially until every segment has been executed.
Segment Routing Header
[edit]The Segment Routing Header (SRH) is an IPv6 Routing Extension Header that contains the information required for Segment Routing.
The header includes a list of IPv6 segments, the index of the currently active segment, and optional Type-Length-Value (TLV) objects. Routers update the active segment during forwarding until the packet reaches its final destination. The Segment Routing Header is defined in RFC 8754.
Segment Identifier distribution
[edit]Segment Identifiers are typically distributed by lonk-state routing protocols through protocol extensions standardized by the IETF.
In SR-MPLS deployments, SIDs are commonly allocated from the MPLS label space. In SRv6 deployments, they correspond to IPv6 addresses or prefixes allocated by the network operator.
Depending on their function, Segment Identifiers may be globally significant throughout a routing domain or locally significant to an individual router.
Traffic Engineering
[edit]Segment Routing may be used to implement traffic engineering policies by defining explicit forwarding paths through a network.
Instead of relying exclusively on the shortest path calculated by the routing protocol, packets may be directed through selected nodes or links in order to satisfy operational objectives such as load balancing, latency constrints, or administrativ routing policies.
The segment list defining the forwarding path may be computed locally by the ingress router or by a centralized controller.
Fast reroute
[edit]Segment Routing supports protection mechanisms intended to reduce traffic interruption following network failures.
One such mechanism is Topology Independent Loop-Free Alternate (TI-LFA), which allows routers to redirect traffic onto a precomputed backup path immediately after detecting a link of node failure, without waiting for complete routing protocol convergence.
Service Function Chaining
[edit]Segment Routing may be used to implement Service Function Chaining (SFC), in which packets are forwarded through an ordered sequence of network functions.
Depending on the deployment, these functions may include firewalls, Network Address Translation (NAT), load balancers, intrusion detection systems, or other packet-processing services. In SRv6, these functions may be represented directly by IPv6 segments associated with specific forwarding behaviors.
Applications
[edit]Segment Routing is deployed in a variety of network environments, including;
- Internet Service Providers (ISPs) backbone networks
- Enterprise wide-area networks
- Datacenter interconnections
- Software-defined networking (SDN) architectures
- Mobile transport networks
- Cloud infrastructures
It may be used for traffic engineering, fast reroute, service function chaining, and network slicing.
Advantages and limitations
[edit]Segment Routing reduces the amount of signaling required to establish explicit forwarding paths by relying on information already distributed by routing protocols. It may also simplify the management of traffic-engineered networks by reducing the amount of forwarding state maintained within the network core.
In SRv6 deployments, each segment occupies an IPv6 address within the Segment Routing Header, which increases packet header size as additional segments are added. The processing of SRv6 forwarding behaviors may also depend on hardware support provided by network equipment.
Standardization
[edit]Segment Routing is standardized by the IETF. The principal specifications include:
- RFC 8402: Segment Routing Architecture
- RFC 8754: IPv6 Segment Routing Header (SRH)
- RFC 8986: Segment Routing over IPv6 (SRv6) Network Programming
Additional RFCs define extensions to routing protocols, MPLS, and BGP for Segment Routing deployments.
Development of the architecture continues within the IETF SPRING Working Group.
See also
[edit]- Bang path
- Dynamic Source Routing
- Policy-based routing can also be used to route packets using their source addresses.
- Scalable Source Routing
References
[edit]- ↑ Previdi, Stefano; Filsfils, Clarence; Decraene, Bruno; Litkowski, Stephane; Horneffer, Martin; Shakir, Rob (May 2016). Source Packet Routing in Networking (SPRING) Problem Statement and Requirements (Report). Internet Engineering Task Force.
- ↑ Bashandy, Ahmed; Filsfils, Clarence; Previdi, Stefano; Decraene, Bruno; Litkowski, Stephane; Shakir, Rob (December 2019). Segment Routing with the MPLS Data Plane (Report). Internet Engineering Task Force.
- ↑ "IETF". Segment Routing. Retrieved 2026-07-03.
- ↑ Filsfils, Clarence; Dukes, Darren; Previdi, Stefano; Leddy, John; Matsushima, Satoru; Voyer, Daniel (March 2020). IPv6 Segment Routing Header (SRH) (Report). Internet Engineering Task Force.
- ↑ Filsfils, Clarence; Camarillo, Pablo; Leddy, John; Voyer, Daniel; Matsushima, Satoru; Li, Zhenbin (February 2021). Segment Routing over IPv6 (SRv6) Network Programming (Report). Internet Engineering Task Force.
External links
[edit]- The Segment Routing homepage
- The Linux implementation of IPv6 Segment Routing
- "About Segment Routing" (PDF). Cisco.
- "What is segment routing?". Juniper.
- "Benefits of segment routing and path computation". Nokia. September 15, 2015.
- "MPLS Segment Routing: Driving a modern approach to MPLS transport" (PDF). Arista.
- Jilani, Said (June 4, 2019). "Segment Routing 101 and the Future of MPLS". Aviat Networks.
- Ventre, Pier Luigi; Salsano, Stefano; Polverini, Marco; Cianfrani, Antonio; Abdelsalam, Ahmed; Filsfils, Clarence; Camarillo, Pablo; Clad, Francois (2021). "Segment Routing: A Comprehensive Survey of Research Activities, Standardization Efforts, and Implementation Results". IEEE Communications Surveys & Tutorials. 23: 182–221. arXiv:1904.03471. doi:10.1109/COMST.2020.3036826. S2CID 102352575.
- Segment Routing: a Comprehensive Survey of Research Activities, Standardization Efforts and Implementation Results