Due to certain streaming services blocking Mullvad's VPN servers, I needed a way to have two separate networks, one of which routes through the VPN and one that does not.
Would the following setup be appropriate for preventing DNS leaks on the VPN-using network?
Interfaces >> Advanced Settings > Use default gateway: uncheck
Interfaces >> Advanced Settings > Use custom DNS servers: 10.64.0.1 (Mullvad's DNS, reachable via the tunnel)
DNS weight: 1000 (don't think this is required)
Interfaces >> Firewall Settings: Assign to a new firewall-zone
Interfaces >> DHCP Server > Advanced Settings > DHCP-Options: 6,10.64.0.1 (Advertise the DNS via DHCP)
Then, in the Firewall - Zone Settings, make the new zone reject input, accept output, reject forward and allow forward to WGZONE (the zone of the WGINTERFACE, WireGuard tunnel).
Finally, under Traffic Rules, add a new rule to allow DHCP traffic from the new zone to the port 67, but do not allow DNS traffic.
With these settings, clients connected to the network get their IP addresses from the router's DHCP server, but can not reach the router's nor ISP's DNS server - all non-DHCP traffic is forced through the VPN.
Is this correct? Are any settings superfluous? This setup does pass the DNS leak test at mullvad.net/check as well as the dnsleaktest.com extended test. This seems to me like a simpler, self-contained approach than modifying the system-wide DHCP and DNS settings to use DNS forwarding and/or running multiple instances of the resolvers.
From what I know about PBR, it's way overkill for simply routing the guest network via VPN - the people in the thread are installing extra packages to make it easier, and still describe the process as a "complicated thing" - vs. the zone-based approach described above. Besides, it's hard to compare when the thread was never solved.
This is about avoiding DNS leaks (DNS traffic going outside the tunnel), not about choosing nor forcing the clients to use a certain DNS server.
Since the firewall forwardings are going to be in place (as per the Mullvad tutorial) anyway, my changes (vrt. Mullvad's lan: rejecting input; vrt. the usual guest/isolated network setup: not allowing DNS input) should be sufficient to force all (non-DHCP) traffic, including DNS traffic, through the Wireguard tunnel, thus preventing DNS leakage, correct?
Snark aside, I could've been clearer. What I want - which has not changed, you're quoting my description of the related thread I linked, literally titled "How to use VPN policy-based routing to forward guest network to VPN" - are the answers to these questions:
"is this simpler-than-proposed-elsewhere configuration enough to block DNS leaks? could it have even less settings?"
I also restated the first question in my reply to egc: