I just configured this myself so maybe I can help. Disclaimer: I am totally new to the Mikrotik ecosystem so if anybody spots any mistakes I highly appreciate the feedback!
I have 4 VLANS
- vlan10_main
- vlan20_iot
- vlan30_guest
- vlan99_mgnt
First thing is to set up the mDNS (like you did), in my case I want it to broadcast it to all VLANs except the management one:
/ip dns
set mdns-repeat-ifaces=vlan10_main,vlan20_iot,vlan30_guest
Then we need to allow mDNS in the firewall:
/ip firewall filter
add action=accept chain=input comment="Allow mDNS" dst-address=224.0.0.251 dst-port=5353 log-prefix=mDNS protocol=udp src-port=5353
After adding firewall, go to IP > Firewall and move the new rule all the way at the bottom to the top (as number 1)
After setting this, you will be able to find your devices (such as Chromecast or Spotify Connect) across the VLAN’s but you cannot play (yet)
In order to play we need to give access from other VLAN’s by setting a firewall rule, first thing is to assign static IP’s to your devices, in my case I have 2 devices. My TV is 10.0.10.21 and my soundbar is 10.0.10.22. I assigned this static address in IP > APR: (I tried to configure this rule on interface but I wasn’t able to figure a ‘dynamic’ way)
/ip firewall filter
add action=accept chain=forward comment="Allow connections to TV and Speakers (Chromecast)" connection-state=new dst-address=10.0.10.21-10.0.10.22 in-interface=all-vlan
After adding this, go to your firewall (IP > Firewall) and move the new firewall rule all the way at the bottom to be above your current firewall rule:
action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
After this you should be able to also play across VLAN’s!