MPLS/RSVP configuration & troubleshooting #3

This is the 3rd post of my MPLS/RSVP series. In the first and second, I set up an MPLS cloud with some sort of redundancy. In this post, I will enable traffic engineering support on OSPF in order to use CSPF and fast reroute feature. To explain fast reroute I need the topology again;

mpls_ospf_rsvp

In a standard MPLS setup without fast reroute, if you have an LSP from J35 to J40 (Path: J34->J30->J29) and link between J30 and J29 breaks, it will take time for PATH error message to be received by J35 ingress router. However, if you enable fast reroute every router along the path will have alternate PATH available in case its link breaks and detours very quickly and will keep forwarding the traffic till the new LSP is established by the ingress router.
Please note that this is a temporary workaround to keep the traffic flowing without any disruption. Now it is time to get into the CLI to see how this works;

We must enable traffic engineering on OSPF and CSPF on MPLS. Otherwise fastreroute doesn’t work. This is what I have seen at least. In addition to this, my OSPF setup is multiarea for which I have to enable expand-loose-hop option in every MPLS router. According to the description from Juniper page “ it allows an LSP to traverse multiple OSPF areas within a service provider’s network.” Also according to juniper docs, if you configure an interarea LSP, you must set inter-domain option.

Execute the followings in all routers (P,PE)

del protocols mpls no-cspf
set protocols ospf traffic-engineering
set protocols mpls expand-loose-hop

Additionaly set inter-domain and fast-reroute option in your LSPs on your PE routers

set protocols mpls label-switched-path j40-to-j35 inter-domain
set protocols mpls label-switched-path j40-to-j35 fast-reroute

In the outputs below look for the “FastReroute desired” keyword.

root@j40> show mpls lsp 
Ingress LSP: 1 sessions
To              From            State Rt P     ActivePath       LSPname
10.1.1.7        10.1.1.8        Up     0 *     north            j40-to-j35
Total 1 displayed, Up 1, Down 0

Egress LSP: 1 sessions
To              From            State   Rt Style Labelin Labelout LSPname 
10.1.1.8        10.1.1.7        Up       0  1 FF       3        - j35-to-j40
Total 1 displayed, Up 1, Down 0

Transit LSP: 0 sessions
Total 0 displayed, Up 0, Down 0

root@j40> show mpls lsp extensive    
Ingress LSP: 1 sessions

10.1.1.7
  From: 10.1.1.8, State: Up, ActiveRoute: 0, LSPname: j40-to-j35
  ActivePath: north (primary)
  FastReroute desired
  PathDomain: Inter-domain
  LSPtype: Static Configured
  LoadBalance: Random
  Encoding type: Packet, Switching type: Packet, GPID: IPv4
 *Primary   north            State: Up
    Priorities: 7 0
    SmartOptimizeTimer: 180
    Computed ERO (S [L] denotes strict [loose] hops): (CSPF metric: 10)
 24.1.1.1 S 10.1.1.3 S 10.1.1.6 S 
    Received RRO (ProtectionFlag 1=Available 2=InUse 4=B/W 8=Node 10=SoftPreempt 20=Node-ID):
          24.1.1.1(flag=9) 192.168.196.2(flag=9) 192.168.198.2(flag=1) 172.40.1.2
   14 Aug 12 21:18:49.957 Fast-reroute Detour Up
   13 Aug 12 21:18:44.024 Record Route:  24.1.1.1(flag=9) 192.168.196.2(flag=9) 192.168.198.2(flag=1) 172.40.1.2
   12 Aug 12 21:18:44.020 Record Route:  24.1.1.1 192.168.196.2 192.168.198.2(flag=1) 172.40.1.2
   11 Aug 12 21:18:42.004 Make-before-break: Switched to new instance
   10 Aug 12 21:18:41.001 Record Route:  24.1.1.1 192.168.196.2 192.168.198.2 172.40.1.2
    9 Aug 12 21:18:41.001 Up
    8 Aug 12 21:18:40.928 Originate make-before-break call
    7 Aug 12 21:18:40.928 CSPF: computation result accepted  24.1.1.1
    6 Aug 12 21:13:09.257 Selected as active path
    5 Aug 12 21:13:09.254 Record Route:  24.1.1.1 192.168.196.2 192.168.198.2 172.40.1.2
    4 Aug 12 21:13:09.253 Up
    3 Aug 12 21:13:09.184 Originate Call
    2 Aug 12 21:13:09.184 CSPF: computation result accepted  24.1.1.1
    1 Aug 12 21:12:39.759 CSPF: could not determine self
  Secondary south-backup     State: Dn
    Priorities: 7 0
    SmartOptimizeTimer: 180
        No computed ERO.
    5 Aug 12 21:13:38.908 Clear Call
    4 Aug 12 21:13:09.258 Record Route:  25.1.2.1 10.194.194.2 192.168.24.2 172.41.1.2
    3 Aug 12 21:13:09.258 Up
    2 Aug 12 21:13:09.184 Originate Call
    1 Aug 12 21:13:09.184 CSPF: computation result accepted  25.1.2.1
  Created: Mon Aug 12 21:12:39 2013
Total 1 displayed, Up 1, Down 0

Egress LSP: 2 sessions, 1 detours

10.1.1.8
  From: 10.1.1.7, LSPstate: Up, ActiveRoute: 0
  LSPname: j35-to-j40, LSPpath: Primary
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: -
  Resv style: 1 FF, Label in: 3, Label out: -
  Time left:  143, Since: Mon Aug 12 21:15:32 2013
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 3 receiver 10311 protocol 0
  PATH rcvfrom: 24.1.1.1 (ge-0/0/0.0) 12 pkts
  Adspec: received MTU 1500 
  PATH sentto: localclient
  RESV rcvfrom: localclient 
  Record route: 172.40.1.2 192.168.198.2 192.168.196.2 24.1.1.1   

10.1.1.8
  From: 10.1.1.7, LSPstate: Up, ActiveRoute: 0
  LSPname: j35-to-j40, LSPpath: Primary
  Suggested label received: -, Suggested label sent: -
  Recovery label received: -, Recovery label sent: -
  Resv style: 1 FF, Label in: 3, Label out: -
  Time left:  143, Since: Mon Aug 12 21:21:26 2013
  Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
  Port number: sender 4 receiver 10311 protocol 0
  FastReroute desired                   
  PATH rcvfrom: 24.1.1.1 (ge-0/0/0.0) 5 pkts
  Adspec: received MTU 1500 
  PATH sentto: localclient
  RESV rcvfrom: localclient 
  Record route: 172.40.1.2 192.168.198.2 192.168.196.2 24.1.1.1   
  Detour branch from 192.168.195.1, to skip 10.1.1.8, Up
    Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
    Adspec: received MTU 1500 
    Path MTU: received 0
  Detour branch from 192.168.23.1, to skip 192.168.198.1, Up
    Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
    Adspec: received MTU 1500 
    Path MTU: received 0
  Detour branch from 192.168.199.2, to skip 192.168.196.1, Up
    Tspec: rate 0bps size 0bps peak Infbps m 20 M 1500
    Adspec: received MTU 1500 
    Path MTU: received 0
    PATH rcvfrom: 25.1.2.1 (ge-0/0/1.0) 4 pkts
    Adspec: received MTU 1500 
    PATH sentto: localclient
    RESV rcvfrom: localclient 
    Record route: 172.40.1.2 192.168.198.2 192.168.196.2 192.168.195.1 25.1.2.1   
    Label in: 3, Label out: -
Total 2 displayed, Up 2, Down 0

Transit LSP: 0 sessions
Total 0 displayed, Up 0, Down 0

In order to show you what an amazing technology this fast reroute is, I have removed previous primary and secondary paths.

root@j35# show    
expand-loose-hop;
label-switched-path j35-to-j40 {
    to 10.1.1.8;
    inter-domain;
    fast-reroute;
    primary resilient;
}
path resilient;
interface all;

I let the PE router to choose OSPF route for its exit interface towards 98.1.1.0/24 network and it chose J34 (172.40.1.1) as the next hop.

root@j35> show route 98.1.1.0/24 

inet.0: 63 destinations, 74 routes (62 active, 0 holddown, 1 hidden)
+ = Active Route, - = Last Active, * = Both

98.1.1.0/24        *[BGP/170] 12:53:16, localpref 100, from 10.1.1.8
                      AS path: I
                    > to 172.40.1.1 via ge-0/0/0.0, label-switched-path j35-to-j40
                      to 172.41.1.1 via ge-0/0/1.0, label-switched-path j35-to-j40

I initiated ping from J36 device and in the mean time I disabled interface between J34-J30 which is along the path of LSP

root@j36> ping 98.1.1.1 count 10000 rapid    
PING 98.1.1.1 (98.1.1.1): 56 data bytes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^C

You can see that only one DOT is visible. Fastreroute detoured the traffic immediately. You can see it below from detour down and up messages.

root@j35> show mpls lsp extensive   
Ingress LSP: 1 sessions

10.1.1.8
  From: 10.1.1.7, State: Up, ActiveRoute: 0, LSPname: j35-to-j40
  ActivePath: resilient (primary)
  FastReroute desired
  PathDomain: Inter-domain
  LSPtype: Static Configured
  LoadBalance: Random
  Encoding type: Packet, Switching type: Packet, GPID: IPv4
 *Primary   resilient        State: Up
    Priorities: 7 0
    SmartOptimizeTimer: 180
    Computed ERO (S [L] denotes strict [loose] hops): (CSPF metric: 20)
 172.41.1.1 S 192.168.24.1 S 
    Received RRO (ProtectionFlag 1=Available 2=InUse 4=B/W 8=Node 10=SoftPreempt 20=Node-ID):
          172.41.1.1 192.168.24.1(flag=9) 10.194.194.1(flag=1) 25.1.2.2
   22 Aug 12 21:29:29.344 Fast-reroute Detour Up
   21 Aug 12 21:29:23.390 Record Route:  172.41.1.1 192.168.24.1(flag=9) 10.194.194.1(flag=1) 25.1.2.2
   20 Aug 12 21:29:23.384 Record Route:  172.41.1.1 192.168.24.1 10.194.194.1(flag=1) 25.1.2.2
   19 Aug 12 21:29:21.396 Make-before-break: Switched to new instance
   18 Aug 12 21:29:20.391 CSPF: link down/deleted: 0.0.0.0(192.168.198.2:0)(192.168.198.2)->0.0.0.0(10.1.1.3:0)(10.1.1.3)
   17 Aug 12 21:29:20.391 Record Route:  172.41.1.1 192.168.24.1 10.194.194.1 25.1.2.2
   16 Aug 12 21:29:20.391 Up
   15 Aug 12 21:29:20.340 CSPF: link down/deleted: 192.168.198.2(10.1.1.6:0)(10.1.1.6)->0.0.0.0(192.168.198.2:0)(192.168.198.2)
   14 Aug 12 21:29:20.339 Fast-reroute Detour Down
   13 Aug 12 21:29:20.337 Record Route:  172.40.1.1(flag=0xb) 192.168.23.2 192.168.24.1 10.194.194.1 25.1.2.2
   12 Aug 12 21:29:20.305 Originate make-before-break call
   11 Aug 12 21:29:20.305 CSPF: computation result accepted  172.41.1.1 192.168.24.1
   10 Aug 12 21:29:20.304 172.40.1.1: Tunnel local repaired
    9 Aug 12 21:27:50.303 Fast-reroute Detour Up
    8 Aug 12 21:27:44.362 Record Route:  172.40.1.1(flag=9) 192.168.198.1(flag=9) 192.168.196.1(flag=1) 24.1.1.2
    7 Aug 12 21:27:44.354 Record Route:  172.40.1.1 192.168.198.1(flag=9) 192.168.196.1(flag=1) 24.1.1.2
    6 Aug 12 21:27:44.338 Record Route:  172.40.1.1 192.168.198.1 192.168.196.1(flag=1) 24.1.1.2
    5 Aug 12 21:27:41.321 Selected as active path
    4 Aug 12 21:27:41.317 Record Route:  172.40.1.1 192.168.198.1 192.168.196.1 24.1.1.2
    3 Aug 12 21:27:41.317 Up
    2 Aug 12 21:27:41.255 Originate Call
    1 Aug 12 21:27:41.255 CSPF: computation result accepted  172.40.1.1 192.168.198.1
  Created: Mon Aug 12 21:27:40 2013
Total 1 displayed, Up 1, Down 0

I hope I could give some information about fast reroute in this post. In the next post, I will possibly set up a BGP L3VPN connection.

Click here for the 4th post

Stay tuned!

About: rtoodtoo

Worked for more than 10 years as a Network/Support Engineer and also interested in Python, Linux, Security and SD-WAN // JNCIE-SEC #223 / RHCE / PCNSE


3 thoughts on “MPLS/RSVP configuration & troubleshooting #3”

  1. The best explanation i have ever found online. Can you please tell me from where did you get JUNOS images to set up your own lab? Thanks again for this useful info.

  2. Thanks so much @rtoodtoo – this helped me in my JNCIE-SP home lab. I am exporting routes from OSPF to IS-IS at a border in my lab and the LSPs were not coming up (I converted from 100% IS-IS). The only clue I had was in ‘show mpls lsp extensive’ output I could see ‘No Computed ERO” and some warnings about no route to the next hop (even on a loose hopped path that was reachable via inet.0).

    I had no idea about this feature until today. Cheers!

You have a feedback?

Discover more from RtoDto.net

Subscribe now to keep reading and get access to the full archive.

Continue reading