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;
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.110.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!
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.
Thanks Steve. I am using Juniper vSRX previously known as Firefly. If you can get 12.1X46 releases they can even run on 512M RAM. The new 15.1X releases require much more memory. You can check the firefly post too at: http://rtoodtoo.net/firefly-perimeter-cluster-setup-on-vmware-esx/
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!