You can use avahi just fine, you need avahi to make the router aka 0.0.0.0 the mirror of your multicast traffic.
This can be done by editing /etc/config/avahi-daemon.conf
and add the following line:
enable-reflector=yes
Under the entry:
[reflector]
You can also limit interfaces by using:
allow-interfaces=br-lan.10,br-lan.2
Under the section [server]
Now the more complicated task is figuring out the firewalling.
If we break it down avahi listens on 0.0.0.0, on each interface this is the router ip where luci hosts, everytime a device talks on multicast range 224.0.0.x avahi will mirror this traffic to the other subnets, so with these settings you would see all multicast devices appear, but maybe you don't want that?
Then firewall rules and the allow-interfaces
are needed for fine control.
Since there are a handfull devices and also different implementations i.e chromecast, airplay (last time I remember it used port 80/tcp), it would be easier to use tcpdump and analyze the multicast advertisement which destination port they want to use in the TXT area, it can aswell be 5353,5454,5443,8888,8443,1001.
tcpdump -i br-lan.x -v multicast
or tcpdump -i br-lan.x -v multicast and host 192.168.2.4
with ifconfig
you can see the generic naming of all interfaces, br-lan.x
can also be just br-lan in your case.
The tcpdump can really help here also when such handshake gets made if another additional ports need to be forwarded by the firewall traffic rules👍
As optional side note for wireguard servers:
Avahi becomes more difficult if you would use a wireguard server for wifi, since wireguard officially doesn't support layer 2 you need to add a static multicast route on the server to 224.0.0.0/4
(you can make this range smaller), and on the client in allowedips you need also to add this route otherwise resolution won't be possible.