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
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

Example: Configuring Source-Specific Draft-Rosen 7 Multicast VPNs

date_range 23-Nov-23

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:

  • Route distinguisher

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

Requirements

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.

Note:

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.

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

    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.

Topology

Figure 1 shows the topology for this example.

Figure 1: SSM for Draft-Rosen Multicast VPNs TopologySSM for Draft-Rosen Multicast VPNs 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 so-0/0/0 description "TO P1_P1" 
set interfaces so-0/0/0 unit 0 description "to P1 (provider router) so-0/0/0.0" 
set interfaces so-0/0/0 unit 0 family inet address 10.0.1.1/30 
set interfaces so-0/0/0 unit 0 family iso 
set interfaces so-0/0/0 unit 0 family mpls 
set interfaces so-0/0/1 description "TO PE2" 
set interfaces so-0/0/1 unit 0 description "to PE2 (PE router) so-0/0/1.0" 
set interfaces so-0/0/1 unit 0 family inet address 10.0.2.1/30 
set interfaces so-0/0/1 unit 0 family iso 
set interfaces so-0/0/1 unit 0 family mpls 
set interfaces fe-0/1/1 description "TO CE1" 
set interfaces fe-0/1/1 unit 0 description "to CE router fe-0/1/1.0" 
set interfaces fe-0/1/1 unit 0 family inet address 10.0.3.1/30 
set interfaces lo0 unit 0 description "PE1 (this PE router) Loopback" 
set interfaces lo0 unit 1 family inet address 10.1.1.0/32
set routing-options autonomous-system 65200 
set protocols igmp query-interval 2
set protocols igmp query-response-interval 1 
set protocols igmp query-last-member-interval 1 
set protocols igmp interface all immediate-leave 
set protocols igmp interface fxp0.0 disable 
set protocols rsvp interface all
set protocols rsvp interface so-0/0/0.0 
set protocols rsvp interface so-0/0/1.0 
set protocols mpls label-switched-path PE1-to-PE2 to 10.255.14.217
set protocols mpls label-switched-path PE1-to-PE2 primary PE1_PE2_prime 
set protocols mpls label-switched-path PE1-to-P1 to 10.255.14.218 
set protocols mpls label-switched-path PE1-to-P1 primary PE1_P1_prime 
set protocols mpls path PE1_P1_prime 10.0.1.2 
set protocols mpls path PE1_PE2_prime 10.0.2.2
set protocols mpls interface all 
set protocols mpls interface fxp0.0 disable 
set protocols bgp group int type internal 
set protocols bgp group int local-address 10.255.14.216 
set protocols bgp group int family inet unicast 
set protocols bgp group int family inet-vpn unicast 
set protocols bgp group int family inet-vpn multicast 
set protocols bgp group int family inet-mdt signaling
set protocols bgp group int neighbor 10.255.14.218 
set protocols bgp group int neighbor 10.255.14.217 
set protocols ospf traffic-engineering 
set protocols ospf area 0.0.0.0 interface lo0.0 passive 
set protocols ospf area 0.0.0.0 interface so-0/0/0.0 metric 10 
set protocols ospf area 0.0.0.0 interface so-0/0/1.0 metric 10 
set protocols pim assert-timeout 5 
set protocols pim join-prune-timeout 210 
set protocols pim rp bootstrap-priority 10 
set protocols pim rp local address 10.255.14.216 
set protocols pim interface lo0.0 
set protocols pim interface all hello-interval 1 
set protocols pim interface fxp0.0 disable
set policy-options policy-statement bgp_ospf term 1 from protocol bgp 
set policy-options policy-statement bgp_ospf term 1 then accept 
set routing-instances ce1 instance-type vrf 
set routing-instances ce1 interface fe-0/1/1.0
set routing-instances ce1 interface lo0.1
set routing-instances ce1 route-distinguisher 10:0 
set routing-instances ce1 provider-tunnel pim-ssm group-address 232.1.1.1 
set routing-instances ce1 vrf-target target:100:1 
set routing-instances ce1 protocols ospf export bgp_ospf 
set routing-instances ce1 protocols ospf sham-link local 01.1.1.0 
set routing-instances ce1 protocols ospf area 0.0.0.0 sham-link-remote 10.1.1.1 
set routing-instances ce1 protocols ospf area 0.0.0.0 sham-link-remote 10.1.1.2 
set routing-instances ce1 protocols ospf area 0.0.0.0 interface lo0.1 
set routing-instances ce1 protocols ospf area 0.0.0.0 interface fe-0/1/1.0 metric 10 
set routing-instances ce1 protocols pim mvpn family inet autodiscovery inet-mdt 
set routing-instances ce1 protocols pim interface lo0.1 
set routing-instances ce1 protocols pim interface fe-0/1/1.0 priority 100 
set routing-instances ce1 protocols pim interface fe-0/1/1.0 hello-interval 1 
set routing-instances ce1 protocols mvpn family inet autodiscovery-only intra-as inclusive

Interface Configuration

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 the interfaces on one PE router:

  1. Configure PE1’s interface to the provider router.

    content_copy zoom_out_map
    [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 10.0.1.1/30
    user@host# set unit 0 family iso
    user@host# set unit 0 family mpls
    
  2. Configure PE1’s interface to PE2.

    content_copy zoom_out_map
    [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 10.0.2.1/30
    user@host# set unit 0 family iso
    user@host# set unit 0 family mpls
    
  3. Configure PE1’s interface to CE1.

    content_copy zoom_out_map
    [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 10.0.3.1/30
    user@host# set unit 0 family iso
    user@host# set unit 0 family mpls
    
  4. Configure PE1’s loopback interface.

    content_copy zoom_out_map
    [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 10.1.1.0/32
    

Multicast Group Management

Step-by-Step Procedure

To configure multicast group management:

  1. Configure the IGMP interfaces.

    content_copy zoom_out_map
    [edit protocols igmp]
    user@host# set interface all immediate-leave
    user@host# set interface fxp0.0 disable
    
  2. Configure the IGMP settings.

    content_copy zoom_out_map
    [edit protocols igmp]
    user@host# set query-interval 2
    user@host# set query-response-interval 1
    user@host# set query-last-member-interval 1
    

MPLS Signaling Protocol and MPLS LSPs

Step-by-Step Procedure

To configure the MPLS signaling protocol and MPLS LSPs:

  1. Configure RSVP signaling among this PE router (PE1), the other PE router (PE2). and the provider router (P1).

    content_copy zoom_out_map
    [edit protocols rsvp]
    user@host# set interface so-0/0/0.0
    user@host# set interface so-0/0/1.0
    
  2. Configure MPLS LSPs.

    content_copy zoom_out_map
    [edit protocols mpls]
    user@host# set label-switched-path pe1-to-pe2 to 10.255.14.217
    user@host# set label-switched-path pe1-to-pe2 primary pe1_pe2_prime
    user@host# set label-switched-path pe1-to-p1 to 10.255.14.218
    user@host# set label-switched-path pe1-to-p1 primary pe1_p1_prime
    user@host# set path pe1_p1_prime 10.0.1.2
    user@host# set path pe1_pe2_prime 10.0.2.2
    user@host# set interface all
    user@host# set interface fxp0.0 disable
    

BGP

Step-by-Step Procedure

To configure BGP:

  1. Configure the AS number. In this example, both of the PE routers and the provider router are in AS 65200.

    content_copy zoom_out_map
    [edit]
    user@host# set routing-options autonomous-system 65200
    
  2. Configure the internal BGP full mesh with the PE2 and P1 routers.

    content_copy zoom_out_map
    [edit protocols bgp group int]
    user@host# set type internal
    user@host# set local-address 10.255.14.216
    user@host# set family inet unicast
    user@host# set neighbor 10.255.14.218
    user@host# set neighbor 10.255.14.217
    
  3. Enable MDT-SAFI NLRI control plane messages.

    content_copy zoom_out_map
    [edit protocols bgp group int]
    user@host# set family inet-mdt signaling
    
  4. Enable BGP to carry Layer 3 VPN NLRI for the IPv4 address family.

    content_copy zoom_out_map
    [edit protocols bgp group int]
    user@host# set family inet-vpn unicast
    user@host# set family inet-vpn multicast
    
  5. Configure BGP export policy.

    content_copy zoom_out_map
    [edit policy-options]
    user@host# set policy-statement bgp_ospf term 1 from protocol bgp
    user@host# set policy-statement bgp_ospf term 1 then accept
    

Interior Gateway Protocol

Step-by-Step Procedure

To configure the interior gateway protocol:

  1. Configure the OSPF interfaces.

    content_copy zoom_out_map
    [edit protocols ospf]
    user@host# set area 0.0.0.0 interface lo0.0 passive
    user@host# set area 0.0.0.0 interface so-0/0/0.0 metric 10
    user@host# set area 0.0.0.0 interface so-0/0/1.0 metric 10
    
  2. Enable traffic engineering.

    content_copy zoom_out_map
    [edit protocols ospf]
    user@host# set traffic-engineering
    

PIM

Step-by-Step Procedure

To configure PIM:

  1. Configure timeout periods and the RP. Local RP configuration makes PE1 a statically defined RP.

    content_copy zoom_out_map
    [edit protocols pim]
    user@host# set assert-timeout 5
    user@host# set join-prune-timeout 210
    user@host# set rp bootstrap-priority 10
    user@host# set rp local address 10.255.14.216
    
  2. Configure the PIM interfaces.

    content_copy zoom_out_map
    [edit protocols pim]
    user@host# set interface lo0.0
    user@host# set interface all hello-interval 1
    user@host# set interface fxp0.0 disable
    

Routing Instance

Step-by-Step Procedure

To configure the routing instance between PE1 and CE1:

  1. Configure the basic routing instance.

    content_copy zoom_out_map
    [edit routing-instances ce1]
    user@host# set instance-type vrf
    user@host# set interface fe-0/1/1.0
    user@host# set interface lo0.1
    user@host# set route-distinguisher 10:0
    user@host# set vrf-target target:100:1
    
  2. Configure the SSM provider tunnel.

    content_copy zoom_out_map
    [edit routing-instances ce1]
    user@host# set provider-tunnel family inet pim-ssm group-address (Routing Instances) 232.1.1.1
    
  3. Configure OSPF in the routing instance.

    content_copy zoom_out_map
    [edit routing-instances ce1 protocols ospf]
    user@host# set export bgp_ospf
    user@host# set sham-link local 10.1.1.0
    user@host# set area 0.0.0.0 sham-link-remote 10.1.1.1
    user@host# set area 0.0.0.0 sham-link-remote 10.1.1.2
    user@host# set area 0.0.0.0 interface lo0.1
    user@host# set area 0.0.0.0 interface fe-0/1/1.0 metric 10
    
  4. Configure PIM in the routing instance.

    content_copy zoom_out_map
    [edit routing-instances ce1 protocols pim]
    user@host# set interface lo0.1
    user@host# set interface fe-0/1/1.0 priority 100
    user@host# set interface fe-0/1/1.0 hello-interval 1
    
  5. Configure draft-rosen VPN autodiscovery for provider tunnels operating in SSM mode.

    content_copy zoom_out_map
    [edit routing-instances ce1 protocols pim ]
    user@host# set mvpn family inet autodiscovery inet-mdt
    
  6. Configure the BGP-based MVPN control plane to provide signaling only for autodiscovery and not for PIM operations.

    content_copy zoom_out_map
    [edit routing-instances ce1 protocols mvpn family inet]
    user@host# set autodiscovery-only intra-as inclusive
    

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.

footer-navigation