Multicast not working

Hi,
I have enabled multicast on Vyos routers running VyOS 1.3-rolling-202012171749.
I have enabled PIMv2 and IGMP and configured static RP.
When a receiver host joins I do see the join msg in the RP router. Those things seems fine.
When I start the source I do see join coming to the RP however nothing seems to happen after that and receiver doesn’t receive any packets sent by source.
Any ideas here? I can provide more info.
Thanks.

Hello @hpatil, could you draw a topology with IP addresses?
Can you confirm that you see multicast on the multicast on the router incoming interface?
Also will be helpful to see VyOS configuration

show configuration commands

Thx Dmitry for the response.

Can you check, does the Client2 can ping Client1, e.g.

# From Client2
ping 10.0.1.2

Yes, they are all static routes and they can ping end-end.
Here I am providing relevant configs:
R1:
set interfaces ethernet eth1 address ‘192.168.1.2/24’
set interfaces ethernet eth2 address ‘10.0.1.1/24’

set protocols igmp interface eth1
set protocols igmp interface eth2
set protocols pim interface eth1
set protocols pim interface eth2
set protocols pim rp address 192.168.1.1 group ‘224.0.0.0/4’

R2 (RP):
set interfaces ethernet eth1 address ‘192.168.1.1/24’
set interfaces ethernet eth2 address ‘192.168.2.1/24’

set protocols igmp interface eth1
set protocols igmp interface eth2
set protocols pim interface eth1
set protocols pim interface eth2
set protocols pim rp address 192.168.1.1 group ‘224.0.0.0/4’

R3:
set protocols igmp interface eth1

set protocols igmp interface eth2

set protocols pim interface eth1

set protocols pim interface eth2

set protocols pim rp address 192.168.1.1 group ‘224.0.0.0/4’

R2 (RP):
vyos@Harish-R2:~$ show ip pim neighbor
Interface Neighbor Uptime Holdtime DR Pri
eth1 192.168.1.2 02:06:37 00:01:37 1
eth2 192.168.2.2 02:06:26 00:01:18 1

Client2 does a mcjoin (as receiver with default grp *, 225.1.2.3)

vyos@Harish-R2:~$ 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
1 * 225.1.2.3 y eth1 eth2( J )

vyos@Harish-R2:~$ show ip pim join
Interface Address Source Group State Uptime Expire Prune
eth2 192.168.2.1 * 225.1.2.3 JOIN 00:00:42 03:09 --:–

All this looks OK to me.

When Client1 starts sending data:
vyos@Harish-R2:~$ 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
1 * 225.1.2.3 y eth1 eth2( J )
1 10.0.1.2 225.1.2.3 n eth1 eth2( * )

I don’t see receiver getting anythig.
Thanks for looking into.

Try to see traffic on all routers.
On R1 run command monitor traffic interface eth2 then the same operational command but for eth1 interface.

Hi Dmitry,

Step 1) Start a receiver from Client2
Joining (*,225.1.2.3) on eth1

R3:

vyos@Harish-R3:~$ 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
1      *                225.1.2.3        y    eth1              pimreg(I    ), eth2(IJ   )

vyos@Harish-R3:~$ show ip pim join 
Interface        Address         Source          Group           State      Uptime   Expire Prune
eth2             10.0.2.1        *               225.1.2.3       NOINFO     --:--:-- --:--  --:--

vyos@Harish-R3:~$ show ip multicast route 
Source          Group           Proto  Input            Output           TTL  Uptime
*               225.1.2.3       IGMP   eth1             pimreg           1    00:01:10
                                IGMP                    eth2             1    00:01:10

R2:

vyos@Harish-R2:~$ show ip pim join
Interface        Address         Source          Group           State      Uptime   Expire Prune
eth2             192.168.2.1     *               225.1.2.3       JOIN       00:02:05 03:07  --:--

vyos@Harish-R2:~$ 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
1      *                225.1.2.3        y    eth1              eth2( J   )

vyos@Harish-R2:~$ show ip multicast route 
Source          Group           Proto  Input            Output           TTL  Uptime
*               225.1.2.3       PIM    eth1             eth2             1    00:02:15

Step 2) Start sender from Client1
mcjoin -s -i eth1

R1

vyos@Harish-R1:~$ 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
1      10.0.1.2         225.1.2.3        n    eth2              eth1( J   )


vyos@Harish-R1:~$ show ip multicast route 
Source          Group           Proto  Input            Output           TTL  Uptime
10.0.1.2        225.1.2.3       PIM    eth2             eth1             1    00:07:56

R2:

vyos@Harish-R2:~$ show ip multicast route 
Source          Group           Proto  Input            Output           TTL  Uptime
*               225.1.2.3       PIM    eth1             eth2             1    00:08:48
10.0.1.2        225.1.2.3       STAR   eth1             eth2             1    00:08:48

vyos@Harish-R2:~$ show ip multicast route 
Source          Group           Proto  Input            Output           TTL  Uptime
*               225.1.2.3       PIM    eth1             eth2             1    00:08:56
10.0.1.2        225.1.2.3       STAR   eth1             eth2             1    00:08:56

R3

vyos@Harish-R3:~$ show ip multicast route 
Source          Group           Proto  Input            Output           TTL  Uptime
*               225.1.2.3       IGMP   eth1             pimreg           1    00:09:34
                                      IGMP                       eth2               1    00:09:34

R2:

tcpdump:

20:12:13.631026 IP 192.168.1.1 > 224.0.0.1: igmp query v3

20:12:15.341050 IP 192.168.1.1 > 224.0.0.22: igmp v3 report, 3 group record(s)

20:12:18.258831 IP 192.168.1.2 > 224.0.0.22: igmp v3 report, 3 group record(s)

20:12:30.098616 IP 192.168.1.1 > 224.0.0.13: PIMv2, Hello, length 56

20:12:37.280159 IP 192.168.1.1 > 224.0.0.13: PIMv2, Join / Prune, length 34

20:12:38.061239 IP 192.168.1.2 > 224.0.0.13: PIMv2, Hello, length 56

20:13:00.099893 IP 192.168.1.1 > 224.0.0.13: PIMv2, Hello, length 56

20:13:08.066535 IP 192.168.1.2 > 224.0.0.13: PIMv2, Hello, length 56

20:13:08.477132 IP 10.0.1.1 > 192.168.1.1: PIMv2, Register, length 28

20:13:08.477320 IP 192.168.1.1 > 10.0.1.1: PIMv2, Register Stop, length 18

20:13:13.554612 ARP, Request who-has 192.168.1.1 tell 192.168.1.2, length 46

20:13:13.554631 ARP, Reply 192.168.1.1 is-at 00:50:56:bb:c5:1c, length 28

20:13:13.709036 ARP, Request who-has 192.168.1.2 tell 192.168.1.1, length 28

20:13:13.709156 ARP, Reply 192.168.1.2 is-at 00:50:56:bb:a2:3b, length 46

20:13:30.099900 IP 192.168.1.1 > 224.0.0.13: PIMv2, Hello, length 56

20:13:37.287373 IP 192.168.1.1 > 224.0.0.13: PIMv2, Join / Prune, length 34

20:13:37.477890 IP 10.0.1.1 > 192.168.1.1: PIMv2, Register, length 28

20:13:37.478092 IP 192.168.1.1 > 10.0.1.1: PIMv2, Register Stop, length 18

Hello @hpatil, try to change TTL on your multicast generator, it looks like your multicast source sent packets with TTL 1. I guess you need mcjoin -s -i eth1 -t 64

Hi Dmitry, yes I had realized that after sending the logs, I had changed to 128, sorry that I forgot to update the thread. I will do some more experiments and get back if I have any questions, thanks.