Iperf 2.0.13-1 Multicast not supported

Hello,

I installed iperf-2.0.13-1 on OpenWRT 19.07.4.
I use iperf to bind to a multicast group by using this command:

iperf -s -u -B 224.1.1.1 -i 1

but i receive "Multicast not supported" message.
iperf continue to work but didn't receive anything.
I tested same command on a lubuntu machine and it work good, it join the multicast group and receive datagrams.

@fabiozerbetto, welcome to the community!

Because It's a router. Do you have multicasting configured?

I can't imagine why one would in normal circumstances.

I'm using Openwrt on VirtualBox and emulating a testing network situation.
1 machine act as router and Multicast routing is enabled and configured with igmpproxy.
Other two virtual machines with OpenWRT installed act as virtual hosts and connected to the
router via virtualbox internal networks.
I try to send multicast datgram from one upstream host to the other downstream, but in this one.iperf output say "Multicast not supported" message.
With two lubuntu VM's work ok and can receive and send multicast.
I would know if it's due to iperf compiled version for OpenWRT and if there is a solution
or different tool for testing multicast.

OK, there's your problem! You don't have multicast, you're merely proxying packets (the suffix "proxy" in the software's name is the giveaway :wink: ).

:confused: The solution is to fix this (but I really doubt you truly want to setup multicast routing, hence you setup igmpproxy :slightly_smiling_face: ).

See:

Test what about multicast?

I know you're not saying "I want to test the multicast bandwidth to a multicast router" - are you?

If so, I might suggest reading up more on multicast routing. Since I'm not exactly sure what or why you're doing it, I can say I do know of a way:

  • it's netflow measurement
  • any similar firewall, log, tcpdump, etc. that would give you the same totals

Maybe I should explain why this works...but instead, I'll also suggest you make sure the OpenWrt doesn't have to be compiled with this enabled. Just to test multicast using iperf, I haven't researched this.

For testing I mean if I'm able to join to multicast group and receive datagrams.
Measuring bandwidth i think have none sense in a virtual emulation for testing configurations.
Maybe i was not clear. ipref that say "multicast is not enabled" is running as server
on a virtual machine that act as a host, not the router.

Hosta A (OpenWRT) ------ Router (OpenWRT with igmpproxy) ------ Host B (OpenWRT)

igmpproxy on router is configured with network relative to Host A in upstream and network relative to Host B in downstream.

I run iperf -s -u -B multicastaddr -i 1 on host B and it say "Multicast is not enabled"
On Host A i run iperf -c -u multicasaddr -T32 -t 10000 -i 1and it start send datagram (without say anything).
If I substitute Host A and Host B with lubuntu, commands work well and i see datagrams received on host B. So I suppose the configuration on VM named Router is ok and the problem is on iperf or something else when I use it on OpenWRT on VM's hosts.

P.S.
any link suggestions for use pimbd? There is no documentation on OpenWRT.

Maybe I was not clear.

You can continue with the semantics of not running OpenWrt as a router, nonetheless it's setup and configured as such when it was built. So, I'd confirm this. Just because you magically said "it's a server" didn't change how the image was built.

You were 100% clear. I'm thinking you don't understand what multicast routing actually is...and why you would need to ensure it's explicitly enabled in devices that will be doing such routing, regardless if you run the router OS as just a server, or whatever.

If this is a big concern and you're not comfortable with how to make builds, etc., I'd just setup multicast routing on a dull distro (again, yes I understand that you say multicast routing is only a "server").

  • What are you multicasting?
  • Wouldn't you have that information?

(This is what makes me think you aren't actually trying to setup a multicast router; and why you have igmpproxy installed - especially when you keep saying "it's a server".)

Maybe if you are't understanding, the simplest answer is - "multicast routing isn't enabled on a unicast router by default (yes I know you say it's just a server)".

no need pimbd and any other,you only need ip-full,and "ip addr add 224.1.1.1/32 dev br-lan autojoin".
iperf show "Multicast not supported",i guess iperf use c++ lib uclibcxx,result in can't ip-add-membership.
so you can manually ip-add-membership by "ip addr add 224.1.1.1/32 dev br-lan autojoin" or use socat's ip-add-membership.
and then,although iperf still show "Multicast not supported",it can receive data from 224.1.1.1.