Example: Configuring Source-Specific Draft-Rosen 7 Multicast VPNs
Understanding Source-Specific Multicast VPNs
A draft-rosen MVPN with service provider tunnels operating in SSM mode uses BGP signaling for autodiscovery of the PE routers. These MVPNs are also referred to as Draft Rosen 7.
Each PE sends an MDT subsequent address family identifier (MDT-SAFI) BGP network layer reachability information (NLRI) advertisement. The advertisement contains the following information:
Unicast address of the PE router to which the source site is attached (usually the loopback)
Multicast group address
Route target extended community attribute
Each remote PE router imports the MDT-SAFI advertisements from each of the other PE routers if the route target matches. Each PE router then joins the (S,G) tree rooted at each of the other PE routers.
After a PE router discovers the other PE routers, the source and group are bound to the VPN routing and forwarding (VRF) through the multicast tunnel de-encapsulation interface.
A draft-rosen MVPN with service provider tunnels operating in any-source multicast sparse-mode uses a shared tree and rendezvous point (RP) for autodiscovery of the PE routers. The PE that is the source of the multicast group encapsulates multicast data packets into a PIM register message and sends them by means of unicast to the RP router. The RP then builds a shortest-path tree (SPT) toward the source PE. The remote PE that acts as a receiver for the MDT multicast group sends (*,G) join messages toward the RP and joins the distribution tree for that group.
Draft-Rosen 7 Multicast VPN Control Plane
The control plane of a draft-rosen MVPN with service provider tunnels operating in SSM mode must be configured to support autodiscovery.
After the PE routers are discovered, PIM is notified of the multicast source and group addresses. PIM binds the (S,G) state to the multicast tunnel (mt) interface and sends a join message for that group.
Autodiscovery for a draft-rosen MVPN with service provider tunnels operating in SSM mode uses some of the facilities of the BGP-based MVPN control plane software module. Therefore, the BGP-based MVPN control plane must be enabled. The BGP-based MVPN control plane can be enabled for autodiscovery only.
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 OS implementation of the IETF Internet draft draft-rosen-vpn-mcast-07.txt, Multicast in MPLS/BGP VPNs.
This example uses the following hardware and software components:
Junos OS Release 9.4 or later
Make sure that 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.
In Junos OS Release 17.3R1, the pim-ssm hierarchy was moved from provider-tunnel to the provider-tunnel family inet and provider-tunnel family inet6 hierarchies as part of an upgrade to add IPv6 support for default MDT in Rosen 7, and data MDT for Rosen 6 and Rosen 7.
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 network layer reachability information (NLRI), called MDT subaddress family identifier information (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 update enables 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 family inet 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.
routing-instance instance-name protocols pim mvpn family inet autodiscovery inet-mdt—Enables PIM to learn about neighbors from the MDT-SAFI autodiscovery NLRI.
routing-instance instance-name provider-tunnel family inet 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.
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 1 shows the topology for this example.
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  hierarchy level.
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.
To configure the interfaces on one PE router:
Configure PE1’s interface to the provider router.[edit interfaces so-0/0/0]user@host# set description "TO P1"user@host# set unit 0 description "to P1 (provider router, 10.255.14.218 ) so-0/0/0.0"user@host# set unit 0 family inet address 22.214.171.124/30user@host# set unit 0 family isouser@host# set unit 0 family mpls
Configure PE1’s interface to PE2.[edit interfaces so-0/0/1]user@host# set description "TO PE2"user@host# set unit 0 description "to PE2 (10.255.14.217) so-0/0/1.0"user@host# set unit 0 family inet address 126.96.36.199/30user@host# set unit 0 family isouser@host# set unit 0 family mpls
Configure PE1’s interface to CE1.[edit interfaces fe-0/1/1]user@host# set description "TO CE1"user@host# set unit 0 description "to CE1 (10.255.14.223) fe-0/1/1.0"user@host# set unit 0 family inet address 188.8.131.52/30user@host# set unit 0 family isouser@host# set unit 0 family mpls
Configure PE1’s loopback interface.[edit interfaces lo0]user@host# set unit 0 description "PE1 (this PE router, 10.255.14.216) Loopback"user@host# set unit 1 family inet address 184.108.40.206/32
Multicast Group Management
To configure multicast group management:
Configure the IGMP interfaces.[edit protocols igmp]user@host# set interface all immediate-leaveuser@host# set interface fxp0.0 disable
Configure the IGMP settings.[edit protocols igmp]user@host# set query-interval 2user@host# set query-response-interval 1user@host# set query-last-member-interval 1
MPLS Signaling Protocol and MPLS LSPs
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 protocols rsvp]user@host# set interface so-0/0/0.0user@host# set interface so-0/0/1.0
Configure MPLS LSPs.[edit protocols mpls]user@host# set label-switched-path pe1-to-pe2 to 10.255.14.217user@host# set label-switched-path pe1-to-pe2 primary pe1_pe2_primeuser@host# set label-switched-path pe1-to-p1 to 10.255.14.218user@host# set label-switched-path pe1-to-p1 primary pe1_p1_primeuser@host# set path pe1_p1_prime 220.127.116.11user@host# set path pe1_pe2_prime 18.104.22.168user@host# set interface alluser@host# set interface fxp0.0 disable
To configure BGP:
- Configure the AS number. In this example, both of the
PE routers and the provider router are in AS 200.user@host# set routing-options autonomous-system 200
Configure the internal BGP full mesh with the PE2 and P1 routers.[edit protocols bgp group int]user@host# set type internaluser@host# set local-address 10.255.14.216user@host# set family inet unicastuser@host# set neighbor 10.255.14.218user@host# set neighbor 10.255.14.217
Enable 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 unicastuser@host# set family inet-vpn multicast
Configure BGP export policy.[edit policy-options]user@host# set policy-statement bgp_ospf term 1 from protocol bgpuser@host# set policy-statement bgp_ospf term 1 then accept
Interior Gateway Protocol
To configure the interior gateway protocol:
Configure the OSPF interfaces.[edit protocols ospf]user@host# set area 0.0.0.0 interface lo0.0 passiveuser@host# set area 0.0.0.0 interface so-0/0/0.0 metric 10user@host# set area 0.0.0.0 interface so-0/0/1.0 metric 10
Enable traffic engineering.[edit protocols ospf]user@host# set traffic-engineering
To configure PIM:
Configure timeout periods and the RP. Local RP configuration makes PE1 a statically defined RP.[edit protocols pim]user@host# set assert-timeout 5user@host# set join-prune-timeout 210user@host# set rp bootstrap-priority 10user@host# set rp local address 10.255.14.216
Configure the PIM interfaces.[edit protocols pim]user@host# set interface lo0.0user@host# set interface all hello-interval 1user@host# set interface fxp0.0 disable
To configure the routing instance between PE1 and CE1:
Configure the basic routing instance.[edit routing-instances ce1]user@host# set instance-type vrfuser@host# set interface fe-0/1/1.0user@host# set interface lo0.1user@host# set route-distinguisher 1:0user@host# set vrf-target target:100:1
Configure the SSM provider tunnel.[edit routing-instances ce1]user@host# set provider-tunnel family inet pim-ssm group-address (Routing Instances) 22.214.171.124
Configure OSPF in the routing instance.[edit routing-instances ce1 protocols ospf]user@host# set export bgp_ospfuser@host# set sham-link local 126.96.36.199user@host# set area 0.0.0.0 sham-link-remote 188.8.131.52user@host# set area 0.0.0.0 sham-link-remote 184.108.40.206user@host# set area 0.0.0.0 interface lo0.1user@host# set area 0.0.0.0 interface fe-0/1/1.0 metric 10
Configure PIM in the routing instance.[edit routing-instances ce1 protocols pim]user@host# set interface lo0.1user@host# set interface fe-0/1/1.0 priority 100user@host# set interface fe-0/1/1.0 hello-interval 1
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.