Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
Multicast Protocols User Guide
Table of Contents Expand all
list Table of Contents

Configuring Multiprotocol BGP Multicast VPNs

date_range 24-Nov-23

Understanding Multiprotocol BGP-Based Multicast VPNs: Next-Generation

Multiprotocol BGP-based multicast VPNs (also referred to as next-generation Layer 3 VPN multicast) constitute the next evolution after dual multicast VPNs (draft-rosen) and provide a simpler solution for administrators who want to configure multicast over Layer 3 VPNs.

The main characteristics of multiprotocol BGP-based multicast VPNs are:

  • They extend Layer 3 VPN service (RFC 2547) to support IP multicast for Layer 3 VPN service providers.

  • They follow the same architecture as specified by RFC 2547 for unicast VPNs. Specifically, BGP is used as the control plane.

  • They eliminate the requirement for the virtual router (VR) model, which is specified in Internet draft draft-rosen-vpn-mcast, Multicast in MPLS/BGP VPNs, for multicast VPNs.

  • They rely on RFC-based unicast with extensions for intra-AS and inter-AS communication.

Multiprotocol BGP-based VPNs are defined by two sets of sites: a sender set and a receiver set. Hosts within a receiver site set can receive multicast traffic and hosts within a sender site set can send multicast traffic. A site set can be both receiver and sender, which means that hosts within such a site can both send and receive multicast traffic. Multiprotocol BGP-based VPNS can span organizations (so the sites can be intranets or extranets), can span service providers, and can overlap.

Site administrators configure multiprotocol BGP-based VPNs based on customer requirements and the existing BGP and MPLS VPN infrastructure.

Route Reflector Behavior in MVPNs

BGP-based multicast VPN (MVPN) customer multicast routes are aggregated by route reflectors. A route reflector (RR) might receive a customer multicast route with the same NLRI from more than one provider edge (PE) router, but the RR readvertises only one such NLRI. If the set of PE routers that advertise this NLRI changes, the RR does not update the route. This minimizes route churn. To achieve this, the RR sets the next hop to self. In addition, the RR sets the originator ID to itself. The RR avoids unnecessary best-path computation if it receives a subsequent customer multicast route for an NLRI that the RR is already advertising. This allows aggregation of source active and customer multicast routes with the same MVPN NLRI.

Example: Configuring Point-to-Multipoint LDP LSPs as the Data Plane for Intra-AS MBGP MVPNs

This example shows how to configure point-to-multipoint (P2MP) LDP label-switched paths (LSPs) as the data plane for intra-autonomous system (AS) multiprotocol BGP (MBGP) multicast VPNs (MVPNs). This feature is well suited for service providers who are already running LDP in the MPLS backbone and need MBGP MVPN functionality.

Requirements

Before you begin:

  • Configure the router interfaces. See the Junos OS Network Interfaces Library for Routing Devices.

  • Configure an interior gateway protocol or static routing. See the Junos OS Routing Protocols Library for Routing Devices.

  • Configure a BGP-MVPN control plane. See MBGP-Based Multicast VPN Trees in the Multicast Protocols User Guide .

  • Configure LDP as the signaling protocol on all P2MP provider and provider-edge routers. See LDP Operation in the Junos OS MPLS Applications User Guide.

  • Configure P2MP LDP LSPs as the provider tunnel technology on each PE router in the MVPN that belongs to the sender site set. See the Junos OS MPLS Applications User Guide.

  • Configure either a virtual loopback tunnel interface (requires a Tunnel PIC) or the vrf-table-label statement in the MVPN routing instance. If you configure the vrf-table-label statement, you can configure an optional virtual loopback tunnel interface as well.

  • In an extranet scenario when the egress PE router belongs to multiple MVPN instances, all of which need to receive a specific multicast stream, a virtual loopback tunnel interface (and a Tunnel PIC) is required on the egress PE router. See Configuring Virtual Loopback Tunnels for VRF Table Lookup in the in the Junos OS Services Interfaces Library for Routing Devices.

  • If the egress PE router is also a transit router for the point-to-multipoint LSP, a virtual loopback tunnel interface (and a Tunnel PIC) is required on the egress PE router. See Configuring Virtual Loopback Tunnels for VRF Table Lookup in the Multicast Protocols User Guide .

  • Some extranet configurations of MBGP MVPNs with point-to-multicast LDP LSPs as the data plane require a virtual loopback tunnel interface (and a Tunnel PIC) on egress PE routers. When an egress PE router belongs to multiple MVPN instances, all of which need to receive a specific multicast stream, the vrf-table-table statement cannot be used. In Figure 1, the CE1 and CE2 routers belong to different MVPNs. However, they want to receive a multicast stream being sent by Source. If the vrf-table-label statement is configured on Router PE2, the packet cannot be forwarded to both CE1 and CE2. This causes packet loss. The packet is forwarded to both Routers CE1 and CE2 if a virtual loopback tunnel interface is used in both MVPN routing instances on Router PE2. Thus, you need to set up a virtual loopback tunnel interface if you are using an extranet scenario wherein the egress PE router belongs to multiple MVPN instances that receive a specific multicast stream, or if you are using the egress PE router as a transit router for the point-to-multipoint LSP.

    Note:

    Starting in Junos OS Release 15.1X49-D50 and Junos OS Release 17.3R1, the vrf-table-label statement allows mapping of the inner label to a specific Virtual Routing and Forwarding (VRF). This mapping allows examination of the encapsulated IP header at an egress VPN router. For SRX Series Firewalls, the vrf-table-label statement is currently supported only on physical interfaces. As a workaround, deactivate vrf-table-label or use physical interfaces.

    Figure 1: Extranet Configuration of MBGP MVPN with P2MP LDP LSPs as Data PlaneExtranet Configuration of MBGP MVPN with P2MP LDP LSPs as Data Plane

    See Configuring Virtual Loopback Tunnels for VRF Table Lookup for more information.

Overview

This topic describes how P2MP LDP LSPs can be configured as the data plane for intra-AS selective provider tunnels. Selective P2MP LSPs are triggered only based on the bandwidth threshold of a particular customer’s multicast stream. A separate P2MP LDP LSP is set up for a given customer source and customer group pair (C-S, C-G) by a PE router. The C-S is behind the PE router that belongs in the sender site set. Aggregation of intra-AS selective provider tunnels across MVPNs is not supported.

When you configure selective provider tunnels, leaves discover the P2MP LSP root as follows. A PE router with a receiver for a customer multicast stream behind it needs to discover the identity of the PE router (and the provider tunnel information) with the source of the customer multicast stream behind it. This information is auto-discovered dynamically using the S-PMSI AD routes originated by the PE router with the C-S behind it.

The Junos OS also supports P2MP LDP LSPs as the data plane for intra-AS inclusive provider tunnels. These tunnels are triggered based on the MVPN configuration. A separate P2MP LSP LSP is set up for a given MVPN by a PE router that belongs in the sender site set. This PE router is the root of the P2MP LSP. Aggregation of intra-AS inclusive provider tunnels across MVPNs is not supported.

When you configure inclusive provider tunnels, leaves discover the P2MP LSP root as follows. A PE router with a receiver site for a given MVPN needs to discover the identities of PE routers (and the provider tunnel information) with sender sites for that MVPN. This information is auto-discovered dynamically using the intra-AS auto-discovery routes originated by the PE routers with sender sites.

Topology

Figure 2 shows the topology used in this example.

Figure 2: P2MP LDP LSPs as the Data Plane for Intra-AS MBGP MVPNsP2MP LDP LSPs as the Data Plane for Intra-AS MBGP MVPNs

In Figure 2, the routers perform the following functions:

  • R1 and R2 are provider (P) routers.

  • R0, R3, R4, and R5 are provider edge (PE) routers.

  • MBGP MVPN is configured on all PE routers.

  • Two VPNs are defined: green and red.

  • Router R0 serves both green and red CE routers in separate routing instances.

  • Router R3 is connected to a green CE router.

  • Router R5 is connected to overlapping green and red CE routers in a single routing instance.

  • Router R4 is connected to overlapping green and red CE routers in a single routing instance.

  • OSPF and multipoint LDP (mLDP) are running in the core.

  • Router R1 is a route reflector (RR), and router R2 is a redundant RR.

  • Routers R0, R3, R4, and R5 are client internal BGP (IBGP) peers.

Configuration

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

content_copy zoom_out_map
set protocols ldp interface fe-0/2/1.0
set protocols ldp interface fe-0/2/3.0
set protocols ldp p2mp
set routing-instance red instance-type vrf
set routing-instance red interface vt-0/1/0.1
set routing-instance red interface lo0.1
set routing-instance red  route-distinguisher 10.254.1.1:1 
set routing-instance red provider-tunnel ldp-p2mp
set routing-instance red provider-tunnel selective group 224.1.1.1/32 source 192.168.1.1/32 ldp-p2mp 

Procedure

Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the Junos OS CLI User Guide.

To configure P2MP LDP LSPs as the data plane for intra-AS MBGP MVPNs:

  1. Configure LDP on all routers.

    content_copy zoom_out_map
    [edit protocols ldp]
    user@host# set interface fe-0/2/1.0
    user@host# set interface fe-0/2/3.0
    user@host# set p2mp
    
  2. Configure the provider tunnel.

    content_copy zoom_out_map
    [edit routing-instance red ]
    user@host# set instance-type vrf
    user@host# set interface vt-0/1/0.1
    user@host# set interface lo0.1
    user@host# set route-distinguisher 10.254.1.1:1
    user@host# set provider-tunnel ldp-p2mp
    
  3. Configure the selective provider tunnel.

    content_copy zoom_out_map
    user@host# set provider-tunnel selective group 224.1.1.1/32 source 192.168.1.1/32 ldp-p2mp
    
  4. If you are done configuring the device, commit the configuration.

    content_copy zoom_out_map
    user@host# commit
    

Results

From configuration mode, confirm your configuration by entering the show protocols and show routing-intances commands. If the output does not display the intended configuration, repeat the configuration instructions in this example to correct it.

content_copy zoom_out_map
user@host# show protocols
ldp {
    interface fe-0/2/1.0;
    interface fe-0/2/3.0;
    p2mp;
}
content_copy zoom_out_map
user@host# show routing-instances
red {
    instance-type vrf;
    interface vt-0/1/0.1; 
    interface lo0.1;
    route-distinguisher 10.254.1.1:1;
    provider-tunnel {
        ldp-p2mp;
    }
    selective {
        group 224.1.1.1/32 {
            source 192.168.1.1/32 {
                ldp-p2mp;
            }
        }
    }
    }
}

Verification

To verify the configuration, run the following commands:

  • ping mpls ldp p2mp to ping the end points of a P2MP LSP.

  • show ldp database to display LDP P2MP label bindings and to ensure that the LDP P2MP LSP is signaled.

  • show ldp session detail to display the LDP capabilities exchanged with the peer. The Capabilities advertised and Capabilities received fields should include p2mp.

  • show ldp traffic-statistics p2mp to display the data traffic statistics for the P2MP LSP.

  • show mvpn instance, show mvpn neighbor, and show mvpn c-multicast to display multicast VPN routing instance information and to ensure that the LDP P2MP LSP is associated with the MVPN as the S-PMSI.

  • show multicast route instance detail on PE routers to ensure that traffic is received by all the hosts and to display statistics on the receivers.

  • show route label label detail to display the P2MP forwarding equivalence class (FEC) if the label is an input label for an LDP P2MP LSP.

Example: Configuring Ingress Replication for IP Multicast Using MBGP MVPNs

Requirements

The routers used in this example are Juniper Networks M Series Multiservice Edge Routers, T Series Core Routers, or MX Series 5G Universal Routing Platforms. When using ingress replication for IP multicast, each participating router must be configured with BGP for control plane procedures and with ingress replication for the data provider tunnel, which forms a full mesh of MPLS point-to-point LSPs. The ingress replication tunnel can be selective or inclusive, depending on the configuration of the provider tunnel in the routing instance.

Overview

The ingress-replication provider tunnel type uses unicast tunnels between routers to create a multicast distribution tree.

The mpls-internet-multicast routing instance type uses ingress replication provider tunnels to carry IP multicast data between routers through an MPLS cloud, using MBGP (or Next Gen) MVPN. Ingress replication can also be configured when using MVPN to carry multicast data between PE routers.

The mpls-internet-multicast routing instance is a non-forwarding instance used only for control plane procedures. It does not support any interface configurations. Only one mpls-internet-multicast routing instance can be defined for a logical system. All multicast and unicast routes used for IP multicast are associated only with the default routing instance (inet.0), not with a configured routing instance. The mpls-internet-multicast routing instance type is configured for the default master instance on each router, and is also included at the [edit protocols pim] hierarchy level in the default instance.

For each mpls-internet-multicast routing instance, the ingress-replication statement is required under the provider-tunnel statement and also under the [edit routing-instances routing-instance-name provider-tunnel selective group source] hierarchy level.

When a new destination needs to be added to the ingress replication provider tunnel, the resulting behavior differs depending on how the ingress replication provider tunnel is configured:

  • create-new-ucast-tunnel—When this statement is configured, a new unicast tunnel to the destination is created, and is deleted when the destination is no longer needed. Use this mode for RSVP LSPs using ingress replication.

  • label-switched-path-template (Multicast)—When this statement is configured, an LSP template is used for the for the point-to-multipoint LSP for ingress replication.

Topology

The IP topology consists of routers on the edge of the IP multicast domain. Each router has a set of IP interfaces configured toward the MPLS cloud and a set of interfaces configured toward the IP routers. See Figure 3. Internet multicast traffic is carried between the IP routers, through the MPLS cloud, using ingress replication tunnels for the data plane and a full-mesh IBGP session for the control plane.

Figure 3: Internet Multicast TopologyInternet Multicast Topology

Configuration

Procedure

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Border Router C

content_copy zoom_out_map
set protocols mpls ipv6-tunneling
set protocols mpls interface all
set protocols bgp group ibgp type internal
set protocols bgp group ibgp local-address 10.255.10.61
set protocols bgp group ibgp family inet unicast
set protocols bgp group ibgp family inet-vpn any
set protocols bgp group ibgp family inet6 unicast
set protocols bgp group ibgp family inet6-vpn any
set protocols bgp group ibgp family inet-mvpn signaling
set protocols bgp group ibgp family inet6-mvpn signaling
set protocols bgp group ibgp export to-bgp
set protocols bgp group ibgp neighbor 10.255.10.97
set protocols bgp group ibgp neighbor 10.255.10.55
set protocols bgp group ibgp neighbor 10.255.10.57
set protocols bgp group ibgp neighbor 10.255.10.59
set protocols ospf traffic-engineering
set protocols ospf area 0.0.0.0 interface fxp0.0 disable
set protocols ospf area 0.0.0.0 interface lo0.0
set protocols ospf area 0.0.0.0 interface so-1/3/1.0
set protocols ospf area 0.0.0.0 interface so-0/3/0.0
set protocols ospf3 area 0.0.0.0 interface lo0.0
set protocols ospf3 area 0.0.0.0 interface so-1/3/1.0
set protocols ospf3 area 0.0.0.0 interface so-0/3/0.0
set protocols ldp interface all
set protocols pim rp static address 192.0.2.2
set protocols pim rp static address 2::192.0.2.2
set protocols pim interface fe-0/1/0.0
set protocols pim mpls-internet-multicast
set routing-instances test instance-type mpls-internet-multicast
set routing-instances test provider-tunnel ingress-replication label-switched-path
set routing-instances test protocols mvpn
Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the CLI User Guide.

The following example shows how to configure ingress replication on an IP multicast instance with the routing instance type mpls-internet-multicast. Additionally, this example shows how to configure a selective provider tunnel that selects a new unicast tunnel each time a new destination needs to be added to the multicast distribution tree.

This example shows the configuration of the link between Border Router C and edge IP Router C, from which Border Router C receives PIM join messages.

  1. Enable MPLS.

    content_copy zoom_out_map
    [edit protocols mpls]
    user@Border_Router_C# set ipv6-tunneling
    user@Border_Router_C# set interface all
    
  2. Configure a signaling protocol, such as RSVP or LDP.

    content_copy zoom_out_map
    [edit protocols ldp]
    user@Border_Router_C# set interface all
    
  3. Configure a full-mesh of IBGP peering sessions.

    content_copy zoom_out_map
    [edit protocols bgp group ibgp]
    user@Border_Router_C# set type internal
    user@Border_Router_C# set local-address 10.255.10.61
    user@Border_Router_C# set neighbor 10.255.10.97
    user@Border_Router_C# set neighbor 10.255.10.55
    user@Border_Router_C# set neighbor 10.255.10.57
    user@Border_Router_C# set neighbor 10.255.10.59
    user@Border_Router_C# set export to-bgp
    
  4. Configure the multiprotocol BGP-related settings so that the BGP sessions carry the necessary NLRI.

    content_copy zoom_out_map
    [edit protocols bgp group ibgp]
    user@Border_Router_C# set family inet unicast
    user@Border_Router_C# set family inet-vpn any
    user@Border_Router_C# set family inet6 unicast
    user@Border_Router_C# set family inet6-vpn any
    user@Border_Router_C# set family inet-mvpn signaling
    user@Border_Router_C# set family inet6-mvpn signaling
    
  5. Configure an interior gateway protocol (IGP).

    This example shows a dual stacking configuration with OSPF and OSPF version 3 configured on the interfaces.

    content_copy zoom_out_map
    [edit protocols ospf3]
    user@Border_Router_C# set area 0.0.0.0 interface lo0.0
    user@Border_Router_C# set area 0.0.0.0 interface so-1/3/1.0
    user@Border_Router_C# set area 0.0.0.0 interface so-0/3/0.0
    [edit protocols ospf]
    user@Border_Router_C# set traffic-engineering
    user@Border_Router_C# set area 0.0.0.0 interface fxp0.0 disable
    user@Border_Router_C# set area 0.0.0.0 interface lo0.0
    user@Border_Router_C# set area 0.0.0.0 interface so-1/3/1.0
    user@Border_Router_C# set area 0.0.0.0 interface so-0/3/0.0
    
  6. Configure a global PIM instance on the interface facing the edge device.

    PIM is not configured in the core.

    content_copy zoom_out_map
    [edit protocols pim]
    user@Border_Router_C# set rp static address 192.0.2.2
    user@Border_Router_C# set rp static address 2::192.0.2.2
    user@Border_Router_C# set interface fe-0/1/0.0
    user@Border_Router_C# set mpls-internet-multicast
    
  7. Configure the ingress replication provider tunnel to create a new unicast tunnel each time a destination needs to be added to the multicast distribution tree.

    content_copy zoom_out_map
    [edit routing-instances test]
    user@Border_Router_C# set instance-type mpls-internet-multicast
    user@Border_Router_C# set provider-tunnel ingress-replication label-switched-path
    user@Border_Router_C# set protocols mvpn
    
    Note:

    Alternatively, use the label-switched-path-template statement to configure a point-to-point LSP for the ingress tunnel.

    Configure the point-to-point LSP to use the default template settings (this is needed only when using RSVP tunnels). For example:

    content_copy zoom_out_map
    [edit routing-instances test provider-tunnel]
    user@Border_Router_C# set ingress-replication label-switched-path label-switched-path-template default-template
    user@Border_Router_C# set selective group 203.0.113.0/24 source 192.168.195.145/32 ingress-replication label-switched-path
    
  8. Commit the configuration.

    content_copy zoom_out_map
    user@Border_Router_C# commit
    
Results

From configuration mode, confirm your configuration by issuing the show protocols and show routing-instances command. If the output does not display the intended configuration, repeat the instructions in this example to correct the configuration.

content_copy zoom_out_map
user@Border_Router_C# show protocols
mpls {
    ipv6-tunneling;
    interface all;
}
bgp {
    group ibgp {
        type internal;
        local-address 10.255.10.61;
        family inet {
            unicast;
        }
        family inet-vpn {
            any;
        }
        family inet6 {
            unicast;
        }
        family inet6-vpn {
            any;
        }
        family inet-mvpn {
            signaling;
        }
        family inet6-mvpn {
            signaling;
        }
        export to-bgp; ## 'to-bgp' is not defined
        neighbor 10.255.10.97;
        neighbor 10.255.10.55;
        neighbor 10.255.10.57;
        neighbor 10.255.10.59;
    }
}
ospf {
    traffic-engineering;
    area 0.0.0.0 {
        interface fxp0.0 {
            disable;
        }
        interface lo0.0;
        interface so-1/3/1.0;
        interface so-0/3/0.0;
    }
}
ospf3 {
    area 0.0.0.0 {
        interface lo0.0;
        interface so-1/3/1.0;
        interface so-0/3/0.0;
    }
}
ldp {
    interface all;
}
pim {
    rp {
        static {
            address 192.0.2.2;
            address 2::192.0.2.2;
        }
    }
    interface fe-0/1/0.0;
    mpls-internet-multicast;
}
content_copy zoom_out_map
user@Border_Router_C# show routing-instances
test {
    instance-type mpls-internet-multicast;
    provider-tunnel {
        ingress-replication {
            label-switched-path;
        }
    }
    protocols {
        mvpn;
    }
}

Verification

Confirm that the configuration is working properly. The following operational output is for LDP ingress replication SPT-only mode. The multicast source behind IP Router B. The multicast receiver is behind IP Router C.

Checking the Ingress Replication Status on Border Router C

Purpose

Use the show ingress-replication mvpn command to check the ingress replication status.

Action
content_copy zoom_out_map
user@Border_Router_C> show ingress-replication mvpn

Ingress Tunnel: mvpn:1
  Application: MVPN
  Unicast tunnels
    Leaf Address       Tunnel-type      Mode         State
    10.255.10.61       P2P LSP          Existing     Up        
Meaning

The ingress replication is using a point-to-point LSP, and is in the Up state.

Checking the Routing Table for the MVPN Routing Instance on Border Router C

Purpose

Use the show route table command to check the route status.

Action
content_copy zoom_out_map
user@Border_Router_C> show route table test.mvpn

test.mvpn.0: 5 destinations, 7 routes (5 active, 1 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
1:0:0:10.255.10.61/240               
                   *[BGP/170] 00:45:55, localpref 100, from 10.255.10.61
                      AS path: I, validation-state: unverified
                    > via so-2/0/1.0
1:0:0:10.255.10.97/240               
                   *[MVPN/70] 00:47:19, metric2 1
                      Indirect
5:0:0:32:192.168.195.106:32:198.51.100.1/240               
                   *[PIM/105] 00:06:35
                      Multicast (IPv4) Composite
                    [BGP/170] 00:06:35, localpref 100, from 10.255.10.61
                      AS path: I, validation-state: unverified
                    > via so-2/0/1.0
6:0:0:1000:32:192.0.2.2:32:198.51.100.1/240               
                   *[PIM/105] 00:07:03
                      Multicast (IPv4) Composite
7:0:0:1000:32:192.168.195.106:32:198.51.100.1/240               
                   *[MVPN/70] 00:06:35, metric2 1
                      Multicast (IPv4) Composite
                    [PIM/105] 00:05:35
                      Multicast (IPv4) Composite
 
test.mvpn-inet6.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
1:0:0:10.255.10.61/432               
                   *[BGP/170] 00:45:55, localpref 100, from 10.255.10.61
                      AS path: I, validation-state: unverified
                    > via so-2/0/1.0
1:0:0:10.255.10.97/432               
                   *[MVPN/70] 00:47:19, metric2 1
                      Indirect

Meaning

The expected routes are populating the test.mvpn routing table.

Checking the MVPN Neighbors on Border Router C

Purpose

Use the show mvpn neighbor command to check the neighbor status.

Action
content_copy zoom_out_map
user@Border_Router_C> show mvpn neighbor

MVPN instance:
Legend for provider tunnel
S-    Selective provider tunnel
 
Legend for c-multicast routes properties (Pr)
DS -- derived from (*, c-g)          RM -- remote VPN route
Family : INET
    
Instance : test
  MVPN Mode : SPT-ONLY
  Neighbor                              Inclusive Provider Tunnel
  10.255.10.61                          INGRESS-REPLICATION:MPLS Label 16:10.255.10.61
 
MVPN instance:
Legend for provider tunnel
S-    Selective provider tunnel
 
Legend for c-multicast routes properties (Pr)
DS -- derived from (*, c-g)          RM -- remote VPN route
Family : INET6
    
Instance : test
  MVPN Mode : SPT-ONLY
  Neighbor                              Inclusive Provider Tunnel
  10.255.10.61                          INGRESS-REPLICATION:MPLS Label 16:10.255.10.61

Checking the PIM Join Status on Border Router C

Purpose

Use the show pim join extensive command to check the PIM join status.

Action
content_copy zoom_out_map
user@Border_Router_C> show pim join extensive
Instance: PIM.master Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard
 
Group: 198.51.100.1
    Source: *
    RP: 192.0.2.2
    Flags: sparse,rptree,wildcard
    Upstream interface: Local                 
    Upstream neighbor: Local
    Upstream state: Local RP
    Uptime: 00:07:49 
    Downstream neighbors:
        Interface: ge-3/0/6.0             
            192.0.2.2 State: Join Flags: SRW  Timeout: Infinity
            Uptime: 00:07:49 Time since last Join: 00:07:49
    Number of downstream interfaces: 1
 
Group: 198.51.100.1
    Source: 192.168.195.106
    Flags: sparse
    Upstream protocol: BGP
    Upstream interface: Through BGP           
    Upstream neighbor: Through MVPN
    Upstream state: Local RP, Join to Source, No Prune to RP
    Keepalive timeout: 69
    Uptime: 00:06:21 
    Number of downstream interfaces: 0
 
Instance: PIM.master Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard
 

Checking the Multicast Route Status on Border Router C

Purpose

Use the show multicast route extensive command to check the multicast route status.

Action
content_copy zoom_out_map
user@Border_Router_C> show multicast route extensive
Instance: master Family: INET
 
Group: 198.51.100.1
    Source: 192.168.195.106/32
    Upstream interface: lsi.0
    Downstream interface list: 
        ge-3/0/6.0
    Number of outgoing interfaces: 1
    Session description: NOB Cross media facilities
    Statistics: 18 kBps, 200 pps, 88907 packets
    Next-hop ID: 1048577
    Upstream protocol: MVPN
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: forever
    Wrong incoming interface notifications: 0
    Uptime: 00:07:25
 
Instance: master Family: INET6

Checking the Ingress Replication Status on Border Router B

Purpose

Use the show ingress-replication mvpn command to check the ingress replication status.

Action
content_copy zoom_out_map
user@Border_Router_B> show ingress-replication mvpn

Ingress Tunnel: mvpn:1
  Application: MVPN
  Unicast tunnels
    Leaf Address       Tunnel-type      Mode         State
    10.255.10.97       P2P LSP          Existing     Up        
Meaning

The ingress replication is using a point-to-point LSP, and is in the Up state.

Checking the Routing Table for the MVPN Routing Instance on Border Router B

Purpose

Use the show route table command to check the route status.

Action
content_copy zoom_out_map
user@Border_Router_B> show route table test.mvpn

test.mvpn.0: 5 destinations, 7 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
1:0:0:10.255.10.61/240               
                   *[MVPN/70] 00:49:26, metric2 1
                      Indirect
1:0:0:10.255.10.97/240               
                   *[BGP/170] 00:48:22, localpref 100, from 10.255.10.97
                      AS path: I, validation-state: unverified
                    > via so-1/3/1.0
5:0:0:32:192.168.195.106:32:198.51.100.1/240               
                   *[PIM/105] 00:09:02
                      Multicast (IPv4) Composite
                    [BGP/170] 00:09:02, localpref 100, from 10.255.10.97
                      AS path: I, validation-state: unverified
                    > via so-1/3/1.0
7:0:0:1000:32:192.168.195.106:32:198.51.100.1/240               
                   *[PIM/105] 00:09:02
                      Multicast (IPv4) Composite
                    [BGP/170] 00:09:02, localpref 100, from 10.255.10.97
                      AS path: I, validation-state: unverified
                    > via so-1/3/1.0

test.mvpn-inet6.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 
1:0:0:10.255.10.61/432               
                   *[MVPN/70] 00:49:26, metric2 1
                      Indirect
1:0:0:10.255.10.97/432               
                   *[BGP/170] 00:48:22, localpref 100, from 10.255.10.97
                      AS path: I, validation-state: unverified
                    > via so-1/3/1.0
Meaning

The expected routes are populating the test.mvpn routing table.

Checking the MVPN Neighbors on Border Router B

Purpose

Use the show mvpn neighbor command to check the neighbor status.

Action
content_copy zoom_out_map
user@Border_Router_B> show mvpn neighbor

MVPN instance:
Legend for provider tunnel
S-    Selective provider tunnel
 
Legend for c-multicast routes properties (Pr)
DS -- derived from (*, c-g)          RM -- remote VPN route
Family : INET
    
Instance : test
  MVPN Mode : SPT-ONLY
  Neighbor                              Inclusive Provider Tunnel
  10.255.10.97                          INGRESS-REPLICATION:MPLS Label 16:10.255.10.97
 
MVPN instance:
Legend for provider tunnel
S-    Selective provider tunnel
 
Legend for c-multicast routes properties (Pr)
DS -- derived from (*, c-g)          RM -- remote VPN route
Family : INET6
    
Instance : test
  MVPN Mode : SPT-ONLY
  Neighbor                              Inclusive Provider Tunnel
  10.255.10.97                          INGRESS-REPLICATION:MPLS Label 16:10.255.10.97

Checking the PIM Join Status on Border Router B

Purpose

Use the show pim join extensive command to check the PIM join status.

Action
content_copy zoom_out_map
user@Border_Router_B> show pim join extensive
Instance: PIM.master Family: INET
R = Rendezvous Point Tree, S = Sparse, W = Wildcard
 
Group: 198.51.100.1
    Source: 192.168.195.106
    Flags: sparse,spt
    Upstream interface: fe-0/1/0.0            
    Upstream neighbor: Direct
    Upstream state: Local Source
    Keepalive timeout: 0
    Uptime: 00:09:39 
    Downstream neighbors:
        Interface: Pseudo-MVPN            
            Uptime: 00:09:39 Time since last Join: 00:09:39
    Number of downstream interfaces: 1
 

Instance: PIM.master Family: INET6
R = Rendezvous Point Tree, S = Sparse, W = Wildcard

Checking the Multicast Route Status on Border Router B

Purpose

Use the show multicast route extensive command to check the multicast route status.

Action
content_copy zoom_out_map
user@Border_Router_B> show multicast route extensive
Instance: master Family: INET
 
Group: 198.51.100.1
    Source: 192.168.195.106/32
    Upstream interface: fe-0/1/0.0
    Downstream interface list: 
        so-1/3/1.0
    Number of outgoing interfaces: 1
    Session description: NOB Cross media facilities
    Statistics: 18 kBps, 200 pps, 116531 packets
    Next-hop ID: 1048580
    Upstream protocol: MVPN
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: forever
    Wrong incoming interface notifications: 0
    Uptime: 00:09:43

Example: Configuring MBGP Multicast VPNs

This example provides a step-by-step procedure to configure multicast services across a multiprotocol BGP (MBGP) Layer 3 virtual private network. (also referred to as next-generation Layer 3 multicast VPNs)

Requirements

This example uses the following hardware and software components:

  • Junos OS Release 9.2 or later

  • Five M Series, T Series, TX Series, or MX Series Juniper routers

  • One host system capable of sending multicast traffic and supporting the Internet Group Management Protocol (IGMP)

  • One host system capable of receiving multicast traffic and supporting IGMP

Depending on the devices you are using, you might be required to configure static routes to:

  • The multicast sender

  • The Fast Ethernet interface to which the sender is connected on the multicast receiver

  • The multicast receiver

  • The Fast Ethernet interface to which the receiver is connected on the multicast sender

Overview and Topology

This example shows how to configure the following technologies:

  • IPv4

  • BGP

  • OSPF

  • RSVP

  • MPLS

  • PIM sparse mode

  • Static RP

Topology

The topology of the network is shown in Figure 4.

Figure 4: Multicast Over Layer 3 VPN Example TopologyMulticast Over Layer 3 VPN Example Topology

Configuration

Note:

In any configuration session, it is a good practice to periodically verify that the configuration can be committed using the commit check command.

In this example, the router being configured is identified using the following command prompts:

  • CE1 identifies the customer edge 1 (CE1) router

  • PE1 identifies the provider edge 1 (PE1) router

  • P identifies the provider core (P) router

  • CE2 identifies the customer edge 2 (CE2) router

  • PE2 identifies the provider edge 2 (PE2) router

To configure MBGP multicast VPNs for the network shown in Figure 4, perform the following steps:

Configuring Interfaces

Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the CLI User Guide.

  1. On each router, configure an IP address on the loopback logical interface 0 (lo0.0).

    content_copy zoom_out_map
    [edit interfaces]
    user@CE1# set lo0 unit 0 family inet address 192.168.6.1/32 primary
    
    user@PE1# set lo0 unit 0 family inet address 192.168.7.1/32 primary
    
    user@P# set lo0 unit 0 family inet address 192.168.8.1/32 primary
    
    user@PE2# set lo0 unit 0 family inet address 192.168.9.1/32 primary
    
    user@CE2# set lo0 unit 0 family inet address 192.168.0.1/32 primary
    

    Use the show interfaces terse command to verify that the IP address is correct on the loopback logical interface.

  2. On the PE and CE routers, configure the IP address and protocol family on the Fast Ethernet interfaces. Specify the inet protocol family type.

    content_copy zoom_out_map
    [edit interfaces]
    user@CE1# set fe-1/3/0 unit 0 family inet address 10.10.12.1/24
    user@CE1# set fe-0/1/0 unit 0 family inet address 10.0.67.13/30
    
    [edit interfaces]
    user@PE1# set fe-0/1/0 unit 0 family inet address 10.0.67.14/30
    
    [edit interfaces]
    user@PE2# set fe-0/1/0 unit 0 family inet address 10.0.90.13/30
    
    [edit interfaces]
    user@CE2# set fe-0/1/0 unit 0 family inet address 10.0.90.14/30
    user@CE2# set fe-1/3/0 unit 0 family inet address 10.10.11.1/24
    

    Use the show interfaces terse command to verify that the IP address is correct on the Fast Ethernet interfaces.

  3. On the PE and P routers, configure the ATM interfaces' VPI and maximum virtual circuits. If the default PIC type is different on directly connected ATM interfaces, configure the PIC type to be the same. Configure the logical interface VCI, protocol family, local IP address, and destination IP address.

    content_copy zoom_out_map
    [edit interfaces]
    user@PE1# set at-0/2/0 atm-options pic-type atm1 
    user@PE1# set at-0/2/0 atm-options vpi 0 maximum-vcs 256
    user@PE1# set at-0/2/0 unit 0 vci 0.128
    user@PE1# set at-0/2/0 unit 0 family inet address 10.0.78.5/32 destination 10.0.78.6
    
    [edit interfaces]
    user@P# set at-0/2/0 atm-options pic-type atm1
    user@P# set at-0/2/0 atm-options vpi 0 maximum-vcs 256
    user@P# set at-0/2/0 unit 0 vci 0.128
    user@P# set at-0/2/0 unit 0 family inet address 10.0.78.6/32 destination 10.0.78.5
    user@P# set at-0/2/1 atm-options pic-type atm1
    user@P# set at-0/2/1 atm-options vpi 0 maximum-vcs 256
    user@P# set at-0/2/1 unit 0 vci 0.128
    user@P# set at-0/2/1 unit 0 family inet address 10.0.89.5/32 destination 10.0.89.6
    
    [edit interfaces]
    user@PE2# set at-0/2/1 atm-options pic-type atm1
    user@PE2# set at-0/2/1 atm-options vpi 0 maximum-vcs 256
    user@PE2# set at-0/2/1 unit 0 vci 0.128
    user@PE2# set at-0/2/1 unit 0 family inet address 10.0.89.6/32 destination 10.0.89.5
    

    Use the show configuration interfaces command to verify that the ATM interfaces' VPI and maximum VCs are correct and that the logical interface VCI, protocol family, local IP address, and destination IP address are correct.

Configuring OSPF

Step-by-Step Procedure
  1. On the P and PE routers, configure the provider instance of OSPF. Specify the lo0.0 and ATM core-facing logical interfaces. The provider instance of OSPF on the PE router forms adjacencies with the OSPF neighbors on the other PE router and Router P.

    content_copy zoom_out_map
    user@PE1# set protocols ospf area 0.0.0.0 interface at-0/2/0.0
    user@PE1# set protocols ospf area 0.0.0.0 interface lo0.0
    
    user@P# set protocols ospf area 0.0.0.0 interface lo0.0
    user@P# set protocols ospf area 0.0.0.0 interface all
    user@P# set protocols ospf area 0.0.0.0 interface fxp0 disable
    
    user@PE2# set protocols ospf area 0.0.0.0 interface lo0.0
    user@PE2# set protocols ospf area 0.0.0.0 interface at-0/2/1.0
    

    Use the show ospf interfaces command to verify that the lo0.0 and ATM core-facing logical interfaces are configured for OSPF.

  2. On the CE routers, configure the customer instance of OSPF. Specify the loopback and Fast Ethernet logical interfaces. The customer instance of OSPF on the CE routers form adjacencies with the neighbors within the VPN routing instance of OSPF on the PE routers.

    content_copy zoom_out_map
    user@CE1# set protocols ospf area 0.0.0.0 interface fe-0/1/0.0
    user@CE1# set protocols ospf area 0.0.0.0 interface fe-1/3/0.0
    user@CE1# set protocols ospf area 0.0.0.0 interface lo0.0
    
    user@CE2# set protocols ospf area 0.0.0.0 interface fe-0/1/0.0
    user@CE2# set protocols ospf area 0.0.0.0 interface fe-1/3/0.0
    user@CE2# set protocols ospf area 0.0.0.0 interface lo0.0
    

    Use the show ospf interfaces command to verify that the correct loopback and Fast Ethernet logical interfaces have been added to the OSPF protocol.

  3. On the P and PE routers, configure OSPF traffic engineering support for the provider instance of OSPF.

    The shortcuts statement enables the master instance of OSPF to use a label-switched path as the next hop.

    content_copy zoom_out_map
    user@PE1# set protocols ospf traffic-engineering shortcuts
    
    user@P# set protocols ospf traffic-engineering shortcuts
    
    user@PE2# set protocols ospf traffic-engineering shortcuts
    

    Use the show ospf overview or show configuration protocols ospf command to verify that traffic engineering support is enabled.

Configuring BGP

Step-by-Step Procedure
  1. On Router P, configure BGP for the VPN. The local address is the local lo0.0 address. The neighbor addresses are the PE routers' lo0.0 addresses.

    The unicast statement enables the router to use BGP to advertise network layer reachability information (NLRI). The signaling statement enables the router to use BGP as the signaling protocol for the VPN.

    content_copy zoom_out_map
    user@P# set protocols bgp group group-mvpn type internal
    user@P# set protocols bgp group group-mvpn local-address 192.168.8.1
    user@P# set protocols bgp group group-mvpn family inet unicast
    user@P# set protocols bgp group group-mvpn family inet-mvpn signaling
    user@P# set protocols bgp group group-mvpn neighbor 192.168.9.1
    user@P# set protocols bgp group group-mvpn neighbor 192.168.7.1
    

    Use the show configuration protocols bgp command to verify that the router has been configured to use BGP to advertise NLRI.

  2. On the PE and P routers, configure the BGP local autonomous system number.

    content_copy zoom_out_map
    user@PE1# set routing-options autonomous-system 0.65010
    
    user@P# set routing-options autonomous-system 0.65010
    
    user@PE2# set routing-options autonomous-system 0.65010
    

    Use the show configuration routing-options command to verify that the BGP local autonomous system number is correct.

  3. On the PE routers, configure BGP for the VPN. Configure the local address as the local lo0.0 address. The neighbor addresses are the lo0.0 addresses of Router P and the other PE router, PE2.

    content_copy zoom_out_map
    user@PE1# set protocols bgp group group-mvpn type internal
    user@PE1# set protocols bgp group group-mvpn local-address 192.168.7.1
    user@PE1# set protocols bgp group group-mvpn family inet-vpn unicast
    user@PE1# set protocols bgp group group-mvpn family inet-mvpn signaling
    user@PE1# set protocols bgp group group-mvpn neighbor 192.168.9.1
    user@PE1# set protocols bgp group group-mvpn neighbor 192.168.8.1
    
    user@PE2# set protocols bgp group group-mvpn type internal
    user@PE2# set protocols bgp group group-mvpn local-address 192.168.9.1
    user@PE2# set protocols bgp group group-mvpn family inet-vpn unicast
    user@PE2# set protocols bgp group group-mvpn family inet-mvpn signaling
    user@PE2# set protocols bgp group group-mvpn neighbor 192.168.7.1
    user@PE2# set protocols bgp group group-mvpn neighbor 192.168.8.1
    

    Use the show bgp group command to verify that the BGP configuration is correct.

  4. On the PE routers, configure a policy to export the BGP routes into OSPF.

    content_copy zoom_out_map
    user@PE1# set policy-options policy-statement bgp-to-ospf from protocol bgp
    user@PE1# set policy-options policy-statement bgp-to-ospf then accept
    
    user@PE2# set policy-options policy-statement bgp-to-ospf from protocol bgp
    user@PE2# set policy-options policy-statement bgp-to-ospf then accept
    

    Use the show policy bgp-to-ospf command to verify that the policy is correct.

Configuring RSVP

Step-by-Step Procedure
  1. On the PE routers, enable RSVP on the interfaces that participate in the LSP. Configure the Fast Ethernet and ATM logical interfaces.

    content_copy zoom_out_map
    user@PE1# set protocols rsvp interface fe-0/1/0.0
    user@PE1# set protocols rsvp interface at-0/2/0.0
    
    user@PE2# set protocols rsvp interface fe-0/1/0.0 
    user@PE2# set protocols rsvp interface at-0/2/1.0
    
  2. On Router P, enable RSVP on the interfaces that participate in the LSP. Configure the ATM logical interfaces.

    content_copy zoom_out_map
    user@P# set protocols rsvp interface at-0/2/0.0
    user@P# set protocols rsvp interface at-0/2/1.0
    

    Use the show configuration protocols rsvp command to verify that the RSVP configuration is correct.

Configuring MPLS

Step-by-Step Procedure
  1. On the PE routers, configure an MPLS LSP to the PE router that is the LSP egress point. Specify the IP address of the lo0.0 interface on the router at the other end of the LSP. Configure MPLS on the ATM, Fast Ethernet, and lo0.0 interfaces.

    To help identify each LSP when troubleshooting, configure a different LSP name on each PE router. In this example, we use the name to-pe2 as the name for the LSP configured on PE1 and to-pe1 as the name for the LSP configured on PE2.

    content_copy zoom_out_map
    user@PE1# set protocols mpls label-switched-path to-pe2 to 192.168.9.1
    user@PE1# set protocols mpls interface fe-0/1/0.0
    user@PE1# set protocols mpls interface at-0/2/0.0
    user@PE1# set protocols mpls interface lo0.0
    
    user@PE2# set protocols mpls label-switched-path to-pe1 to 192.168.7.1
    user@PE2# set protocols mpls interface fe-0/1/0.0
    user@PE2# set protocols mpls interface at-0/2/1.0
    user@PE2# set protocols mpls interface lo0.0
    

    Use the show configuration protocols mpls and show route label-switched-path to-pe1 commands to verify that the MPLS and LSP configuration is correct.

    After the configuration is committed, use the show mpls lsp name to-pe1 and show mpls lsp name to-pe2 commands to verify that the LSP is operational.

  2. On Router P, enable MPLS. Specify the ATM interfaces connected to the PE routers.

    content_copy zoom_out_map
    user@P# set protocols mpls interface at-0/2/0.0
    user@P# set protocols mpls interface at-0/2/1.0
    

    Use the show mpls interface command to verify that MPLS is enabled on the ATM interfaces.

  3. On the PE and P routers, configure the protocol family on the ATM interfaces associated with the LSP. Specify the mpls protocol family type.

    content_copy zoom_out_map
    user@PE1# set interfaces at-0/2/0 unit 0 family mpls
    
    user@P# set interfaces at-0/2/0 unit 0 family mpls
    user@P# set interfaces at-0/2/1 unit 0 family mpls
    
    user@PE2# set interfaces at-0/2/1 unit 0 family mpls
    

    Use the show mpls interface command to verify that the MPLS protocol family is enabled on the ATM interfaces associated with the LSP.

Configuring the VRF Routing Instance

Step-by-Step Procedure
  1. On the PE routers, configure a routing instance for the VPN and specify the vrf instance type. Add the Fast Ethernet and lo0.1 customer-facing interfaces. Configure the VPN instance of OSPF and include the BGP-to-OSPF export policy.

    content_copy zoom_out_map
    user@PE1# set routing-instances vpn-a instance-type vrf
    user@PE1# set routing-instances vpn-a interface lo0.1
    user@PE1# set routing-instances vpn-a interface fe-0/1/0.0
    user@PE1# set routing-instances vpn-a protocols ospf export bgp-to-ospf
    user@PE1# set routing-instances vpn-a protocols ospf area 0.0.0.0 interface all
    
    user@PE2# set routing-instances vpn-a instance-type vrf
    user@PE2# set routing-instances vpn-a interface lo0.1
    user@PE2# set routing-instances vpn-a interface fe-0/1/0.0
    user@PE2# set routing-instances vpn-a protocols ospf export bgp-to-ospf
    user@PE2# set routing-instances vpn-a protocols ospf area 0.0.0.0 interface all
    

    Use the show configuration routing-instances vpn-a command to verify that the routing instance configuration is correct.

  2. On the PE routers, configure a route distinguisher for the routing instance. A route distinguisher allows the router to distinguish between two identical IP prefixes used as VPN routes. Configure a different route distinguisher on each PE router. This example uses 65010:1 on PE1 and 65010:2 on PE2.

    content_copy zoom_out_map
    user@PE1# set routing-instances vpn-a route-distinguisher 65010:1
    
    user@PE2# set routing-instances vpn-a route-distinguisher 65010:2
    

    Use the show configuration routing-instances vpn-a command to verify that the route distinguisher is correct.

  3. On the PE routers, configure default VRF import and export policies. Based on this configuration, BGP automatically generates local routes corresponding to the route target referenced in the VRF import policies. This example uses 2:1 as the route target.

    Note:

    You must configure the same route target on each PE router for a given VPN routing instance.

    content_copy zoom_out_map
    user@PE1# set routing-instances vpn-a vrf-target target:2:1
    
    user@PE2# set routing-instances vpn-a vrf-target target:2:1
    

    Use the show configuration routing-instances vpn-a command to verify that the route target is correct.

  4. On the PE routers, configure the VPN routing instance for multicast support.

    content_copy zoom_out_map
    user@PE1# set routing-instances vpn-a protocols mvpn
    
    user@PE2# set routing-instances vpn-a protocols mvpn
    

    Use the show configuration routing-instance vpn-a command to verify that the VPN routing instance has been configured for multicast support.

  5. On the PE routers, configure an IP address on loopback logical interface 1 (lo0.1) used in the customer routing instance VPN.

    content_copy zoom_out_map
    user@PE1# set interfaces lo0 unit 1 family inet address 10.10.47.101/32
    
    user@PE2# set interfaces lo0 unit 1 family inet address 10.10.47.100/32
    

    Use the show interfaces terse command to verify that the IP address on the loopback interface is correct.

Configuring PIM

Step-by-Step Procedure
  1. On the PE routers, enable PIM. Configure the lo0.1 and the customer-facing Fast Ethernet interface. Specify the mode as sparse and the version as 2.

    content_copy zoom_out_map
    user@PE1# set routing-instances vpn-a protocols pim interface lo0.1 mode sparse 
    user@PE1# set routing-instances vpn-a protocols pim interface lo0.1 version 2 
    user@PE1# set routing-instances vpn-a protocols pim interface fe-0/1/0.0 mode sparse
    user@PE1# set routing-instances vpn-a protocols pim interface fe-0/1/0.0 version 2
    user@PE2# set routing-instances vpn-a protocols pim interface lo0.1 mode sparse 
    user@PE2# set routing-instances vpn-a protocols pim interface lo0.1 version 2 
    user@PE2# set routing-instances vpn-a protocols pim interface fe-0/1/0.0 mode sparse
    user@PE2# set routing-instances vpn-a protocols pim interface fe-0/1/0.0 version 2
    

    Use the show pim interfaces instance vpn-a command to verify that PIM sparse-mode is enabled on the lo0.1 interface and the customer-facing Fast Ethernet interface.

  2. On the CE routers, enable PIM. In this example, we configure all interfaces. Specify the mode as sparse and the version as 2.

    content_copy zoom_out_map
    user@CE1# set protocols pim interface all
    user@CE2# set protocols pim interface all mode sparse
    user@CE2# set protocols pim interface all version 2
    

    Use the show pim interfaces command to verify that PIM sparse mode is enabled on all interfaces.

Configuring the Provider Tunnel

Step-by-Step Procedure
  1. On Router PE1, configure the provider tunnel. Specify the multicast address to be used.

    The provider-tunnel statement instructs the router to send multicast traffic across a tunnel.

    content_copy zoom_out_map
    user@PE1# set routing-instances vpn-a provider-tunnel rsvp-te label-switched-path-template default-template
    

    Use the show configuration routing-instance vpn-a command to verify that the provider tunnel is configured to use the default LSP template.

  2. On Router PE2, configure the provider tunnel. Specify the multicast address to be used.

    content_copy zoom_out_map
    user@PE2# set routing-instances vpn-a provider-tunnel rsvp-te label-switched-path-template default-template
    

    Use the show configuration routing-instance vpn-a command to verify that the provider tunnel is configured to use the default LSP template.

Configuring the Rendezvous Point

Step-by-Step Procedure
  1. Configure Router PE1 to be the rendezvous point. Specify the lo0.1 address of Router PE1. Specify the multicast address to be used.

    content_copy zoom_out_map
    user@PE1# set routing-instances vpn-a protocols pim rp local address 10.10.47.101
    user@PE1# set routing-instances vpn-a protocols pim rp local group-ranges 224.1.1.1/32
    

    Use the show pim rps instance vpn-a command to verify that the correct local IP address is configured for the RP.

  2. On Router PE2, configure the static rendezvous point. Specify the lo0.1 address of Router PE1.

    content_copy zoom_out_map
    user@PE2# set routing-instances vpn-a protocols pim rp static address 10.10.47.101
    

    Use the show pim rps instance vpn-a command to verify that the correct static IP address is configured for the RP.

  3. On the CE routers, configure the static rendezvous point. Specify the lo0.1 address of Router PE1.

    content_copy zoom_out_map
    user@CE1# set protocols pim rp static address 10.10.47.101 version 2
    user@CE2# set protocols pim rp static address 10.10.47.101 version 2
    

    Use the show pim rps command to verify that the correct static IP address is configured for the RP.

  4. Use the commit check command to verify that the configuration can be successfully committed. If the configuration passes the check, commit the configuration.

  5. Start the multicast sender device connected to CE1.

  6. Start the multicast receiver device connected to CE2.

  7. Verify that the receiver is receiving the multicast stream.

  8. Use show commands to verify the routing, VPN, and multicast operation.

Results

The configuration and verification parts of this example have been completed. The following section is for your reference.

The relevant sample configuration for Router CE1 follows.

Router CE1

content_copy zoom_out_map
interfaces {
    lo0 {
        unit 0 {
            family inet {
                address 192.168.6.1/32 {
                    primary;
                }
            }
        }
    }
    fe-0/1/0 {
        unit 0 {
            family inet {
                address 10.0.67.13/30;
            }
        }
    }
    fe-1/3/0 {
        unit 0 {
            family inet {
                address 10.10.12.1/24;
            }
        }
    }
}
protocols {
    ospf {
        area 0.0.0.0 {
            interface fe-0/1/0.0;
            interface lo0.0;
            interface fe-1/3/0.0;
        }
    }
    pim {
        rp {
            static {
                address 10.10.47.101 {
                    version 2;
                }
            }
        }
        interface all;
    }
}

The relevant sample configuration for Router PE1 follows.

Router PE1

content_copy zoom_out_map
interfaces {
    lo0 {
        unit 0 {
            family inet {
                address 192.168.7.1/32 {
                    primary;
                }
            }
        }
    }
    fe-0/1/0 {
        unit 0 {
            family inet {
                address 10.0.67.14/30;
            }
        }
    }
    at-0/2/0 {
        atm-options {
            pic-type atm1;
            vpi 0 {
                maximum-vcs 256;
            }
        }
        unit 0 {
            vci 0.128;
            family inet {
                address 10.0.78.5/32 {
                    destination 10.0.78.6;
                }
            }
            family mpls;
        }
    }
    lo0 {
        unit 1 {
            family inet {
                address 10.10.47.101/32;
            }
        }
    }
}
routing-options {
    autonomous-system 0.65010;
}
protocols {
    rsvp {
        interface fe-0/1/0.0;
        interface at-0/2/0.0;
    }
    mpls {
        label-switched-path to-pe2 {
            to 192.168.9.1;
        }
        interface fe-0/1/0.0;
        interface at-0/2/0.0;
        interface lo0.0;
    }
    bgp {
        group group-mvpn {
            type internal;
            local-address 192.168.7.1;
            family inet-vpn {
                unicast;
            }
            family inet-mvpn {
                signaling;
            }
            neighbor 192.168.9.1;
            neighbor 192.168.8.1;
        }
    }
    ospf {
        traffic-engineering {
            shortcuts;
        }
        area 0.0.0.0 {
            interface at-0/2/0.0;
            interface lo0.0;
        }
    }
}
policy-options {
    policy-statement bgp-to-ospf {
        from protocol bgp;
        then accept;
    }
}
routing-instances {
    vpn-a {
        instance-type vrf;
        interface lo0.1;
        interface fe-0/1/0.0;
        route-distinguisher 65010:1;
        provider-tunnel {
            rsvp-te {
                label-switched-path-template {
                    default-template;
                }
            }
        }
        vrf-target target:2:1;
        protocols {
            ospf {
                export bgp-to-ospf;
                area 0.0.0.0 {
                    interface all;
                }
            }
            pim {
                rp {
                    local {
                        address 10.10.47.101;
                        group-ranges {
                            224.1.1.1/32;
                        }
                    }
                }
                interface lo0.1 {
                    mode sparse;
                    version 2;
                }
                interface fe-0/1/0.0 {
                    mode sparse;
                    version 2;
                }
            }
            mvpn;
        }
    }
}

The relevant sample configuration for Router P follows.

Router P

content_copy zoom_out_map
interfaces {
    lo0 {
        unit 0 {
            family inet {
                address 192.168.8.1/32 {
                    primary;
                }
            }
        }
    }
    at-0/2/0 {
        atm-options {
            pic-type atm1;
            vpi 0 {
                maximum-vcs 256;
            }
        }
        unit 0 {
            vci 0.128;
            family inet {
                address 10.0.78.6/32 {
                    destination 10.0.78.5;
                }
            }
            family mpls;
        }
    }
    at-0/2/1 {
        atm-options {
            pic-type atm1;
            vpi 0 {
                maximum-vcs 256;
            }
        }
        unit 0 {
            vci 0.128;
            family inet {
                address 10.0.89.5/32 {
                    destination 10.0.89.6;
                }
            }
            family mpls;
        }
    }
}
routing-options {
    autonomous-system 0.65010;
}
protocols {
    rsvp {
        interface at-0/2/0.0;
        interface at-0/2/1.0;
    }
    mpls {
        interface at-0/2/0.0;
        interface at-0/2/1.0;
    }
    bgp {
        group group-mvpn {
            type internal;
            local-address 192.168.8.1;
            family inet {
                unicast;
            }
            family inet-mvpn {
                signaling;
            }
            neighbor 192.168.9.1;
            neighbor 192.168.7.1;
        }
    }
    ospf {
        traffic-engineering {
            shortcuts;
        }
        area 0.0.0.0 {
            interface lo0.0;
            interface all;
            interface fxp0.0 {
                disable;
            }
        }
    }
}

The relevant sample configuration for Router PE2 follows.

Router PE2

content_copy zoom_out_map
interfaces {
    lo0 {
        unit 0 {
            family inet {
                address 192.168.9.1/32 {
                    primary;
                }
            }
        }
    }
    fe-0/1/0 {
        unit 0 {
            family inet {
                address 10.0.90.13/30;
            }
        }
    }
    at-0/2/1 {
        atm-options {
            pic-type atm1;
            vpi 0 {
                maximum-vcs 256;
            }
        }
        unit 0 {
            vci 0.128;
            family inet {
                address 10.0.89.6/32 {
                    destination 10.0.89.5;
                }
            }
            family mpls;
        }
    }
    lo0 {
        unit 1 {
            family inet {
                address 10.10.47.100/32;
            }
        }
    }
}
routing-options {
    autonomous-system 0.65010;
}
protocols {
    rsvp {
        interface fe-0/1/0.0;
        interface at-0/2/1.0;
    }
    mpls {
        label-switched-path to-pe1 {
            to 192.168.7.1;
        }
        interface lo0.0;
        interface fe-0/1/0.0;
        interface at-0/2/1.0;
    }
    bgp {
        group group-mvpn {
            type internal;
            local-address 192.168.9.1;
            family inet-vpn {
                unicast;
            }
            family inet-mvpn {
                signaling;
            }
            neighbor 192.168.7.1;
            neighbor 192.168.8.1;
        }
    }
    ospf {
        traffic-engineering {
            shortcuts;
        }
        area 0.0.0.0 {
            interface lo0.0;
            interface at-0/2/1.0;
        }
    }
}
policy-options {
    policy-statement bgp-to-ospf {
        from protocol bgp;
        then accept;
    }
}
routing-instances {
    vpn-a {
        instance-type vrf;
        interface fe-0/1/0.0;
        interface lo0.1;
        route-distinguisher 65010:2;
        provider-tunnel {
            rsvp-te {
                label-switched-path-template {
                    default-template;
                }
            }
        }
        vrf-target target:2:1;
        protocols {
            ospf {
                export bgp-to-ospf;
                area 0.0.0.0 {
                    interface all;
                }
            }
            pim {
                rp {
                    static {
                        address 10.10.47.101;
                    }
                }
                interface fe-0/1/0.0 {
                    mode sparse;
                    version 2;
                }
                interface lo0.1 {
                    mode sparse;
                    version 2;
                }
            }
            mvpn;
        }
    }
}

The relevant sample configuration for Router CE2 follows.

Router CE2

content_copy zoom_out_map
interfaces {
    lo0 {
        unit 0 {
            family inet {
                address 192.168.0.1/32 {
                    primary;
                }
            }
        }
    }
    fe-0/1/0 {
        unit 0 {
            family inet {
                address 10.0.90.14/30;
            }
        }
    }
    fe-1/3/0 {
        unit 0 {
            family inet {
                address 10.10.11.1/24;
            }
            family inet6 {
                address fe80::205:85ff:fe88:ccdb/64;
            }
        }
    }
}
protocols {
    ospf {
        area 0.0.0.0 {
            interface fe-0/1/0.0;
            interface lo0.0;
            interface fe-1/3/0.0;
        }
    }
    pim {
        rp {
            static {
                address 10.10.47.101 {
                    version 2;
                }
            }
        }
        interface all {
            mode sparse;
            version 2;
        }
    }
}

Example: Configuring a PIM-SSM Provider Tunnel for an MBGP MVPN

This example shows how to configure a PIM-SSM provider tunnel for an MBGP MVPN. The configuration enables service providers to carry customer data in the core. This example shows how to configure PIM-SSM tunnels as inclusive PMSI and uses the unicast routing preference as the metric for determining the single forwarder (instead of the default metric, which is the IP address from the global administrator field in the route-import community).

Requirements

Before you begin:

Overview

When a PE receives a customer join or prune message from a CE, the message identifies a particular multicast flow as belonging either to a source-specific tree (S,G) or to a shared tree (*,G). If the route to the multicast source or RP is across the VPN backbone, then the PE needs to identify the upstream multicast hop (UMH) for the (S,G) or (*,G) flow. Normally the UMH is determined by the unicast route to the multicast source or RP.

However, in some cases, the CEs might be distributing to the PEs a special set of routes that are to be used exclusively for the purpose of upstream multicast hop selection using the route-import community. More than one route might be eligible, and the PE needs to elect a single forwarder from the eligible UMHs.

The default metric for the single forwarder election is the IP address from the global administrator field in the route-import community. You can configure a router to use the unicast route preference to determine the single forwarder election.

This example includes the following settings.

  • provider-tunnel family inet pim-ssm group-address—Specifies a valid SSM VPN group address. The SSM VPN group address and the source address are advertised by the type-1 autodiscovery route. On receiving an autodiscovery route with the SSM VPN group address and the source address, a PE router sends an (S,G) join in the provider space to the PE advertising the autodiscovery route. All PE routers exchange their PIM-SSM VPN group address to complete the inclusive provider multicast service interface (I-PMSI). Unlike a PIM-ASM provider tunnel, the PE routers can choose a different VPN group address because the (S,G) joins are sent directly toward the source PE.

    Note:

    Similar to a PIM-ASM provider tunnel, PIM must be configured in the default master instance.

  • unicast-umh-election—Specifies that the PE router uses the unicast route preference to determine the single-forwarder election.

Topology

Figure 5 shows the topology used in this example.

Figure 5: PIM-SSM Provider Tunnel for an MBGP MVPN TopologyPIM-SSM Provider Tunnel for an MBGP MVPN Topology

Configuration

Procedure

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

content_copy zoom_out_map
set interfaces fe-0/2/0 unit 0 family inet address 192.168.195.109/30 
set interfaces fe-0/2/1 unit 0 family inet address 192.168.195.5/27 
set interfaces fe-0/2/2 unit 0 family inet address 10.20.1.1/30 
set interfaces fe-0/2/2 unit 0 family iso 
set interfaces fe-0/2/2 unit 0 family mpls 
set interfaces lo0 unit 1 family inet address 10.10.47.100/32 
set interfaces lo0 unit 1 family inet address 192.168.195.1/32 primary 
set interfaces lo0 unit 2 family inet address 10.10.48.100/32 
set protocols mpls interface all set protocols bgp group ibgp type internal 
set protocols bgp group ibgp local-preference 120 
set protocols bgp group ibgp family inet-vpn any 
set protocols bgp group ibgp family inet-mvpn signaling 
set protocols bgp group ibgp neighbor 10.255.112.155 
set protocols isis level 1 disable set protocols isis interface all 
set protocols isis interface fxp0.0 disable 
set protocols ospf traffic-engineering 
set protocols ospf area 0.0.0.0 interface all 
set protocols ospf area 0.0.0.0 interface fxp0.0 disable 
set protocols ldp interface all 
set protocols pim rp static address 10.255.112.155 
set protocols pim interface all mode sparse-dense 
set protocols pim interface all version 2 
set protocols pim interface fxp0.0 disable 
set routing-instances VPN-A instance-type vrf 
set routing-instances VPN-A interface fe-0/2/1.0 
set routing-instances VPN-A interface lo0.1 
set routing-instances VPN-A route-distinguisher 10.255.112.199:100 
set routing-instances VPN-A provider-tunnel family inet pim-ssm group-address 233.252.0.1 
set routing-instances VPN-A vrf-target target:10:100 
set routing-instances VPN-A vrf-table-label 
set routing-instances VPN-A routing-options auto-export 
set routing-instances VPN-A protocols ospf export bgp-to-ospf 
set routing-instances VPN-A protocols ospf area 0.0.0.0 interface lo0.1 
set routing-instances VPN-A protocols ospf area 0.0.0.0 interface fe-0/2/1.0 
set routing-instances VPN-A protocols pim rp static address 10.10.47.101 
set routing-instances VPN-A protocols pim interface lo0.1 mode sparse-dense 
set routing-instances VPN-A protocols pim interface lo0.1 version 2 
set routing-instances VPN-A protocols pim interface fe-0/2/1.0 mode sparse-dense 
set routing-instances VPN-A protocols pim interface fe-0/2/1.0 version 2 
set routing-instances VPN-A protocols mvpn unicast-umh-election 
set routing-instances VPN-B instance-type vrf 
set routing-instances VPN-B interface fe-0/2/0.0 
set routing-instances VPN-B interface lo0.2 
set routing-instances VPN-B route-distinguisher 10.255.112.199:200 
set routing-instances VPN-B provider-tunnel family inet pim-ssm group-address 233.252.0.2 
set routing-instances VPN-B vrf-target target:10:200 
set routing-instances VPN-B vrf-table-label 
set routing-instances VPN-B routing-options auto-export 
set routing-instances VPN-B protocols ospf export bgp-to-ospf 
set routing-instances VPN-B protocols ospf area 0.0.0.0 interface lo0.2 
set routing-instances VPN-B protocols ospf area 0.0.0.0 interface fe-0/2/0.0 
set routing-instances VPN-B protocols pim rp static address 10.10.48.101 
set routing-instances VPN-B protocols pim interface lo0.2 mode sparse-dense 
set routing-instances VPN-B protocols pim interface lo0.2 version 2 
set routing-instances VPN-B protocols pim interface fe-0/2/0.0 mode sparse-dense 
set routing-instances VPN-B protocols pim interface fe-0/2/0.0 version 2 
set routing-instances VPN-B protocols mvpn unicast-umh-election
set routing-options autonomous-system 65100
Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the Junos OS CLI User Guide.

To configure a PIM-SSM provider tunnel for an MBGP MVPN:

  1. Configure the interfaces in the master routing instance on the PE routers. This example shows the interfaces for one PE router.

    content_copy zoom_out_map
    [edit interfaces]
    user@host# set fe-0/2/0 unit 0 family inet address 192.168.195.109/30
    user@host# set fe-0/2/1 unit 0 family inet address 192.168.195.5/27
    user@host# set fe-0/2/2 unit 0 family inet address 10.20.1.1/30
    user@host# set fe-0/2/2 unit 0 family iso
    user@host# set fe-0/2/2 unit 0  family mpls
    user@host# set lo0 unit 1 family inet address 10.10.47.100/32
    user@host# set lo0 unit 2 family inet address 10.10.48.100/32
    
  2. Configure the autonomous system number in the global routing options. This is required in MBGP MVPNs.

    content_copy zoom_out_map
    [edit routing-options]
    user@host# set autonomous-system 65100
    
  3. Configure the routing protocols in the master routing instance on the PE routers.

    content_copy zoom_out_map
    [edit protocols bgp group ibgp]
    user@host# set type internal
    user@host# set family inet-vpn any
    user@host# set family inet-mvpn signaling
    user@host# set neighbor 10.255.112.155
    [edit protocols isis]
    user@host# set level 1 disable
    user@host# set interface all
    user@host# set interface fxp0.0 disable
    [edit protocols ospf]
    user@host# set traffic-engineering
    user@host# set area 0.0.0.0 interface all
    user@host# set area 0.0.0.0 interface fxp0.0 disable
    user@host# set protocols ldp interface all
    [edit protocols pim]
    user@host# set rp static address 10.255.112.155
    user@host# set interface all mode sparse-dense
    user@host# set interface all version 2
    user@host# set interface fxp0.0 disable
    
  4. Configure routing instance VPN-A.

    content_copy zoom_out_map
    [edit routing-instances VPN-A]
    user@host# set instance-type vrf
    user@host# set interface fe-0/2/1.0
    user@host# set interface lo0.1
    user@host# set route-distinguisher 10.255.112.199:100
    user@host# set provider-tunnel family inet pim-ssm group-address 232.252.0.1
    user@host# set vrf-target target:10:100
    user@host# set vrf-table-label
    user@host# set routing-options auto-export
    user@host# set protocols ospf export bgp-to-ospf
    user@host# set protocols ospf area 0.0.0.0 interface lo0.1
    user@host# set protocols ospf area 0.0.0.0 interface fe-0/2/1.0
    user@host# set protocols pim rp static address 10.10.47.101
    user@host# set protocols pim interface lo0.1 mode sparse-dense
    user@host# set protocols pim interface lo0.1 version 2
    user@host# set protocols pim interface fe-0/2/1.0 mode sparse-dense
    user@host# set protocols pim interface fe-0/2/1.0  version 2
    user@host# set protocols mvpn unicast-umh-election 
    
  5. Configure routing instance VPN-B.

    content_copy zoom_out_map
    [edit routing-instances VPN-B]
    user@host# set instance-type vrf
    user@host# set interface fe-0/2/0.0
    user@host# set interface lo0.2
    user@host# set route-distinguisher 10.255.112.199:200
    user@host# set provider-tunnel family inet pim-ssm group-address 232.252.0.2
    user@host# set vrf-target target:10:200
    user@host# set vrf-table-label
    user@host# set routing-options auto-export
    user@host# set protocols ospf export bgp-to-ospf
    user@host# set protocols ospf area 0.0.0.0 interface lo0.2
    user@host# set protocols ospf area 0.0.0.0 interface fe-0/2/0.0
    user@host# set protocols pim rp static address 10.10.48.101
    user@host# set protocols pim interface lo0.2 mode sparse-dense
    user@host# set protocols pim interface lo0.2 version 2
    user@host# set protocols pim interface fe-0/2/0.0 mode sparse-dense
    user@host# set protocols pim interface fe-0/2/0.0  version 2
    user@host# set protocols mvpn unicast-umh-election 
    
  6. Configure the topology such that the BGP route to the source advertised by PE1 has a higher preference than the BGP route to the source advertised by PE2.

    content_copy zoom_out_map
    [edit protocols bgp]
    user@host# set group ibgp local-preference 120
    
  7. Configure a higher primary loopback address on PE2 than on PE1. This ensures that PE2 is the MBGP MVPN single-forwarder election winner.

    content_copy zoom_out_map
    [edit]
    user@host# set interface lo0 unit 1 family inet address 192.168.195.1/32 primary
    
  8. Configure the unicast-umh-election statement on PE3.

    content_copy zoom_out_map
    [edit]
    user@host# set routing-instances VPN-A protocols mvpn unicast-umh-election
    user@host# set routing-instances VPN-B protocols mvpn unicast-umh-election
    
  9. If you are done configuring the device, commit the configuration.

    content_copy zoom_out_map
    user@host# commit
    

Results

Confirm your configuration by entering the show interfaces, show protocols, show routing-instances, and show routing-options commands from configuration mode. If the output does not display the intended configuration, repeat the instructions in this example to correct the configuration.

content_copy zoom_out_map
user@host# show interfaces
fe-0/2/0 {
    unit 0 {
        family inet {
            address 192.168.195.109/30;
        }
    }
}
fe-0/2/1 {
    unit 0 {
        family inet {
            address 192.168.195.5/27;
        }
    }
}
fe-0/2/2 {
    unit 0 {
        family inet {
            address 10.20.1.1/30;
        }
        family iso;
        family mpls;
    }
}
lo0 {
    unit 1 {
        family inet {
            address 10.10.47.100/32;
            address 192.168.195.1/32 {
                primary;
            }
        }
    }
    unit 2 {
        family inet {
            address 10.10.48.100/32;
        }
    }
}
content_copy zoom_out_map
user@host# show protocols
mpls {
    interface all;
}
bgp {
    group ibgp {
        type internal;
        local-preference 120;
        family inet-vpn {
            any;
        }
        family inet-mvpn {
            signaling;
        }
        neighbor 10.255.112.155;
    }
}
isis {
    level 1 disable;
    interface all;
    interface fxp0.0 {
        disable;
    }
}
ospf {
    traffic-engineering;
    area 0.0.0.0 {
        interface all;
        interface fxp0.0 {
            disable;
        }
    }
}
ldp {
    interface all;
}
pim {
    rp {
        static {
            address 10.255.112.155;
        }
    }
    interface all {
        mode sparse-dense;
        version 2;
    }
    interface fxp0.0 {
        disable;
    }
}
content_copy zoom_out_map
user@host# show routing-instances
VPN-A {
    instance-type vrf;
    interface fe-0/2/1.0;
    interface lo0.1;
    route-distinguisher 10.255.112.199:100;
    provider-tunnel {
        family inet 
            pim-ssm {
            group-address 233.252.0.1;
        }
    }
    vrf-target target:10:100;
    vrf-table-label;
    routing-options {
        auto-export;
    }
    protocols {
        ospf {
            export bgp-to-ospf;
            area 0.0.0.0 {
                interface lo0.1;
                interface fe-0/2/1.0;
            }
        }
        pim {
            rp {
                static {
                    address 10.10.47.101;
                }
            }
            interface lo0.1 {
                mode sparse-dense;
                version 2;
            }
            interface fe-0/2/1.0 {
                mode sparse-dense;
                version 2;
            }
        }
        mvpn {
            unicast-umh-election;
        }
    }
}
VPN-B {
    instance-type vrf;
    interface fe-0/2/0.0;
    interface lo0.2;
    route-distinguisher 10.255.112.199:200;
    provider-tunnel {
        family inet {
            pim-ssm {
            group-address 233.252.0.2;
        }
    }
    vrf-target target:10:200;
    vrf-table-label;
    routing-options {
        auto-export;
    }
    protocols {
        ospf {
            export bgp-to-ospf;
            area 0.0.0.0 {
                interface lo0.2;
                interface fe-0/2/0.0;
            }
        }
        pim {
            rp {
                static {
                    address 10.10.48.101;
                }
            }
            interface lo0.2 {
                mode sparse-dense;
                version 2;
            }
            interface fe-0/2/0.0 {
                mode sparse-dense;
                version 2;
            }
        }
        mvpn {
            unicast-umh-election;
        }
    }
}
content_copy zoom_out_map
fe-0/2/0 {
    unit 0 {
        family inet {
            address 192.168.195.109/30;
        }
    }
}
fe-0/2/1 {
    unit 0 {
        family inet {
            address 192.168.195.5/27;
        }
    }
}
content_copy zoom_out_map
user@host# show routing-options
autonomous-system 65100;

Verification

To verify the configuration, start the receivers and the source. PE3 should create type-7 customer multicast routes from the local joins. Verify the source-tree customer multicast entries on all PE routers. PE3 should choose PE1 as the upstream PE toward the source. PE1 receives the customer multicast route from the egress PEs and forwards data on the PSMI to PE3.

To confirm the configuration, run the following commands:

  • show route table VPN-A.mvpn.0 extensive

  • show multicast route extensive instance VPN-A

Example: Allowing MBGP MVPN Remote Sources

This example shows how to configure an MBGP MVPN that allows remote sources, even when there is no PIM neighborship toward the upstream router.

Requirements

Before you begin:

Overview

In this example, a remote CE router is the multicast source. In an MBGP MVPN, a PE router has the PIM interface hello interval set to zero, thereby creating no PIM neighborship. The PIM upstream state is None. In this scenario, directly connected receivers receive traffic in the MBGP MVPN only if you configure the ingress PE’s upstream logical interface to accept remote sources. If you do not configure the ingress PE’s logical interface to accept remote sources, the multicast route is deleted and the local receivers are no longer attached to the flood next hop.

This example shows the configuration on the ingress PE router. A static LSP is used to receive traffic from the remote source.

Topology

Figure 6 shows the topology used in this example.

Figure 6: MBGP MVPN Remote SourceMBGP MVPN Remote Source

Configuration

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

content_copy zoom_out_map
set routing-instances vpn-A instance-type vrf 
set routing-instances vpn-A interface ge-1/0/0.213 
set routing-instances vpn-A interface ge-1/0/0.484 
set routing-instances vpn-A interface ge-1/0/1.200 
set routing-instances vpn-A interface ge-1/0/2.0 
set routing-instances vpn-A interface ge-1/0/7.0 
set routing-instances vpn-A interface vt-1/1/0.0 
set routing-instances vpn-A route-distinguisher 10.0.0.10:04 
set routing-instances vpn-A provider-tunnel rsvp-te label-switched-path-template mvpn-dynamic 
set routing-instances vpn-A provider-tunnel selective group 224.0.9.0/32 source 10.1.1.2/32 rsvp-te static-lsp mvpn-static 
set routing-instances vpn-A vrf-target target:65000:04 
set routing-instances vpn-A protocols bgp group 1a type external 
set routing-instances vpn-A protocols bgp group 1a peer-as 65213 
set routing-instances vpn-A protocols bgp group 1a neighbor 10.2.213.9 
set routing-instances vpn-A protocols pim interface all hello-interval 0 
set routing-instances vpn-A protocols pim interface ge-1/0/2.0 accept-remote-source 
set routing-instances vpn-A protocols mvpn
set routing-options autonomous-system 100

Procedure

Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the Junos OS CLI User Guide.

To allow remote sources:

  1. On the ingress PE router, configure the interfaces in the routing instance.

    content_copy zoom_out_map
    [edit routing-instances vpn-A]
    user@host# set instance-type vrf 
    user@host# set interface ge-1/0/0.213 
    user@host# set interface ge-1/0/0.484 
    user@host# set interface ge-1/0/1.200 
    user@host# set interface ge-1/0/2.0 
    user@host# set interface ge-1/0/7.0 
    user@host# set interface vt-1/1/0.0 
    
  2. Configure the autonomous system number in the global routing options. This is required in MBGP MVPNs.

    content_copy zoom_out_map
    user@host# set routing-options autonomous-system 100
    
  3. Configure the route distinguisher and the VRF target.

    content_copy zoom_out_map
    [edit routing-instances vpn-A]
    user@host# set route-distinguisher 10.0.0.10:04 
    user@host# set vrf-target target:65000:04 
    
  4. Configure the provider tunnel.

    content_copy zoom_out_map
    [edit routing-instances vpn-A]
    user@host# set provider-tunnel rsvp-te label-switched-path-template mvpn-dynamic 
    user@host# set provider-tunnel selective group 224.0.9.0/32 source 10.1.1.2/32 rsvp-te static-lsp mvpn-static 
    
  5. Configure BGP in the routing instance.

    content_copy zoom_out_map
    [edit routing-instances vpn-A]
    user@host# set protocols bgp group 1a type external 
    user@host# set protocols bgp group 1a peer-as 65213 
    user@host# set protocols bgp group 1a neighbor 10.2.213.9 
    
  6. Configure PIM in the routing instance, including the accept-remote-source statement on the incoming logical interface.

    content_copy zoom_out_map
    [edit routing-instances vpn-A]
    user@host# set protocols pim interface all hello-interval 0 
    user@host# set protocols pim interface ge-1/0/2.0 accept-remote-source
    
  7. Enable the MVPN Protocol in the routing instance.

    content_copy zoom_out_map
    [edit routing-instances vpn-A]
    user@host# set protocols mvpn
    
  8. If you are done configuring the devices, commit the configuration.

    content_copy zoom_out_map
    user@host# commit
    

Results

From configuration mode, confirm your configuration by entering the show routing-instances and show routing-options commands. If the output does not display the intended configuration, repeat the instructions in this example to correct the configuration.

content_copy zoom_out_map
user@host# show routing-instances
routing-instances {
    vpn-A {
        instance-type vrf;
        interface ge-1/0/0.213;
        interface ge-1/0/0.484;
        interface ge-1/0/1.200;
        interface vt-1/1/0.0;
        interface ge-1/0/2.0;
        interface ge-1/0/7.0;
        route-distinguisher 10.0.0.10:04;
        provider-tunnel {
            rsvp-te {
                label-switched-path-template {
                    mvpn-dynamic;
                }
            }
            selective {
                group 224.0.9.0/32 {
                    source 10.1.1.2/32 {
                        rsvp-te {
                            static-lsp mvpn-static;
                        }
                    }
                }
            }
        }
        vrf-target target:65000:04;
        protocols {
            bgp {
                group 1a {
                    type external;
                    peer-as 65213;
                    neighbor 10.2.213.9;
                }
            }
            pim {
                interface all {
                    hello-interval 0;
                }
                interface ge-1/0/2.0 {
                    accept-remote-source;
                }
            }
            mvpn;
        }
    }
content_copy zoom_out_map
user@host# show routing-options
autonomous-system 100;

Verification

To verify the configuration, run the following commands:

  • show mpls lsp p2mp

  • show multicast route instance vpn-A extensive

  • show mvpn c-multicast

  • show pim join instance vpn-A extensive

  • show route forwarding-table destination destination

  • show route table vpn-A.mvpn.0

Example: Configuring BGP Route Flap Damping Based on the MBGP MVPN Address Family

This example shows how to configure an multiprotocol BGP multicast VPN (also called Next-Generation MVPN) with BGP route flap damping.

Requirements

This example uses Junos OS Release 12.2. BGP route flap damping support for MBGP MVPN, specifically, and on an address family basis, in general, is introduced in Junos OS Release 12.2.

Overview

BGP route flap damping helps to diminish route instability caused by routes being repeatedly withdrawn and readvertised when a link is intermittently failing.

This example uses the default damping parameters and demonstrates an MBGP MVPN scenario with three provider edge (PE) routing devices, three customer edge (CE) routing devices, and one provider (P) routing device.

Topology

Figure 7 shows the topology used in this example.

Figure 7: MBGP MVPN with BGP Route Flap DampingMBGP MVPN with BGP Route Flap Damping

On PE Device R4, BGP route flap damping is configured for address family inet-mvpn. A routing policy called dampPolicy uses the nlri-route-type match condition to damp only MVPN route types 3, 4, and 5. All other MVPN route types are not damped.

This example shows the full configuration on all devices in the CLI Quick Configuration section. The Configuring Device R4 section shows the step-by-step configuration for PE Device R4.

Configuration

CLI Quick Configuration

To quickly configure this example, copy the following commands, paste them into a text file, remove any line breaks, change any details necessary to match your network configuration, and then copy and paste the commands into the CLI at the [edit] hierarchy level.

Device R1

content_copy zoom_out_map
set interfaces ge-1/2/0 unit 1 family inet address 10.1.1.1/30
set interfaces ge-1/2/0 unit 1 family mpls
set interfaces lo0 unit 1 family inet address 172.16.1.1/32
set protocols ospf area 0.0.0.0 interface lo0.1 passive
set protocols ospf area 0.0.0.0 interface ge-1/2/0.1
set protocols pim rp static address 172.16.100.1
set protocols pim interface all
set routing-options router-id 172.16.1.1

Device R2

content_copy zoom_out_map
set interfaces ge-1/2/0 unit 2 family inet address 10.1.1.2/30
set interfaces ge-1/2/0 unit 2 family mpls
set interfaces ge-1/2/1 unit 5 family inet address 10.1.1.5/30
set interfaces ge-1/2/1 unit 5 family mpls
set interfaces vt-1/2/0 unit 2 family inet
set interfaces lo0 unit 2 family inet address 172.16.1.2/32
set interfaces lo0 unit 102 family inet address 172.16.100.1/32
set protocols mpls interface ge-1/2/1.5
set protocols bgp group ibgp type internal
set protocols bgp group ibgp local-address 172.16.1.2
set protocols bgp group ibgp family inet-vpn any
set protocols bgp group ibgp family inet-mvpn signaling
set protocols bgp group ibgp neighbor 172.16.1.4
set protocols bgp group ibgp neighbor 172.16.1.5
set protocols ospf area 0.0.0.0 interface lo0.2 passive
set protocols ospf area 0.0.0.0 interface ge-1/2/1.5
set protocols ldp interface ge-1/2/1.5
set protocols ldp p2mp
set policy-options policy-statement parent_vpn_routes from protocol bgp
set policy-options policy-statement parent_vpn_routes then accept
set routing-instances vpn-1 instance-type vrf
set routing-instances vpn-1 interface ge-1/2/0.2
set routing-instances vpn-1 interface vt-1/2/0.2
set routing-instances vpn-1 interface lo0.102
set routing-instances vpn-1 route-distinguisher 100:100
set routing-instances vpn-1 provider-tunnel ldp-p2mp
set routing-instances vpn-1 vrf-target target:1:1
set routing-instances vpn-1 protocols ospf export parent_vpn_routes
set routing-instances vpn-1 protocols ospf area 0.0.0.0 interface lo0.102 passive
set routing-instances vpn-1 protocols ospf area 0.0.0.0 interface ge-1/2/0.2
set routing-instances vpn-1 protocols pim rp static address 172.16.1.2 with 172.16.4.1100.1
set routing-instances vpn-1 protocols pim interface ge-1/2/0.2 mode sparse
set routing-instances vpn-1 protocols mvpn
set routing-options router-id 172.16.1.2
set routing-options autonomous-system 1001

Device R3

content_copy zoom_out_map
set interfaces ge-1/2/0 unit 6 family inet address 10.1.1.6/30
set interfaces ge-1/2/0 unit 6 family mpls
set interfaces ge-1/2/1 unit 9 family inet address 10.1.1.9/30
set interfaces ge-1/2/1 unit 9 family mpls
set interfaces ge-1/2/2 unit 13 family inet address 10.1.1.13/30
set interfaces ge-1/2/2 unit 13 family mpls
set interfaces lo0 unit 3 family inet address 172.16.1.3/32
set protocols mpls interface ge-1/2/0.6
set protocols mpls interface ge-1/2/1.9
set protocols mpls interface ge-1/2/2.13
set protocols ospf area 0.0.0.0 interface lo0.3 passive
set protocols ospf area 0.0.0.0 interface ge-1/2/0.6
set protocols ospf area 0.0.0.0 interface ge-1/2/1.9
set protocols ospf area 0.0.0.0 interface ge-1/2/2.13
set protocols ldp interface ge-1/2/0.6
set protocols ldp interface ge-1/2/1.9
set protocols ldp interface ge-1/2/2.13
set protocols ldp p2mp
set routing-options router-id 172.16.1.3

Device R4

content_copy zoom_out_map
set interfaces ge-1/2/0 unit 10 family inet address 10.1.1.10/30
set interfaces ge-1/2/0 unit 10 family mpls
set interfaces ge-1/2/1 unit 17 family inet address 10.1.1.17/30
set interfaces ge-1/2/1 unit 17 family mpls
set interfaces vt-1/2/0 unit 4 family inet
set interfaces lo0 unit 4 family inet address 172.16.1.4/32
set interfaces lo0 unit 104 family inet address 172.16.100.1/32
set protocols rsvp interface all aggregate
set protocols mpls interface all
set protocols mpls interface ge-1/2/0.10
set protocols bgp group ibgp type internal
set protocols bgp group ibgp local-address 172.16.1.4
set protocols bgp group ibgp family inet-vpn unicast
set protocols bgp group ibgp family inet-vpn any
set protocols bgp group ibgp family inet-mvpn signaling damping
set protocols bgp group ibgp neighbor 172.16.1.2 import dampPolicy
set protocols bgp group ibgp neighbor 172.16.1.5
set protocols ospf traffic-engineering
set protocols ospf area 0.0.0.0 interface all
set protocols ospf area 0.0.0.0 interface lo0.4 passive
set protocols ospf area 0.0.0.0 interface ge-1/2/0.10
set protocols ldp interface ge-1/2/0.10
set protocols ldp p2mp
set policy-options policy-statement dampPolicy term term1 from family inet-mvpn
set policy-options policy-statement dampPolicy term term1 from nlri-route-type 3
set policy-options policy-statement dampPolicy term term1 from nlri-route-type 4
set policy-options policy-statement dampPolicy term term1 from nlri-route-type 5
set policy-options policy-statement dampPolicy term term1 then accept
set policy-options policy-statement dampPolicy then damping no-damp
set policy-options policy-statement dampPolicy then accept
set policy-options policy-statement parent_vpn_routes from protocol bgp
set policy-options policy-statement parent_vpn_routes then accept
set policy-options damping no-damp disable
set routing-instances vpn-1 instance-type vrf
set routing-instances vpn-1 interface vt-1/2/0.4
set routing-instances vpn-1 interface ge-1/2/1.17
set routing-instances vpn-1 interface lo0.104
set routing-instances vpn-1 route-distinguisher 100:100
set routing-instances vpn-1 vrf-target target:1:1
set routing-instances vpn-1 protocols ospf export parent_vpn_routes
set routing-instances vpn-1 protocols ospf area 0.0.0.0 interface lo0.104 passive
set routing-instances vpn-1 protocols ospf area 0.0.0.0 interface ge-1/2/1.17
set routing-instances vpn-1 protocols pim rp static address 172.16.100.1
set routing-instances vpn-1 protocols pim interface ge-1/2/1.17 mode sparse
set routing-instances vpn-1 protocols mvpn
set routing-options router-id 172.16.1.4
set routing-options autonomous-system 64501

Device R5

content_copy zoom_out_map
set interfaces ge-1/2/0 unit 14 family inet address 10.1.1.14/30
set interfaces ge-1/2/0 unit 14 family mpls
set interfaces ge-1/2/1 unit 21 family inet address 10.1.1.21/30
set interfaces ge-1/2/1 unit 21 family mpls
set interfaces vt-1/2/0 unit 5 family inet
set interfaces lo0 unit 5 family inet address 172.16.1.5/32
set interfaces lo0 unit 105 family inet address 172.16.100.5/32
set protocols mpls interface ge-1/2/0.14
set protocols bgp group ibgp type internal
set protocols bgp group ibgp local-address 172.16.1.5
set protocols bgp group ibgp family inet-vpn any
set protocols bgp group ibgp family inet-mvpn signaling
set protocols bgp group ibgp neighbor 172.16.1.2
set protocols bgp group ibgp neighbor 172.16.1.4
set protocols ospf area 0.0.0.0 interface lo0.5 passive
set protocols ospf area 0.0.0.0 interface ge-1/2/0.14
set protocols ldp interface ge-1/2/0.14
set protocols ldp p2mp
set policy-options policy-statement parent_vpn_routes from protocol bgp
set policy-options policy-statement parent_vpn_routes then accept
set routing-instances vpn-1 instance-type vrf
set routing-instances vpn-1 interface vt-1/2/0.5
set routing-instances vpn-1 interface ge-1/2/1.21
set routing-instances vpn-1 interface lo0.105
set routing-instances vpn-1 route-distinguisher 100:100
set routing-instances vpn-1 vrf-target target:1:1
set routing-instances vpn-1 protocols ospf export parent_vpn_routes
set routing-instances vpn-1 protocols ospf area 0.0.0.0 interface lo0.105 passive
set routing-instances vpn-1 protocols ospf area 0.0.0.0 interface ge-1/2/1.21
set routing-instances vpn-1 protocols pim rp static address 172.16.100.2
set routing-instances vpn-1 protocols pim interface ge-1/2/1.21 mode sparse
set routing-instances vpn-1 protocols mvpn
set routing-options router-id 172.16.1.5
set routing-options autonomous-system 1001

Device R6

content_copy zoom_out_map
set interfaces ge-1/2/0 unit 18 family inet address 10.1.1.18/30
set interfaces ge-1/2/0 unit 18 family mpls
set interfaces lo0 unit 6 family inet address 172.16.1.6/32
set protocols sap listen 233.1.1.1
set protocols ospf area 0.0.0.0 interface lo0.6 passive
set protocols ospf area 0.0.0.0 interface ge-1/2/0.18
set protocols pim rp static address 172.16.100.2
set protocols pim interface all
set routing-options router-id 172.16.1.6

Device R7

content_copy zoom_out_map
set interfaces ge-1/2/0 unit 22 family inet address 10.1.1.22/30
set interfaces ge-1/2/0 unit 22 family mpls
set interfaces lo0 unit 7 family inet address 172.16.1.7/32
set protocols ospf area 0.0.0.0 interface lo0.7 passive
set protocols ospf area 0.0.0.0 interface ge-1/2/0.22
set protocols pim rp static address 172.16.100.2
set protocols pim interface all
set routing-options router-id 172.16.1.7

Configuring Device R4

Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see Using the CLI Editor in Configuration Mode in the Junos OS CLI User Guide.

To configure Device R4:

  1. Configure the interfaces.

    content_copy zoom_out_map
    [edit interfaces]
    user@R4# set ge-1/2/0 unit 10 family inet address 10.1.1.10/30
    user@R4# set ge-1/2/0 unit 10 family mpls
    user@R4# set ge-1/2/1 unit 17 family inet address 10.1.1.17/30
    user@R4# set ge-1/2/1 unit 17 family mpls
    user@R4# set vt-1/2/0 unit 4 family inet
    user@R4# set lo0 unit 4 family inet address 172.16.1.4/32
    user@R4# set lo0 unit 104 family inet address 172.16.100.4/32
    
  2. Configure MPLS and the signaling protocols on the interfaces.

    content_copy zoom_out_map
    [edit protocols]
    user@R4# set mpls interface all
    user@R4# set mpls interface ge-1/2/0.10
    user@R4# set rsvp interface all aggregate
    user@R4# set ldp interface ge-1/2/0.10
    user@R4# set ldp p2mp
    
  3. Configure BGP.

    The BGP configuration enables BGP route flap damping for the inet-mvpn address family. The BGP configuration also imports into the routing table the routing policy called dampPolicy. This policy is applied to neighbor PE Device R2.

    content_copy zoom_out_map
    [edit protocols bgp group ibgp]
    user@R4# set type internal
    user@R4# set local-address 172.16.1.4
    user@R4# set family inet-vpn unicast
    user@R4# set family inet-vpn any
    user@R4# set family inet-mvpn signaling damping
    user@R4# set neighbor 172.16.1.2 import dampPolicy
    user@R4# set neighbor 172.16.1.5
    
  4. Configure an interior gateway protocol.

    content_copy zoom_out_map
    [edit protocols ospf]
    user@R4# set traffic-engineering
    [edit protocols ospf area 0.0.0.0]
    user@R4# set interface all
    user@R4# set interface lo0.4 passive
    user@R4# set interface ge-1/2/0.10
    
  5. Configure a damping policy that uses the nlri-route-type match condition to damp only MVPN route types 3, 4, and 5.

    content_copy zoom_out_map
    [edit policy-options policy-statement dampPolicy term term1]
    user@R4# set from family inet-mvpn
    user@R4# set from nlri-route-type 3
    user@R4# set from nlri-route-type 4
    user@R4# set from nlri-route-type 5
    user@R4# set then accept
    
  6. Configure the damping policy to disable BGP route flap damping.

    The no-damp policy (damping no-damp disable) causes any damping state that is present in the routing table to be deleted. The then damping no-damp statement applies the no-damp policy as an action and has no from match conditions. Therefore, all routes that are not matched by term1 are matched by this term, with the result that all other MVPN route types are not damped.

    content_copy zoom_out_map
    [edit policy-options policy-statement dampPolicy]
    user@R4# set then damping no-damp
    user@R4# set then accept
    [edit policy-options]
    user@R4# set damping no-damp disable
    
  7. Configure the parent_vpn_routes to accept all other BGP routes that are not from the inet-mvpn address family.

    This policy is applied as an OSPF export policy in the routing instance.

    content_copy zoom_out_map
    [edit policy-options policy-statement parent_vpn_routes]
    user@R4# set from protocol bgp
    user@R4# set then accept
    
  8. Configure the VPN routing and forwarding (VRF) instance.

    content_copy zoom_out_map
    [edit routing-instances vpn-1]
    user@R4# set instance-type vrf
    user@R4# set interface vt-1/2/0.4
    user@R4# set interface ge-1/2/1.17
    user@R4# set interface lo0.104
    user@R4# set route-distinguisher 100:100
    user@R4# set vrf-target target:1:1
    user@R4# set protocols ospf export parent_vpn_routes
    user@R4# set protocols ospf area 0.0.0.0 interface lo0.104 passive
    user@R4# set protocols ospf area 0.0.0.0 interface ge-1/2/1.17
    user@R4# set protocols pim rp static address 172.16.100.2
    user@R4# set protocols pim interface ge-1/2/1.17 mode sparse
    user@R4# set protocols mvpn
    
  9. Configure the router ID and the autonomous system (AS) number.

    content_copy zoom_out_map
    [edit routing-options]
    user@R4# set router-id 172.16.1.4
    user@R4# set autonomous-system 1001
    
  10. If you are done configuring the device, commit the configuration.

    content_copy zoom_out_map
    user@R4# commit
    

Results

From configuration mode, confirm your configuration by entering the show interfaces, show protocols, show policy-options, show routing-instances, and show routing-options commands. If the output does not display the intended configuration, repeat the instructions in this example to correct the configuration.

content_copy zoom_out_map
user@R4# show interfaces
ge-1/2/0 {
    unit 10 {
        family inet {
            address 10.1.1.10/30;
        }
        family mpls;
    }
}
ge-1/2/1 {
    unit 17 {
        family inet {
            address 10.1.1.17/30;
        }
        family mpls;
    }
}
vt-1/2/0 {
    unit 4 {
        family inet;
    }
}
lo0 {
    unit 4 {
        family inet {
            address 172.16.1.4/32;
        }
    }
    unit 104 {
        family inet {
            address 172.16.100.4/32;
        }
    }
}
content_copy zoom_out_map
user@R4# show protocols
rsvp {
    interface all {
        aggregate;
    }
}
mpls {
    interface all;
    interface ge-1/2/0.10;
}
bgp {
    group ibgp {
        type internal;
        local-address 172.16.1.4;
        family inet-vpn {
            unicast;
            any;
        }
        family inet-mvpn {
            signaling {
                damping;
            }
        }
        neighbor 172.16.1.2 {
            import dampPolicy;
        }
        neighbor 172.16.1.5;
    }
}
ospf {
    traffic-engineering;
    area 0.0.0.0 {
        interface all;
        interface lo0.4 {
            passive;
        }
        interface ge-1/2/0.10;
    }
}
ldp {
    interface ge-1/2/0.10;
    p2mp;
}
content_copy zoom_out_map
user@R4# show policy-options
policy-statement dampPolicy {
    term term1 {
        from {
            family inet-mvpn;
            nlri-route-type [ 3 4 5 ];
        }
        then accept;
    }
    then {
        damping no-damp;
        accept;
    }
}
policy-statement parent_vpn_routes {
    from protocol bgp;
    then accept;
}
damping no-damp {
    disable;
}
content_copy zoom_out_map
user@R4# show routing-instances
vpn-1 {
    instance-type vrf;
    interface vt-1/2/0.4;
    interface ge-1/2/1.17;
    interface lo0.104;
    route-distinguisher 100:100;
    vrf-target target:1:1;
    protocols {
        ospf {
            export parent_vpn_routes;
            area 0.0.0.0 {
                interface lo0.104 {
                    passive;
                }
                interface ge-1/2/1.17;
            }
        }
        pim {
            rp {
                static {
                    address 172.16.100.2;
                }
            }
            interface ge-1/2/1.17 {
                mode sparse;
            }
        }
        mvpn;
    }
}
content_copy zoom_out_map
user@R4# show routing-optons
router-id 172.16.1.4;
autonomous-system 1001;

Verification

Confirm that the configuration is working properly.

Verifying That Route Flap Damping Is Disabled

Purpose

Verify the presence of the no-damp policy, which disables damping for MVPN route types other than 3, 4, and 5.

Action

From operational mode, enter the show policy damping command.

content_copy zoom_out_map
user@R4> show policy damping
Default damping information:
  Halflife: 15 minutes
  Reuse merit: 750 Suppress/cutoff merit: 3000
  Maximum suppress time: 60 minutes
  Computed values:
    Merit ceiling: 12110
    Maximum decay: 6193
Damping information for "no-damp":
  Damping disabled
Meaning

The output shows that the default damping parameters are in effect and that the no-damp policy is also in effect for the specified route types.

Verifying Route Flap Damping

Purpose

Check whether BGP routes have been damped.

Action

From operational mode, enter the show bgp summary command.

content_copy zoom_out_map
user@R4> show bgp summary
Groups: 1 Peers: 2 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
bgp.l3vpn.0          
                       6          6          0          0          0          0
bgp.l3vpn.2          
                       0          0          0          0          0          0
bgp.mvpn.0           
                       2          2          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
172.16.1.2                1001       3159       3155       0       0    23:43:47 Establ
  bgp.l3vpn.0: 3/3/3/0
  bgp.l3vpn.2: 0/0/0/0
  bgp.mvpn.0: 1/1/1/0
  vpn-1.inet.0: 3/3/3/0
  vpn-1.mvpn.0: 1/1/1/0
172.16.1.5                1001       3157       3154       0       0    23:43:40 Establ
  bgp.l3vpn.0: 3/3/3/0
  bgp.l3vpn.2: 0/0/0/0
  bgp.mvpn.0: 1/1/1/0
  vpn-1.inet.0: 3/3/3/0
  vpn-1.mvpn.0: 1/1/1/0
Meaning

The Damp State field shows that zero routes in the bgp.mvpn.0 routing table have been damped. Further down, the last number in the State field shows that zero routes have been damped for BGP peer 172.16.1.2.

Example: Configuring MBGP Multicast VPN Topology Variations

This section describes how to configure multicast virtual private networks (MVPNs) using multiprotocol BGP (MBGP) (next-generation MVPNs).

Requirements

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.

Overview and Topology

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 8.

Figure 8: MBGP MVPN Topology Variations DiagramMBGP 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:

  • A full mesh (each MVPN site has both senders and receivers)

  • A mixture of sender-only and receiver-only sites

  • A mixture of sender-only, receiver-only, and sender-receiver sites

  • A hub and spoke (two interfaces between hub PE and hub CE, and all spokes are sender-receiver sites)

Each type of MVPN differs more in the configuration VPN statements than the provider tunnel configuration. For information about configuring VPNs, see the Junos OS VPNs Library for Routing Devices.

Configuring Full Mesh MBGP MVPNs

This example describes how to configure a full mesh MBGP MVPN:

Configuration Steps

Step-by-Step Procedure

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:

  1. Configure PE-1 (both VPN A and VPN B at site 1):

    content_copy zoom_out_map
    [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;
        }
    
  2. Configure PE-4 (VPN A at site 4):

    content_copy zoom_out_map
    [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;
            }
            route-distinguisher 65535:4;
            vrf-target target:1:1;
            
        }
    
  3. Configure PE-2 (VPN B at site 3):

    content_copy zoom_out_map
    [edit]
    routing-instances {
        VPN-B {
            instance-type vrf;
            interface ge-1/3/0.0;
            provider-tunnel {
                pim-asm {
                    group-address 224.1.1.2;
                }
            }
            protocols {
                mvpn;
            }
            route-distinguisher 65535:3;
            vrf-target target:1:2;
        }
    

Configuring Sender-Only and Receiver-Only Sites Using PIM ASM Provider Tunnels

This example describes how to configure an MBGP MVPN with a mixture of sender-only and receiver-only sites using PIM-ASM provider tunnels.

Configuration Steps

Step-by-Step Procedure

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:

  1. Configure PE-1 (VPN A sender-only and VPN B receiver-only at site 1):

    content_copy zoom_out_map
    [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;
            }
        }
    
  2. Configure PE-4 (VPN A receiver-only at site 4):

    content_copy zoom_out_map
    [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;
            }
        }
    
  3. Configure PE-2 (VPN A receiver-only and VPN B sender-only at site 3):

    content_copy zoom_out_map
    [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;
            }
        }
    

Configuring Sender-Only, Receiver-Only, and Sender-Receiver MVPN Sites

This example describes how to configure an MBGP MVPN with a mixture of sender-only, receiver-only, and sender-receiver sites.

Configuration Steps

Step-by-Step Procedure

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:

  1. Configure PE-1 (VPN A sender-receiver and VPN B receiver-only at site 1):

    content_copy zoom_out_map
    [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;
            }
        }
    
  2. Configure PE-4 (VPN A receiver-only at site 4):

    content_copy zoom_out_map
    [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;
            }
        }
    
  3. Configure PE-2 (VPN-A sender-only and VPN-B sender-only at site 3):

    content_copy zoom_out_map
    [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;
            }
        }
    

Configuring Hub-and-Spoke MVPNs

This example describes how to configure an MBGP MVPN in a hub and spoke topology.

Configuration Steps

Step-by-Step Procedure

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:

  1. Configure PE-1 for VPN A (spoke site):

    content_copy zoom_out_map
    [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;
            }
        }
    
  2. Configure PE-4 for VPN A (hub site):

    content_copy zoom_out_map
    [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;
            }
        }
    
  3. Configure PE-2 for VPN A (spoke site):

    content_copy zoom_out_map
    [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;
            }
        }
    

Configuring Nonstop Active Routing for BGP Multicast VPN

BGP multicast virtual private network (MVPN) is a Layer 3 VPN application that is built on top of various unicast and multicast routing protocols such as Protocol Independent Multicast (PIM), BGP, RSVP, and LDP. Enabling nonstop active routing (NSR) for BGP MVPN requires that NSR support is enabled for all these protocols.

Before you begin:

The state maintained by MVPN includes MVPN routes, cmcast, provider-tunnel, and forwarding information. BGP MVPN NSR synchronizes this MVPN state between the primary and backup Routing Engines. While some of the state on the backup Routing Engine is locally built based on the configuration, most of it is built based on triggers from other protocols that MVPN interacts with. The triggers from these protocols are in turn the result of state replication performed by these modules. This includes route change notifications by unicast protocols, join and prune triggers from PIM, remote MVPN route notification by BGP, and provider-tunnel related notifications from RSVP and LDP.

Configuring NSR and unified in-service software upgrade (ISSU) support to the BGP MVPN protocol provides features such as various provider tunnel types, different MVPN modes (source tree, shared-tree), and PIM features. As a result, at the ingress PE, replication is turned on for dynamic LSPs. Thus, when NSR is configured, the state for dynamic LSPs is also replicated to the backup Routing Engine. After the state is resolved on the backup Routing Engine, RSVP sends required notifications to MVPN.

To enable BGP MVPN NSR support, the advertise-from-main-vpn-tables configuration statement needs to be configured at the [edit protocols bgp] hierarchy level.

Nonstop active routing configurations include two Routing Engines that share information so that routing is not interrupted during Routing Engine failover. When NSR is configured on a dual Routing Engine platform, the PIM control state is replicated on both Routing Engines.

This PIM state information includes:

  • Neighbor relationships

  • Join and prune information

  • RP-set information

  • Synchronization between routes and next hops and the forwarding state between the two Routing Engines

Junos OS supports NSR in the following PIM scenarios:

  • Dense mode

  • Sparse mode

  • SSM

  • Static RP

  • Auto-RP (for IPv4 only)

  • Bootstrap router

  • Embedded RP on the non-RP router (for IPv6 only)

  • BFD support

  • Draft Rosen multicast VPNs and BGP multicast VPNs

  • Policy features such as neighbor policy, bootstrap router export and import policies, scope policy, flow maps, and reverse path forwarding (RPF) check policies

To configure nonstop active routing:

  1. Because NSR requires you to configure graceful Routing Engine switchover (GRES), to enable GRES, include the graceful-switchover statement at the [edit chassis redundancy] hierarchy level.
    content_copy zoom_out_map
    [edit]
    user@host# set chassis redundancy graceful-switchover
    
  2. Include the synchronize statement at the [edit system] hierarchy level so that configuration changes are synchronized on both Routing Engines.
    content_copy zoom_out_map
    [edit system]
    user@host# set synchronize
    user@host# exit
    
  3. Configure PIM settings on the desingated routerwith sparse mode and version, and static address pointing to the rendezvous points.
    content_copy zoom_out_map
    [edit protocols pim]
    user@host# set rp static address address
    user@host# set interface interface-name mode sparse
    user@host# set interface interface-name version 2
    

    For example, to set sparse mode, version 2 and static address:

    content_copy zoom_out_map
    [edit protocols pim]
    user@host# set rp static address 10.210.255.202 
    user@host# set interface fe-0/1/3.0 mode sparse
    user@host# set interface fe-0/1/3.0 version 2
    
  4. Configure per-packet load balancing on the designated router.
    content_copy zoom_out_map
    [edit policy-options policy-statement policy-name]
    user@host# set then policy-name per-packet 
    

    For example, to set load-balance policy:

    content_copy zoom_out_map
    [edit policy-options policy-statement load-balance]
    user@host# set then load-balance per-packet 
    
  5. Apply the load-balance policy on the designated router.
    content_copy zoom_out_map
    [edit]
    user@host# set routing-options forwarding-table export load-balance
    
  6. Configure nonstop active routing on the designated router.
    content_copy zoom_out_map
    [edit]
    user@host# set routing-options nonstop-routing
    user@host# set routing-options router-id address
    

    For example, to set nonstop active routing on the designated router with address 10.210.255.201:

    content_copy zoom_out_map
    [edit]
    user@host# set routing-options router-id 10.210.255.201
    

Change History Table

Feature support is determined by the platform and release you are using. Use Feature Explorer to determine if a feature is supported on your platform.

Release
Description
15.1X49-D50
Starting in Junos OS Release 15.1X49-D50 and Junos OS Release 17.3R1, the vrf-table-label statement allows mapping of the inner label to a specific Virtual Routing and Forwarding (VRF). This mapping allows examination of the encapsulated IP header at an egress VPN router. For SRX Series Firewalls, the vrf-table-label statement is currently supported only on physical interfaces. As a workaround, deactivate vrf-table-label or use physical interfaces.
footer-navigation