I have a CentOS 7.2 machine that is a VMware guest. I am subscribing to a multicast group and seeing all the multicast I'd expect, but my app is not seeing the contents of the stream. strace shows that it is waiting on a select() system call. What am I forgetting?
Here's what I've done:
- Started a multicast sender on a remote host.
- Built a CentOS 7.2 guest on a VMware host.
- I stop and disable firewalld, and
yum erase filewalldon the guest.
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
- I run :
socat UDP4-RECVFROM:65000,ip-add-membership=220.127.116.11:10.0.54.210,fork STDOUT
- I see no output from the command.
netstat -gnshows that it is subscribed to the multicast group.
- selinux is disabled, in
SELINUX=disabled. Yes, I have rebooted since that setting. Also I see:
SELinux status: disabledfrom
tcpdump -n -nn -i eth0 host 18.104.22.168shows packets hitting the interface from that IP, destined to the UDP port 65000.
- Another host subscribed to the same multicast group sees data.
- I build another VM guest, this time using CentOS 6.4, and it works fine. I see regular output from my multicast sender.
- I build another VM guest, again using CentOS 7.2, and it works fine. This time I use a minimal install, however.
My issue looks like the firewall is blocking the packets, but as shown there is no firewall enabled.
The one significant difference between my not-working host and my working host is that the not-working host has two interfaces configured on it. But again, I am showing it as subscribed to the multicast group and I am showing packets hitting the interface. As well, I have shut down the second interface but that has not helped.