In the process of getting Nintendo Switch 2 consoles working, I had to change DNS. For whatever reason, the console reports major connectivity problems ittermittently, if I use my local DNS (fully resolving, DNSSEC, etc.). I suspect the Nintendo issue is excessively short resolution timeouts (original Switch works fine), but that leads my to my OpenWRT + DNS issue....
I've been running dnsmasq on openwrt for around 16 years now, but finally took the plunge with tagging. Tagging itself is working, as I have the the custom IPv4 DNS servers only for my tagged devices. However, I can't seem to get the IPv6 DNS servers to go through. I've tried a few different syntax options, but have only gotten the IPV6 DNS to work properly when I set it at the zone level, and then that messed up the local resolution I want for all but these few exceptions.
This device happens to be running TurrisOS 9 (based on 24.10), but I do plan to put the equivalent rules on a couple other devices like an Archer C7.
I've stripped out some unrelated zones, but my /etc/config/dhcp otherwise looks like this:
config dnsmasq
option logfacility '/var/log/dnsmasq.log'
option logdhcp '1'
option logqueries '1'
option domainneeded '1'
option boguspriv '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option domain 'mydomain.tld'
option authoritative '1'
option readethers '1'
option nonegcache '1'
option leasefile '/tmp/dhcp.leases'
list addnhosts '/etc/hosts'
option expandhosts '1'
option localservice '1'
option nonwildcard '1'
list notinterface 'eth1'
list interface 'br-wifi'
option port '0'
option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option piofolder '/tmp/odhcpd-piofolder'
config dhcp 'wifi'
option start '100'
option interface 'wifi'
option limit '79'
option leasetime '72h'
option force '1'
option ra_flags 'other-config'
option ra_mtu '1500'
option ra 'server'
option dhcpv6 'server'
list dhcp_option 'tag:!googledns,option:dns-server,192.168.6.1'
config host
option name 'my-switch2'
list mac '98:E2:55:##:##:##''
list tag 'googledns'
config tag 'googledns'
list dhcp_option 'option:dns-server,8.8.8.8,8.8.4.4'
list dhcp_option 'option6:dns-server,[2001:4860:4860::8888],[2001:4860:4860::8844]'
If I instead use the "list dns" syntax in the config tag block, nothing happens. If I use those same lines in the wifi zone, if gets applied to everything. If I put it in both places, but negate it with a negative match on the tag in the zone, or put both in the zone, one matching the tag, and one rejecting it, it still doesn't work.
I wasn't able to figure out the conflict playing with similar rules in ra_dns. I tried generating the corresponding rules with the list dns syntax in the UI, and experienced the same behavior, as well.
Am I missing something fundamental? Any hints would be greatly appreciated.