When the whole architecture of routing was designed the idea was sending the packet to the destination by the best path possible. It is achieved based on the routing table build from link-state database which is received from their neighbors. But what if I want to force the packets to go across some other way. What if I want the packet to visit some other destinations before being routed to final destination? What if I want to decide the path myself and encode the path information into the packet header?
Segment Routing (SR) is a new source routing paradigm which means that the source can define the path that the packet will take. Although there are some other ways to do this “Source Routing”, Segment Routing is candidate to be easiest way. It is a network technology that wants to address several drawbacks of existing IP/MPLS networks. In source routing with SR, the hosts determine the path, encodes the path information to the packet header.
Idea
The idea is simple; divide a network into several segments, assign a segment ID to each segment then you can define your path information as a segment list and encode this information intothe packet header. This may be confusing because we all know that there is no place to write this information on IP header or Transport layer header. In SR, segment ID’s can be defined as MPLS label or IPv6 address. With SR, there will not be any change on the data plane. We will still be able to use MPLS data plane or IPv6 Data plane. (For simplicity I will use MPLS data plan in my examples)
Logic
Let’s look at the below topology and think about the idea.
According to topology let’s say;
I want to go from Node-A to Node-G using the shortest path or,
My packets should be sent from Node-A to Node-G over the shortest path to NodeE and then follow the Link1 etc or
I want to go from Node-A to Node-G but use the min. Delay path
Etc
We can increase the examples but enough to get the idea. We can achieve all these path selection options with SR.I gave the examples on networking nodes but one of the main ideas about SR, make applications to be able to talk with network devices. As of today, I didn’t see this kind of implementation but eventually, applications will be able to say, which kind of path they want to use and they will be able to encode this information into the packet header.I will go through deeply on upcoming blog post but in summary; A Segment is and instruction that a node executes on the incoming packet; Forward packet according to the shortest path, Forward packet through a specific interface, Deliver packet to a given application or service etc. A Segment Identifier (SID) identifies a Segment. And the format of a SID depends on the implementation; MPLS Label or IPv6 Address.If your path definition includes several segments, it can be encoded as a list of segment IDs. The segment ID list is transmitted along with the packet. (A segment is encoded as a MPLS label and list of segments are equivalent to MPLS label stack. Or it may be SID list with an IPv6 addresses encoded into SRH) In the MPLS Data Plane, we have some label operations with different names.
Push, Next, Continue
Push operation is the insertion of a segment at the top of the segment list. In SR-MPLS, the top of the segment list is the topmost (outer) label of the label stack.
When the active segment is completed, with the Next operation the next segment becomes active. Next is implemented as a Pop of the top label.
Continue means the active segment is not completed. In SR-MPLS, the Continue operation is implemented as a Swap of the top label.
Segment routing offers the following benefits:
The control plane of MPLS network is simplified.
The traditional MPLS control plane is complicated. You need to run LDP or TE extension of IGP. In most of the cases you may need both. In the Segment Routing architecture you will have only IGP with SR extension. IGP will be used to uniformly compute paths and distribute labels (or SIDs), without using RSVP-TE or LDP. Segment Routing can be directly applied to the MPLS architecture without any change in the forwarding plane.
Provides efficient topology independent-loop-free alternate (TI-LFA) FRR protection for fast path failure recovery.
IP FRR, Remote LFA and MPLS TE FRR are highly used in current networks to provide link or node protection. They can provide the desired protection switching only if the topology and cost design allows you to do. Based on the Segment Routing technology, combined with the RLFA (Remote Loop-free Alternate) FRR algorithm, an efficient TI-LFA FRR algorithm is formed. TI-LFA FRR supports node and link protection of any topology and overcomes drawbacks in conventional tunnel protection. I think the name “Topology Independent” excites everyone.
Provides the higher network capacity expansion capability.
Resource reservation protocol (RSVP) is a signaling protocol pf MPL TE that reserves a certain path for certain type of traffic. RSVP-TE can be used to implement QoS and load-balancing into the MPLS network. It can calculate the routes with CSPF and Explicit Route Objects (EROs). For the last several years RSVP-TE helped us a lot when we want to steer traffic into a specific path. But with MPLS TE the head-end router, which is the source of the traffic, must signal a path (RSVP PATH message) toward the tail-end router. The PATH message specifies the sender of the message and the desired resources for the path. After the message is examined by all the routers on the way to the tail-end RESV message is transmitted hop by hop to allocate labels. A
ll router on the path must maintain session information about the tunnel. The requirement of a state on every router of the path limits the scalability of RSVP-TE. Segment routing controls any service paths by merely operating labels on the ingress, and transit node do not have to maintain path information, which reduces the burdens on the control plane. I would like to highlight this; In SR there is no need to keep state information on the transit nodes. In RSVP-TE you may have hundreds or thousands of state information on your core routers depends on your total tunnel number.
But segment routing labels equal to the sum of the number of network-wide nodes and the number of local adjacencies. The label quantity is related only to the network scale, not to the number of tunnels or the service volume.
Better smooth evolution to SDN network.
Segment routing is designed based on the source routing concept. Using the source node alone can control forwarding paths over which packets are transmitted across a network. The introduction of segment routing has also renewed the interest in path computation element (PCE).
PCE is a traffic engineering controller that manages the network by allocating the correct paths and resources to the services that need them. The use of PCE also makes software defined networking (SDN) more appealing in WAN networks. The simplification of the network allows features like bandwidth calendaring and bandwidth on demand which are needed by the SDN applications. The segment routing pce technique and the centralized path computing module are used together to control and adjust paths.
Segment Routing supports both traditional networks and SDN networks. It is compatible with existing equipment and ensures smooth evolution of existing networks to SDN networks instead of subverting existing networks.
Easy migration to SR.
Let’s assume we found that SR is highly scalable, efficient, easy, matching with the SDN goal and decided to migrate our network to use SR. First of all, in most cases existing hardware will be enough because there is no change on the data plane. Second, SR and existing tunneling protocols can be used simultaneously. You can migrate your traffic to SR hop by hop, after your migration completed you remove your “old” MPLS tunnels.
Native IPv6 Support
An IPv6 extension header contains at least two fields, encoding the length of the extension, and the protocol number of the next header. The Segment Routing header (SRH) is defined as an extension of the IPv6 Routing Header. This is known as SRv6.
All of these benefits motivates operators/service providers to move their existing infrastructure in to SR. SR is probably the most significant addition to the MPLS control plane. It significantly simplifies MPLS deployments such as L2VPN, L3VPN and reduces the number of protocols needed in an MPLS-enabled network.
SR is started to be used in all around the world. Here are 2 different idea about SR: Vodafone Germany Senior IP Design Engineer Niels Hanke said “With the capabilities of segment routing, Vodafone Germany will have a programmable network that will allow us to adapt easily to future customer needs and deliver new services faster” . Alibaba Group’s Chief Network Architect Dennis Cai emphasize that “Segment Routing architecture brings us many benefits – first, it can be easily deployed in our existing network infrastructure; second, the ability to have fine-grain control over how the network transports applications while being stateless meets our elasticity requirements. It helps us to deliver a better end-user experience.”
There are several more companies which is willing to use SR and outlines the SR capabilities in SDN, like Microsoft, Telefonica, Colt etc.
It is likely that network operators will deploy SR incrementally over the next several years. As deployments proceed, the SR community will gain operational experience.