The Control Plane Simplification
Intrinsically, Segment Routing (SR) could be treated as NG-MPLS. As the matter of fact, it really is. The main drivers for embracing SR instead of traditional MPLS (LDP/RSVP) are summarized below.
- The optimization of the signaling. It is carried out by decoupling additional protocols.
- ECMP supported. It is one of main shortages of RSVP.
- Easily distinguish the traffic is being stuck on which node from the troubleshooting aspect.
The reason why SR optimizes the signaling is becauase none of the signaling protocol is required to make SR function, the IGP (OSPF/ISIS) extentions take it over instead. Therefore, RSVP is not required at all for fulfilling MPLS TE in the SR domain.
What Does Segment Routing Differ Traditional LDP
One of the significant differences in between is label allocation. By default, LDP allocates the label for both the node itself (loopback) and every link of that node. If TE has not been considered for the entire IP/MPLS transport then the link labels are not required at all. That is because ECMP is a native behavior of SR. Unlike LDP, SR allocates the label for the node only by default. The node and the link labels in the SR domain are called Prefix SID (segment identifier) and Adjacency SID (segment identifier) respectively.
dCloud: MPLS Segment Routing Introduction v2
Overall Topology
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
SR Configuration
Both the demo platform and the routing protocol are IOS-XRv and OSPF. Other than how to deploy the basic SR domain, the thing needs to be kept in mind in this section is that when LDP and SR both are presenting LSP, LSP is preferred over LDP by default (as the label #2400x shown in the 1st block). The design purpose is to ensure when the MPLS backbone migrates to SR from LDP as seamless as possible. Therefore, the behavior of LDP-preferable is able to be overridden (as the label #1600x shown in the 2nd block).
LDP Configuration Removal
Continue with the previous section. The most ideal way to seamlessly migrate traditional MPLS backbone from LDP to SR is…
- Enable SR at first. Both LDP and SR are coexistent in this stage.
- Override the forwarding path via SR. Both LDP and SR are still coexistent in this stage.
- Decommission LDP.
SRTE Configuration
As presented by Why We Need Segment Routing (When Do We Need The Adjacency SID). There are two scenarios of TE in SR, per Prefix (node) level, and per Adjacency (link) level. No matter which one, one of the significant differences was presented in this section, the TE tunnel does not need to be a pair in the SR domain, the one-way tunnel could function well. That is why XRv-6 (the receiver) did not deploy any tunnels that point toward XRv-1 (the initiator).
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
The other thing is that SR supports ECMP natively. If we only care about the destination XRv-6 instead of what the preferred path is then both XRv-2 and XRv-3 are not only just the valid next-hops but also the best next-hops to forward the traffic due to they have the same length forwarding path.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
# Source: XRv-1
# Destination: XRv-6
RP/0/0/CPU0:XR1(config)#do show mpls traffic-eng segment-routing
Wed Jan 22 17:36:00.370 UTC
(omitted)
IGP Id: 10.10.6.6, MPLS TE Id: 10.10.6.6
Segment-Routing:
TE Node-SID Index: 6
SRGB Info: Start 16000, Size 8000
Link[0]:Point-to-Point, Nbr IGP Id:10.10.5.5, Nbr Node Id:6, gen:23
Frag Id:3, Intf Address:172.16.5.6, Intf Id:0
Segment-Routing Adjacency-SIDs: 2
Adjacency-SID[0]: 24010, Flags: V, L to Nbr:: IGP Id: 10.10.5.5, MPLS TE Id: 10.10.5.5
Adjacency-SID[1]: 24009, Flags: B, V, L to Nbr:: IGP Id: 10.10.5.5, MPLS TE Id: 10.10.5.5
Nbr Intf Address:172.16.5.5, Nbr Intf Id:0
TE Metric:1, IGP Metric:1
Ext Admin Group:
Length: 256 bits
Value : 0x::
Attribute Names:
Link[1]:Point-to-Point, Nbr IGP Id:10.10.4.4, Nbr Node Id:5, gen:24
Frag Id:4, Intf Address:172.16.6.6, Intf Id:0
Segment-Routing Adjacency-SIDs: 2
Adjacency-SID[0]: 24012, Flags: V, L to Nbr:: IGP Id: 10.10.4.4, MPLS TE Id: 10.10.4.4
Adjacency-SID[1]: 24011, Flags: B, V, L to Nbr:: IGP Id: 10.10.4.4, MPLS TE Id: 10.10.4.4
Nbr Intf Address:172.16.6.4, Nbr Intf Id:0
TE Metric:1, IGP Metric:1
Ext Admin Group:
Length: 256 bits
Value : 0x::
Attribute Names:
Link[2]:Point-to-Point, Nbr IGP Id:10.10.4.4, Nbr Node Id:5, gen:25
Frag Id:5, Intf Address:172.16.8.6, Intf Id:0
Segment-Routing Adjacency-SIDs: 2
Adjacency-SID[0]: 24014, Flags: V, L to Nbr:: IGP Id: 10.10.4.4, MPLS TE Id: 10.10.4.4
Adjacency-SID[1]: 24013, Flags: B, V, L to Nbr:: IGP Id: 10.10.4.4, MPLS TE Id: 10.10.4.4
Nbr Intf Address:172.16.8.4, Nbr Intf Id:0
TE Metric:1, IGP Metric:1
Ext Admin Group:
Length: 256 bits
Value : 0x::
Attribute Names:
SR TI-LFA Protection
Intrinsically, there is nothing different between LDP and SR from the LFA aspect.

# Source: XRv-1
# Destination: XRv-6
router ospf 100
area 0
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa enable
!
!
RP/0/0/CPU0:XR1(config)#do show route ospf
Wed Jan 22 17:54:40.953 UTC
Codes: C - connected, S - static, R - RIP, B - BGP, (>) - Diversion path
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, su - IS-IS summary null, * - candidate default
U - per-user static route, o - ODR, L - local, G - DAGR, l - LISP
A - access/subscriber, a - Application route
M - mobile route, r - RPL, (!) - FRR Backup path
Gateway of last resort is not set
O 10.10.2.2/32 [110/2] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0
[110/0] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1 (!)
O 10.10.3.3/32 [110/0] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0 (!)
[110/2] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1
O 10.10.4.4/32 [110/0] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0 (!)
[110/3] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1
O 10.10.5.5/32 [110/3] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0
[110/0] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1 (!)
O 10.10.6.6/32 [110/4] via 10.10.6.6, 00:14:08, tunnel-te16
O 172.16.2.0/24 [110/2] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0
[110/0] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1 (!)
O 172.16.4.0/24 [110/0] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0 (!)
[110/2] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1
O 172.16.5.0/24 [110/3] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0
[110/0] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1 (!)
O 172.16.6.0/24 [110/0] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0 (!)
[110/3] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1
O 172.16.8.0/24 [110/0] via 172.16.1.2, 00:01:03, GigabitEthernet0/0/0/0 (!)
[110/3] via 172.16.3.3, 00:01:03, GigabitEthernet0/0/0/1
!
RP/0/0/CPU0:XR1(config)#do show mpls forwarding labels 16002 detail
Wed Jan 22 17:57:56.580 UTC
Local Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ----------- ------------------ ------------ --------------- ------------
16002 Pop SR Pfx (idx 2) Gi0/0/0/0 172.16.1.2 0
Updated: Jan 22 17:53:37.538
Path Flags: 0x400 [ BKUP-IDX:1 (0xa0c9c63c) ]
Version: 54, Priority: 1
Label Stack (Top -> Bottom): { Imp-Null }
NHID: 0x0, Encap-ID: N/A, Path idx: 0, Backup path idx: 1, Weight: 0
MAC/Encaps: 14/14, MTU: 1500
Packets Switched: 0
16006 SR Pfx (idx 2) Gi0/0/0/1 172.16.3.3 0 (!)
Updated: Jan 22 17:53:37.538
Path Flags: 0x8300 [ IDX:1 BKUP, NoFwd ]
Version: 54, Priority: 1
Label Stack (Top -> Bottom): { 16006 16002 }
NHID: 0x0, Encap-ID: N/A, Path idx: 1, Backup path idx: 0, Weight: 0
MAC/Encaps: 14/22, MTU: 1500
Packets Switched: 0
(!): FRR pure backup
Traffic-Matrix Packets/Bytes Switched: 0/0
Appendix
Segment Routing Global Block
The default range of SRGB is from 16,000 through 23,999 (8,000 labels could be allocated in total). However, IOS-XR adopts different hierarchy allocation model for both IGP and BGP. As for IGP, the following behaviors are in sequence.
- By the instance-level setup. Each instance is able to have respective definition.
- By the global-level setup.
- By the default range.
Unlike IGP, BGP supports the global-level setup only and there is no default range as well.
References
Podcast: Network Collective - Introduction To Segment Routing
YouTube: iNE - Introduction to Segment Routing
YouTube: Juniper - Segment Routing (SR)
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Return To Index.