PIM Snooping for VPLS
Understanding PIM Snooping for VPLS
There are two ways to direct PIM control packets:
- By the use of PIM snooping
- By the use of PIM proxying
PIM snooping configures a device to examine and operate only on PIM hello and join/prune packets. A PIM snooping device snoops PIM hello and join/prune packets on each interface to find interested multicast receivers and populates the multicast forwarding tree with this information. PIM snooping differs from PIM proxying in that both PIM hello and join/prune packets are transparently flooded in the VPLS as opposed to the flooding of only hello packets in the case of PIM proxying. PIM snooping is configured on PE routers connected through pseudowires. PIM snooping ensures that no new PIM packets are generated in the VPLS, with the exception of PIM messages sent through LDP on pseudowires.
![]() | Note: In the VPLS documentation, the word router in terms such as PE router is used to refer to any device that provides routing functions. |
A device that supports PIM snooping snoops hello packets received on attachment circuits. It does not introduce latency in the VPLS core when it forwards PIM join/prune packets.
To configure PIM snooping on a PE router, use the pim-snooping statement at the [edit routing-instances instance-name protocols] hierarchy level:
Example: Configuring PIM Snooping for VPLS explains the PIM snooping method. The use of the PIM proxying method is not discussed here and is outside the scope of this document. For more information about PIM proxying, see PIM Snooping over VPLS.
Example: Configuring PIM Snooping for VPLS
This example shows how to configure PIM snooping in a virtual private LAN service (VPLS) to restrict multicast traffic to interested devices.
Requirements
This example uses the following hardware and software components:
- MX Series 3D Universal Edge Routers (except MX80)
- Junos OS Release 12.3 or later
Overview
The following example shows how to configure PIM snooping to restrict multicast traffic to interested devices in a VPLS.
![]() | Note: This example demonstrates PIM snooping by the use of a PIM snooping device to restrict multicast traffic. The use of the PIM proxying method to achieve PIM snooping is out of the scope of this document and is yet to be implemented in Junos OS. |
Topology
In this example, two PE routing devices are connected to each other through a pseudowire connection. Router PE1 is connected to Routers CE1 and CE2. A multicast receiver is attached to Router CE2. Router PE2 is connected to Routers CE3 and CE4. A multicast source is connected to Router CE3, and a second multicast receiver is attached to Router CE4.
PIM snooping is configured on Routers PE1 and PE2. Hence, data sent from the multicast source is received only by members of the multicast group.
Figure 1 shows the topology used in this example.
Figure 1: PIM Snooping for VPLS

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
Router CE1
Router CE2
Router PE2
Router CE3 (RP)
Router CE4
Configuring PIM Snooping for VPLS
Step-by-Step Procedure
The following example requires that you 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.
![]() | Note: This section includes a step-by-step configuration procedure for one or more routing devices in the topology. For comprehensive configurations for all routing devices, see CLI Quick Configuration. |
To configure PIM snooping for VPLS:
- Configure the router interfaces forming the
links between the routing devices.Router PE2[edit interfaces]user@PE2# set ge-2/0/0 encapsulation ethernet-vplsuser@PE2# set ge-2/0/0 unit 0 description toCE3user@PE2# set ge-2/0/1 encapsulation ethernet-vplsuser@PE2# set ge-2/0/1 unit 0 description toCE4user@PE2# set ge-2/0/2 unit 0 description toPE1user@PE2# set ge-2/0/2 unit 0 family mplsuser@PE2# set ge-2/0/2 unit 0 family inet address 10.0.0.2/30user@PE2# set lo0 unit 0 family inet address 10.255.7.7/32
Note: ge-2/0/0.0 and ge-2/0/1.0 are configured as VPLS interfaces and connect to Routers CE3 and CE4. See Configuring VPLS Encapsulation on CE-Facing Interfaces for more details.
Router CE3[edit interfaces]user@CE3# set ge-2/0/0 unit 0 description toPE2user@CE3# set ge-2/0/0 unit 0 family inet address 10.0.0.18/30user@CE3# set ge-2/0/1 unit 0 description toSourceuser@CE3# set ge-2/0/1 unit 0 family inet address 10.0.0.29/30user@CE3# set lo0 unit 0 family inet address 10.255.3.3/32Note: The ge-2/0/1.0 interface on Router CE3 connects to the multicast source.
Router CE4[edit interfaces]user@CE4# set ge-2/0/0 unit 0 description toPE2user@CE4# set ge-2/0/0 unit 0 family inet address 10.0.0.22/30user@CE4# set ge-2/0/1 unit 0 description toReceiver2user@CE4# set ge-2/0/1 unit 0 family inet address 10.0.0.25/30user@CE4# set lo0 unit 0 family inet address 10.255.4.4/32Note: The ge-2/0/1.0 interface on Router CE4 connects to a multicast receiver.
Similarly, configure Routers PE1, CE1, and CE2.
- Configure the router IDs of all routers.Router PE2[edit routing-options]user@PE2# set router-id 10.255.7.7
Similarly, configure other routers.
- Configure an IGP on interfaces of all routers.Router PE2[edit protocols ospf area 0.0.0.0]user@PE2# set interface ge-2/0/2.0user@PE2# set interface lo0.0
Similarly, configure other routers.
- Configure the LDP, MPLS, and BGP protocols on the PE routers. Router PE2[edit protocols]user@PE2# set ldp interface lo0.0user@PE2# set mpls interface ge-2/0/2.0user@PE2# set bgp group toPE1 type internaluser@PE2# set bgp group toPE1 local-address 10.255.7.7user@PE2# set bgp group toPE1 family l2vpn signalinguser@PE2# set bgp group toPE1 neighbor 10.255.1.1user@PE2# set ldp interface ge-2/0/2.0
The BGP group is required for interfacing with the other PE router. Similarly, configure Router PE1.
- Configure PIM on all CE routers.
Ensure that Router CE3 is configured as the rendezvous point (RP) and that the RP address is configured on other CE routers.
Router CE3[edit protocols pim]user@CE3# set rp local address 10.255.3.3user@CE3# set interface allRouter CE4[edit protocols pim]user@CE4# set rp static address 10.255.3.3user@CE4# set interface allSimilarly, configure Routers CE1 and CE2.
- Configure multicast snooping options on the PE routers.Router PE2[edit multicast-snooping-options traceoptions]user@PE2# set file snoop.log size 10m
Similarly, configure Router PE1.
- Create a routing instance (titanium), and configure the VPLS on the PE routers.Router PE2[edit routing-instances titanium]user@PE2# set instance-type vplsuser@PE2# set vlan-id noneuser@PE2# set interface ge-2/0/0.0user@PE2# set interface ge-2/0/1.0user@PE2# set route-distinguisher 101:101user@PE2# set vrf-target target:201:201user@PE2# set protocols vpls vpls-id 15user@PE2# set protocols vpls site pe2 site-identifier 2
Similarly, configure Router PE1.
- Configure PIM snooping on the PE routers.Router PE2[edit routing-instances titanium]user@PE2# set protocols pim-snooping
Similarly, configure Router PE1.
Results
From configuration mode, confirm your configuration by entering the show interfaces, show routing-options, show protocols, show multicast-snooping-options, and show routing-instances commands.
If the output does not display the intended configuration, repeat the instructions in this example to correct the configuration.
user@PE2# show interfaces
ge-2/0/2 { unit 0 { description toPE1 family inet { address 10.0.0.2/30; } family mpls; } } ge-2/0/0 { encapsulation ethernet-vpls; unit 0 { description toCE3; } } ge-2/0/1 { encapsulation ethernet-vpls; unit 0 { description toCE4; } } lo0 { unit 0 { family inet { address 10.255.7.7/32; } } }
user@PE2# show routing-options
router-id 10.255.7.7;
user@PE2# show protocols
mpls { interface ge-2/0/2.0; } ospf { area 0.0.0.0 { interface ge-2/0/2.0; interface lo0.0; } } ldp { interface ge-2/0/2.0; interface lo0.0; } bgp { group toPE1 { type internal; local-address 10.255.7.7; family l2vpn { signaling; } neighbor 10.255.1.1; }
user@PE2# show multicast-snooping-options
traceoptions { file snoop.log size 10m; }
user@PE2# show routing-instances
titanium { instance-type vpls; vlan-id none; interface ge-2/0/0.0; interface ge-2/0/1.0; route-distinguisher 101:101; vrf-target target:201:201; protocols { vpls { site pe2 { site-identifier 2; } vpls-id 15; } pim-snooping; } }
Similarly, confirm the configuration on all other routing devices. If you are done configuring the routing devices, enter commit from configuration mode.
![]() | Note: Use the show protocols command on the CE routers to verify the configuration for the PIM RP . |
Verification
Confirm that the configuration is working properly.
Verifying PIM Snooping for VPLS
Purpose
Verify that PIM Snooping is operational in the network.
Action
To verify that PIM snooping is working as desired, use the following commands:
- show pim snooping interfaces
- show pim snooping neighbors detail
- show pim snooping statistics
- show pim snooping join
- show pim snooping join extensive
- show multicast snooping route extensive instance <instance-name> group <group-name>
- From operational mode on Router PE2, run the show pim snooping interfaces command.
user@PE2> show pim snooping interfaces
Instance: titanium Learning-Domain: default Name State IP NbrCnt ge-2/0/0.0 Up 4 1 ge-2/0/1.0 Up 4 1 DR address: 10.0.0.22 DR flooding is ON
The output verifies that PIM snooping is configured on the two interfaces connecting Router PE2 to Routers CE3 and CE4.
Similarly, check the PIM snooping interfaces on Router PE1.
- From operational mode on Router PE2, run the show pim snooping neighbors detail command.
user@PE2> show pim snooping neighbors detail
Instance: titanium Learning-Domain: default Interface: ge-2/0/0.0 Address: 10.0.0.18 Uptime: 00:17:06 Hello Option Holdtime: 105 seconds 99 remaining Hello Option DR Priority: 1 Hello Option Generation ID: 552495559 Hello Option LAN Prune Delay: delay 500 ms override 2000 ms Tracking is supported Interface: ge-2/0/1.0 Address: 10.0.0.22 Uptime: 00:15:16 Hello Option Holdtime: 105 seconds 103 remaining Hello Option DR Priority: 1 Hello Option Generation ID: 1131703485 Hello Option LAN Prune Delay: delay 500 ms override 2000 ms Tracking is supported
The output verifies that Router PE2 can detect the IP addresses of its PIM snooping neighbors (10.0.0.18 on CE3 and 10.0.0.22 on CE4).
Similarly, check the PIM snooping neighbors on Router PE1.
- From operational mode on Router PE2, run the show pim snooping statistics command.
user@PE2> show pim snooping statistics
Instance: titanium Learning-Domain: default Tx J/P messages 0 RX J/P messages 246 Rx J/P messages -- seen 0 Rx J/P messages -- received 246 Rx Hello messages 1036 Rx Version Unknown 0 Rx Neighbor Unknown 0 Rx Upstream Neighbor Unknown 0 Rx J/P Busy Drop 0 Rx J/P Group Aggregate 0 Rx Malformed Packet 0 Rx No PIM Interface 0 Rx Bad Length 0 Rx Unknown Hello Option 0 Rx Unknown Packet Type 0 Rx Bad TTL 0 Rx Bad Destination Address 0 Rx Bad Checksum 0 Rx Unknown Version 0
The output shows the number of hello and join/prune messages received by Router PE2. This verifies that PIM sparse mode is operational in the network.
- Send multicast traffic from the source terminal attached to Router CE3, for the multicast group 224.1.1.1.
- From operational mode on Router PE2, run the show pim snooping join, show pim snooping
join extensive, and show multicast snooping
route extensive instance <instance-name> group <group-name> commands to verify PIM snooping.
user@PE2> show pim snooping join
Instance: titanium Learning-Domain: default Group: 224.1.1.1 Source: * Flags: sparse,rptree,wildcard Upstream neighbor: 10.0.0.18, Port: ge-2/0/0.0 Group: 224.1.1.1 Source: 10.0.0.30 Flags: sparse Upstream neighbor: 10.0.0.18, Port: ge-2/0/0.0
user@PE2> show pim snooping join extensive
Instance: titanium Learning-Domain: default Group: 224.1.1.1 Source: * Flags: sparse,rptree,wildcard Upstream neighbor: 10.0.0.18, Port: ge-2/0/0.0 Downstream port: ge-2/0/1.0 Downstream neighbors: 10.0.0.22 State: Join Flags: SRW Timeout: 180 Group: 224.1.1.1 Source: 10.0.0.30 Flags: sparse Upstream neighbor: 10.0.0.18, Port: ge-2/0/0.0 Downstream port: ge-2/0/1.0 Downstream neighbors: 10.0.0.22 State: Join Flags: S Timeout: 180
The outputs show that multicast traffic sent for the group 224.1.1.1 is sent to Receiver 2 through Router CE4 and also display the upstream and downstream neighbor details.
user@PE2> show multicast snooping route extensive instance titanium group 224.1.1.1
Nexthop Bulking: OFF Family: INET Group: 224.1.1.1/32 Bridge-domain: titanium Mesh-group: __all_ces__ Downstream interface list: ge-2/0/1.0 -(1072) Statistics: 0 kBps, 0 pps, 0 packets Next-hop ID: 1048577 Route state: Active Forwarding state: Forwarding Group: 224.1.1.1/32 Source: 10.0.0.8 Bridge-domain: titanium Mesh-group: __all_ces__ Downstream interface list: ge-2/0/1.0 -(1072) Statistics: 0 kBps, 0 pps, 0 packets Next-hop ID: 1048577 Route state: Active Forwarding state: Forwarding
Meaning
PIM snooping is operational in the network.