Segment Routing
Introduction
Before we proceed to understand the segment routing technology, we must understand that SR is a technology and every technology has made for a solution.
So, first, we need to understand the solution and its need.
All the Service providers are facing following issues with current infrastructure:
1. A lot of manual configuration for reserving the path in the SP Core network for a different type of traffics.
2. Lack of application-level visibility which leads to classifying network based on only IP, Port and QoS classification.
3. Lack of application integration with the network.
4. No centralized control over the path based on different type of services.
5. No end-to-end visibility from Data Center to an End user, which leads to sub-optimal paths for application in different domains.
6. The separate signaling protocol is required for MPLS control plane signaling
7. Separate protocol for labeling and separate for Traffic Engineering.
8. A lot of unnecessary tunnel-te configuration on the PE router.
9. No dynamic way of creating Inter-Domain Tunnels.
For the resolution of all the above-mentioned issues, many vendors come out with a different type of solutions.
In general, you need a routing which can support application integration as well as application visibility.
For achieving this solution, we need 3 main components:
1. Controller (Featured based on the type of controller)
2. Application
3. Segment Routing
Controller plays a major role here because this device should help the application to talk to network and engineer network according to the application requirement.
How this works?
The application needs to be integrated with a controller using whatever API (I am not a programmer, so I am not going in details of application integration). After that network needs to be integrated with a controller so that it can share the network information (Link State, Link Cost and other contracts based on configuration and controller capabilities).
Now, Customer is developing an application in their data center and integrating with a central controller. The application will feed the network requirement in the controller, for ex. Voice and Video application require the low latency path, a file transfer application requires the high available bandwidth path. The application can talk to a controller and feed their requirement into controller regarding network requirement, based on the inputs provided by an application, a controller can find a path inside a network.
The information about the path (which controller has selected) will be pushed into the actual packet at the Source, So now when a packet arrives in the SP Core Network, it will have the path details already in packet and based on this information packets will be forwarded in a network and reach the destination.
Due to this reason Segment Routing also known as Source Routing, because the routing path is already decided at the source itself, Core Network routers don’t need to calculate the path.
For achieving this solution, we need to have Segment Routing in place, because SR is the only technology which can support Source Routing as well as can be pushed into packet header at the source.
This is all about the solution, we haven’t talked about Technology yet, so it’s all at a high level and needs to have all three components in place (Application, Controller and SR), but this does not mean we cannot use SR individually.
SR can work individually to replace LDP and RSVP with additional features.
Now, let’s talk about SR as a Technology.
Segment Routing
Before we go to details of Segment Routing, we should know that MPLS is a data plane protocol and we need a control plane protocol to set up the control plane for MPLS traffic.
Currently, we are using LDP & RSVP (for transport labels) MP-BGP and T-LDP (for service label) as a control plane protocol for MPLS traffic, SR is one of the control plane protocol only for MPLS which is having a wide range of features.
SR can replace LDP and RSVP (Not 100%) from the network for transport label distribution and traffic engineering, remember SR can replace LDP, not T-LDP.
Segment Routing is also known as Source Routing, it is using SID (Segment ID’s) as a label to transport packet with the network.
SR as of now is used for Transport Label distribution as well as it supports Traffic Engineering.
SR can support Existing MPLS infrastructure with wide applications, SR is designed with SDN in mind.
Different type of Segments:
Ø Global Segment
Ø Local Segment
Ø Prefix Segment
Ø Adjacency Segment
Ø BGP Prefix Segment
Global and Local Segment:
Global Segments are the globally unique value in the SR domain and derived from the combination of SRGB (Segment Routing Global Block) and global index value.
Any Node in the SR domain can interpret this segment and it is propagated with Existing IGP.
SR does not have any additional signaling protocol, it works on existing IGP for signaling.
The global index value and global segment value is signaled in an entire domain with the help of IGP (OSPF or ISIS) with additional TLV’s.
Local Segments are locally generated and locally significant value, generated by IGP and an only local router can interpret this, this Segments can be treated as a locally assigned MPLS label.
IGP Segment:
There are two types of IGP Segments:
1. Prefix Segment
2. Adjacency Segment.
Prefix Segment:
Prefix Segment is global segment value, which is globally unique in SR domain, this value is derived from the manually configured index value + SRGB or you can define this value as Absolute label value.
Prefix Segments are distributed by the IGP (OSPF or ISIS) in additional TLV or Opaque LSA.
This value is used to reach the node in the SR domain using the IGP Shortest path.
Adjacency Segment:
These are a local segment, locally generated and locally significant, these segments are allocated by IGP from Dynamic LSD (Label Switch Database),
Local Segments are also advertised by IGP only and will be used for traffic steering using SR (explained in detail later).
SRGB (Segment Routing Global Block):
SRGB (Segment Routing Global Block) is the range of labels reserved for Segment Routing from the LSD (Label Switch Database).
SRGB is used to allocate the Global Segment or Prefix Segment using the configured index value, this range is reserved for segment routing and will not be used by other MPLS protocols for assigning labels.
SRGB Range may differ from each vendor, here we are going to talk about Cisco IOS XR Example for Examining SRGB:
Cisco IOS XR have SRGB range starts from 16000 to 23999 by default, we can change this range with an explicit configuration of SRGB, SRGB can be configured at the global level or per IGP instance level, IGP instance level configuration will take precedence over the global SRGB configuration.
Cisco IOS XR is having some reserved Ranges:
0 – 15
|
Reserved for Special Purpose
|
16-15999
|
Reserved for Static label allocation
|
16000 - 23999
|
Reserved for SRGB
|
24000 – H/W supports
|
Dynamic Label Switch Database
|
Dynamic LSD (Label Switch Database) is responsible for allocating labels for all the MPLS clients like LDP, RSVP, MP-BGP or T-LDP.
IOS XR 6.1.X onwards Cisco has reserved the SRGB Range, even you enable SR or not, which will allow you to enable SR without reloading of the router.
When IOS XR boots up, it reserves the SRGB and after that whichever MPLS application registers with LSD, it will allocate labels to it from 24000, it works from first come first serve basis.
Suraj Soni
CCIEx3 #39003 (R&S, Sec & SP)
I really like your blogs do you have more technical features you can share with US THANKS for your work
ReplyDeletecan you share your eve labs without the config Thanks
ReplyDelete