My ISP at home does not have native IPV6 but does offer IPV6 over 6RD. AS a test I disabled DoT, DNSSEC and my custom configs. Set up 6RD with Cloudflare DNS. Using
https://test-ipv6.com/ tested with 10/10 score.
Enabled DoT and set CF IPV4, CF IPV6, CF IPV4 and CF IPV6 resolvers. Tested with
https://cloudflare-dns.com/help/ and the IPV6 resolvers showed no connection (DNSSEC was disabled).
Restarted Stubby, ran the CF test again and the IPV4 and IPV6 resolvers showed connected.
Got it, 6RD can make sense, is it static or dynamic (options received by DHCP)?
IPv6 tunnels may have a delay before started to working normally althrough they are stateless by nature.
Especially dymaic 6RD. I didn't test this case, but can confirm 6in4 works as intended, forced to use it here.
Will try to check what can be wrong there with 6RD.
Created /jffs/scripts/stubby.postconf with the following contents:
Code:
#!/bin/sh
CONFIG=$1
source /usr/sbin/helper.sh
pc_insert " - 127.0.1.1@53" "
- 0::1@53" $CONFIG
Note the carriage return after the " on line 4
Regardless of what port is used internally I strongly feel that the IPV6 loopback needs to be included in stubby.yml. I have found that not all IPV4 resolvers will do IPV6 addresses.
0::1 is the only available IPv6 loopback address, and 53 port there is already occupied by dnsmasq.
This change gives nothing but conflict stubby vs dnsmasq for one and the same IPv6 port, fortunately IPv4 is still there - so dns should be still working (if dnsamsq/stubby can start in such conditions).
Loopback addresses are not accesible for external clients, they can reach only extranal addresses (i.e LAN IP) where dnsmasq sits.
Internal (running on router) clients by default uses system resolver, which has the only configured upstreams in /etc/resolv.conf.
There two cases for internal clients to query 127.0.0.* and/or ::1 - either /etc/resolv.conf points to that addresses, or /etc/resolv.conf is empty, so loopback is default documented last resort. For both cases only dnsmasq can (and will) serve everything on 127.0.0.1:53/[::1]:53.
Next depending on UI settings, using dnsmasq as system caching resolver is enabled - internal clients will use 127.0.0.1:53 (coz it's in /etc/resolv.conf) where dnsmasq listens (and able to answer AAAA queries). If have it disabled and have empty ISP DNS - internal clients will fallback to 127.0.0.1:53/[::1]:53 where still is dnsmasq (empty /etc/resolv.conf ). If have it disabled and non-empty ISP DNS - only ISP DNS will be used for local clients.
So loopback requests are always handled by dnsmasq, threfore although stubby can be configured for additional IPv6 loopback on different port as additional dnsmasq's upstream, it seems redundant in current design.