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

Multicast IGMP Snooping and PIM Design and Implementation

date_range 18-Apr-23

Use this design to configure Internet Group Management Protocol (IGMP) and Protocol Independent Multicast (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 next 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.
content_copy zoom_out_map
set protocols igmp-snooping vlan BD-3 proxy
set vlans BD-3 vlan-id 3
set vlans BD-3 vxlan vni 100003

Verifying IGMP Snooping

Enter the following CLI commands to verify IGMP snooping:
  1. Verify the local IGMP snooping state on the leaf.
    content_copy zoom_out_map
    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
    
    content_copy zoom_out_map
    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
    
    
  2. Verify that the leaf is advertising the EVPN Type 7 route where IGMP is snooped.
    content_copy zoom_out_map
    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
    
    
  3. Verify that the leaf and its multihomed ESI peer device are both advertising the EVPN Type 6 route for the multicast group.
    content_copy zoom_out_map
    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 PIM:
  1. 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:

    content_copy zoom_out_map
    set routing-instances VRF-1 instance-type vrf
    set routing-instances VRF-1 interface irb.1
    set routing-instances VRF-1 interface irb.2
    set routing-instances VRF-1 interface irb.3
    set routing-instances VRF-1 interface irb.4
    set routing-instances VRF-1 interface lo0.10
    set routing-instances VRF-1 route-distinguisher 192.186.0.2:1
    set routing-instances VRF-1 vrf-target target:100:1
    set routing-instances VRF-1 protocols pim rp local address 10.0.1.242
    set routing-instances VRF-1 protocols pim interface irb.1 family inet
    set routing-instances VRF-1 protocols pim interface irb.1 mode sparse-dense
    set routing-instances VRF-1 protocols pim interface irb.2 family inet
    set routing-instances VRF-1 protocols pim interface irb.2 mode sparse-dense
    set routing-instances VRF-1 protocols pim interface irb.3 family inet
    set routing-instances VRF-1 protocols pim interface irb.3 mode sparse-dense
    set routing-instances VRF-1 protocols pim interface irb.4 family inet
    set routing-instances VRF-1 protocols pim interface irb.4 mode sparse-dense
    
  2. 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:

    content_copy zoom_out_map
    set routing-instances VRF-1 instance-type vrf
    set routing-instances VRF-1 interface irb.1
    set routing-instances VRF-1 interface irb.2
    set routing-instances VRF-1 interface irb.3
    set routing-instances VRF-1 interface irb.4
    set routing-instances VRF-1 interface lo0.10
    set routing-instances VRF-1 route-distinguisher 192.168.0.3:1
    set routing-instances VRF-1 vrf-target target:100:1
    set routing-instances VRF-1 protocols pim rp static address 10.0.1.242
    set routing-instances VRF-1 protocols pim interface irb.1 family inet
    set routing-instances VRF-1 protocols pim interface irb.1 mode sparse-dense
    set routing-instances VRF-1 protocols pim interface irb.2 family inet
    set routing-instances VRF-1 protocols pim interface irb.2 mode sparse-dense
    set routing-instances VRF-1 protocols pim interface irb.3 family inet
    set routing-instances VRF-1 protocols pim interface irb.3 mode sparse-dense
    set routing-instances VRF-1 protocols pim interface irb.4 family inet
    set routing-instances VRF-1 protocols pim interface irb.4 mode sparse-dense
    

Verifying PIM

Enter the following commands to verify PIM:
  1. 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.

    content_copy zoom_out_map
    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
    
  2. 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:
    1. Enter show pim interfaces instance on all spines, and check the State column to see which IRB interface is a DR.
      content_copy zoom_out_map
      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
      
      
    2. On the PIM DR, display the multicast forwarding state.
      content_copy zoom_out_map
      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
      
      

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.

footer-navigation