Can you list the different ways we can use to route traffic from point A to point B in the network?
Some of the following methods may come to your mind first: hop-by-hop routing (with its flavours such as BGP hot-potato routing, and cold potato routing, and Strict routing using IP packet header long time ago with a very limited handful of hops, not widely used of supported by routers vendors).
The below figure shows hop-by-hop routing and how each router in the path makes his own decisions based on his view of the network, and the best way to reach the destination. which sometimes doesn’t match with the desirable path from the source/application perspective.
A more advanced ways include using Traffic Engineering, Tunneling, and Path Computation Engine, which lead to better control routing, and steering traffic as per the defined constraints. These are some examples of how can use to route traffic from point A to point B the list continues to grow. (I would cover new techniques such as IBN “Intent-based routing”, and Network Slicing in future posts)
So why do we need another way, why people start thinking about Segment Routing?
In this series of article, we will take you in Journey to discover Segment routing, in this first post I will cover Problem definition, Drivers, use cases, Segment Routing overview, and the Benefits of using it.
So let’s kick in
Let’s start with problem definition, which was addressed in IETF SPRING workgroup (part of a network workgroup). SPRING stands for Source Packet RoutING.
Do we still use something like route by rumor (used in RIP)? Or, are we getting more clever and consider all the aspects about our path; taking Traffic as analogy what is the road speed limit, how many lanes, does the road has an emergency lane, number of light signals, accidents history/record, and road quality.
All of which can be translated into Network terms such as link bandwidth, congestions, delay, link. Attributes, access technology, and, link reliability.
What about letting the source decide the best path for him, but does he knows this best path, how can he decide, does he need feedback from the network
What are the problems with hop-by-hop routing: is the only problem that it is old? Not really. But it is like distributed programming, totally independent, no reference point or source of truth each device chooses the path from his point of view.
Another important point is the huge expansion in Network Bandwidth, which Doubles Every 18 Months, while the number of Device Doubles Every 24 Months (source Cisco segment routing Tech Talk).
Last but not least the limitations on current network/routing methods:
- Doesn’t support multiple ways to construct forwarding path other than the shortest path
- Complexity caused by managing and operating multiple protocols (such as OSPF/ISIS as IGP, BGP, MPLS LDP, RSVP, …and so on) and how they interact with each other.
- Scalability issue with increase in network state, especially with RSVP-TE.
- Demolishing Revenue/Cost ratio.
After understating the problem statement for Segment Routing, this leads to the drivers behind this new methodology:
An idea to get the best of the two worlds: source routing + distributed routing
Choose the best path based on the user’s requirements + minimize the number of states in the network;
Another driver is allowing applications to choose their path, so SR can be an enabler for SDN, and 5G CUPS in the mobile world.
Take into consideration that term “Source” is not limited to packet originator, it can be any device handles the packet & path decision (e.g. carrier ingress PE)
Last but not least, it is an approach to simplify and reduce the number of control protocols involved in routing the data across the network.
Many use cases can benefit from Segment Routing, to mention a few:
- network virtualization and support multi-topology routing within the network so each application can choose the path that matches its requirements, voice traffic main requirement is less delay, other data application cares more about bandwidth and bigger pipes.
- This also leads to the partitioning of network resources per VPN, or customer.
- Node, link, and path protection such as fast re-route, meeting the same SLA as MPLS-TE (less than 50 msec) in coordination with TI-LFA (Topology Independent – Loop-Free Alternative).
- Network programmability.
- Simplification and reduction of network signaling components.
- Load balancing and traffic engineering.
Segment Routing overview
Before diving through SR, allow me to give an example from aviation, and cargo system in the airport.
If you are traveling from the USA to Germany via two-stops transit in Mexico and Spain. The airport in the USA as a source define the exact path which your bags must take. This assures that your baggage will follow you on the same path.
Source airport got benefits that the “Tag” used are globally significant and recognized in all airports worldwide, this process doesn’t require to keep state about each bag through the path (for routing purpose). All we need in each hop to check the “Top Tag” and route the bag based on it. As per below diagram.
Same happens in Segment Routing, each router has a Global Segment for itself in addition to other segments for links, and other instructions (to discuss in later posts). This global range is defined as SR Global Block (SRGB).
Another similarity to baggage example is: routers in the path doesn’t keep a state per flow, nor per application. This makes Segment routing the right balance between distributed intelligence, centralized optimization, and application-based policy creation
Segment Routing utilizes the existing routing protocol (e.g. OSPF, and ISIS with some extensions to support SR)
as the control plane, and uses MPLS or IPv6 as data plane (details in an upcoming post of this series).
This eliminates the need for LDP, also RSVP-TE can be replaced with “TI-LFA” which is part of IGP protocol.
Consider segments similar to MPLS Labels with different treatment and global scope in case of Prefix-SID (SID = Segment ID), where the source encodes the path in the packet header as an ordered list of segments.
Benefits of using Segment Routing
As we discussed in the previous section, I believe you already realized many benefits associated with segment routing. To mention a few of these benefits:
- The right balance between source routing and existing routing protocols distribution decisions.
- Ease of management via eliminating some control protocols such as LDP, and RSVP-TE.
- Enablement for Network Programmability and SDN.
- Supports Network Service Chaining
- Supports Fast-reroute, load-sharing, and protection.
This concludes this post, in the next post we will cover Segment Routing Building Blocks, SR and OSPF, SR and ISIS, and SR and BGP.
To be continued …