You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/net/dns
Andrea Gottardo dd77111462
xcode/iOS: set MatchDomains when no route requires a custom DNS resolver (#10576)
Updates https://github.com/tailscale/corp/issues/15802.

On iOS exclusively, this PR adds logic to use a split DNS configuration in more cases, with the goal of improving battery life. Acting as the global DNS resolver on iOS should be avoided, as it leads to frequent wakes of IPNExtension.

We try to determine if we can have Tailscale only handle DNS queries for resources inside the tailnet, that is, all routes in the DNS configuration do not require a custom resolver (this is the case for app connectors, for instance).

If so, we set all Routes as MatchDomains. This enables a split DNS configuration which will help preserve battery life. Effectively, for the average Tailscale user who only relies on MagicDNS to resolve *.ts.net domains, this means that Tailscale DNS will only be used for those domains.

This PR doesn't affect users with Override Local DNS enabled. For these users, there should be no difference and Tailscale will continue acting as a global DNS resolver.

Signed-off-by: Andrea Gottardo <andrea@tailscale.com>
1 month ago
..
publicdns Net/DNS/Publicdns: update the IPv6 range that we use to recreate route endpoint for control D 2 months ago
recursive all: use Go 1.22 range-over-int 3 months ago
resolvconffile clientupdate, net/dns: fix some "tailsacle" typos 3 months ago
resolver xcode/iOS: set MatchDomains when no route requires a custom DNS resolver (#10576) 1 month ago
config.go all: update copyright and license headers 1 year ago
debian_resolvconf.go all: update copyright and license headers 1 year ago
direct.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
direct_linux.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
direct_notlinux.go all: update copyright and license headers 1 year ago
direct_test.go clientupdate, net/dns: fix some "tailsacle" typos 3 months ago
flush_default.go all: update copyright and license headers 1 year ago
flush_windows.go all: update copyright and license headers 1 year ago
ini.go all: update copyright and license headers 1 year ago
ini_test.go all: update copyright and license headers 1 year ago
manager.go xcode/iOS: set MatchDomains when no route requires a custom DNS resolver (#10576) 1 month ago
manager_darwin.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
manager_default.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
manager_freebsd.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
manager_linux.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
manager_linux_test.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
manager_openbsd.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
manager_tcp_test.go net/netns, net/dns/resolver, etc: make netmon required in most places 2 months ago
manager_test.go net/netns, net/dns/resolver, etc: make netmon required in most places 2 months ago
manager_windows.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
manager_windows_test.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
nm.go all: cleanup unused code, part 2 (#10670) 6 months ago
noop.go all: update copyright and license headers 1 year ago
nrpt_windows.go net/dns: unconditionally write NRPT rules to local settings 3 months ago
openresolv.go net/dns: log more info when openresolv commands fail 5 months ago
osconfig.go wgengine/magicsock, controlclient, net/dns: reduce some logspam 9 months ago
osconfig_test.go all: update copyright and license headers 1 year ago
resolvconf-workaround.sh all: update copyright and license headers 1 year ago
resolvconf.go net/dns: properly detect newer debian resolvconf 9 months ago
resolvconfpath_default.go net/dns: overwrite /tmp/resolv.conf on gokrazy 11 months ago
resolvconfpath_gokrazy.go net/dns: overwrite /tmp/resolv.conf on gokrazy 11 months ago
resolvd.go all: update copyright and license headers 1 year ago
resolved.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago
utf.go all: update copyright and license headers 1 year ago
utf_test.go all: update copyright and license headers 1 year ago
wsl_windows.go health, all: remove health.Global, finish plumbing health.Tracker 2 months ago