Tunnelling LDP over RSVP

Task

In this lab, we will demonstrate the configuration of tunnelling LDP over RSVP, and verification steps.

Topology

We use the standard topology (PE1, 6 x P routers and PE2). For simplicity, we only use the path between PE1 – P1 – P2 – P3 – PE2 by shutting down interfaces between PE1 and P4, and between P6 and PE2.

 

Configuration

The steps involved are:

On all P routers, we need Enable RSVP. We only need to enable interfaces between P routers. For convenience, it make no difference if we enable all interfaces because PE does not run RSVP.

p1@vr-device:p1> show configuration protocols rsvp 
interface all;

Enable ldp-tunneling for the RSVP LSP.

p1@vr-device:p1> show configuration protocols mpls 
no-cspf;
label-switched-path p1-to-p3 {
    from 192.168.5.1;
    to 192.168.5.3;
    ldp-tunneling;
}
interface all;

Enable LDP on interface(s) facing PE, AND the loopback address.

p1@vr-device:p1> show configuration protocols ldp 
interface em1.210;
interface lo0.1;

On PE router, we need to enable MPLS, and LDP on interfaces facing the P routers

 
lab@PE1> show configuration protocols mpls 
interface all;

lab@PE1> show configuration protocols ldp 
/* same as interface all */
interface em1.210;
interface em2.211;
interface lo0.0;

Verification

Verify LDP neighbor relationship on PE1

lab@PE1> show rsvp neighbor 
RSVP not configured

lab@PE1> show ldp neighbor 
Address            Interface          Label space ID         Hold time
172.22.210.2       em1.210            192.168.5.1:0            12

On P1, verify LDP neighbor relationship with PE1, and RSVP relationship with P2, and status of MPLS LSP

p1@vr-device:p1> show rsvp neighbor 
RSVP neighbor: 1 learned
Address            Idle Up/Dn LastChange HelloInt HelloTx/Rx MsgRcvd
172.22.201.2         10  1/0       19:51        9   134/134  58

p1@vr-device:p1> show ldp neighbor 
Address            Interface          Label space ID         Hold time
192.168.5.3        lo0.1              192.168.5.3:0            41
172.22.210.1       em1.210            192.168.1.1:0            10

p1@vr-device:p1> show mpls lsp 
Ingress LSP: 1 sessions
To              From            State Rt P     ActivePath       LSPname
192.168.5.3     192.168.5.1     Up     0 *                      p1-to-p3
Total 1 displayed, Up 1, Down 0

Egress LSP: 1 sessions
To              From            State   Rt Style Labelin Labelout LSPname 
192.168.5.1     192.168.5.3     Up       0  1 FF       3        - p3-to-p1
Total 1 displayed, Up 1, Down 0

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

By default, only BGP traffic can use MPLS table to resolve the next hop. IGP can not. To be able to force tracing between PE1 and PE2 loopback via LSP path, we need to enable the following command.

lab@PE1# edit protocols mpls 
set traffic-engineering bgp-igp

Verify with ping and trace, and note the labels used by the packet. As P1 is the one that does the LDP over RSVP tunnelling, it does not only swap the incoming label 300912 with an outgoing label of 300704 (LDP LSP label) but also pushes another label of 300768 (RSVP LSP label) on top.

lab@PE1> traceroute 192.168.1.2 source 192.168.1.1 
traceroute to 192.168.1.2 (192.168.1.2) from 192.168.1.1, 30 hops max, 40 byte packets
 1  172.22.210.2 (172.22.210.2)  0.451 ms  0.328 ms  0.281 ms
     MPLS Label=300912 CoS=0 TTL=1 S=1
 2  172.22.201.2 (172.22.201.2)  0.448 ms  0.448 ms  0.496 ms
     MPLS Label=300768 CoS=0 TTL=1 S=0
     MPLS Label=300704 CoS=0 TTL=1 S=1
 3  172.22.206.2 (172.22.206.2)  0.634 ms  0.621 ms  0.808 ms
     MPLS Label=300704 CoS=0 TTL=1 S=1
 4  192.168.1.2 (192.168.1.2)  0.913 ms  0.898 ms  0.796 ms

lab@PE1> show route forwarding-table destination 192.168.1.2 
Routing table: default.inet
Internet:
Destination        Type RtRef Next hop           Type Index NhRef Netif
192.168.1.2/32     user     1 172.22.210.2      Push 300912   598     4 em1.210

p1@vr-device:p1> show route forwarding-table label 300912 
Logical system: p1
Routing table: default.mpls
MPLS:
Destination        Type RtRef Next hop           Type Index NhRef Netif
300912             user     0 172.22.201.2      Swap 300704, Push 300768(top)   974     2 em3.12

p2@vr-device:p2> show route forwarding-table label 300768 
Logical system: p2
Routing table: default.mpls
MPLS:
Destination        Type RtRef Next hop           Type Index NhRef Netif
300768             user     0 172.22.206.2      Pop     971     2 em3.23
300768(S=0)        user     0 172.22.206.2      Pop     972     2 em3.23

p3@vr-device:p3> show route forwarding-table label 300704 
Logical system: p3
Routing table: default.mpls
MPLS:
Destination        Type RtRef Next hop           Type Index NhRef Netif
300704             user     0 172.22.212.1      Pop     955     2 em2.212
300704(S=0)        user     0 172.22.212.1      Pop     956     2 em2.212

Verify that CE1 can ping CE2 and the path is via CE1 – PE1 – P1 – P2 – P3 – PE2. Note that in the trace output, we can not see the intermediate hops between PE1 and PE2 (i.e. P1, P2, P3) because these router do not run BGP and have no route back to the CE1.

lab@PE2> ping 192.168.11.1 source 192.168.11.2 routing-instance ce2 count 3    
PING 192.168.11.1 (192.168.11.1): 56 data bytes
64 bytes from 192.168.11.1: icmp_seq=0 ttl=59 time=1.694 ms
64 bytes from 192.168.11.1: icmp_seq=1 ttl=59 time=1.128 ms
64 bytes from 192.168.11.1: icmp_seq=2 ttl=59 time=1.106 ms

--- 192.168.11.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 1.106/1.309/1.694/0.272 ms

lab@PE2> trace 192.168.11.1 source 192.168.11.2 routing-instance ce2    
traceroute to 192.168.11.1 (192.168.11.1) from 192.168.11.2, 30 hops max, 40 byte packets
 1  10.0.11.1 (10.0.11.1)  0.969 ms  0.412 ms  0.471 ms
 2  * * *
 3  * * *
 4  * * *
 5  172.22.210.1 (172.22.210.1)  1.367 ms  1.358 ms  1.181 ms
 6  192.168.11.1 (192.168.11.1)  1.397 ms  1.468 ms  1.240 ms

Reference

http://www.juniper.net/techpubs/en_US/junos10.4/topics/example/vpn-ldp-over-rsvp-topology-configuring.html

Leave a comment