It is difficult to reproduce this issue because it depends on the hardware or virtual environment.
Network diagram:
VyOS as a multicast router has 2 vlans on one physical interface.
One vlan is for the multicast sender, the other one is for the multicast receiver.
In my lab I use GNS3 with VMWare Workstation.
Receiver and Sender - Windows 10 with VLC
Configuration:
set interfaces dummy dum0 address '10.1.100.1/32' set interfaces ethernet eth2 duplex 'auto' set interfaces ethernet eth2 hw-id '0c:74:22:d5:00:02' set interfaces ethernet eth2 speed 'auto' set interfaces ethernet eth2 vif 95 address '10.1.95.1/24' set interfaces ethernet eth2 vif 95 description 'Sender' set interfaces ethernet eth2 vif 95 mac '7c:5a:1c:da:0f:95' set interfaces ethernet eth2 vif 96 address '10.1.96.1/24' set interfaces ethernet eth2 vif 96 description 'Receiver' set interfaces ethernet eth2 vif 96 mac '7c:5a:1c:da:0f:96' set protocols igmp interface dum0 set protocols igmp interface eth2.94 set protocols igmp interface eth2.95 set protocols igmp interface eth2.96 set protocols pim interface dum0 set protocols pim interface eth2.94 set protocols pim interface eth2.95 set protocols pim interface eth2.96 set protocols pim rp address 10.1.100.1 group '224.0.0.0/4' set protocols static set service snmp community snmpbi set service snmp community test-lab set service snmp contact 'test1234' set service snmp listen-address 10.1.95.1 port '161' set service snmp location 'test-lab' set service ssh port '22' set system config-management commit-revisions '100' set system conntrack modules tftp set system host-name 'vyos' set system ipv6 disable set system ipv6 disable-forwarding set system syslog global facility all level 'info' set system syslog global facility protocols level 'debug' set system syslog host 10.0.2.106 facility all level 'info' set system time-zone 'UTC'
Sender IP: 10.1.95.10
Receiver IP: 10.1.96.10
Logs:
vyos@vyos:~$ show ip pim state Codes: J -> Pim Join, I -> IGMP Report, S -> Source, * -> Inherited from (*,G), V -> VxLAN, M -> Muted Active Source Group RPT IIF OIL 0 * 239.255.95.23 y <iif?> 1 10.1.95.10 239.255.95.23 n eth2.95 vyos@vyos:~$ show ip pim interfaces Interface State Address PIM Nbrs PIM DR FHR IfChannels dum0 up 10.1.100.1 0 0.0.0.0 0 0 eth2.94 up 10.1.94.1 0 0.0.0.0 0 0 eth2.95 up 10.1.95.1 0 0.0.0.0 0 0 eth2.96 up 10.1.96.1 0 0.0.0.0 0 0 pimreg up 0.0.0.0 0 local 0 0 vyos@vyos:~$ show ip igmp groups Total IGMP groups: 3 Watermark warn limit(Not Set): 0 Interface Address Group Mode Timer Srcs V Uptime eth2.96 10.1.96.1 239.255.95.23 EXCL 00:03:52 1 3 00:02:09 vyos@vyos:~$ show ip igmp interfaces Interface State Address V Querier Query Timer Uptime dum0 up 10.1.100.1 3 local 00:00:56 00:22:30 eth2.94 up 10.1.94.1 3 local 00:00:57 00:22:29 eth2.95 up 10.1.95.1 3 local 00:00:57 00:22:29 eth2.96 up 10.1.96.1 3 local 00:00:57 00:22:29 vyos@vyos:~$ show ip igmp sources Interface Address Group Source Timer Fwd Uptime eth2.96 10.1.96.1 239.255.95.23 * 02:55 N 00:03:05
Debug of FRR:
May 17 08:17:21 vyos pimd[1347]: Recv IGMP report v3 from 10.1.96.10 on eth2.96: record=0 type=2 auxdatalen=0 sources=0 group=239.255.95.23 May 17 08:17:21 vyos pimd[1347]: igmpv3_report_isex: from 10.1.96.10 on eth2.96: group=239.255.95.23 sources=0 May 17 08:17:21 vyos pimd[1347]: Resetting source * timer to GMI=260.000 sec for group 239.255.95.23 on eth2.96 May 17 08:17:21 vyos pimd[1347]: Cancelling TIMER event for group 239.255.95.23 source * on eth2.96 May 17 08:17:21 vyos pimd[1347]: Scheduling 260.000 sec TIMER event for group 239.255.95.23 source * on eth2.96 May 17 08:17:21 vyos pimd[1347]: igmp_source_forward_start: (S,G)=(*,239.255.95.23) igmp_sock=17 oif=eth2.96 fwd=0 May 17 08:17:21 vyos pimd[1347]: igmp_source_forward_start: (*,239.255.95.23) was received on eth2.96 interface but we are not DR for that interface May 17 08:17:21 vyos pimd[1347]: Resetting group 239.255.95.23 timer to GMI=260.000 sec on eth2.96 May 17 08:17:21 vyos pimd[1347]: Cancelling TIMER event for group 239.255.95.23 on eth2.96 May 17 08:17:21 vyos pimd[1347]: Scheduling 260.000 sec TIMER event for group 239.255.95.23 on eth2.96
Multicast is not forwarded
If I disable eth2 and enable it again, Multicast starts forwarding.
After reboot, Multicast is not forwarded.
Deleting the next commands helped in my environment, but did not help in others.
set system ipv6 disable set system ipv6 disable-forwarding
The solution to this problem was to add execution priority to the IGMP config script.
I added the same priority as for the PIM config script
vyos@vyos:~$ sudo cat /opt/vyatta/share/vyatta-cfg/templates/protocols/igmp/node.def priority: 400 help: Internet Group Management Protocol (IGMP) end: sudo sh -c "${vyshim} ${vyos_conf_scripts_dir}/protocols_igmp.py"