Config igmpproxy to allow multicast udp from WAN to LAN

root@OpenWrt:~# ip route list
default via 10.0.0.1 dev eth0
10.0.0.0/24 dev eth0 scope link src 10.0.0.120
192.168.1.0/24 dev br-lan scope link src 192.168.1.1
root@OpenWrt:~#

It seems that requires ip-full package.

1 Like

I think the work you are doing will be better served with the ip-full package which will enable many many more functions in ip

sorry but whats the command for this ?
root@OpenWrt:~# /proc/sys/net/ipv4/conf/all/mc_forwarding = 1
-ash: /proc/sys/net/ipv4/conf/all/mc_forwarding: Permission denied

will install asap

For your usage, I think the best thing to do is edit /etc/sysctl.conf and add the lines:

net.ipv4.conf.all.mc_forwarding = 1
net.ipv6.conf.all.mc_forwarding = 1

Then either reboot or run sysctl -p

1 Like
  • Please remember to use one post to communicate multiple thoughts from those responding
  • To change the values
    • Edit them in /etc/sysctl.conf
    • Or the commands:

sysctl -w net.ipv4.conf.all.mc_forwarding=1 (in my testing, this one isn't working)
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=0

installed

copied the 2 lines in:
root@OpenWrt:~# vi /etc/sysctl.conf

Defaults are configured in /etc/sysctl.d/* and can be customized in this file

net.ipv4.conf.all.mc_forwarding = 1
net.ipv6.conf.all.mc_forwarding = 1

root@OpenWrt:~# vi /proc/sys/net/ipv4/conf/all/mc_forwarding = 1

file seems to be empty ?
~
~

You can't vi these files, you can "cat" them to see contents, or "echo" quantities to them like echo 1 > /my/special/file/here

after editing sysctl.conf be sure to run sysctl -p to load those values into the kernel

root@OpenWrt:~# cat /proc/sys/net/ipv4/conf/all/mc_forwarding
1

root@OpenWrt:~# cat/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
-ash: cat/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts: not found
root@OpenWrt:~#

This isn't a file...as I told you:

It seems you completed this step already.

root@OpenWrt:~# vi /etc/sysctl.conf

Defaults are configured in /etc/sysctl.d/* and can be customized in this file

net.ipv4.conf.all.mc_forwarding = 1
net.ipv6.conf.all.mc_forwarding = 1
~

  • /etc/sysctl.conf 1/3 33%

Are you saying /etc/sysctl.conf is empty!?!?

Something wrong...

root@OpenWrt:~# cat /etc/sysctl.conf

Defaults are configured in /etc/sysctl.d/* and can be customized in this file

net.ipv4.conf.all.mc_forwarding = 1
net.ipv6.conf.all.mc_forwarding = 1
root@OpenWrt:~#

only these 2 lines are in this file

I think we're making some progress, but I gotta say, it seems igmpproxy should configure mc_forwarding on the interfaces it's configured for during start-up. If it doesn't that seems to be a bug, as why would you even start it up ?

@mickey84 your posts will be much more intelligible if when you copy and paste text you put it into preformatted blocks. you can use three backtick marks ` to start a preformatted block, and end it with three more.

Possibly...but then you have a multicast hub...although...this may be what occurs once the subscription is made. I need a PIM to verify that.

On my WAN, this comes from the PIM...then the stream starts.

Yeah, my understanding of how igmpproxy works is that it listens to igmp and opens up the kernel to forwarding those packets that have been requested from one interface to another by adding multicast routes to the kernel. But without forwarding enabled in the kernel that'd never work.

Other kinds of routers would actually listen to the packets on one interface, bring them into userspace, and then spew them out on the other interfaces, but I don't think igmpproxy does that, it just instructs the kernel to do it (but note, I'm not an expert here, and the documentation on igmpproxy is pretty sparse).

EDIT: @mickey84 now that you seem to have things set up and ip-full installed here's my suggested next steps:

  1. reboot router, so we are in a known good state
  2. ip mroute show to see what multicast routes we have
  3. start up the sender
  4. ip mroute show again to see if anything changed
  5. start up the receiver
  6. ip mroute show again to see if anything changed (igmpproxy should do something here)
  7. Did you get the stream?
1 Like
No sender or receiver:
root@OpenWrt:~# ip mroute show

Sender started:
root@OpenWrt:~# ip mroute show
(10.0.0.50, 232.0.1.2)           Iif: unresolved  State: resolved

Sender and receiver started:
root@OpenWrt:~# ip mroute show
(10.0.0.50, 232.0.1.2)           Iif: eth0       Oifs: br-lan  State: resolved
(10.0.0.120, 232.0.1.2)          Iif: unresolved  State: resolved
root@OpenWrt:~#

Would you just for practice go back and edit the last post to stick the parts you copied and pasted into preformatted blocks? Seriously this makes it much easier to know what was output of a command and what wasn't etc?

mean time, I think that this shows that igmpproxy is working in that it is creating routes.

To give you an idea of what I mean, here is the best way to format that message for our understanding:

No sender or receiver:

root@OpenWrt:~# ip mroute show

Sender started:

root@OpenWrt:~# ip mroute show
(10.0.0.50, 232.0.1.2) Iif: unresolved State: resolved

Sender and receiver started:

root@OpenWrt:~# ip mroute show
(10.0.0.50, 232.0.1.2) Iif: eth0 Oifs: br-lan State: resolved
(10.0.0.120, 232.0.1.2) Iif: unresolved State: resolved

Anyway, beyond the formatting issue, this seems to be correct. So, do you see the stream? If not then I suspect we have firewall issues maybe?

no stream.
should I change the firewall rules to accept all ?

also is this relevant ? query is on 224.0.0.1 and in openwrt it says 224.0.0.0/4
11
maybe change settings there ?