MPLS/RSVP configuration & troubleshooting #2

In my previous post MPLS/RSVP configuration & troubleshooting I have configured two LSPs between two MPLS routers. Now I will continue where I left off. Just one thing I must inform you that MPLS labels in the previous post won’t match this post as I restarted my routers. We will again use the same topology;

mpls_ospf_rsvp

Previously we had two LSPs but didn’t know what to do with them. Now we will see how we can make use of them. When we create the LSP, one new routing table inet.3 will be populated.

inet.3 is the MPLS routing table. Once an LSP is established, you can find it here. You can see this table in an Ingress MPLS router but not in transit one in which you can see mpls.0 switching table populated.

BGP has very close connection with this table. For example, the network 98.1.1.0/24 has been discovered via IBGP from J40 to J35. This means protocol next hop is 10.1.1.8 address. BGP first look in the inet.3 table and if it finds 10.1.1.8 there, it will install the physical next hop in inet.0

Having an LSP as the next hop literally means, instead of sending it as an IP packet, router will encapsulate it in an MPLS frame and send it over the network. This also means that (P)Provider routers in the middle don’t really care what destination IP address you have in your packet. This also means that they can forward the packet without knowing the destination network. Pretty cool!

In the previous post our traceroute had failed because P routers didn’t have the routing entry for 98.1.1.0/24. Now we encapsulate the packet in MPLS frame. Let’s see what happens now;

Packet is forwarded properly. To demonstrate how the MPLS frame looks like I am sending a ping to destination 98.1.1.1 and see how the request/response looks like when we capture packet between J35-J31

ICMP REQUEST MPLS FRAME
mpls_icmp_request

ICMP RESPONSE MPLS FRAME

response_mpls_frame

If you compare the REQUEST ICMP MPLS FRAME and show rsvp session from J35, you can see that the label in the capture is matching the Labelout column. If you have noticed, you don’t see any MPLS header in the response. It is because J35 is an egress router and J31 is doing PHP (Penultimate Hop Popping) due to which packet is decapsulated before being sent to J35.

Now for some reason I would like my LSP not traverse the south but the routers in the north. If you look at the traceroute output, you can see that packets for 98.1.1.0/24 are traversing J31->J33->J32->J40 path but I want them to follow J34->J30->J29->J40

For this I have used strict keyword in every path and assigned this path as primary on this LSP. (Specifying egress router is optional) then I did the same for the reverse direction.

Now can you see that next hope changed from 172.41.1.1 (J31) to 172.40.1.1 (J34). We can see this change with an mpls traceroute as well.

However forcing a strict path has some drawbacks as far as I can see. If the LSP does down for some reason, a new LSP isn’t established automatically which means your traffic is black holed. For this we will add a second path in the case the primary path goes down.

I have done a failure test in which I cut communication between J34 and J30 in the north and saw that switchover to the secondary path took quite short during which I only lost 1 ICMP. Here how it worked for me;

  • When the primary link is UP, secondary link wasn’t available in “show rsvp session”
  • As soon as the link went down, second LSP triggered and traffic is diverted to this LSP
  • Then I brought the primary link UP by enabling communication, during which there were two active LSPs available
  • Traffic continued to flow through the secondary for a while and once JUNOS is sure about the stability of the link, it diverted the traffic to the primary back and brought down the secondary LSP
  • I would like to end this post here. I haven’t talked about Fast reroute feature yet as it requires some major changes in my topology. I will do it in the next post hopefully.

    Click for the 3rd post

    Stay tuned!

    2 thoughts on “MPLS/RSVP configuration & troubleshooting #2

    1. Denis

      Hi, nice post, Just one question. If I not use “no-cspf” and prefer to use something automatically, what should I use?

      Reply

    You have a feedback?