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 nhrp192.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.2192.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.2Notice 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 neighborNeighbor Encapsulation Time since msg rcvd/sent10.12.1.1 Raw IP 00:00:03 00:00:00192.168.254.2 Raw IP 00:00:04 00:00:03192.168.254.3 Raw IP 00:00:03 00:00:01All 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.4Routing 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 1Hub# show ip route 6.6.6.6Routing 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 1P2MP 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 p2mpP2MP 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: 1P2MP 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.2Midpoint (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 p2mpP2MP 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.2The 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 p2mpP2MP 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.2Spoke2# show mpls traffic-eng tunnels dest-mode p2mpP2MP 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.2Tailend (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 p2mpP2MP 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): NONEPE3# show mpls traffic-eng tunnels dest-mode p2mpP2MP 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): NONEAnd 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 interfaceinterface rsvp allocated i/f max flow max sub maxFa1/0 ena 0 75M 75M 0Tu100 ena 4M 75M 75M 0To summarize, it is possible to setup a P2MP LSP over a DMVPN network which runs on a pure IP-based network.