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 a Specific Tunnel for IPv4 Multicast VPN Traffic (Using Draft-Rosen MVPNs)

date_range 23-Nov-23

This example shows how to configure different provider tunnels to carry IPv4 customer traffic in a multicast VPN network.

Requirements

This example uses the following hardware and software components:

  • Four Juniper Networks devices: Two PE routers and two CE devices.

  • Junos OS Release 11.4 or later running on the PE routers.

  • The PE routers can be M Series Multiservice Edge Routers, MX Series Ethernet Services Routers, or T Series Core Routers.

  • The CE devices can be switches (such as EX Series Ethernet Switches), or they can be routers (such as M Series, MX Series, or T Series platforms).

Overview

A multicast tunnel is a mechanism to deliver control and data traffic across the provider core in a multicast VPN. Control and data packets are transmitted over the multicast distribution tree in the provider core. When a service provider carries both IPv4 and IPv6 traffic from a single customer, it is sometimes useful to separate the IPv4 and IPv6 traffic onto different multicast tunnels within the customer VRF routing instance. Putting customer IPv4 and IPv6 traffic on two different tunnels provides flexibility and control. For example, it helps the service provider to charge appropriately, to manage and measure traffic patterns, and to have an improved capability to make decisions when deploying new services.

A draft-rosen 7 multicast VPN control plane is configured in this example. The control plane is configured to use source-specific multicast (SSM) mode. The provider tunnel is used for the draft-rosen 7 control traffic and IPv4 customer traffic.

This example uses the following statements to configure the draft-rosen 7 control plane and specify IPv4 traffic to be carried in the provider tunnel:

Note the following limitations:

  • Junos OS does not currently support IPv6 with draft-rosen 6 or draft-rosen 7.

  • Junos OS does not support more than two provider tunnels in a routing instance. For example, you cannot configure an RSVP-TE provider tunnel plus two MVPN provider tunnels.

  • In a routing instance, you cannot configure both an any-source multicast (ASM) tunnel and an SSM tunnel.

Topology Diagram

Figure 1 shows the topology used in this example.

Figure 1: Different Provider Tunnels for IPv4 Multicast VPN TrafficDifferent Provider Tunnels for IPv4 Multicast VPN Traffic

PE Router Configuration

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.

Router PE1

content_copy zoom_out_map
set interfaces so-0/0/3 unit 0 family inet address 10.111.10.1/30
set interfaces so-0/0/3 unit 0 family mpls
set interfaces fe-1/1/2 unit 0 family inet address 10.10.10.1/30
set interfaces lo0 unit 0 family inet address 10.255.182.133/32 primary
set interfaces lo0 unit 1 family inet address 10.10.47.100/32
set routing-options router-id 10.255.182.133
set routing-options route-distinguisher-id 10.255.182.133
set routing-options autonomous-system 100
set routing-instances VPN-A instance-type vrf
set routing-instances VPN-A interface fe-1/1/2.0
set routing-instances VPN-A interface lo0.1
set routing-instances VPN-A provider-tunnel pim-ssm family inet group-address 232.1.1.1
set routing-instances VPN-A provider-tunnel mdt threshold group 224.1.1.0/24 source 10.240.0.242/32 rate 10
set routing-instances VPN-A provider-tunnel mdt tunnel-limit 20
set routing-instances VPN-A provider-tunnel mdt group-range 232.1.1.3/32
set routing-instances VPN-A vrf-target target:100:10
set routing-instances VPN-A vrf-table-label
set routing-instances VPN-A protocols ospf area 0.0.0.0 interface all
set routing-instances VPN-A protocols ospf export bgp-to-ospf
set routing-instances VPN-A protocols pim mvpn family inet autodiscovery inet-mdt
set routing-instances VPN-A protocols pim mvpn family inet6 disable
set routing-instances VPN-A protocols pim rp static address 10.255.182.144
set routing-instances VPN-A protocols pim interface lo0.1 mode sparse-dense
set routing-instances VPN-A protocols pim interface fe-1/1/2.0 mode sparse-dense
set routing-instances VPN-A protocols mvpn family inet autodiscovery-only intra-as inclusive
set protocols mpls interface all
set protocols mpls interface fxp0.0 disable
set protocols bgp group ibgp type internal
set protocols bgp group ibgp local-address 10.255.182.133
set protocols bgp group ibgp family inet-vpn unicast
set protocols bgp group ibgp family inet-mdt signaling
set protocols bgp group ibgp neighbor 10.255.182.142
set protocols ospf traffic-engineering
set protocols ospf area 0.0.0.0 interface all
set protocols ospf area 0.0.0.0 interface fxp0.0 disable
set protocols ldp interface all
set protocols pim rp local address 10.255.182.133
set protocols pim interface all mode sparse
set protocols pim interface all version 2
set protocols pim interface fxp0.0 disable
set policy-options policy-statement bgp-to-ospf from protocol bgp 
set policy-options policy-statement bgp-to-ospf then accept

Router PE2

content_copy zoom_out_map
set interfaces so-0/0/1 unit 0 family inet address 10.10.20.1/30
set interfaces so-0/0/3 unit 0 family inet address 10.111.10.2/30
set interfaces so-0/0/3 unit 0 family iso
set interfaces so-0/0/3 unit 0 family mpls
set interfaces lo0 unit 0 family inet address 10.255.182.142/32 primary
set interfaces lo0 unit 1 family inet address 10.10.47.101/32
set routing-options router-id 10.255.182.142
set routing-options route-distinguisher-id 10.255.182.142
set routing-options autonomous-system 100
set routing-instances VPN-A instance-type vrf
set routing-instances VPN-A interface so-0/0/1.0
set routing-instances VPN-A interface lo0.1
set routing-instances VPN-A provider-tunnel pim-ssm family inet group-address 232.1.1.1
set routing-instances VPN-A provider-tunnel mdt threshold group 224.1.1.0/24 source 10.240.0.242/32 rate 10
set routing-instances VPN-A provider-tunnel mdt tunnel-limit 20
set routing-instances VPN-A provider-tunnel mdt group-range 232.1.1.3/32
set routing-instances VPN-A vrf-target target:100:10
set routing-instances VPN-A vrf-table-label
set routing-instances VPN-A routing-options graceful-restart
set routing-instances VPN-A protocols ospf area 0.0.0.0 interface all
set routing-instances VPN-A protocols ospf export bgp-to-ospf
set routing-instances VPN-A protocols pim mvpn family inet autodiscovery inet-mdt
set routing-instances VPN-A protocols pim mvpn family inet6 disable
set routing-instances VPN-A protocols pim rp static address 10.255.182.144
set routing-instances VPN-A protocols pim interface lo0.1 mode sparse-dense
set routing-instances VPN-A protocols pim interface so-0/0/1.0 mode sparse-dense
set routing-instances VPN-A protocols mvpn family inet autodiscovery-only intra-as inclusive
set protocols mpls interface all
set protocols mpls interface fxp0.0 disable
set protocols bgp group ibgp type internal
set protocols bgp group ibgp local-address 10.255.182.142
set protocols bgp group ibgp family inet-vpn unicast
set protocols bgp group ibgp family inet-mdt signaling
set protocols bgp group ibgp neighbor 10.255.182.133
set protocols ospf traffic-engineering
set protocols ospf area 0.0.0.0 interface all
set protocols ospf area 0.0.0.0 interface fxp0.0 disable
set protocols ldp interface all
set protocols pim rp static address 10.255.182.133
set protocols pim interface all mode sparse
set protocols pim interface all version 2
set protocols pim interface fxp0.0 disable
set policy-options policy-statement bgp-to-ospf from protocol bgp 
set policy-options policy-statement bgp-to-ospf then accept

Router PE1

Step-by-Step Procedure

The following example requires you to navigate various levels in the configuration hierarchy. For information about navigating the CLI, see the Junos OS CLI User Guide.

To configure Router PE1:

  1. Configure the router interfaces, enabling IPv4 traffic.

    Also enable MPLS on the interface facing Router PE2.

    The lo0.1 interface is for the VPN-A routing instance.

    content_copy zoom_out_map
    [edit interfaces]
    user@PE1# set so-0/0/3 unit 0 family inet address 10.111.10.1/30
    user@PE1# set so-0/0/3 unit 0 family mpls
    user@PE1# set fe-1/1/2 unit 0 family inet address 10.10.10.1/30
    user@PE1# set lo0 unit 0 family inet address 10.255.182.133/32 primary
    user@PE1# set lo0 unit 1 family inet address 10.10.47.100/32
    
  2. Configure a routing policy to export BGP routes from the routing table into OSPF.

    content_copy zoom_out_map
    [edit policy-options policy-statement bgp-to-ospf]
    user@PE1# set from protocol bgp 
    user@PE1# set then accept
    
  3. Configure the router ID, route distinguisher, and autonomous system number.

    content_copy zoom_out_map
    [edit routing-options]
    user@PE1# set router-id 10.255.182.133
    user@PE1# set route-distinguisher-id 10.255.182.133
    user@PE1# set autonomous-system 100
    
  4. Configure the protocols that need to run in the main routing instance to enable MPLS, BGP, the IGP, VPNs, and PIM sparse mode.

    content_copy zoom_out_map
    [edit protocols ]
    user@PE1# set mpls interface all
    user@PE1# set mpls interface fxp0.0 disable
    user@PE1# set bgp group ibgp type internal
    user@PE1# set bgp group ibgp local-address 10.255.182.133
    user@PE1# set bgp group ibgp family inet-vpn unicast
    user@PE1# set bgp group ibgp neighbor 10.255.182.142
    user@PE1# set ospf traffic-engineering
    user@PE1# set ospf area 0.0.0.0 interface all
    user@PE1# set ospf area 0.0.0.0 interface fxp0.0 disable
    user@PE1# set ldp interface all
    user@PE1# set pim rp local address 10.255.182.133
    user@PE1# set pim interface all mode sparse
    user@PE1# set pim interface all version 2
    user@PE1# set pim interface fxp0.0 disable
    
  5. Create the customer VRF routing instance.

    content_copy zoom_out_map
    [edit routing-instances VPN-A]
    user@PE1# set instance-type vrf
    user@PE1# set interface fe-1/1/2.0
    user@PE1# set interface lo0.1
    user@PE1# set vrf-target target:100:10
    user@PE1# set vrf-table-label
    user@PE1# set protocols ospf area 0.0.0.0 interface all
    user@PE1# set protocols ospf export bgp-to-ospf
    user@PE1# set protocols pim rp static address 10.255.182.144
    user@PE1# set protocols pim interface lo0.1 mode sparse-dense
    user@PE1# set protocols pim interface fe-1/1/2.0 mode sparse-dense
    
  6. Configure the draft-rosen 7 control plane, and specify IPv4 traffic to be carried in the provider tunnel.

    content_copy zoom_out_map
    [edit routing-instances VPN-A]
    user@PE1# set provider-tunnel pim-ssm family inet group-address 232.1.1.1
    user@PE1# set protocols pim mvpn family inet autodiscovery inet-mdt
    user@PE1# set protocols pim mvpn family inet6 disable
    user@PE1# set protocols mvpn family inet autodiscovery-only intra-as inclusive
    [edit protocols bgp group ibgp]
    user@PE1# set family inet-mdt signaling
    
  7. (Optional) Configure a data MDT tunnel.

    content_copy zoom_out_map
    [edit routing-instances VPN-A]
    user@PE1# set provider-tunnel mdt threshold group 224.1.1.0/24 source 10.240.0.242/32 rate 10
    user@PE1# set provider-tunnel mdt tunnel-limit 20
    user@PE1# set provider-tunnel mdt group-range 232.1.1.3/32
    

Results

From configuration mode, confirm your configuration by entering the show interfaces, show policy-options, show protocols, show routing-instances, and show routing-options commands. If the output does not display the intended configuration, repeat the instructions in this example to correct the configuration.

content_copy zoom_out_map
user@PE1# show interfaces
lo0 {
    unit 0 {
        family inet {
            address 10.255.182.133/32 {
                primary;
            }
        }
    }
    unit 1 {
        family inet {
            address 10.10.47.100/32;
        }
    }
}
so-0/0/3 {
    unit 0 {
        family inet {
            address 10.111.10.1/30;
        }
        family mpls;
    }
}
fe-1/1/2 {
    unit 0 {
        family inet {
            address 10.10.10.1/30;
        }
    }
}
content_copy zoom_out_map
user@PE1# show policy-options
policy-statement bgp-to-ospf {
    from protocol bgp;
    then accept;
}
content_copy zoom_out_map
user@PE1# show protocols
mpls {
    ipv6-tunneling;
    interface all;
    interface fxp0.0 {
        disable;
    }
}
bgp {
    group ibgp {
        type internal;
        local-address 10.255.182.133;
        family inet-vpn {
            unicast;
        }
        family inet-mdt {
            signaling;
        }
        neighbor 10.255.182.142;
    }
}
ospf {
    traffic-engineering;
    area 0.0.0.0 {
        interface all;
        interface fxp0.0 {
            disable;
        }
    }
}
ldp {
    interface all;
}
pim {
    rp {
        local {
            address 10.255.182.133;
        }
    }
    interface all {
        mode sparse;
        version 2;
    }
    interface fxp0.0 {
        disable;
    }
}
content_copy zoom_out_map
user@PE1# show routing-instances
VPN-A {
    instance-type vrf;
    interface fe-1/1/2.0;
    interface lo0.1;
    provider-tunnel {
        pim-ssm {
            family {
                inet {
                    group-address 232.1.1.1;
                }
            }
        }
        mdt {
            threshold {
                group 224.1.1.0/24 {
                    source 10.240.0.242/32 {
                        rate 10;
                    }
                }
            }
            tunnel-limit 20;
            group-range 232.1.1.3/32;
        }
    }
    vrf-target target:100:10;
    vrf-table-label;
    protocols {
        ospf {
            export bgp-to-ospf;
            area 0.0.0.0 {
                interface all;
            }
        }
        pim {
            mvpn {
                family {
                    inet {
                        autodiscovery {
                            inet-mdt;
                        }
                    }
                    inet6 {
                        disable;
                    }
                }
            }
            rp {
                static {
                    address 10.255.182.144;
                }
            }
            interface lo0.1 {
                mode sparse-dense;
            }
            interface fe-1/1/2.0 {
                mode sparse-dense;
            }
        }
        mvpn {
            family {
                inet {
                    autodiscovery-only {
                        intra-as {
                            inclusive;
                        }
                    }
                }
            }
        }
    }
}
content_copy zoom_out_map
user@PE1# show routing-options
route-distinguisher-id 10.255.182.133;
autonomous-system 100;
router-id 10.255.182.133;

If you are done configuring the router, enter commit from configuration mode.

Repeat the procedure for Router PE2, using the appropriate interface names and IP addresses.

CE Device Configuration

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.

Device CE1

content_copy zoom_out_map
set interfaces fe-0/1/0 unit 0 family inet address 10.10.10.2/30
set interfaces lo0 unit 0 family inet address 10.255.182.144/32 primary
set routing-options router-id 10.255.182.144
set protocols ospf area 0.0.0.0 interface all
set protocols ospf area 0.0.0.0 interface fxp0.0 disable
set protocols pim rp local address 10.255.182.144
set protocols pim interface all mode sparse-dense
set protocols pim interface fxp0.0 disable

Device CE2

content_copy zoom_out_map
set interfaces so-0/0/1 unit 0 family inet address 10.10.20.2/30
set interfaces lo0 unit 0 family inet address 127.0.0.1/32
set interfaces lo0 unit 0 family inet address 10.255.182.140/32 primary
set routing-options router-id 10.255.182.140
set protocols ospf area 0.0.0.0 interface all
set protocols ospf area 0.0.0.0 interface fxp0.0 disable
set protocols pim rp static address 10.255.182.144
set protocols pim interface all mode sparse-dense
set protocols pim interface fxp0.0 disable

Device CE1

Step-by-Step Procedure

To configure Device CE1:

  1. Configure the router interfaces, enabling IPv4 and IPv6 traffic.

    content_copy zoom_out_map
    [edit interfaces]
    user@CE1# set fe-0/1/0 unit 0 family inet address 10.10.10.2/30
    user@CE1# set lo0 unit 0 family inet address 10.255.182.144/32 primary
    
  2. Configure the router ID.

    content_copy zoom_out_map
    [edit routing-options]
    user@CE1# set router-id 10.255.182.144
    
  3. Configure the protocols that need to run on the CE device to enable OSPF (for IPv4) and PIM sparse-dense mode.

    content_copy zoom_out_map
    [edit protocols]
    user@CE1# set ospf area 0.0.0.0 interface all
    user@CE1# set ospf area 0.0.0.0 interface fxp0.0 disable
    user@CE1# set pim rp local address 10.255.182.144
    user@CE1# set pim interface all mode sparse-dense
    user@CE1# set pim interface fxp0.0 disable
    

Results

From configuration mode, confirm your configuration by entering the show interfaces, show protocols, and show routing-options commands. If the output does not display the intended configuration, repeat the configuration instructions in this example to correct it.

content_copy zoom_out_map
user@CE1# show interfaces
fe-0/1/0 {
    unit 0 {
        family inet {
            address 10.10.10.2/30;
        }
    }
}
lo0 {
    unit 0 {
        family inet {
            
            address 10.255.182.144/32 {
                primary;
            }
        }
        
    }
}
content_copy zoom_out_map
user@CE1# show protocols
ospf {
    area 0.0.0.0 {
        interface all;
        interface fxp0.0 {
            disable;
        }
    }
}
pim {
    rp {
        local {
            address 10.255.182.144;
        }
    }
    interface all {
        mode sparse-dense;
    }
    interface fxp0.0 {
        disable;
    }
}
content_copy zoom_out_map
user@CE1# show routing-options
router-id 10.255.182.144;

If you are done configuring the router, enter commit from configuration mode.

Repeat the procedure for Device CE2, using the appropriate interface names and IP addresses.

Verification

Confirm that the configuration is working properly.

Verifying Tunnel Encapsulation

Purpose

Verify that PIM multicast tunnel (mt) encapsulation and deencapsulation interfaces come up.

Action

content_copy zoom_out_map
user@PE1> show pim interfaces instance VPN-A
Instance: PIM.VPN-A

Name               Stat Mode       IP V State NbrCnt JoinCnt(sg) JoinCnt(*g) DR address
fe-1/1/2.0         Up   SparseDense 4 2 NotDR      1           1            1 10.10.10.2
lo0.1              Up   SparseDense 4 2 DR         0           0            0 10.10.47.100
lsi.2304           Up   SparseDense 4 2 P2P        0           0            0
mt-0/3/0.32769     Up   SparseDense 4 2 P2P        0           0            0
mt-1/2/0.1081344   Up   SparseDense 4 2 P2P        0           0            0
mt-1/2/0.32768     Up   SparseDense 4 2 P2P        1           0            0
pe-0/3/0.32770     Up   Sparse      4 2 P2P        0           0            0

Meaning

The multicast tunnel interface that is used for encapsulation, mt-[xxxxx], is in the range from 32,768 through 49,151. The interface mt-[yyyyy], used for de-encapsulation, is in the range from 1,081,344 through 1,107,827. PIM runs only on the encapsulation interface. The de-encapsulation interface populates downstream interface information.

Verifying PIM Neighbors

Purpose

Verify that PIM neighborship is established over the multicast tunnel interface.

Action

content_copy zoom_out_map
user@PE1> show pim neighbors instance VPN-A
Instance: PIM.VPN-A
B = Bidirectional Capable, G = Generation Identifier,
H = Hello Option Holdtime, L = Hello Option LAN Prune Delay,
P = Hello Option DR Priority, T = Tracking Bit

Interface           IP V Mode        Option      Uptime Neighbor addr
fe-1/1/2.0           4 2             HPLGT      00:29:35 10.10.10.2     
mt-1/2/0.32768       4 2             HPLGT      00:28:32 10.10.47.101   

Meaning

When the neighbor address is listed and the uptime is incrementing, it means that PIM neighborship is established over the multicast tunnel interface.

Verifying the Provider Tunnel and Control Plane

Purpose

Confirm that the provider tunnel and control-plane protocols are correct.

Action

content_copy zoom_out_map
user@PE1> show pim mvpn
Instance         Family         VPN-Group         Mode         Tunnel
PIM.VPN-A        INET           225.1.1.1         PIM-MVPN     PIM-SSM 

Meaning

For draft-rosen, the MVPN mode appears in the output as PIM-MVPN.

Checking Routes

Purpose

Verify that traffic flows as expected.

Action

content_copy zoom_out_map
user@R1> show multicast route extensive instance VPN-A
Family: INET

Group: 224.1.1.1
    Source: 10.240.0.242/32 
    Upstream interface: fe-1/1/2.0
    Downstream interface list: 
        mt-1/2/0.32768
    Session description: NOB Cross media facilities
    Statistics: 92 kBps, 1001 pps, 1869820 packets
    Next-hop ID: 1048581
    Upstream protocol: PIM
    Route state: Active
    Forwarding state: Forwarding
    Cache lifetime/timeout: 360 seconds
    Wrong incoming interface notifications: 0

Meaning

For draft-rosen, the upstream protocol appears in the output as PIM.

Verifying MDT Tunnels

Purpose

Verify that both default and data MDT tunnels are correct.

Action

content_copy zoom_out_map
user@PE1> show pim mdt instance VPN-A
Instance: PIM.VPN-A
Tunnel direction: Outgoing
Tunnel mode: PIM-SSM
Default group address: 232.1.1.1
Default source address: 10.255.182.133
Default tunnel interface: mt-1/2/0.32769
Default tunnel source: 0.0.0.0

C-group address   C-source address   P-group address    Data tunnel interface
224.1.1.1         10.240.0.242       232.1.1.3          mt-0/3/0.32771

Instance: PIM.VPN-A
Tunnel direction: Incoming
Tunnel mode: PIM-SSM
Default group address: 232.1.1.1
Default source address: 10.255.182.142
Default tunnel interface: mt-1/2/0.1081345
Default tunnel source: 0.0.0.0

footer-navigation