In the following example (Figure 13), customer edge router 1 (CE1) and customer edge router 2 (CE2) exist in two separate VPNs. Each VPN is configured with its assigned Multicast Domain (235.1.1.1 and 235.1.1.2, respectively).
Figure 13: Multicast VPNs

To better understand the example, keep the following in mind:
![]() |
Caution: Defining the Tv interface with an address other than the loopback interface of the parent router might restrict operation with non-Juniper Networks routers. |
To configure the example, use the following general procedures:
![]() |
Note: This example provides general information for configuring a simple Multicast VPN network. For detailed information about creating GRE tunnels, see Configuring IP Tunnels in the JUNOSe IP Services Configuration Guide. For detailed information about PIM sparse-mode configuration, see PIM Sparse Mode. |
- host1:PE2(config-router)#router bgp 100
- host1:PE2(config-router)#address-family vpnv4
unicast
- host1:PE2(config-router-af)#neighbor 1.1.1.1
activate
- host1:PE2(config-router-af)#neighbor 1.1.1.1
next-hop-self
- host1:PE2(config-router-af)#neighbor 3.3.3.3
activate
- host1:PE2(config-router-af)#neighbor 3.3.3.3
next-hop-self
- host1:PE2(config-router-af)#exit-address-family
See Configuring BGP-MPLS Applications in the JUNOSe BGP and MPLS Configuration Guide for details.
![]() |
Note: For MVPN, it is a typical practice to use shared trees. |
- host1:PE1(config-router)#virtual-router PE2
- host1:PE2(config)#ip multicast-routing
- host1:PE2(config)#
- host1:PE2(config)#! MDT RP is 72.72.72.72 (P1)
- host1:PE2(config)#access-list 1 permit ip
235.0.0.0 0.255.255.255 any
- host1:PE2(config)#ip pim rp-address 72.72.72.72
1
- host1:PE2(config)#
- host1:PE2(config)#! Do not switch from RPT for MDTs
- host1:PE2(config)#ip pim spt-threshold infinity
group-list 1
- host1:PE2(config)#
- host1:PE2(config)#interface loopback 0
- host1:PE2(config-if)#ip address 2.2.2.2 255.255.255.255
- host1:PE2(config-if)#ip pim sparse-mode
- host1:PE2(config-if)
![]() |
Note: You must configure the loopback interface for PIM sparse mode to support unnumbered MDTs. |
- host1:PE2(config)#interface atm2/1.20
- host1:PE2(config-subif)#ip pim sparse-mode
- host1:PE2(config-subif)#
- host1:PE2(config)#router bgp 100
- host1:PE2(config-router)#address-family ipv4
unicast vrf PE21
- host1:PE2(config-router-af)#ip route-type
both
- host1:PE2(config-router-af)#exit
- host1:PE2(config-router)#
- host1(config)#interface tunnel gre:MTI-21
transport-virtual-router PE2
- host1(config-if)#tunnel source 2.2.2.2
- host1(config-if)#tunnel destination 235.1.1.1
- host1(config-if)#tunnel mdt
- host1(config-if)#exit
- host1(config)#
- host1(config)#interface tunnel gre:MTI-22
transport-virtual-router PE2
- thost1(config-if)#tunnel source 2.2.2.2
- host1(config-if)#tunnel destination 235.1.1.2
- host1(config-if)#tunnel mdt
- host1(config-if)#exit
- host1(config)#
- host1(config)#virtual-router PE2:CE21
- host1:PE2:CE21(config)#interface tunnel gre:MTI-21
- host1:PE2:CE21(config)#ip address 2.2.2.2
255.255.255.255
- host1:PE2:CE21(config)#ip pim sparse-mode
- host1:PE2:CE21(config)#exit
- host1:PE2:CE21#
- host1:PE2:CE21(config)#interface loopback
0
- host1:PE2:CE21(config-if)#ip address 2.2.2.2
255.255.255.255
- host1:PE2:CE21(config-if)#exit
- host1:PE2:CE21(config)#exit
- host1:PE2:CE21#virtual-router PE2:CE22
- host1:PE2:CE22#configuration terminal
- host1:PE2:CE22(config)#interface tunnel gre:MTI-22
- host1:PE2:CE22(config)#ip unnumbered loopback
0
- host1:PE2:CE22(config)#ip pim sparse-mode
- host1:PE2:CE22(config)#exit
- host1:PE2:CE22#
- host1(config)#interface tunnel gre:MTI-21.mdt
- host1(config-if)#ip unnumbered loopback 0
- host1(config-if)#ip pim sparse-mode
- host1(config-if)#exit
- host1(config)#
- host1(config)#interface tunnel gre:MTI-22.mdt
- host1(configif)#ip unnumbered loopback 0
- host1(config-if)#ip pim sparse-mode
- host1(config-if)#exit
- host1(config)#
tunnel mdt
- host1(config-if)#tunnel mdt