P2MP MPLS TE over DMVPN

P2MP MPLS TE over DMVPN

This example demonstrates setting up P2MP MPLS TE using RSVP-TE over IP-based DMVPN network.

DMVPN Configuration

In figure 1, an mGRE tunnel is setup between Hub, Spoke1 and Spoke2 routers. The Hub router acts as the Next-Hop Server (NHS). The address of NHS is manually configured on the Spoke routers. Both Spoke routers (also called Next-Hop Clients NHCs) register their NBMA and Tunnel IP addresses to the Hub router using Registration Request packets. The NHS responds back with Registration Reply packets acknowledging that it has dynamically learnt about tunnel-to-NBMA address mapping of Spoke routers.

Also, a separate routing domain (EIGRP AS 10) is configured for the DMVPN network.

DMVPN Configuration on Hub router

interface Tunnel 100
 bandwidth 100000
 ip address 192.168.254.1 255.255.255.0
 tunnel source Fastethernet 1/1
 tunnel mode gre multipoint
 ip ospf network broadcast
 ip nhrp map multicast dynamic
 ip nhrp network-id 1234
 ip nhrp holdtime 1000
 ip rsvp bandwidth
 mpls traffic-eng tunnels
!
router eigrp 10
 no auto-summary
 network 10.23.1.0
!
router ospf 1
 router-id 2.2.2.2
 network 192.168.254.0 0.0.0.255 area 0
 network 10.12.1.0 0.0.0.255 area 0
 network 2.2.2.2 0.0.0.0 area 0
 passive-interface Loopback 0
!

Since the mGRE tunnel will be used to carry MPLS TE, RSVP and MPLS TE are also enabled on the mGRE tunnel interface. This carrying of a tunnel over another tunnel is also called LSP Hierarchy.

A similar DMVPN configuration is applied on Spoke routers.

The following output shows that the Hub router has dynamically learnt about logical-to-physical address mapping of both Spoke routers.

NHRP mappings on Hub router

Hub# show ip nhrp
192.168.254.2/32 via 192.168.254.2, Tunnel100 created 00:03:56, expire 00:12:43
  Type: dynamic, Flags: authoritative unique registered used
  NBMA address: 10.34.1.2
192.168.254.3/32 via 192.168.254.3, Tunnel100 created 00:00:11, expire 00:16:28
  Type: dynamic, Flags: authoritative unique registered used
  NBMA address: 10.35.1.2

Notice in the below output that since RSVP is enabled on mGRE tunnel, it forms neighbor relationship with Spoke1 and Spoke2 routers over mGRE tunnel.

RSVP neighbors over mGRE tunnel

Hub# show ip rsvp neighbor
Neighbor        Encapsulation  Time since msg rcvd/sent
10.12.1.1       Raw IP         00:00:03   00:00:00
192.168.254.2   Raw IP         00:00:04   00:00:03
192.168.254.3   Raw IP         00:00:03   00:00:01

All prefixes behind Spoke1 and Spoke2 routers are learnt over mGRE tunnel using OSPF.

PE2 and PE3 loopback interfaces learnt over mGRE tunnel on Hub

Hub# show ip route 4.4.4.4
Routing entry for 4.4.4.4/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from 192.168.254.2 on Tunnel100, 00:17:50 ago
  Routing Descriptor Blocks:
  * 192.168.254.2, from 4.4.4.4, 00:17:50 ago, via Tunnel100
      Route metric is 3, traffic share count is 1
Hub# show ip route 6.6.6.6
Routing entry for 6.6.6.6/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from 192.168.254.3 on Tunnel100, 00:17:31 ago
  Routing Descriptor Blocks:
  * 192.168.254.3, from 6.6.6.6, 00:17:31 ago, via Tunnel100
      Route metric is 3, traffic share count is 1

P2MP MPLS TE Configuration

The P2MP MPLS TE configuration is applied on PE1 router in figure 1. The configuration is as below:

P2MP MPLS TE configuration on PE1 router

interface Tunnel 10
 ip unnumbered Loopback 0
 tunnel mode mpls traffic-eng point-to-multipoint
 tunnel destination list mpls traffic-eng name EGRESS_LIST
 tunnel mpls traffic-eng bandwidth 2000
 tunnel mpls traffic-eng record-route
!
mpls traffic-eng destination list name EGRESS_LIST
 ip 4.4.4.4 path-option 2 dynamic            ! PE2 router
 ip 6.6.6.6 path-option 2 dynamic            ! PE3 router
!

Verification

Headend (PE1)

Since the P2MP MPLS TE tunnel has 2 destinations (egress routers), PE1 router will initiate 2 RSVP PATH messages, essentially 2 sub-P2P LSPs. Each PATH message carries same P2MP ID, Tunnel ID and Extended Tunnel ID viz. {10, 10, 1.1.1.1} information in the Session Object. However, both PATH messages contain different Sub-Group IDs with same Sub-Group Originator (1.1.1.1) in their Sender_Template object.

The following output shows the P2MP LSP at the headend (PE1) router:

P2MP MPLS TE tunnel at PE1 router

PE1# show mpls traffic-eng tunnels dest-mode p2mp
P2MP TUNNELS:
Tunnel10    (p2mp),  Admin: up, Oper: up
  Name: PE1_t10
  Tunnel10 Destinations Information:
    Destination     State SLSP UpTime
    4.4.4.4         Up    00:00:24
    6.6.6.6         Up    00:00:24
    Summary: Destinations: 2 [Up: 2, Proceeding: 0, Down: 0 ]
      [destination list name: EGRESS_LIST]
  History:
    Tunnel:
      Time since created: 52 minutes, 48 seconds
      Time since path change: 21 seconds
      Number of LSP IDs (Tun_Instances) used: 11
    Current LSP: [ID: 11]
      Uptime: 24 seconds
      Selection: reoptimization
    Prior LSP: [ID: 8]
      Removal Trigger: configuration changed
  Tunnel10 LSP Information:
    Configured LSP Parameters:
      Bandwidth: 2000     kbps (Global)  Priority: 7  7   Affinity: 0x0/0xFFFF
      Metric Type: TE (default)
  Session Information
    Source: 1.1.1.1, TunID: 10
    LSPs
      ID: 11 (Current), Path-Set ID: 0x5E00000F
        Sub-LSPs: 2, Up: 2, Proceeding: 0, Down: 0
      Total LSPs: 1
P2MP SUB-LSPS:
 LSP: Source: 1.1.1.1, TunID: 10, LSPID: 11
     P2MP ID: 10, Subgroup Originator: 1.1.1.1
     Name: PE1_t10
     Bandwidth: 2000, Global Pool
  Sub-LSP to 4.4.4.4, P2MP Subgroup ID: 1, Role: head
    Path-Set ID: 0x5E00000F
    OutLabel : FastEthernet1/0, 18
    Next Hop : 10.12.1.2
    Explicit Route: 10.12.1.2 192.168.254.1 192.168.254.2 10.46.1.1
                    10.46.1.2 4.4.4.4
    Record   Route (Path):
    Record   Route (Resv): 192.168.254.1 10.46.1.1 10.46.1.2
  Sub-LSP to 6.6.6.6, P2MP Subgroup ID: 2, Role: head
    Path-Set ID: 0x5E00000F
    OutLabel : FastEthernet1/0, 18
    Next Hop : 10.12.1.2
    Explicit Route: 10.12.1.2 192.168.254.1 192.168.254.3 10.56.1.1
                    10.56.1.2 6.6.6.6
    Record   Route (Path):
    Record   Route (Resv): 192.168.254.1 10.56.1.1 10.56.1.2

Midpoint (Hub, Spoke1 and Spoke2)

The following output shows the P2MP LSP at the midpoint (Hub) router. Notice the outgoing interface (and label) for both sub-LSPs at Hub router. Also notice that the ERO points at two different next-hops for both sub-LSPs. Thus, the LSPs branches out at Hub router.

P2MP MPLS TE tunnel at Hub router

Hub# show mpls traffic-eng tunnels dest-mode p2mp
P2MP TUNNELS:
P2MP SUB-LSPS:
 LSP: Source: 1.1.1.1, TunID: 10, LSPID: 11
     P2MP ID: 10, Subgroup Originator: 1.1.1.1
     Name: PE1_t10
     Bandwidth: 2000, Global Pool
  Sub-LSP to 4.4.4.4, P2MP Subgroup ID: 1, Role: midpoint
    Path-Set ID: 0x2E000005
    InLabel  : FastEthernet1/0, 18
    Prev Hop : 10.12.1.1
    OutLabel : Tunnel100, 18
    Next Hop : 192.168.254.2
    Explicit Route: 192.168.254.2 10.46.1.1 10.46.1.2 4.4.4.4
    Record   Route (Path): 10.12.1.1
    Record   Route (Resv): 10.46.1.1 10.46.1.2
  Sub-LSP to 6.6.6.6, P2MP Subgroup ID: 2, Role: midpoint
    Path-Set ID: 0x2E000005
    InLabel  : FastEthernet1/0, 18
    Prev Hop : 10.12.1.1
    OutLabel : Tunnel100, 18
    Next Hop : 192.168.254.3
    Explicit Route: 192.168.254.3 10.56.1.1 10.56.1.2 6.6.6.6
    Record   Route (Path): 10.12.1.1
    Record   Route (Resv): 10.56.1.1 10.56.1.2

The following output shows P2MP MPLS TE tunnel at Spoke routers. Notice the incoming interface (and label) for both sub-LSPs.

P2MP MPLS TE tunnel at Spoke routers

Spoke1# show mpls traffic-eng tunnels dest-mode p2mp
P2MP TUNNELS:
P2MP SUB-LSPS:
 LSP: Source: 1.1.1.1, TunID: 10, LSPID: 11
     P2MP ID: 10, Subgroup Originator: 1.1.1.1
     Name: PE1_t10
     Bandwidth: 2000, Global Pool
  Sub-LSP to 4.4.4.4, P2MP Subgroup ID: 1, Role: midpoint
    Path-Set ID: 0x4C000005
    InLabel  : Tunnel100, 18
    Prev Hop : 192.168.254.1
    OutLabel : FastEthernet1/1, 18
    Next Hop : 10.46.1.2
    Explicit Route: 10.46.1.2 4.4.4.4
    Record   Route (Path): 192.168.254.1 10.12.1.1
    Record   Route (Resv): 10.46.1.2
Spoke2# show mpls traffic-eng tunnels dest-mode p2mp
P2MP TUNNELS:
P2MP SUB-LSPS:
 LSP: Source: 1.1.1.1, TunID: 10, LSPID: 11
     P2MP ID: 10, Subgroup Originator: 1.1.1.1
     Name: PE1_t10
     Bandwidth: 2000, Global Pool
  Sub-LSP to 6.6.6.6, P2MP Subgroup ID: 2, Role: midpoint
    Path-Set ID: 0xF3000004
    InLabel  : Tunnel100, 18
    Prev Hop : 192.168.254.1
    OutLabel : FastEthernet1/1, 18
    Next Hop : 10.56.1.2
    Explicit Route: 10.56.1.2 6.6.6.6
    Record   Route (Path): 192.168.254.1 10.12.1.1
    Record   Route (Resv): 10.56.1.2

Tailend (PE2 and PE3)

The following output shows the P2MP MPLS TE at the tailend (PE2 and PE3) routers.

P2MP MPLS TE tunnel at tailend routers

PE2# show mpls traffic-eng tunnels dest-mode p2mp
P2MP TUNNELS:
P2MP SUB-LSPS:
 LSP: Source: 1.1.1.1, TunID: 10, LSPID: 11
     P2MP ID: 10, Subgroup Originator: 1.1.1.1
     Name: PE1_t10
     Bandwidth: 2000, Global Pool
  Sub-LSP to 4.4.4.4, P2MP Subgroup ID: 1, Role: tail
    Path-Set ID: 0x89000005
    InLabel  : FastEthernet1/0, 18
    Prev Hop : 10.46.1.1
    OutLabel :  -
    Explicit Route:  NONE
    Record   Route (Path): 10.46.1.1 192.168.254.1 10.12.1.1
    Record   Route (Resv):  NONE
PE3# show mpls traffic-eng tunnels dest-mode p2mp
P2MP TUNNELS:
P2MP SUB-LSPS:
 LSP: Source: 1.1.1.1, TunID: 10, LSPID: 11
     P2MP ID: 10, Subgroup Originator: 1.1.1.1
     Name: PE1_t10
     Bandwidth: 2000, Global Pool
  Sub-LSP to 6.6.6.6, P2MP Subgroup ID: 2, Role: tail
    Path-Set ID: 0x33000004
    InLabel  : FastEthernet1/0, 18
    Prev Hop : 10.56.1.1
    OutLabel :  -
    Explicit Route:  NONE
    Record   Route (Path): 10.56.1.1 192.168.254.1 10.12.1.1
    Record   Route (Resv):  NONE

And lastly, notice the bandwidth reserved by Hub router on mGRE tunnel interface. It is 4Mbps although a 2Mbps reservation was sent by PE1 router. This is due to the fact that it is a mGRE tunnel interface and since it carries 2 sub-LSPs, it will reserve the bandwidth for both sub-LSPs.

Hub router reserves 4Mbps on mGRE tunnel interface

Hub# show ip rsvp interface
interface    rsvp       allocated  i/f max  flow max sub max
Fa1/0        ena        0          75M      75M      0
Tu100        ena        4M         75M      75M      0

To summarize, it is possible to setup a P2MP LSP over a DMVPN network which runs on a pure IP-based network.