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:

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:

Figure 58 shows the topology for this example.

Figure 58: SSM for Draft-Rosen Multicast VPNs Topology

Image g040606.gif

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.

[edit]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 1.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 1.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 1.0.3.1/30 set interfaces lo0 unit 0 description "PE1 (this PE router) Loopback" set interfaces lo0 unit 1 family inet address 1.1.1.0/32set routing-options autonomous-system 200 set protocols igmp query-interval 2set 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 allset 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.217set 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 1.0.1.2 set protocols mpls path PE1_PE2_prime 1.0.2.2set 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 signalingset 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 disableset 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.0set routing-instances ce1 interface lo0.1set routing-instances ce1 route-distinguisher 1: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 1.1.1.0 set routing-instances ce1 protocols ospf area 0.0.0.0 sham-link-remote 1.1.1.1 set routing-instances ce1 protocols ospf area 0.0.0.0 sham-link-remote 1.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 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 autodiscovery-only intra-as inclusive

Step-by-Step Procedure

To configure the interfaces on one PE router:

  1. 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# exit
  2. Configure 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# exit
  3. Configure 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# exit
  4. Configure 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:

  1. 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 disable
  2. Configure 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:

  1. 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# exit
  2. Configure 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:

  1. 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
  2. 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.217
  3. Enable MDT-SAFI NLRI control plane messages.

    [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.
    [edit protocols bgp group int]user@host# set family inet-vpn unicast[edit protocols bgp group int]user@host# set family inet-vpn multicast
  5. 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:

  1. 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 10
  2. Enable traffic engineering.

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

Step-by-Step Procedure

To configure PIM:

  1. 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.216
  2. Configure 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:

  1. 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:1
  2. Configure 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# exit
  3. Configure 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# exit
  4. Configure 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 1
  5. Configure draft-rosen VPN autodiscovery for provider tunnels operating in SSM mode.

    [edit routing-instances ce1 protocols pim]user@host# set mvpn autodiscovery inet-mdtuser@host# exit
  6. 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.

Related Topics