DNS forwarding to local DNS and mDNS

I'm trying to set up a local DNS and allow mDNS, while using multiple subnets. The local DNS is an adguard home instance running on another client in the network.
I'm unsure if I'm doing this correctly or if I'm missing something. I followed the tutorials for DNS forwarding/hijacking and Zero conf umDNS.
I can't (don't want to) use DNS over DHCP, as I have a chromecast that ignores the DHCP provided DNS.

This is my topology:

The local DNS server is in the smarthome subnet (, the router is (lan) and (smarthome).

I've set up the Port Forwards as follows:
If I've understood that correctly, that should send all DNS requests to my local DNS (excluding the local DNS itself).

I've also added a MASQUERADE NAT rule, but I'm unsure if that's even needed?

This is how I set up the Traffic Rule for umDNS:
This is setup exactly like in the docs ( [OpenWrt Wiki] Multicast DNS Daemon) Do I have to change the IP here? If so, to what?

Am I doing this correctly, or is there a better way of doing this? I also tried using the dnsmasq DNS Forwardings option (just added my local DNS there), but I never got it working correctly - I would always get NXDOMAIN for either wan or lan domains.

I can't answer the other question but if you block Googles DNS servers most devices Chromcast included will respect what your DHCP tells it too.

Block all ports and all protocols (DNS can use several different ports not just 53)

Google Public DNS IP addresses (IPv4) are as follows: