This example provides a step-by-step procedure to configure multicast services across a multiprotocol BGP-based Layer 3 virtual private network. The topology of the network is shown in Figure 79.
This example configures the following technologies:
Figure 79: Multicast Over Layer 3 VPN Example Topology

![]() |
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:
To configure the network shown in Figure 79, perform the following steps:
- user@ce1# set interfaces lo0 unit 0 family
inet address 192.168.6.1/32 primary
- user@pe1# set interfaces lo0 unit 0 family
inet address 192.168.7.1/32 primary
- user@p# set interfaces lo0 unit 0 family inet
address 192.168.8.1/32 primary
- user@pe2# set interfaces lo0 unit 0 family
inet address 192.168.9.1/32 primary
- user@ce2# set interfaces lo0 unit 0 family
inet address 192.168.0.1/32 primary
You can verify this step using the show interfaces terse command.
- 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
You can verify this step using the show interfaces terse command.
- user@ce1# set interfaces fe-1/3/0 unit 0 family
inet address 10.10.12.1/24
- user@ce1# set interfaces fe-0/1/0 unit 0 family
inet address 10.0.67.13/30
- user@pe1# set interfaces fe-0/1/0 unit 0 family
inet address 10.0.67.14/30
- user@pe2# set interfaces fe-0/1/0 unit 0 family
inet address 10.0.90.13/30
- user@ce2# set interfaces fe-0/1/0 unit 0 family
inet address 10.0.90.14/30
- user@ce2# set interfaces fe-1/3/0 unit 0 family
inet address 10.10.11.1/24
You can verify this step using the show interfaces terse command.
- user@pe1# set interfaces at-0/2/0 atm-options
pic-type atm1
- user@pe1# set interfaces at-0/2/0 atm-options
vpi 0 maximum-vcs 256
- user@pe1# set interfaces at-0/2/0 unit 0 vci
0.128
- user@pe1# set interfaces at-0/2/0 unit 0 family
inet address 10.0.78.5/32 destination 10.0.78.6
- user@p# set interfaces at-0/2/0 atm-options
pic-type atm1
- user@p# set interfaces at-0/2/0 atm-options
vpi 0 maximum-vcs 256
- user@p# set interfaces at-0/2/0 unit 0 vci
0.128
- user@p# set interfaces at-0/2/0 unit 0 family
inet address 10.0.78.6/32 destination 10.0.78.5
- user@p# set interfaces at-0/2/1 atm-options
pic-type atm1
- user@p# set interfaces at-0/2/1 atm-options
vpi 0 maximum-vcs 256
- user@p# set interfaces at-0/2/1 unit 0 vci
0.128
- user@p# set interfaces at-0/2/1 unit 0 family
inet address 10.0.89.5/32 destination 10.0.89.6
- user@pe2# set interfaces at-0/2/1 atm-options
pic-type atm1
- user@pe2# set interfaces at-0/2/1 atm-options
vpi 0 maximum-vcs 256
- user@pe2# set interfaces at-0/2/1 unit 0 vci
0.128
- user@pe2# set interfaces at-0/2/1 unit 0 family
inet address 10.0.89.6/32 destination 10.0.89.5
You can verify this step using the show configuration interfaces command.
- 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
You can verify this step using the show ospf interfaces command.
- 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
You can verify this step using the show ospf interfaces command.
The shortcuts statement enables the master instance of OSPF to use a label-switched path as the next hop.
- user@pe1# set protocols ospf traffic-engineering
shortcuts
- user@p# set protocols ospf traffic-engineering
shortcuts
- user@pe2# set protocols ospf traffic-engineering
shortcuts
You can verify this step using the show ospf overview and show configuration protocols ospf commands.
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.
- 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
You can verify this step using the show configuration protocols bgp command.
- 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
You can verify this step using the show configuration routing-options command.
- 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
You can verify this step using the show bgp group command.
- 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
You can verify this step using the show policy bgp-to-ospf command.
- user@pe1# set protocols rsvp interface fe-0/1/0.0
- user@pe1# set protocols rsvp interface at-0/2/0.0
- user@p# set protocols rsvp interface at-0/2/0.0
- user@p# set protocols rsvp interface at-0/2/1.0
- user@pe2# set protocols rsvp interface fe-0/1/0.0
- user@pe2# set protocols rsvp interface at-0/2/1.0
You can verify this step using the show configuration protocols rsvp command.
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.
- 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
You can verify this step using the show configuration protocols mpls and show route label-switched-path to-pe1 commands.
After the configuration is committed, you can verify that the LSP is operational using the show mpls lsp name to-pe1 and show mpls lsp name to-pe2 commands.
- user@p# set protocols mpls interface at-0/2/0.0
- user@p# set protocols mpls interface at-0/2/1.0
You can verify this step using the show mpls interface command.
- 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
You can verify this step using the show mpls interface command.
- 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
You can verify this step using the show configuration routing-instances vpn-a command.
- user@pe1# set routing-instances vpn-a route-distinguisher
65010:1
- user@pe2# set routing-instances vpn-a route-distinguisher
65010:2
You can verify this step using the show configuration routing-instances vpn-a command.
![]() |
Note: You must configure the same route target on each PE router for a given VPN routing instance. |
- user@pe1# set routing-instances vpn-a vrf-target
target:2:1
- user@pe2# set routing-instances vpn-a vrf-target
target:2:1
You can verify this step using the show configuration routing-instances vpn-a command.
- user@pe1# set routing-instances vpn-a protocols
mvpn
- user@pe2# set routing-instances vpn-a protocols
mvpn
You can verify this step using the show configuration routing-instance vpn-a command.
- user@pe1# set protocols pim interface at-0/2/0.0
mode sparse
- user@pe1# set protocols pim interface at-0/2/0.0
version 2
- user@pe1# set protocols pim interface lo0.0
mode sparse
- user@pe1# set protocols pim interface lo0.0
version 2
- user@p# set protocols pim interface at-0/2/0.0
mode sparse
- user@p# set protocols pim interface at-0/2/0.0
version 2
- user@p# set protocols pim interface at-0/2/1.0
mode sparse
- user@p# set protocols pim interface at-0/2/1.0
version 2
- user@pe2# set protocols pim interface at-0/2/1.0
mode sparse
- user@pe2# set protocols pim interface at-0/2/1.0
version 2
- user@pe2# set protocols pim interface lo0.0
mode sparse
- user@pe2# set protocols pim interface lo0.0
version 2
You can verify this step using the show pim interfaces command.
- 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
You can verify this step using the show pim interfaces instance vpn-a command.
- 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
You can verify this step using the show pim interfaces command.
The provider-tunnel statement instructs the router to send multicast traffic across a tunnel. The pim-asm statement instructs the router to accept the multicast stream from any source.
- user@pe1# set routing-instances vpn-a provider-tunnel
pim-asm group-address 224.1.1.1
- user@pe2# set routing-instances vpn-a provider-tunnel
pim-asm group-address 224.1.1.1
You can verify this step using the show configuration routing-instance vpn-a command.
- user@pe1# set protocols pim rp local address
192.168.7.1
You can verify this step using the show pim rps command.
- user@p# set protocols pim rp static address
192.168.7.1 version 2
- user@pe2# set protocols pim rp static address
192.168.7.1 version 2
You can verify this step using the show pim rps command.
- 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
You can verify this step using the show pim rps instance vpn-a command.
- user@pe2# set routing-instances vpn-a protocols
pim rp static address 10.10.47.101
You can verify this step using the show pim rps instance vpn-a command.
- 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
You can verify this step using the show pim rps command.
The relevant sample configuration for the CE1 router follows.
Router CE1
- [edit]
- 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 the PE1 router follows.
Router PE1
- [edit]
- 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;
- }
- }
-
- pim {
-
- rp {
-
- local {
- address 192.168.7.1;
- }
- }
-
- interface at-0/2/0.0 {
- mode sparse;
- version 2;
- }
-
- interface lo0.0 {
- mode sparse;
- version 2;
- }
- }
- }
- 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 {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
- 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 the P router follows.
Router P
- [edit]
- 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;
- }
- }
- }
-
- pim {
-
- rp {
-
- static {
-
- address 192.168.7.1 {
- version 2;
- }
- }
- }
-
- interface at-0/2/0.0 {
- mode sparse;
- version 2;
- }
-
- interface at-0/2/1.0 {
- mode sparse;
- version 2;
- }
- }
- }
The relevant sample configuration for the PE2 router follows.
Router PE2
- [edit]
- 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;
- }
- }
-
- pim {
-
- rp {
-
- static {
-
- address 192.168.7.1 {
- version 2;
- }
- }
- }
-
- interface lo0.0 {
- mode sparse;
- version 2;
- }
-
- interface at-0/2/1.0 {
- mode sparse;
- version 2;
- }
- }
- }
- 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 {
-
- pim-asm {
- group-address 224.1.1.1;
- }
- }
- 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 the CE2 router follows.
Router CE2
- [edit]
- 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;
- }
- }
- }