LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Multicast (https://www.linuxquestions.org/questions/slackware-14/multicast-4175643398/)

chemfire 11-30-2018 07:14 AM

Multicast
 
I am looking for a little help with multicast on Slackware.

Short story for background I am writing a little DLNA extension to my DVR application so I can play the videos directly on my smart TV without using the bluyplayer or other external device. I have written an SSDP responder so the application will be discovered by the TV and other DLNA (DMP) devices. This is all working from my MacBook on the client network where I am authoring. It does not work running in a Slackware LXC container on my infrastructure subnet. That does not terribly surprise me because I would not expect multicast traffic to be routed from one subnet to the other without some action on my part. A Slackware (ARM) router sits between these two subnets.

Having read the Multicast Howto it seems like a first step is to make sure the router can at least answer multicast pings, to the all group. To that end I did the following:

Code:

route add -net 224.0.0.0 netmask 240.0.0.0 dev clients
The interface name of the subnet the TV and MacBook occupy is clients, its just renamed from eth0 via udev. When on the MacBook I ping 224.0.0.1, I get answers from a couple devices but not the router.

I could see the packets arrive in tcpdump; so I decided to see if the kernel was processing them. I created a iptables rule to specifically accept icmp echo on that interface for the INPUT chain, so I would have counter. If ping 224.0.0.1 -c 5; the counter on the router does increase by 5 packets. So it seems like its 'listening' there is nothing that would block it sending replies in terms of netfilter/iptables. I temporarily cleared all rules on OUTPUT and set the policy to accept just to be certain.

TL/DR:

First question: Why can't I get ping replies from the router?

Second question: Is there a way I can forward multicast udp to a specific host only on the infrastructure network from the client network. Maybe by abusing either the iptables DNAT target or TEE? I'd rather not run yet another demon on the router if possible, because its only got 512MB of ram and secondly I don't really want to forward multicast to all the devices and containers on my infrastructure net anyway; just the one.

drmozes 12-01-2018 12:24 PM

Since these are standard network interface tools, perhaps ask a Moderator to move this to a general networking forum here.

abga 12-01-2018 01:46 PM

@chemfire
Some more details about your Slackware ARM router might help - like, what Slackware version & kernel you are running.
Personally, I'm trying to stay away from multicast (literally disabling it on all interfaces) and always looking after alternative solutions, since multicast is hard to manage/filter.
However, have a look at these links for some troubleshooting hints:
https://unix.stackexchange.com/quest...ast-is-enabled
https://serverfault.com/questions/16...st-udp-packets
https://www.tldp.org/HOWTO/Multicast-HOWTO-3.html

chemfire 12-03-2018 06:42 AM

Thanks for the links. I had been mostly going by the TLDP.org howto. I am running slackware arm; probably about a 2 months behind current now. Its on kernel 4.14.59 currently. Its a custom kernel but appears to have all the options set.


All times are GMT -5. The time now is 09:21 AM.