Example: Configuring Source-Specific Multicast for Draft-Rosen Multicast VPNs
This example shows how to configure a draft-rosen Layer 3 VPN operating in source-specific multicast (SSM) mode. This example is based on the Junos implementation of the IETF Internet draft draft-rosen-vpn-mcast-07.txt, Multicast in MPLS/BGP IP VPNs.
Requirements
This example uses the following hardware and software components:
- Junos OS Release 9.4 or later
- Make sure the routing devices support multicast tunnel
(mt) interfaces.
A tunnel-capable PIC supports a maximum of 512 multicast tunnel interfaces. Both default and data MDTs contribute to this total. The default MDT uses two multicast tunnel interfaces (one for encapsulation and one for de-encapsulation). To enable an M Series or T Series router to support more than 512 multicast tunnel interfaces, another tunnel-capable PIC is required. See Tunnel Services PICs and Multicast and Load Balancing Multicast Tunnel Interfaces Among Available PICs.
Overview
The IETF Internet draft draft-rosen-vpn-mcast-07.txt introduced the ability to configure the provider network to operate in SSM mode. When a draft-rosen multicast VPN is used over an SSM provider core, there are no PIM RPs to provide rendezvous and autodiscovery between PE routers. Therefore, draft-rosen-vpn-mcast-07 specifies the use of a BGP NLRI, MDT-SAFI to facilitate autodiscovery of PEs by other PEs. MDT-SAFI updates are BGP messages distributed between intra-AS internal BGP peer PEs. Thus, receipt of an MDT-SAFI updates allow a PE to autodiscover the identity of other PEs with sites for a given VPN and the default MDT (S,G) routes to join for each. Autodiscovery provides the next-hop address of each PE, and the VPN group address for the tunnel rooted at that PE for the given route distinguisher (RD) and route-target extended community attribute.
This example includes the following configuration options to enable draft-rosen SSM:
- protocols bgp group group-name family inet-mdt signaling—Enables MDT-SAFI signaling in BGP.
- routing-instance instance-name protocols mvpn autodiscovery-only intra-as inclusive—Enables the multicast VPN to use the MDT-SAFI autodiscovery NLRI.
- routing-instance instance-name protocols pim mvpn—Specifies the SSM control plane. When pim mvpn is configured for a VRF, the VPN group address must be specified with the provider-tunnel pim-ssm group-address statement instead of the vpn-group-address statement.
- routing-instance instance-name protocols pim mvpn autodiscovery inet-mdt—Enables PIM to learn neighbors from the MDT-SAFI autodiscovery NLRI.
- routing-instance instance-name provider-tunnel pim-ssm group-address multicast-address—Configures the provider tunnel that serves as the control plane and enables the provider tunnel to have a static group address. Unlike draft-rosen multicast VPNs with ASM provider cores, the SSM configuration does not require that each PE for a VPN use the same group address. This is because the rendezvous point assignment and autodiscovery are not accomplished over the default MDT tunnels for the group. Thus, you can configure some or all PEs in a VPN to use a different group, but the same group cannot be used in different VPNs on the same PE router.
- routing-instances ce1 vrf-target target:100:1—Configures the VRF export policy.
When you configure draft-rosen multicast VPNs with provider tunnels operating in source-specific mode and using the vrf-target statement, the VRF export policy is automatically generated and automatically accepts routes from the vrf-name.mdt.0 routing table.

Note: When you configure draft-rosen multicast VPNs with provider tunnels operating in source-specific mode and using the vrf-export statement to specify the export policy, the policy must have a term that accepts routes from the vrf-name.mdt.0 routing table. This term ensures proper PE autodiscovery using the inet-mdt address family.
Figure 58 shows the topology for this example.
Figure 58: SSM for Draft-Rosen Multicast VPNs Topology

Configuration
CLI Quick Configuration
To quickly configure one PE router for a draft-rosen Layer 3 multicast VPN operating in SSM mode, copy the following commands into a text file, remove any line breaks, and then paste the commands into the CLI.
Step-by-Step Procedure
To configure the interfaces on one PE router:
Configure PE1’s interface to the provider router.
[edit]user@host# edit interfaces so-0/0/0[edit interfaces so-0/0/0]user@host# set description "TO P1"[edit interfaces so-0/0/0]user@host# set unit 0 description "to P1 (provider router, 10.255.14.218 ) so-0/0/0.0"[edit interfaces so-0/0/0]user@host# set unit 0 family inet address 1.0.1.1/30[edit interfaces so-0/0/0]user@host# set unit 0 family iso[edit interfaces so-0/0/0]user@host# set unit 0 family mpls[edit interfaces so-0/0/0]user@host# exitConfigure PE1’s interface to PE2.
[edit]user@host# edit interfaces so-0/0/1[edit interfaces so-0/0/1]user@host# set description "TO PE2"[edit interfaces so-0/0/1]user@host# set unit 0 description "to PE2 (10.255.14.217) so-0/0/1.0"[edit interfaces so-0/0/1]user@host# set unit 0 family inet address 1.0.2.1/30[edit interfaces so-0/0/1]user@host# set unit 0 family iso[edit interfaces so-0/0/1]user@host# set unit 0 family mpls[edit interfaces so-0/0/1]user@host# exitConfigure PE1’s interface to CE1.
[edit]user@host# edit interfaces fe-0/1/1[edit interfaces fe-0/1/1]user@host# set description "TO CE1"[edit interfaces fe-0/1/1]user@host# set unit 0 description "to CE1 (10.255.14.223) fe-0/1/1.0"[edit interfaces fe-0/1/1]user@host# set unit 0 family inet address 1.0.3.1/30[edit interfaces fe-0/1/1]user@host# set unit 0 family iso[edit interfaces fe-0/1/1]user@host# set unit 0 family mpls[edit interfaces fe-0/1/1]user@host# exitConfigure PE1’s loopback interface.
[edit]user@host# edit interfaces lo0[edit interfaces lo0]user@host# set unit 0 description "PE1 (this PE router, 10.255.14.216) Loopback"[edit interfaces lo0]user@host# set unit 1 family inet address 1.1.1.0/32user@host# exit
Step-by-Step Procedure
To configure multicast group management:
Configure the IGMP interfaces.
[edit]user@host# edit protocols igmp[edit protocols igmp]user@host# set interface all immediate-leave[edit protocols igmp]user@host# set interface fxp0.0 disableConfigure the IGMP settings.
[edit protocols igmp]user@host# set query-interval 2[edit protocols igmp]user@host# set query-response-interval 1[edit protocols igmp]user@host# set query-last-member-interval 1[edit protocols igmp]user@host# exit
Step-by-Step Procedure
To configure the MPLS signaling protocol and MPLS LSPs:
Configure RSVP signaling among this PE router (PE1), the other PE router (PE2). and the provider router (P1).
[edit]user@host# edit protocols rsvp[edit protocols rsvp]user@host# set interface so-0/0/0.0[edit protocols rsvp]user@host# set interface so-0/0/1.0[edit protocols rsvp]user@host# exitConfigure MPLS LSPs.
[edit]user@host# edit protocols mpls[edit protocols mpls]user@host# set label-switched-path pe1-to-pe2 to 10.255.14.217[edit protocols mpls]user@host# set label-switched-path pe1-to-pe2 primary pe1_pe2_prime[edit protocols mpls]user@host# set label-switched-path pe1-to-p1 to 10.255.14.218[edit protocols mpls]user@host# set label-switched-path pe1-to-p1 primary pe1_p1_prime[edit protocols mpls]user@host# set path pe1_p1_prime 1.0.1.2[edit protocols mpls]user@host# set path pe1_pe2_prime 1.0.2.2[edit protocols mpls]user@host# set interface all[edit protocols mpls]user@host# set interface fxp0.0 disable
Step-by-Step Procedure
To configure BGP:
- Configure the AS number. In this example, both
PEs and the provider router are in AS 200.[edit]user@host# set routing-options autonomous-system 200
Configure the internal BGP full mesh with PE2 and P1.
[edit]user@host# edit protocols bgp group int[edit protocols bgp group int]user@host# set type internal[edit protocols bgp group int]user@host# set local-address 10.255.14.216[edit protocols bgp group int]user@host# set family inet unicast[edit protocols bgp group int]user@host# set neighbor 10.255.14.218[edit protocols bgp group int]user@host# set neighbor 10.255.14.217Enable MDT-SAFI NLRI control plane messages.
[edit protocols bgp group int]user@host# set family inet-mdt signaling- Enable BGP to carry Layer 3 VPN NLRI
for the IPv4 address family.[edit protocols bgp group int]user@host# set family inet-vpn unicast[edit protocols bgp group int]user@host# set family inet-vpn multicast
Configure BGP export policy.
[edit]user@host# edit policy-options[edit policy-options]user@host# set policy-statement bgp_ospf term 1 from protocol bgp[edit policy-options]user@host# set policy-statement bgp_ospf term 1 then accept[edit policy-options]user@host# exit
Step-by-Step Procedure
To configure the interior gateway protocol:
Configure the OSPF interfaces.
[edit]user@host# edit protocols ospf[edit protocols ospf]user@host# set area 0.0.0.0 interface lo0.0 passive[edit protocols ospf]user@host# set area 0.0.0.0 interface so-0/0/0.0 metric 10[edit protocols ospf]user@host# set area 0.0.0.0 interface so-0/0/1.0 metric 10Enable traffic engineering.
[edit protocols ospf]user@host# set traffic-engineering[edit protocols ospf]user@host# exit
Step-by-Step Procedure
To configure PIM:
Configure timeout periods and the RP. Local RP configuration makes PE1 a statically defined RP.
[edit]user@host# edit protocols pim[edit protocols pim]user@host# set assert-timeout 5[edit protocols pim]user@host# set join-prune-timeout 210[edit protocols pim]user@host# set rp bootstrap-priority 10[edit protocols pim]user@host# set rp local address 10.255.14.216Configure the PIM interfaces.
[edit protocols pim]user@host# set interface lo0.0[edit protocols pim]user@host# set interface all hello-interval 1[edit protocols pim]user@host# set interface fxp0.0 disable
Step-by-Step Procedure
To configure the routing instance between PE1 and CE1:
Configure the basic routing instance.
[edit]user@host# edit routing-instances ce1[edit routing-instances ce1]user@host# set instance-type vrf[edit routing-instances ce1]user@host# set interface fe-0/1/1.0[edit routing-instances ce1]user@host# set interface lo0.1[edit routing-instances ce1]user@host# set route-distinguisher 1:0[edit routing-instances ce1]user@host# set vrf-target target:100:1Configure the SSM provider tunnel.
[edit routing-instances ce1]user@host# set provider-tunnel pim-ssm group-address 232.1.1.1[edit routing-instances ce1]user@host# exitConfigure OSPF in the routing instance.
[edit]user@host# edit routing-instances ce1 protocols ospf[edit routing-instances ce1 protocols ospf]user@host# set export bgp_ospf[edit routing-instances ce1 protocols ospf]user@host# set sham-link local 1.1.1.0[edit routing-instances ce1 protocols ospf]user@host# set area 0.0.0.0 sham-link-remote 1.1.1.1[edit routing-instances ce1 protocols ospf]user@host# set area 0.0.0.0 sham-link-remote 1.1.1.2[edit routing-instances ce1 protocols ospf]user@host# set area 0.0.0.0 interface lo0.1[edit routing-instances ce1 protocols ospf]user@host# set area 0.0.0.0 interface fe-0/1/1.0 metric 10[edit routing-instances ce1 protocols ospf]user@host# exitConfigure PIM in the routing instance.
[edit]user@host# edit routing-instances ce1 protocols pim[edit routing-instances ce1 protocols pim]user@host# set interface lo0.1[edit routing-instances ce1 protocols pim]user@host# set interface fe-0/1/1.0 priority 100[edit routing-instances ce1 protocols pim]user@host# set interface fe-0/1/1.0 hello-interval 1Configure draft-rosen VPN autodiscovery for provider tunnels operating in SSM mode.
Configure the BGP-based MVPN control plane to provide signaling only for autodiscovery and not for PIM operations.
[edit]user@host# edit routing-instances ce1 protocols mvpn[edit routing-instances ce1 protocols mvpn]user@host# set autodiscovery-only intra-as inclusive[edit routing-instances ce1 protocols mvpn]user@host# exit
Verification
You can monitor the operation of the routing instance by running the show route table ce1.mdt.0 command.
You can manage the group-instance mapping for local SSM tunnel roots by running the show pim mvpn command.
The show pim mdt command shows the tunnel type and source PE address for each outgoing and incoming MDT. In addition, because each PE might have its own default MDT group address, one incoming entry is shown for each remote PE. Outgoing data MDTs are shown after the outgoing default MDT. Incoming data MDTs are shown after all incoming default MDTS.
For troubleshooting, you can configure tracing operations for all of the protocols.
Hide Navigation Pane
Show Navigation Pane
Download
SHA1