Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a21e6974dd45962d

Jump to content

Segment routing

From Wikipedia, the free encyclopedia
(Redirected from Segment Routing)
Segment Routing
Communication protocol
AbbreviationSR
PurposeTraffic engineering, explicit path routing
DeveloperIETF SPRING Working Group
Introduction2013
Based onSource routing
OSI layerNetwork layer (Layer 3)
RFC8402

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;

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]

References

[edit]
  1. 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.
  2. 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.
  3. "IETF". Segment Routing. Retrieved 2026-07-03.
  4. Filsfils, Clarence; Dukes, Darren; Previdi, Stefano; Leddy, John; Matsushima, Satoru; Voyer, Daniel (March 2020). IPv6 Segment Routing Header (SRH) (Report). Internet Engineering Task Force.
  5. 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.
[edit]