L2 Multicast in EVPN-MPLS VPRN R-VPLS with All-Active Multi-Homing

This chapter provides information about L2 Multicast in EVPN-MPLS VPRN R-VPLS with All-Active Multi-Homing.

Topics in this chapter include:

Applicability

The information and configuration in this chapter are based on SR OS Release 23.7.R1.

Overview

IPv4 multicast traffic can be forwarded from an EVPN-MPLS service into an attached R-VPLS service in which the receiving devices are using EVPN all-active multi-homing.

The routed service to which the R-VPLS service attaches can be an IES or a VPRN service. In this way, IPv4 multicast traffic can be transported using native IP for the IES case or NG-MVPN technologies for the VPRN case.

This feature requires:

  • IGMP support on the R-VPLS IP interface

  • Forwarding IPv4 multicast traffic from the IP interface of a VPRN or IES to its EVPN-MPLS R-VPLS service

  • IGMP snooping within the VPLS of the R-VPLS service

  • IGMP snooping state synchronization based on the ESI label to synchronize the IGMP snooping state between the all-active (R-)VPLS LAG SAPs

The configuration used in this chapter is the NG-MVPN scenario as shown in Multicast From an EVPN-MPLS Service Into an R-VPLS With All-Active EVPN Multi-Homing.

Figure 1. Multicast From an EVPN-MPLS Service Into an R-VPLS With All-Active EVPN Multi-Homing

A multicast stream is emitted by the source connected to PE-2 with group address 225.70.1.1. A multicast receiver connected to MTU-4 joins group 225.70.1.1. MTU-4 is connected to PE-1 and PE-3 through an all-active multi-homing EVPN Ethernet segment comprising LAG 1. On MTU-4, LAG 1 comprises port 1/1/c1/1 and 1/1/c2/1, and this LAG is used in VPLS 10. On PE-1 and PE-3, VPLS 10 is interconnected with VPRN 1 through an Integrated Routing and Bridging (IRB) interface. VPRN 1 is defined in PE-1, PE-2, and PE-3, and uses NG-MVPN for transporting the multicast traffic through the core of the network. See the EVPN for MPLS Tunnels and EVPN for MPLS Tunnels in Routed VPLS chapters for more information about EVPN. See the NG-MVPN Configuration with MPLS and the NG-MVPN Configuration with PIM chapters for more information about NG-MVPN.

Configuration

The initial configuration on the PE nodes includes the following:

  • Cards, MDAs, ports

  • Router interfaces

  • IS-IS (alternatively, OSPF can be used)

  • MPLS tunnels between the PEs: LDP- or RSVP-based

BGP is required at the core of the network, using the VPN IPv4 and MVPN IPv4 address families between all PEs, for supporting unicast and multicast traffic on VPRN services, and additionally using the EVPN address family between PE-1 and PE-3 to support EVPN services. The BGP configurations for PE-1, PE-2, and PE-3 are as follows:

# on PE-1:
configure
    router
        autonomous-system 64496
        bgp
            family vpn-ipv4 mvpn-ipv4 evpn
            vpn-apply-import
            vpn-apply-export
            rapid-withdrawal
            rapid-update evpn
            group "iBGP"
                neighbor 192.0.2.2
                    peer-as 64496
                exit
                neighbor 192.0.2.3
                    peer-as 64496
                exit
            exit
            no shutdown
        exit
    exit
exit
# on PE-2:
configure
    router
        autonomous-system 64496
        bgp
            family vpn-ipv4 mvpn-ipv4
            vpn-apply-import
            vpn-apply-export
            rapid-withdrawal
            rapid-update evpn
            group "iBGP"
                neighbor 192.0.2.1
                    peer-as 64496
                exit
                neighbor 192.0.2.3
                    peer-as 64496
                exit
            exit
            no shutdown
        exit
    exit
exit
# on PE-3:
configure
    router
        autonomous-system 64496
        bgp
            family vpn-ipv4 mvpn-ipv4 evpn
            vpn-apply-import
            vpn-apply-export
            rapid-withdrawal
            rapid-update evpn
            group "iBGP"
                neighbor 192.0.2.1
                    peer-as 64496
                exit
                neighbor 192.0.2.2
                    peer-as 64496
                exit
            exit
            no shutdown
        exit
    exit
exit

The receiver connected to MTU-4 joins group 225.70.1.1, and the corresponding multicast stream is emitted by the source that is connected to PE-2. MTU-4 is connected to PE-1 and PE-3 through an all-active multi-homing EVPN Ethernet segment comprising LAG 1. The VPLS and the LAG on MTU-4 are defined as follows:

# on MTU-4:
configure
    service
        vpls 10 name "mcast-vpls" customer 1 create
            stp
                shutdown
            exit
            sap 1/2/c1/1 create
                no shutdown
            exit
            sap lag-1:10 create
                no shutdown
            exit
            igmp-snooping
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

configure
    lag 1
        mode access
        encap-type dot1q
        port 1/1/c1/1
        port 1/1/c2/1
        no shutdown
    exit
exit

The all-active multi-homing Ethernet segment esi-13 is configured identically on PE-1 and PE-3, as follows. See the EVPN for MPLS Tunnels and EVPN for MPLS Tunnels in Routed VPLS chapters for more information.

# on PE-1 and PE-3:
configure
    service
        system
            bgp-evpn
                ethernet-segment "esi-13" create
                    esi 01:00:00:00:00:13:00:00:00:01
                    es-activation-timer 3
                    service-carving
                        mode manual
                        manual
                            preference non-revertive create
                                value 30
                            exit
                        exit
                    exit
                    multi-homing all-active
                    lag 1
                    no shutdown
                exit
            exit
        exit
    exit
exit

The multi-homed access circuits of esi-13 are located on port 1/1/c3/1 for PE-1 and PE-3, so the LAG is configured identically, as follows:

# on PE-1 and PE-3:
configure
    lag 1
        mode access
        encap-type dot1q
        port 1/1/c3/1
        no shutdown
    exit
exit

Also, the EVPN VPLS service with ID 10 is configured identically on PE-1 and PE-3, as follows. The mcast-vpls name is needed to link VPLS 10 to VPRN 1 at a later stage, without requiring a physical loop or hairpin. The allow-ip-int-bind command enables the VPLS to become an R-VPLS. The igmp-snooping and mrouter-port commands are required for multicast to work correctly in an all-active multi-homed scenario.

# on PE-1 and PE-3:
configure
    service
        vpls 10 name "mcast-vpls" customer 1 create
            allow-ip-int-bind
                igmp-snooping
                    mrouter-port
                exit
            exit
            bgp
            exit
            bgp-evpn
                evi 111
                mpls bgp 1
                    ingress-replication-bum-label
                    auto-bind-tunnel
                        resolution any
                    exit
                    no shutdown
                exit
            exit
            igmp-snooping
                no shutdown
            exit
            sap lag-1:10 create
                no shutdown
            exit
            no shutdown
        exit
    exit
exit

The VPRN service with ID 1 provides the connection toward MTU-4 via VPLS 10, through the int-MCAST-VPLS interface with address 10.1.4.1/24 on PE-1, and with address 10.1.4.3/24 on PE-3. This L3 interface is linked to VPLS 10 with the vpls "mcast-vpls" command. The int-MCAST-VPLS interface is also included in the IGMP and PIM configurations of VPRN 1. The full configuration of VPRN 1 on PE-1 is as follows. The configuration of VPRN 1 on PE-3 is similar.

# on PE-1:
configure
    service
        vprn 1 name "VPRN 1" customer 1 create
            bgp-ipvpn
                mpls
                    auto-bind-tunnel
                        resolution any
                    exit
                    route-distinguisher 64496:1
                    vrf-target target:64496:1
                    no shutdown
                exit
            exit
            interface "int-MCAST-VPLS" create
                address 10.1.4.1/24
                vpls "mcast-vpls"
                exit
            exit
            interface "int-PE-1-CE-1" create
                address 10.1.1.1/24
                sap 1/2/c1/1 create
                exit
            exit
            interface "system" create
                address 192.0.2.101/32
                loopback
            exit
            igmp
                ssm-translate
                    grp-range 225.70.1.1 225.70.255.255
                        source 10.1.2.222
                    exit
                exit
                interface "int-MCAST-VPLS"
                    no shutdown
                exit
                interface "int-PE-1-CE-1"
                    no shutdown
                exit
                no shutdown
            exit
            pim
                interface "int-MCAST-VPLS"
                exit
                interface "system"
                exit
                no shutdown
            exit
            mvpn
                auto-discovery default
                c-mcast-signaling bgp
                mdt-type receiver-only
                provider-tunnel
                    inclusive
                        mldp
                            no shutdown
                        exit
                    exit
                    selective
                        mldp
                            no shutdown
                        exit
                        data-threshold 224.0.0.0/4 1
                    exit
                exit
                vrf-target unicast
                exit
            exit
            no shutdown
        exit
    exit
exit

The full configuration of VPRN 1 on PE-2 is as follows. The int-PE-2-CE-2-source interface provides the connection to the multicast source.

# on PE-2:
configure
    service
        vprn 1 name "VPRN 1" customer 1 create
            bgp-ipvpn
                mpls
                    auto-bind-tunnel
                        resolution any
                    exit
                    route-distinguisher 64496:1
                    vrf-target target:64496:1
                    no shutdown
                exit
            exit
            interface "int-PE-2-CE-2-source" create
                address 10.1.2.1/24
                sap 1/2/c1/1 create
                exit
            exit
            interface "system" create
                address 192.0.2.102/32
                loopback
            exit
            pim
                interface "int-PE-2-CE-2-source"
                exit
                interface "system"
                exit
                no shutdown
            exit
            mvpn
                auto-discovery default
                c-mcast-signaling bgp
                mdt-type sender-only
                provider-tunnel
                    inclusive
                        mldp
                            no shutdown
                        exit
                    exit
                    selective
                        mldp
                            no shutdown
                        exit
                        data-threshold 224.0.0.0/4 1
                    exit
                exit
                vrf-target unicast
                exit
            exit
            no shutdown
        exit
    exit
exit

Verification

The following command shows that esi-13 is an all-active multi-homed Ethernet segment, on PE-1. The same command can be executed on PE-3.

*A:PE-1# show service system bgp-evpn ethernet-segment name "esi-13"

===============================================================================
Service Ethernet Segment
===============================================================================
Name                    : esi-13
Eth Seg Type            : None               
Admin State             : Enabled            Oper State         : Up
ESI                     : 01:00:00:00:00:13:00:00:00:01
Oper ESI                : 01:00:00:00:00:13:00:00:00:01
Auto-ESI Type           : None               
AC DF Capability        : Include            
Multi-homing            : allActive          Oper Multi-homing  : allActive
ES SHG Label            : 524282             
Source BMAC LSB         : None               
Lag Id                  : 1                  
ES Activation Timer     : 3 secs             
Oper Group              : (Not Specified)
Svc Carving             : manual             Oper Svc Carving   : manual
Cfg Range Type          : lowest-pref        

-------------------------------------------------------------------------------
DF Pref Election Information
-------------------------------------------------------------------------------
Preference     Preference     Last Admin Change        Oper Pref      Do No
Mode           Value                                   Value          Preempt
-------------------------------------------------------------------------------
non-revertive  30             07/20/2023 15:20:09      30             Disabled
-------------------------------------------------------------------------------
EVI Ranges: <none>
ISID Ranges: <none>
Vprn NextHop EVI Ranges : <none>
===============================================================================

The output from the following commands on PE-1 and PE-3 shows that for esi-13, PE-1 is Non-Designated Forwarder (NDF), whereas PE-3 is Designated Forwarder (DF).

*A:PE-1# show service id 10 ethernet-segment "esi-13"

===============================================================================
SAP Ethernet-Segment Information
===============================================================================
SAP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
lag-1:10              esi-13                           NDF
===============================================================================
No sdp entries
No vxlan instance entries
*A:PE-3# show service id 10 ethernet-segment "esi-13"

===============================================================================
SAP Ethernet-Segment Information
===============================================================================
SAP                   Eth-Seg                          Status
-------------------------------------------------------------------------------
lag-1:10              esi-13                           DF
===============================================================================
No sdp entries
No vxlan instance entries

A stream with group address 225.70.1.1 is started by the multicast source and joined by the multicast receiver connected to MTU-4. This stream is forwarded from PE-2 to PE-3; PE-1 is not involved in the forwarding.

PE-1 maintains IGMP state for group 225.70.1.1 in VPRN 1, and so does PE-3. PE-1 and PE-3 synchronize IGMP state using a data-driven mechanism. The forwarding list includes the int-MCAST-VPLS interface, as follows:

*A:PE-1# show router 1 igmp group 225.70.1.1 interfaces 
===============================================================================
IGMP Interface Groups
===============================================================================
 
(*,225.70.1.1)                                            UpTime: 0d 00:01:56
    Fwd List  : int-MCAST-VPLS 
-------------------------------------------------------------------------------
Entries : 1
===============================================================================

PE-1 maintains PIM state for group 225.70.1.1, as follows. The outgoing interfaces list is empty and the forwarding rate is zero; both are indications that PE-1 is not forwarding any multicast traffic.

*A:PE-1# show router 1 pim group 225.70.1.1 detail 

===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 225.70.1.1
Source Address     : 10.1.2.222
RP Address         : 0
Advt Router        : 192.0.2.2
Flags              :                    Type               : (S,G)
Mode               : sparse             
MRIB Next Hop      : 192.0.2.2
MRIB Src Flags     : remote             
Keepalive Timer Exp: 0d 00:02:05        
Up Time            : 0d 00:02:42        Resolved By        : rtable-u
 
Up JP State        : Not Joined         Up JP Expiry       : 0d 00:00:00
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
 
Register State     : No Info            
Reg From Anycast RP: No                 
 
Rpf Neighbor       : 192.0.2.2
Incoming Intf      : mpls-if-73728
Outgoing Intf List : 
 
Curr Fwding Rate   : 0.000 kbps         
Forwarded Packets  : 0                  Discarded Packets  : 0
Forwarded Octets   : 0                  RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 1
===============================================================================

PE-2 and PE-3 are forwarding the stream as indicated by the PIM state for this group, as follows:

*A:PE-2# show router 1 pim group 225.70.1.1 detail 

===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 225.70.1.1
Source Address     : 10.1.2.222
RP Address         : 0
Advt Router        : 192.0.2.2
Flags              :                    Type               : (S,G)
Mode               : sparse             
MRIB Next Hop      : 10.1.2.222
MRIB Src Flags     : direct             
Keepalive Timer    : Not Running        
Up Time            : 0d 00:02:15        Resolved By        : rtable-u
 
Up JP State        : Joined             Up JP Expiry       : 0d 00:00:00
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
 
Register State     : No Info            
Reg From Anycast RP: No                 
 
Rpf Neighbor       : 10.1.2.222
Incoming Intf      : int-PE-2-CE-2-source
Outgoing Intf List : mpls-if-73728 (mpls-if-73729)
 
Curr Fwding Rate   : 9751.560 kbps      
Forwarded Packets  : 51112              Discarded Packets  : 0
Forwarded Octets   : 75747984           RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 1
===============================================================================
*A:PE-3# show router 1 pim group 225.70.1.1 detail 

===============================================================================
PIM Source Group ipv4
===============================================================================
Group Address      : 225.70.1.1
Source Address     : 10.1.2.222
RP Address         : 0
Advt Router        : 192.0.2.2
Flags              :                    Type               : (S,G)
Mode               : sparse             
MRIB Next Hop      : 192.0.2.2
MRIB Src Flags     : remote             
Keepalive Timer Exp: 0d 00:02:04        
Up Time            : 0d 00:02:44        Resolved By        : rtable-u
 
Up JP State        : Joined             Up JP Expiry       : 0d 00:00:16
Up JP Rpt          : Not Joined StarG   Up JP Rpt Override : 0d 00:00:00
 
Register State     : No Info            
Reg From Anycast RP: No                 
 
Rpf Neighbor       : 192.0.2.2
Incoming Intf      : mpls-if-73728
Incoming SPMSI Intf: mpls-if-73729
Outgoing Intf List : int-MCAST-VPLS
 
Curr Fwding Rate   : 9745.632 kbps      
Forwarded Packets  : 74533              Discarded Packets  : 0
Forwarded Octets   : 110457906          RPF Mismatches     : 0
Spt threshold      : 0 kbps             ECMP opt threshold : 7
Admin bandwidth    : 1 kbps             
-------------------------------------------------------------------------------
Groups : 1
===============================================================================

The outgoing interfaces on PE-2 and PE-3 are the mpls-if-73728 PMSI interface and the int-MCAST-VPLS interfaces, respectively. The properties of the S-PMSI interface are as follows:

*A:PE-2# show router 1 pim tunnel-interface "mpls-if-73728" detail 

===============================================================================
PIM Interface ipv4 mpls-if-73728
===============================================================================
Admin Status       : Up                 Oper Status        : Up
IPv4 Admin Status  : Up                 IPv4 Oper Status   : Up
DR                 : 192.0.2.2          
Auto-created       : No                 
Transport Type     : MVPN-Pmsi          

-------------------------------------------------------------------------------
PIM Group Source
-------------------------------------------------------------------------------
Group Address      : 225.70.1.1
Source Address     : 10.1.2.222
Interface          : mpls-if-73728      Type               : (S,G)
RP Address         : 0.0.0.0            
Up Time            : 0d 00:02:23        
 
Join Prune State   : Join               Expires            : Never
Prune Pend Expires : N/A                
 
Assert State       : No Info            
-------------------------------------------------------------------------------
Interfaces : 1
===============================================================================

The stream is received on the incoming PMSI interface mpls-if-73728 on PE-3. The properties of this PMSI interface are as follows:

*A:PE-3# show router 1 pim tunnel-interface "mpls-if-73728" detail 

===============================================================================
PIM Interface ipv4 mpls-if-73728
===============================================================================
Admin Status       : Up                 Oper Status        : Up
IPv4 Admin Status  : Up                 IPv4 Oper Status   : Up
DR                 : 192.0.2.2          
Auto-created       : No                 
Transport Type     : MVPN-Pmsi          
-------------------------------------------------------------------------------
Interfaces : 1
===============================================================================

PE-3 sends this multicast stream to MTU-4, which in turn sends it to the receiver that sent the join, so the path taken by the multicast stream runs via PE-2, PE-3, and MTU-4.

In the example from Multicast From an EVPN-MPLS Service Into an R-VPLS With All-Active EVPN Multi-Homing, and the commands and traces that follow, PE-1 is the active IGMP querier using address 10.1.4.1, sending out the queries across the L2 domain. The group queries are sent by PE-1 to PE-3 across the EVPN-MPLS tunnel because PE-3 is DF for esi-13, then forwarded onto MTU-4 to reach the (potential) receiver. MTU-4 relays the IGMP responses from the receiver to one of the links; in this example, the link between MTU-4 and PE-1. When the IGMP response for joining the 225.1.70.1 stream is received on PE-1, this event is signaled across the EVPN-MPLS tunnel because it is received over esi-13. This way, the IGMP state is synchronized between PE-3 and PE-1 in a data-driven way.

The basic IGMP snooping state for VPLS 10 on PE-1 and PE-3 is as follows. The output shows that IGMP snooping is enabled on ports sap:lag-1:10, rvpls, and evpn-mpls.

*A:PE-1# show service id 10 igmp-snooping base 

===============================================================================
IGMP Snooping Base info for service 10
===============================================================================
Admin State : Up
Querier     : 10.1.4.1 on rvpls int-MCAST-VPLS
SBD service : N/A
Evpn-proxy  : Disabled
-------------------------------------------------------------------------------
Port                       Oper MRtr Pim  Send Max  Max  Max   MVR       Num
Id                         Stat Port Port Qrys Grps Srcs Grp   From-VPLS Grps
                                                         Srcs            
-------------------------------------------------------------------------------
sap:lag-1:10               Up   No   No   No   None None None  Local     1
rvpls                      Up   Yes  No   N/A  N/A  N/A  N/A   N/A       N/A
evpn-mpls
                           Up   Yes  No   N/A  N/A  N/A  N/A   N/A       N/A
===============================================================================
*A:PE-3# show service id 10 igmp-snooping base 

===============================================================================
IGMP Snooping Base info for service 10
===============================================================================
Admin State : Up
Querier     : 10.1.4.1 on evpn-mpls
SBD service : N/A
Evpn-proxy  : Disabled
-------------------------------------------------------------------------------
Port                       Oper MRtr Pim  Send Max  Max  Max   MVR       Num
Id                         Stat Port Port Qrys Grps Srcs Grp   From-VPLS Grps
                                                         Srcs            
-------------------------------------------------------------------------------
sap:lag-1:10               Up   No   No   No   None None None  Local     1
rvpls                      Up   Yes  No   N/A  N/A  N/A  N/A   N/A       N/A
evpn-mpls
                           Up   Yes  No   N/A  N/A  N/A  N/A   N/A       N/A
===============================================================================

PE-1 sends the IGMP queries on VPRN 1 via the int-MCAST-VPLS interface, so the VPLS that is referenced in the int-MCAST-VPLS interface registers the ports on which the IGMP queries are received as multicast router ports. EVPN-MPLS tunnels are always multicast router ports. The following output displays the source addresses of the multicast routers:

*A:PE-1# show service id 10 igmp-snooping mrouters 
 
===============================================================================
IGMP Snooping Multicast Routers for service 10
===============================================================================
MRouter          Port Id                    Up Time        Expires   Version
-------------------------------------------------------------------------------
10.1.4.1         rvpls                      0d 00:11:05    130s      3
-------------------------------------------------------------------------------
Number of mrouters: 1
===============================================================================
*A:PE-3# show service id 10 igmp-snooping mrouters 
 
===============================================================================
IGMP Snooping Multicast Routers for service 10
===============================================================================
MRouter          Port Id                    Up Time        Expires   Version
-------------------------------------------------------------------------------
10.1.4.1         evpn-mpls                  0d 00:10:27    253s      3
-------------------------------------------------------------------------------
Number of mrouters: 1
===============================================================================

The IGMP snooping querier properties for VPLS 10 on PE-1 and PE-3 are as follows:

*A:PE-1# show service id 10 igmp-snooping querier 

===============================================================================
IGMP Snooping Querier info for service 10
===============================================================================
Port Id                 : r-vpls int-MCAST-VPLS
IP Address              : 10.1.4.1
Expires                 : 148s
Up Time                 : 0d 00:10:46
Version                 : 3
 
General Query Interval  : 125s
Query Response Interval : 10.0s
Robust Count            : 2
===============================================================================

*A:PE-3# show service id 10 igmp-snooping querier 

===============================================================================
IGMP Snooping Querier info for service 10
===============================================================================
Port Id                 : evpn-mpls
IP Address              : 10.1.4.1
Expires                 : 146s
Up Time                 : 0d 00:10:09
Version                 : 3
 
General Query Interval  : 125s
Query Response Interval : 10.0s
Robust Count            : 2
===============================================================================

IGMP snooping in VPLS 10 registers the reports in the IGMP snooper port database (port-db). The port-db can be displayed with a show command, and specifying a SAP limits the output generated by this command, as follows:

*A:PE-1# show service id 10 igmp-snooping port-db sap lag-1:10 
 
===============================================================================
IGMP Snooping SAP lag-1:10 Port-DB for service 10
===============================================================================
Group Address   Mode    Type    From-VPLS  Up Time        Expires  Num   MC
                                                                   Src   Stdby
-------------------------------------------------------------------------------
225.70.1.1      exclude dynamic local      0d 00:04:05    never    0      
-------------------------------------------------------------------------------
Number of groups: 1
===============================================================================

*A:PE-3# show service id 10 igmp-snooping port-db sap lag-1:10 
 
===============================================================================
IGMP Snooping SAP lag-1:10 Port-DB for service 10
===============================================================================
Group Address   Mode    Type    From-VPLS  Up Time        Expires  Num   MC
                                                                   Src   Stdby
-------------------------------------------------------------------------------
225.70.1.1      exclude dynamic local      0d 00:04:06    250s     0      
-------------------------------------------------------------------------------
Number of groups: 1
===============================================================================

IGMP snooping statistics show the number of received, transmitted, and forwarded IGMP messages per type, and also provide drop counts per error type, as follows:

*A:PE-1# show service id 10 igmp-snooping statistics 
 
===============================================================================
IGMP Snooping Statistics for service 10
===============================================================================
Message Type            Received      Transmitted   Forwarded
-------------------------------------------------------------------------------
General Queries         1             0             12
Group Queries           0             0             0
Group-Source Queries    0             0             0
V1 Reports              0             0             0
V2 Reports              0             0             0
V3 Reports              6             3             3
V2 Leaves               0             0             0
Unknown Type            0             N/A           0
EVPN SMET Routes        0             0             N/A
-------------------------------------------------------------------------------
Drop Statistics
-------------------------------------------------------------------------------
Bad Length               : 0
Bad IP Checksum          : 0
Bad IGMP Checksum        : 0
Bad Encoding             : 0
No Router Alert          : 0
Zero Source IP           : 0
Wrong Version            : 0
Lcl-Scope Packets        : 0
Rsvd-Scope Packets       : 0
 
Send Query Cfg Drops     : 0
Import Policy Drops      : 0
Exceeded Max Num Groups  : 0
Exceeded Max Num Sources : 0
Exceeded Max Num Grp Srcs: 0
MCAC Policy Drops        : 0
MCS Failures             : 0
 
MVR From VPLS Cfg Drops  : 0
MVR To SAP Cfg Drops     : 0
===============================================================================

*A:PE-3# show service id 10 igmp-snooping statistics 
 
===============================================================================
IGMP Snooping Statistics for service 10
===============================================================================
Message Type            Received      Transmitted   Forwarded
-------------------------------------------------------------------------------
General Queries         6             0             6
Group Queries           0             0             0
Group-Source Queries    0             0             0
V1 Reports              0             0             0
V2 Reports              0             0             0
V3 Reports              6             3             0
V2 Leaves               0             0             0
Unknown Type            0             N/A           0
EVPN SMET Routes        0             0             N/A
-------------------------------------------------------------------------------
Drop Statistics
-------------------------------------------------------------------------------
Bad Length               : 0
Bad IP Checksum          : 0
Bad IGMP Checksum        : 0
Bad Encoding             : 0
No Router Alert          : 0
Zero Source IP           : 0
Wrong Version            : 0
Lcl-Scope Packets        : 0
Rsvd-Scope Packets       : 0
 
Send Query Cfg Drops     : 0
Import Policy Drops      : 0
Exceeded Max Num Groups  : 0
Exceeded Max Num Sources : 0
Exceeded Max Num Grp Srcs: 0
MCAC Policy Drops        : 0
MCS Failures             : 0
 
MVR From VPLS Cfg Drops  : 0
MVR To SAP Cfg Drops     : 0
===============================================================================

Debug

Debugging is useful for troubleshooting purposes, and the debug configuration used on PE-1 and PE-3 for checking IGMP and IGMP snooping functionalities is as follows:

debug
    router "1"
        igmp
            packet mode egr-ingr-and-dropped
        exit
    exit
    service
        id 10
            igmp-snooping
                mode egr-ingr-and-dropped
                detail-level high
                sap lag-1:10
                evpn-mpls
            exit
        exit
    exit
exit

When group 225.70.1.1 is joined, the trace on PE-1 is as follows. Event 7 is the IGMPv3 join message for group 225.70.1.1 received on SAP lag-1:10 in VPLS 10 from the receiver. The reception of this message is synchronized across the EVPN-MPLS tunnel for VPLS 10, as indicated by event 8. Event 10 is the IGMPv3 join message as received on interface int-MCAST-VPLS by VPRN 1.

7 2023/07/20 15:28:09.540 CEST MINOR: DEBUG #2001 Base IGMP
"IGMP: RX packet on svc 10
  from chaddr 04:0f:ff:00:01:41
  Port  : sap lag-1:10
  SrcIp : 0.0.0.0
  DstIp : 224.0.0.22
  Raw pkt dump:
  22 00 f7 b6 00 00 00 01 04 00 00 00 e1 46 01 01 
  Type  : V3 REPORT
    Num Group Records: 1
        Group Record Type: CHG_TO_EXCL (4), AuxDataLen 0, Num Sources 0
          Group Addr: 225.70.1.1

"

8 2023/07/20 15:28:09.540 CEST MINOR: DEBUG #2001 Base IGMP
"IGMP: TX packet on svc 10
  from chaddr 5e:00:00:16:04:0f
  send towards ES : esi-13
  Port  : evpn-mpls
  SrcIp : 0.0.0.0
  DstIp : 224.0.0.22
  Raw pkt dump:
  22 00 f7 b6 00 00 00 01 04 00 00 00 e1 46 01 01 
  Type  : V3 REPORT
    Num Group Records: 1
        Group Record Type: CHG_TO_EXCL (4), AuxDataLen 0, Num Sources 0
          Group Addr: 225.70.1.1

"
---snip---

10 2023/07/20 15:28:09.541 CEST MINOR: DEBUG #2001 vprn1 IGMP[2]
"IGMP[2]: RX-PKT 
[000 00:16:13.580] IGMP interface int-MCAST-VPLS [ifIndex 4] V3 PDU: 0.0.0.0 -> 224.0.0.22 pduLen 16
    Type: V3 REPORT maxrespCode 0x0 checkSum 0xf7b6
    Num Group Records: 1
        Group Record 0
        Type: CHG_TO_EXCL, AuxDataLen 0, Num Sources 0
        Mcast Addr: 225.70.1.1
        Source Address List

"

The trace on PE-3 is as follows. Event 8 is the reception of the snooping state synchronization across the EVPN-MPSL tunnel, and event 11 is the IGMPv3 join as received on interface int-MCAST-VPLS by VPRN 1.

8 2023/07/20 15:28:09.489 CEST MINOR: DEBUG #2001 Base IGMP
"IGMP: RX packet on svc 10
  from chaddr 04:0f:ff:00:01:41
  received via evpn-mpls on ES : esi-13
  Port  : sap lag-1:10
  SrcIp : 0.0.0.0
  DstIp : 224.0.0.22
  Raw pkt dump:
  22 00 f7 b6 00 00 00 01 04 00 00 00 e1 46 01 01 
  Type  : V3 REPORT
    Num Group Records: 1
        Group Record Type: CHG_TO_EXCL (4), AuxDataLen 0, Num Sources 0
          Group Addr: 225.70.1.1

"
---snip---

11 2023/07/20 15:28:09.490 CEST MINOR: DEBUG #2001 vprn1 IGMP[2]
"IGMP[2]: RX-PKT 
[000 00:16:06.580] IGMP interface int-MCAST-VPLS [ifIndex 4] V3 PDU: 0.0.0.0 -> 224.0.0.22 pduLen 16
    Type: V3 REPORT maxrespCode 0x0 checkSum 0xf7b6
    Num Group Records: 1
        Group Record 0
        Type: CHG_TO_EXCL, AuxDataLen 0, Num Sources 0
        Mcast Addr: 225.70.1.1
        Source Address List

"

Similar events are logged when the multicast receiver leaves the 225.70.1.1 group.

Conclusion

By connecting customers to EVPN-MPLS VPRN/IES routed services via an R-VPLS, service providers can offer IPv4 multicast services to customers in an all-active multi-homing scenario.