IGMP with VLANS across multiple switches

Hello everyone, I am struggeling a bit to get IGMP to work in my own setup, please see the schematic below.

I got my CRS312-4C+8XG acting as core switch and Capsman router, all the blue and green lines are basically trunk ports, carrying the VLANS 1, 10, 20, 30, 40 and 50. VLAN filgering is enabled on all the bridges. The Bridge of that Switch is also checked as IGMP querrier. But, enabling IGMP Snooping on the bridges of the other switches kind of “blocks” any multicast traffic (for example, all my Dante traffic on VLAN 40 get’s out of sync). I’ve read a bit that eithrt IGMP - Proxies or PIM-SM might be needed, but I am struggeling to tranfer either the IGMP-Proxy or the PIM-SM manual pages over to my system, let alone the pros and cons of both approaches. As for the IGMP Proxy: I am struggeling to figure out what the Upstream Interface is and what a downstream Interface would be. Since IGMP querries are not VLAN tagged, I’d guess my vlan-bridge interface would be downstream and the vLans would be the upstream interfaces, or am I wrong here? What would I need to do on the access switches? do they need a IGMP-Proxy as well? Or do only the access switches need the Proxy? As for PIM-SM, I am completely lost here, trying to transfer the example from the wiki. Would this also work if the mentioned interfaces were (filtered) Vlans? A bonus question, since the system is already doing DANTE and might be one day required to do AVoIP: Is there a way, either in the proxy approach or in the PIM-SM approach to setup IGMP in a way the traffic that should stay on one switch would stay on one switch and not be forwarded to the IGMP querrier and then send back? With a couple of Mbits of Dante Audio, the later thing won’t be an issue, but once 1Gbit AVoIP Video streams come into play, that would cause trouble. Some configs are attached. Thanks Jens

Switch-Buero-2026-03-08.rsc (5.0 KB)

dude-server-2026-03-08.rsc (2.6 KB)

capsman-router-2026-03-08.rsc (28.5 KB)

I’m also trying to figure this out. So if anybody has tips would love to hear them!

Hi

What a coincidence, I just spent my weekend figuring PTP and Dante shenanigans out, too...

I'm not sure if this answers all of your questions or if it's even the "correct" way of doing it, but here's how I got it working:

My setup contains multiple switches and a router. Simplified, it looks like this:

[PTP-Timeserver] --vlan-dante-- [Switch A]
                                    |
                                  trunk
                                    |
[Dante Output] ---vlan-dante--- [Switch B]
                                    |
                                  trunk
                                    |
[Dante Mixer] ----vlan-dante--- [Router]
[Dante Input]                       |
                                  trunk
                                    |
[Dante Output] --vlan-dante-- [Switch C]

The issue that got me started was that all my devices beyond "Switch B" either didn't discover the PTP signal or started to negotiate clocks among them and ignored my PTP server. Layer‑2 connectivity wasn't the issue, as when I ran ptp4l on the timeserver (Prio 10 and ServerOnly) with the -2 Flag, a linux device on "Switch C" synced. But Dante wants PTP over IPv4. Enabling multicast querier or manually adding the VLANs with their multicast group to the bridges MDB didn’t prove fruitful either. Since all of my Mikrotik Devices do support PTP i gave that a shot, but this again does not support vlans.

I stumbled upon this video (https://youtu.be/aTGBrUjtRvc?t=210) where it's stated that "if you use VLANs ... use an external IGMP querier ... or enable multicast routing". How do you "enable multicast routing"? A forum thread (I think this one: How to add a IGMP querier on a tagged VLAN ) mentioned using either "IGMP Proxy" or "PIM SM" to enable multicast querying on a VLAN. I had no luck with IGMP Proxy, but I got it working with PIM SM.

For every switch and router I did the following:

I made sure IGMP Proxy isn't configured on the device and the multicast querier on the bridge is disabled.

Then I added a VLAN interface on the bridge and gave it an IP address to give the device access to the Dante VLAN.

/interface bridge add igmp-snooping=yes igmp-version=3 mld-version=2 name=bridge-main port-cost-mode=short vlan-filtering=yes
/interface bridge vlan add bridge=bridge-main tagged=ether1,ether2,bridge-main untagged=ether3,ether4 vlan-ids=105

/interface vlan add interface=bridge-main name=vlan-dante vlan-id=105

/ip address add address=192.168.105.200/24 interface=vlan-dante

Afterwards I setup a basic PIM instance, only adding the Dante VLAN. I wanted the router to be the designated routing point, so I manually set its priority to 254, while "Switch B" and "C" got 128. Switch "A" got 64.

/routing pimsm instance add name=pimsm-instance1
/routing pimsm interface-template add instance=pimsm-instance1 interfaces=vlan-dante priority=128

The bridge was now marked as a "multicast router", but no multicast traffic got passed on. The firewall logs showed lots of rejected packets. After I allowed multicast traffic on the input, things started working. (This makes sense to a degree, though I still find my method a bit sketchy. Is there a better way?)

/ip firewall filter add action=accept chain=input in-interface=vlan-management
/ip firewall filter add action=accept chain=input dst-address=224.0.0.0/4 in-interface=vlan-dante
/ip firewall filter add action=drop chain=input
/ip firewall filter add action=drop chain=forward

After that the PIM neighbors appeared and all my Dante devices latched onto the PTP server.