[HELP] Layer 2 bridge multicast igmp issue

Hi, I have a vyos router with zerotier and a raspberry pi with 4g module and a bridge between eth0 and zt interface because I need multicast traffic from the raspberry pi to reach the vyos router.
This is my config:
-vyos:

[
 {
  "allowDNS": false,
  "allowDefault": false,
  "allowGlobal": false,
  "allowManaged": true,
  "assignedAddresses": [
   "192.168.198.1/24"
  ],
  "bridge": false,
  "broadcastEnabled": true,
  "dhcp": false,
  "dns": {
   "domain": "",
   "servers": []
  },
  "id": "xxxxxxxxxxxxxx",
  "mac": "42:dc:xxxxxxxxxxx",
  "mtu": 2800,
  "multicastSubscriptions": [
   {
    "adi": 0,
    "mac": "01:00:5e:00:00:01"
   },
   {
    "adi": 0,
    "mac": "01:00:5e:00:00:02"
   },
   {
    "adi": 0,
    "mac": "01:00:5e:00:00:16"
   },
   {
    "adi": 0,
    "mac": "33:33:00:00:00:01"
   },
   {
    "adi": 0,
    "mac": "33:33:00:00:00:02"
   },
   {
    "adi": 0,
    "mac": "33:33:ff:00:00:00"
   },
   {
    "adi": 0,
    "mac": "33:33:ff:76:fa:86"
   },
   {
    "adi": 3232286209,
    "mac": "ff:ff:ff:ff:ff:ff"
   }
  ],
  "name": "iptv",
  "netconfRevision": 24,
  "nwid": "xxxxxxxxxxxxxxxxx",
  "portDeviceName": "eth5",
  "portError": 0,
  "routes": [
   {
    "flags": 0,
    "metric": 0,
    "target": "192.168.198.0/24",
    "via": null
   }
  ],
  "status": "OK",
  "type": "PRIVATE"
 }

-pi:

{
  "allowDNS": false,
  "allowDefault": false,
  "allowGlobal": false,
  "allowManaged": false,
  "assignedAddresses": [],
  "bridge": true,
  "broadcastEnabled": true,
  "dhcp": false,
  "dns": {
   "domain": "",
   "servers": []
  },
  "id": "xxxxxxxxxxxxxxx",
  "mac": "42:3b:xxxxxxxxxx",
  "mtu": 2800,
  "multicastSubscriptions": [
   {
    "adi": 0,
    "mac": "01:00:5e:00:00:01"
   }
  ],
  "name": "iptv",
  "netconfRevision": 24,
  "nwid": "xxxxxxxxxxxxxxxxx",
  "portDeviceName": "ztqu3h7blr",
  "portError": 0,
  "routes": [
   {
    "flags": 0,
    "metric": 0,
    "target": "192.168.198.0/24",
    "via": null
   }
  ],
  "status": "OK",
  "type": "PRIVATE"
 }

-bridge:

# bridge -d link show
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0 state forwarding priority 32 cost 19
    hairpin off guard off root_block off fastleave off learning on flood on mcast_flood on mcast_to_unicast off neigh_suppress off vlan_tunnel off isolated off
9: ztqu3h7blr: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 master br0 state forwarding priority 32 cost 100
    hairpin off guard off root_block off fastleave off learning on flood on mcast_flood on mcast_to_unicast off neigh_suppress off vlan_tunnel off isolated off
10: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br0

A iptv client is connected to the ethernet port of the raspberry, and it works with multicast routing (Note that this iptv device works ok when directly connected to the vyos router)

I connect the device to the ethernet port (br0) and it gets dhcp from vyos. So I know the layer 2 bridge is working ok.

But here is the problem, my device is sending igmp v2 reports to join 239.0.2.30 group (which has a video stream) and it does not get to the vyos router. I thought that the bridge or zerotier could be dropping multicast traffic BUT the igmp v2 leaves (which have the 224.0.0.2 destination address) are getting to the vyos router. Besides, I did some testing with iperf and the igmp v2 reports from the bridge get to the vyos interface with no problem.
Also, somehow, if I use iperf -s -u -B 239.0.2.30%eth5 -i 1 in the vyos router (like forcing to listen on that address), the reports start to arrive and I can see the streaming in the iptv device connected to the pi.

So I am a bit confused, I don’t know if it’s something about the pi bridge, zerotier or vyos, but i hope someone can shed some light on this which is driving me crazy.

Solved it creating a bridge to a physical eth of the router. Everything works now.

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