Friday, April 24, 2020

SR and LDP Interworking


Segment Routing Deployment - Control and Data Plane explains how to deploy SR in service provider network. The shared example was very good in case of green field deployment. But most of the service providers or large enterprise have already deployed LDP in the network. So it makes sense to have new networks deployed with SR-MPLS and existing will run on the LDP only. In this design, the SR and LDP interworking is required.

       

Technical Deep Dive Of Segment Routing Control Plane - ISIS
Segment Routing makes use of the Segment Routing Global Block (SRGB). The use of the SRGB allows SR to co-exist with any other control plane protocol installing forwarding entries in the MPLS data plane.

LDP to SR Behavior: An SR node having LDP neighbors MUST create LDP bindings for each Prefix-SID learned in the SR domain by treating SR learned labels as if they were learned through an LDP neighbor. In addition, for each FEC, the SR node stitches the incoming LDP label to the outgoing SR label.

SR to LDP: SR to LDP interworking requires a Segment Routing Mapping Server (SRMS). Each SR capable router installs in the MPLS data plane Node-SIDs learned from the SRMS exactly like if these SIDs had been advertised by the nodes themselves. An SR node having LDP neighbors MUST stitch the incoming SR label (whose SID is advertised by the SRMS) to the outgoing LDP label.

In this post, I will be covering how to configure segment routing mapping server (SRMS) on S1 node which will announce prefix-sid for the LDP neigbors (P6-6.6.6.6/32 and PE7-7.7.7.7/32)

Currently Segment Routing Mapping Server(SRMS) is not configured and check how the control plane mapping is working in SR-LDP network. P6,PE7 and RR-P8 are LDP nodes.

[LDP to SR Path]
Below traceroute output explicitly shows that PE7 has labelled path available for L4
       
RP/0/0/CPU0:PE7#traceroute 4.4.4.4 source 7.7.7.7
 1  6.7.0.6 [MPLS: Label 24020 Exp 0] 19 msec  19 msec  19 msec
 2  5.6.0.5 [MPLS: Label 24019 Exp 0] 19 msec  19 msec  9 msec
 3  1.5.0.1 [MPLS: Label 16004 Exp 0] 9 msec  9 msec  19 msec
 4  1.4.0.4 9 msec  *  19 msec
[SR to LDP Path]
Below traceroute output explicitly shows that L4 has no SR bindings avaiable for PE7.
       
RP/0/0/CPU0:L4#traceroute sr-mpls 7.7.7.7/32 source 4.4.4.4
  0 4.4.4.4 MRU 0 [No Label]
Q 1 *
RP/0/0/CPU0:L4#
Below output shows that L4 doesn't have prefix-sid (labels) avaiable for PE7.
       
RP/0/0/CPU0:L4# show isis segment-routing label table

IS-IS lab IS Label Table
Label         Prefix/Interface
----------    ----------------
16001         1.1.1.1/32
16002         2.2.2.2/32
16003         3.3.3.3/32
16004         Loopback0
16005         5.5.5.5/32
Mapping server is required so that PE7 and P6 loopback prefixes can be installed in SRDB label table. Below are the advantages of mapping server:
1. The Segment Routing Mapping Server (SRMS) is an IGP node advertising mapping between Segment Identifiers (SID) and prefixes.
2. Distribution of mappings for locally prefixes and allows advertisement of mappings on behalf of non-SR capable routers.
3. It's Control plane only function which may be located anywhere in the IGP flooding scope.
4. One mapping server is required for each ISIS area.
Below is configuration on node S1
       
segment-routing  
 mapping-server
   prefix-sid-map
    address-family ipv4
     6.6.6.6/32 6 range 1
     7.7.7.7/32 7 range 1
    ! 
    !
 router isis 
  address-family ipv4 unicast
   segment-routing prefix-sid-map advertise-local
  !
 ! 
With the help of above configuration, we can check the SR label binding locally on S1 and being adveritsed in ISIS to L4 also.
       
RP/0/0/CPU0:S1#show isis segment-routing label table
IS-IS lab IS Label Table
Label         Prefix/Interface
----------    ----------------
16001         Loopback0
16002         2.2.2.2/32
16003         3.3.3.3/32
16004         4.4.4.4/32
16005         5.5.5.5/32
16006         6.6.6.6/32
16007         7.7.7.7/32


RP/0/0/CPU0:L4# show isis segment-routing label table
IS-IS lab IS Label Table
Label         Prefix/Interface
----------    ----------------
16001         1.1.1.1/32
16002         2.2.2.2/32
16003         3.3.3.3/32
16004         Loopback0
16005         5.5.5.5/32
16006         6.6.6.6/32
16007         7.7.7.7/32
Let's verify how traceroute works from L4 to PE7.
       
RP/0/0/CPU0:L4#traceroute sr-mpls 7.7.7.7/32 source 4.4.4.4
Tracing MPLS Label Switched Path to 7.7.7.7/32, timeout is 2 seconds
  0 2.4.0.4 MRU 1500 [Labels: 16007 Exp: 0]
L 1 2.4.0.2 MRU 1500 [Labels: 16007 Exp: 0] 40 ms
L 2 2.5.0.5 MRU 1500 [Labels: 24004 Exp: 0] 30 ms
L 3 5.6.0.6 MRU 1500 [Labels: implicit-null Exp: 0] 50 ms
! 4 6.7.0.7 30 ms

People who read this post also read :



No comments: