IgmpProxy alternatives? Sending and Receiving Multicast

I have a scenario where I need to both receive and send multicast across a VPN.

As I understand IgmpProxy only allows for one upstream. My network appear to be set up correctly as if I state an Upstream and Downstream I can either send, or if I switch them around I can receive multicast.

Do I have any options within OpenWRT to send and receive?

I'm confused, and I think this is needed to assist...

If you succeed, how do you intended to route the multicast to two places?

I have some radio hardware that uses multicast to identify themselves across networks.
both radios will send out multicast on 225.0.0.1

I'm just experimenting but I can see this radio spit out 225.0.0.1 on my eth0.1 LAN interface.

Now when I use two Vigor routers, there is an option on the VPN that says Pass Multicast. And when this is enabled on both routers, the radios work.

I'm trying to get an OpenWRT router to do the same. I have the IPsec VPN up and can ping both ways. I'm just really struggling with two way multicast.

Can you redirect duplicate multicast over iptables?

You might make this work with smcroute. There are OpenWrt packages I think, and there's this description:

Suppose you have two networks 192.168.1.0/24 and 192.168.2.0/24 and there are two radios one is 192.168.1.10 and the other is 192.168.2.10....

now you want anything sent by either radio to be broadcast across to the other network. Topology is: A ----- eth0 router eth1 ----- B

Then a config like:

mgroup from eth0 group 225.0.0.1 source 192.168.1.10
mroute from eth0 group 225.0.0.1 source 192.168.1.10 to eth1
mgroup from eth1 group 225.0.0.1 source 192.168.2.10
mroute from eth1 group 225.0.0.1 source 192.168.2.10 to eth0

I've tried smcroute before without success, I get no feedback at all when trying to run it, no debug log either from it.

As another alternative way. is there any way to pass the multicast incoming on my WAN interface to the device using IP tables.

tcpdump shows
192.168.80.7.1024 > 225.0.0.1.4950 UDP

Redirect using DNAT doesn't seem to work. Is there any way to change the destination IP from multicast 225.0.0.1 straight to my device at 192.168.50.5 for example. Can iptables mangle do it?

No, in order for multicast to be routed, there must be a multicast routing daemon running. THat's what smcroute does, it essentially shoves a couple of static routes into the kernel multicast routing table, and keeps them there by running and passing packets back and forth.

You need to increase the TTL of the multicast packets.
See here:


If you use a restricted firewall setup, you also need to create proper firewall rules.

I don't know if the openwrt smcroute package comes with smcroutectl but you can try:
smcroutectl show [groups|routes]
Using -d with the routes option gives detailed info about each multicast route.

Thanks, I got send and receive working with Smcroute. I had to compile a custom build of OpenWrt which had Multicast routing enabled within the kernel config. Smcroute was advising in the log it was disabled with the official build :frowning:

What a journey, I still need to tidy up.

Getting a 4G USB modem, flashing crazy firmware onto it to work, then using Strongswan to get an IPsec VPN working to a Vigor router, and now multicast and compiling custom Openwrt build argh it has been a nightmare.

Ill probably do a tutorial on it all as I've had to gleam bits from everywhere. Thanks for the help !

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.