This section describes how to configure multicast virtual private networks (MVPNs) using multiprotocol BGP (MBGP) (next-generation MVPNs).
To implement multiprotocol BGP-based multicast VPNs, auto-RP, bootstrap router (BSR) RP, and PIM dense mode you need JUNOS Release 9.2 or later.
To implement multiprotocol BGP-based multicast VPNs, sender-only sites, and receiver-only sites you need JUNOS Release 8.4 or later.
You can configure PIM auto-RP, bootstrap router (BSR) RP, PIM dense mode, and mtrace for next generation multicast VPN networks. Auto-RP uses PIM dense mode to propagate control messages and establish RP mapping. You can configure an auto-RP node in one of three different modes: discovery mode, announce mode, and mapping mode. BSR is the IETF standard for RP establishment. A selected router in a network acts as a BSR, which selects a unique RP for different group ranges. BSR messages are flooded using the data tunnel between PE routers. When you enable PIM dense mode, data packets are forwarded to all interfaces except the incoming interface. Unlike PIM sparse mode, where explicit joins are required for data packets to be transmitted downstream, data packets are flooded to all routers in the routing instance in PIM dense mode.
This section shows you how to configure a MVPN using MBGP. If you have multicast VPNs based on draft-rosen, they will continue to work as before and are not affected by the configuration of MVPNs using MBGP.
The network configuration used for most of the examples in this section is shown in Figure 32.
Figure 32: MBGP MVPN Topology Variations Diagram

In the figure, two VPNs, VPN A and VPN B, are serviced by the same provider at several sites, two of which have CE routers for both VPN A and VPN B (site 2 is not shown). The PE routers are shown with VRF tables for the VPN CEs for which they have routing information. It is important to note that no multicast protocols are required between the PE routers on the network. The multicast routing information is carried by MBGP between the PE routers. There may be one or more BGP route reflectors in the network. Both VPNs operate independently and are configured separately.
Both the PE and CE routers run PIM sparse mode and maintain forwarding state information about customer source (C-S) and customer group (C-G) multicast components. CE routers still send a customer's PIM join messages (PIM C-Join) from CE to PE, and from PE to CE, as shown in the figure. But on the provider's backbone network, all multicast information is carried by MBGP. The only addition over and above the unicast VPN configuration normally used is the use of a special provider tunnel (provider-tunnel) for carrying PIM sparse mode message content between provider nodes on the network.
There are several scenarios for MVPN configuration using MBGP, depending on whether a customer site has senders (sources) of multicast traffic, has receivers of multicast traffic, or a mixture of senders and receivers. MVPNs can be:
Each type of MVPN differs more in the configuration VPN statements than the provider tunnel configuration. For information about configuring VPNs, see the JUNOS VPNs Configuration Guide.
This example describes how to configure a full mesh MBGP MVPN:
In this example, PE-1 connects to VPN A and VPN B at site 1, PE-4 connects to VPN A at site 4, and PE-2 connects to VPN B at site 3. To configure a full mesh MVPN for VPN A and VPN B, perform the following steps:
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-6/0/0.0;
- interface so-6/0/1.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
-
- protocols {
- mvpn;
- }
- route-distinguisher 65535:0;
- vrf-target target:1:1;
- }
-
- VPN-B {
- instance-type vrf;
- interface ge-0/3/0.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.2;
- }
- }
-
- protocols {
- mvpn;
- }
- route-distinguisher 65535:1;
- vrf-target target:1:2;
- }
This example describes how to configure an MBGP MVPN with a mixture of sender-only and receiver-only sites using PIM-ASM provider tunnels.
In this example, PE-1 connects to VPN A (sender-only) and VPN B (receiver-only) at site 1, PE-4 connects to VPN A (receiver-only) at site 4, and PE-2 connects to VPN A (receiver-only) and VPN B (sender-only) at site 3.
To configure an MVPN for a mixture of sender-only and receiver-only sites on VPN A and VPN B, perform the following steps:
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-6/0/0.0;
- interface so-6/0/1.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
-
- protocols {
-
- mvpn {
- sender-site;
-
- route-target {
- export-target unicast;
- import-target target target:1:4;
- }
- }
- }
- route-distinguisher 65535:0;
- vrf-target target:1:1;
-
- routing-options {
- auto-export;
- }
- }
-
- VPN-B {
- instance-type vrf;
- interface ge-0/3/0.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.2;
- }
- }
-
- protocols {
-
- mvpn {
- receiver-site;
-
- route-target {
- export-target target target:1:5;
- import-target unicast;
- }
- }
- }
- route-distinguisher 65535:1;
- vrf-target target:1:2;
-
- routing-options {
- auto-export;
- }
- }
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-1/0/0.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
-
- protocols {
-
- mvpn {
- receiver-site;
-
- route-target {
- export-target target target:1:4;
- import-target unicast;
- }
- }
- }
- route-distinguisher 65535:2;
- vrf-target target:1:1;
-
- routing-options {
- auto-export;
- }
- }
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-2/0/1.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
-
- protocols {
-
- mvpn {
- receiver-site;
-
- route-target {
- export-target target target:1:4;
- import-target unicast;
- }
- }
- }
- route-distinguisher 65535:3;
- vrf-target target:1:1;
-
- routing-options {
- auto-export;
- }
- }
-
- VPN-B {
- instance-type vrf;
- interface ge–1/3/0.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.2;
- }
- }
-
- protocols {
-
- mvpn {
- sender-site;
-
- route-target {
- export-target unicast
- import-target target target:1:5;
- }
- }
- }
- route-distinguisher 65535:4;
- vrf-target target:1:2;
-
- routing-options {
- auto-export;
- }
- }
This example describes how to configure an MBGP MVPN with a mixture of sender-only, receiver-only, and sender-receiver sites.
In this example, PE-1 connects to VPN A (sender-receiver) and VPN B (receiver-only) at site 1, PE-4 connects to VPN A (receiver-only) at site 4, and PE-2 connects to VPN A (sender-only) and VPN B (sender-only) at site 3. To configure an MVPN for a mixture of sender-only, receiver-only, and sender-receiver sites for VPN A and VPN B, perform the following steps:
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-6/0/0.0;
- interface so-6/0/1.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
-
- protocols {
-
- mvpn {
-
- route-target {
- export-target unicast target target:1:4;
- import-target unicast target target:1:4 receiver;
- }
- }
- }
- route-distinguisher 65535:0;
- vrf-target target:1:1;
-
- routing-options {
- auto-export;
- }
- }
-
- VPN-B {
- instance-type vrf;
- interface ge-0/3/0.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.2;
- }
- }
-
- protocols {
-
- mvpn {
- receiver-site;
-
- route-target {
- export-target target target:1:5;
- import-target unicast;
- }
- }
- }
- route-distinguisher 65535:1;
- vrf-target target:1:2;
-
- routing-options {
- auto-export;
- }
- }
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-1/0/0.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
-
- protocols {
-
- mvpn {
-
- receiver-site;
- route-target {
- export-target target target:1:4;
- import-target unicast;
- }
- }
- }
- route-distinguisher 65535:2;
- vrf-target target:1:1;
-
- routing-options {
- auto-export;
- }
- }
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-2/0/1.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
-
- protocols {
-
- mvpn {
-
- receiver-site;
- route-target {
- export-target target target:1:4;
- import-target unicast;
- }
- }
- }
- route-distinguisher 65535:3;
- vrf-target target:1:1;
-
- routing-options {
- auto-export;
- }
- }
-
- VPN-B {
- instance-type vrf;
- interface ge-1/3/0.0;
-
- provider-tunnel {
-
- pim-asm {
- group-address 224.1.1.2;
- }
- }
-
- protocols {
-
- mvpn {
- sender-site;
-
- route-target {
- export-target unicast;
- import-target target target:1:5;
- }
- }
- }
- route-distinguisher 65535:4;
- vrf-target target:1:2;
-
- routing-options {
- auto-export;
- }
- }
This example describes how to configure an MBGP MVPN in a hub and spoke topology.
In this example, which only configures VPN A, PE-1 connects to VPN A (spoke site) at site 1, PE-4 connects to VPN A (hub site) at site 4, and PE-2 connects to VPN A (spoke site) at site 3. Current support is limited to the case where there are two interfaces between the hub site CE and PE. To configure a hub-and-spoke MVPN for VPN A, perform the following steps:
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-6/0/0.0;
- interface so-6/0/1.0;
-
- provider-tunnel {
-
- rsvp-te {
-
- label-switched-path-template {
- default-template;
- }
- }
- }
-
- protocols {
-
- mvpn {
-
- route-target {
- export-target unicast;
- import-target unicast target target:1:4;
- }
- }
- }
- route-distinguisher 65535:0;
-
- vrf-target {
- import target:1:1;
- export target:1:3;
- }
-
- routing-options {
- auto-export;
- }
- }
- [edit]
- routing-instances {
-
- VPN-A-spoke-to-hub {
- instance-type vrf;
- interface so-1/0/0.0; #receives data and joins from the
CE
-
- protocols {
-
- mvpn {
- receiver-site;
-
- route-target {
- export-target target target:1:4;
- import-target unicast;
- }
- }
-
- ospf {
- export redistribute-vpn; #redistributes VPN routes to CE
-
- area 0.0.0.0 {
- interface so-1/0/0;
- }
- }
- }
- route-distinguisher 65535:2;
-
- vrf-target {
- import target:1:3;
- }
-
- routing-options {
- auto-export;
- }
- }
-
- VPN-A-hub-to-spoke {
- instance-type vrf;
- interface so-2/0/0.0; #receives data and joins from
the CE
-
- provider-tunnel {
-
- rsvp-te {
-
- label-switched-path-template {
- default-template;
- }
- }
- }
-
- protocols {
-
- mvpn {
- sender-site;
-
- route-target {
- import-target target target:1:3;
- export-target unicast;
- }
- }
-
- ospf {
- export redistribute-vpn; #redistributes VPN routes
to CE
-
- area 0.0.0.0 {
- interface so-2/0/0;
- }
- }
- }
- route-distinguisher 65535:2;
-
- vrf-target {
- import target:1:1;
- }
-
- routing-options {
- auto-export;
- }
- }
- [edit]
- routing-instances {
-
- VPN-A {
- instance-type vrf;
- interface so-2/0/1.0;
-
- provider-tunnel {
-
- rsvp-te {
-
- label-switched-path-template {
- default-template;
- }
- }
- }
-
- protocols {
-
- mvpn {
-
- route–target {
- import-target target target:1:4;
- export-target unicast;
- }
- }
- }
- route-distinguisher 65535:3;
-
- vrf-target {
- import target:1:1;
- export target:1:3;
- }
-
- routing-options {
- auto-export;
- }
- }