Multicast IGMP Snooping and PIM Design and Implementation
Use this design to configure Internet Group Management Protocol (IGMP) and Physical Interface Module (PIM) in your fabric to improve multicast replication. IGMP snooping preserves bandwidth because multicast traffic is forwarded only on interfaces where there are IGMP listeners. For instance, every leaf device does not need to receive every instance of multicast traffic.
For an overview of multicast, see Multicast Optimizations.
In this design, we are using an external PIM gateway, which extends multicast beyond the data center, and is useful in DCI implementations.

The following sections show how to configure and verify multicast:
Configuring IGMP Snooping
In this design, we are using IGMP snooping to constrain multicast traffic in a broadcast domain to interested receivers and multicast devices.
To configure IGMP snooping:
- Configure IGMP snooping on all VXLAN enabled VLANs on
the leafs. The current implementation does not support IGMP snooping
on selected VXLAN enabled VLANs.set protocols igmp-snooping vlan BD-3 proxyset vlans BD-3 vlan-id 3set vlans BD-3 vxlan vni 100003
Verifying IGMP Snooping
- Verify the local IGMP snooping state on the leaf.
user@leaf-2> show igmp snooping membership vlan BD-3
Instance: default-switch Vlan: BD-3 Learning-Domain: default Interface: ae11.0, Groups: 2 Group: 225.0.1.1 Group mode: Exclude Source: 0.0.0.0 Last reported by: 10.0.3.7 Group timeout: 215 Type: Dynamic Group: 225.0.1.2 Group mode: Exclude Source: 0.0.0.0 Last reported by: 10.0.3.7 Group timeout: 207 Type: Dynamic
user@leaf-2> show evpn igmp-snooping database l2-domain-id 100003
Instance: default-switch VN Identifier: 100003 Group IP: 225.0.1.1, Source IP: 0.0.0.0, Access OIF Count: 1 Group IP: 225.0.1.2, Source IP: 0.0.0.0, Access OIF Count: 1
- Verify that the leaf is advertising the EVPN Type 7 route
where IGMP is snooped.
user@leaf-2> show route table __default_evpn__.evpn.0 match-prefix 7:*100003*225.0.1.[12]*
__default_evpn__.evpn.0: 215 destinations, 318 routes (215 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 7:192.168.1.4:10::99080706050403::100003::225.0.1.1::192.168.1.4/600 *[EVPN/170] 04:55:32 Indirect 7:192.168.1.4:10::99080706050403::100003::225.0.1.2::192.168.1.4/600 *[EVPN/170] 04:55:30 Indirect
- Verify that the leaf and its multihomed ESI peer device
are both advertising the EVPN Type 6 route for the multicast group.
user@leaf-2> show route table default-switch.evpn.0 match-prefix 6:*100003*225.0.1.[12]*
default-switch.evpn.0: 100334 destinations, 198153 routes (100334 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 6:192.168.1.3:10::100003::225.0.1.1::192.168.1.3/520 *[BGP/170] 04:55:09, localpref 100, from 192.168.0.4 AS path: I, validation-state: unverified > to 172.16.4.1 via ae1.0 to 172.16.4.3 via ae2.0 [BGP/170] 04:55:11, localpref 100, from 192.168.0.5 AS path: I, validation-state: unverified > to 172.16.4.1 via ae1.0 to 172.16.4.3 via ae2.0 6:192.168.1.3:10::100003::225.0.1.2::192.168.1.3/520 *[BGP/170] 04:55:07, localpref 100, from 192.168.0.4 AS path: I, validation-state: unverified > to 172.16.4.1 via ae1.0 to 172.16.4.3 via ae2.0 [BGP/170] 04:55:10, localpref 100, from 192.168.0.5 AS path: I, validation-state: unverified > to 172.16.4.1 via ae1.0 to 172.16.4.3 via ae2.0 6:192.168.1.4:10::100003::225.0.1.1::192.168.1.4/520 *[EVPN/170] 04:56:16 Indirect 6:192.168.1.4:10::100003::225.0.1.2::192.168.1.4/520 *[EVPN/170] 04:56:14 Indirect
Configuring PIM
- To configure inter-VNI multicast routing at the spine,
create a routing instance for a tenant (a leaf device) named VRF-1.
Configure the following in the routing instance:
Add the IRB interfaces to the leaf devices.
Enable PIM and configure the local address for this spine as the rendezvous point (RP).
Enable PIM on the IRB interfaces.
Spine 1:
set routing-instances VRF-1 instance-type vrfset routing-instances VRF-1 interface irb.1set routing-instances VRF-1 interface irb.2set routing-instances VRF-1 interface irb.3set routing-instances VRF-1 interface irb.4set routing-instances VRF-1 interface lo0.10set routing-instances VRF-1 route-distinguisher 192.186.0.2:1set routing-instances VRF-1 vrf-target target:100:1set routing-instances VRF-1 protocols pim rp local address 10.0.1.242set routing-instances VRF-1 protocols pim interface irb.1 family inetset routing-instances VRF-1 protocols pim interface irb.1 mode sparse-denseset routing-instances VRF-1 protocols pim interface irb.2 family inetset routing-instances VRF-1 protocols pim interface irb.2 mode sparse-denseset routing-instances VRF-1 protocols pim interface irb.3 family inetset routing-instances VRF-1 protocols pim interface irb.3 mode sparse-denseset routing-instances VRF-1 protocols pim interface irb.4 family inetset routing-instances VRF-1 protocols pim interface irb.4 mode sparse-dense - Configure multicast routing on another spine. Configure
a corresponding VRF routing instance for the same tenant as in step
6.
Add the IRB interfaces toward the leaf devices.
Enable PIM and configure the RP address on spine 1 as the static RP.
Enable PIM on the IRB interfaces.
Spine 2:
set routing-instances VRF-1 instance-type vrfset routing-instances VRF-1 interface irb.1set routing-instances VRF-1 interface irb.2set routing-instances VRF-1 interface irb.3set routing-instances VRF-1 interface irb.4set routing-instances VRF-1 interface lo0.10set routing-instances VRF-1 route-distinguisher 192.168.0.3:1set routing-instances VRF-1 vrf-target target:100:1set routing-instances VRF-1 protocols pim rp static address 10.0.1.242set routing-instances VRF-1 protocols pim interface irb.1 family inetset routing-instances VRF-1 protocols pim interface irb.1 mode sparse-denseset routing-instances VRF-1 protocols pim interface irb.2 family inetset routing-instances VRF-1 protocols pim interface irb.2 mode sparse-denseset routing-instances VRF-1 protocols pim interface irb.3 family inetset routing-instances VRF-1 protocols pim interface irb.3 mode sparse-denseset routing-instances VRF-1 protocols pim interface irb.4 family inetset routing-instances VRF-1 protocols pim interface irb.4 mode sparse-dense
Verifying PIM
- On spine 1, check the PIM control plane on the RP, and
verify that:
PIM joins are created from Type 6 routes that are generated by leaf devices.
IGMP reports are coming from non-IGMP snooping capable leaf devices.
user@spine-1> show pim join instance VRF-1 225.0.1.0/30 extensive
Instance: PIM.VRF-1 Family: INET R = Rendezvous Point Tree, S = Sparse, W = Wildcard Group: 225.0.1.1 Source: * RP: 10.0.1.242 Flags: sparse,rptree,wildcard Upstream interface: Local Upstream neighbor: Local Upstream state: Local RP Uptime: 15:18:24 Downstream neighbors: Interface: irb.3 10.0.3.242 State: Join Flags: SRW Timeout: Infinity Uptime: 15:17:51 Time since last Join: 15:17:51 Interface: irb.2 10.0.2.242 State: Join Flags: SRW Timeout: Infinity Uptime: 14:51:29 Time since last Join: 14:51:29 Interface: irb.1 10.0.1.242 State: Join Flags: SRW Timeout: Infinity Uptime: 05:31:09 Time since last Join: 05:31:09 10.0.1.245 State: Join Flags: SRW Timeout: 199 Uptime: 15:17:28 Time since last Join: 00:00:11 Number of downstream interfaces: 3 Number of downstream neighbors: 4 Group: 225.0.1.2 Source: * RP: 10.0.1.242 Flags: sparse,rptree,wildcard Upstream interface: Local Upstream neighbor: Local Upstream state: Local RP Uptime: 15:18:24 Downstream neighbors: Interface: irb.3 10.0.3.242 State: Join Flags: SRW Timeout: Infinity Uptime: 15:17:51 Time since last Join: 15:17:51 Interface: irb.2 10.0.2.242 State: Join Flags: SRW Timeout: Infinity Uptime: 14:51:29 Time since last Join: 14:51:29 Interface: irb.1 10.0.1.242 State: Join Flags: SRW Timeout: Infinity Uptime: 05:31:09 Time since last Join: 05:31:09 10.0.1.245 State: Join Flags: SRW Timeout: 199 Uptime: 15:17:28 Time since last Join: 00:00:11 Number of downstream interfaces: 3 Number of downstream neighbors: 4
- On the spine that is configured as the PIM DR, verify
the multicast forwarding state from the spine to the tenant VRF. To
do so:
- Enter show pim interfaces instance on all spines, and check the State column to see which IRB interface
is a DR.
user@spine-1> show pim interfaces instance VRF-1
Stat = Status, V = Version, NbrCnt = Neighbor Count, S = Sparse, D = Dense, B = Bidirectional, DR = Designated Router, DDR = Dual DR, DistDR = Distributed DR, P2P = Point-to-point link, P2MP = Point-to-Multipoint, Active = Bidirectional is active, NotCap = Not Bidirectional Capable Name Stat Mode IP V State NbrCnt JoinCnt(sg/*g) DR address irb.1 Up SD 4 2 DR,NotCap 3 2/100 10.0.1.245 irb.2 Up SD 4 2 DR,NotCap 3 0/0 10.0.2.245 irb.3 Up SD 4 2 DR,NotCap 3 0/0 10.0.3.245 irb.4 Up SD 4 2 DR,NotCap 3 98/0 10.0.4.245 pime.32769 Up S 4 2 P2P,NotCap 0 0/0 irb.1 Up SD 6 2 DR,NotCap 2 0/0 fe80:db8:10:0:1::254 irb.2 Up SD 6 2 DR,NotCap 2 0/0 fe80:db8:10:0:2::254 irb.3 Up SD 6 2 DR,NotCap 2 0/0 fe80:db8:10:0:3::254 irb.4 Up SD 6 2 DR,NotCap 2 0/0 fe80:db8:10:0:4::254
- On the PIM DR, display the multicast forwarding state.
user@spine-2> show multicast route extensive instance VRF-1 group 225.0.1.0/30
Instance: VRF-1 Family: INET Group: 225.0.1.1 Source: 10.0.1.5/32 Upstream interface: irb.1 Downstream interface list: irb.3 irb.2 Number of outgoing interfaces: 3 Session description: Unknown Statistics: 69 kBps, 559 pps, 309165 packets Next-hop ID: 2109194 Upstream protocol: PIM Route state: Active Forwarding state: Forwarding Cache lifetime/timeout: 360 seconds Wrong incoming interface notifications: 0 Uptime: 00:09:13 Group: 225.0.1.2 Source: 10.0.1.5/32 Upstream interface: irb.1 Downstream interface list: irb.3 irb.2 Number of outgoing interfaces: 3 Session description: Unknown Statistics: 68 kBps, 554 pps, 307024 packets Next-hop ID: 2109194 Upstream protocol: PIM Route state: Active Forwarding state: Forwarding Cache lifetime/timeout: 360 seconds Wrong incoming interface notifications: 0 Uptime: 00:09:13
- Enter show pim interfaces instance on all spines, and check the State column to see which IRB interface
is a DR.
Multicast — Feature Summary
Table 1 provides a history of the features described in this section and their support within this reference design.
Table 1: Multicast Feature Summary
Hardware | IGMPv2 Snooping | EVPN Type 6 SMET Routes | Inter-VNI Multicast with PIM Gateway | PIM to External Rendezvous Point (From Border) |
---|---|---|---|---|
QFX51001 | Not supported | Not supported | Not supported | Not supported |
QFX5110-32Q, QFX5110-48S | 18.1R3-S3 | 18.4R2 | Not supported | Not supported |
QFX5120-48Y | 18.4R2 | 18.4R2 | Not supported | Not supported |
QFX5120-32C | 19.1R2 | 19.1R2 | Not supported | Not supported |
QFX5200-32C1, QFX5200-48Y1 | Not supported | Not supported | Not supported | Not supported |
QFX10002-36Q/72Q, QFX10008, QFX10016 | 18.1R3-S3 | 18.4R2 | 18.1R3-S3 | 17.3R3-S1 |
QFX10002-60C2 | 20.2R2 | 20.2R2 | 20.2R2 | 20.2R2 |
MX204; MX240, MX480, MX960 with MPC7E; MX10003; | Not supported | Not supported | Not supported | Not supported |
1Make sure that IGMP snooping is not enabled on these QFX switches. If IGMP snooping is inadvertently enabled, these switches might process EVPN Type 6 routes that are reflected to them.
2The QFX10002-60C switch supports multicast at a lower scale than the QFX10002-36Q/72Q switches.