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.