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
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.