tailscale/net/dns
Brad Fitzpatrick 53a2f63658 net/dns/resolver: race well-known resolvers less aggressively
Instead of blasting away at all upstream resolvers at the same time,
make a timing plan upon reconfiguration and have each upstream have an
associated start delay, depending on the overall forwarding config.

So now if you have two or four upstream Google or Cloudflare DNS
servers (e.g. two IPv4 and two IPv6), we now usually only send a
query, not four.

This is especially nice on iOS where we start fewer DoH queries and
thus fewer HTTP/1 requests (because we still disable HTTP/2 on iOS),
fewer sockets, fewer goroutines, and fewer associated HTTP buffers,
etc, saving overall memory burstiness.

Fixes #2436
Updates tailscale/corp#2250
Updates tailscale/corp#2238

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2021-07-25 20:45:47 -07:00
..
resolver net/dns/resolver: race well-known resolvers less aggressively 2021-07-25 20:45:47 -07:00
config.go net/dns{,/resolver}: quiet DNS output logging 2021-07-19 22:24:43 -07:00
debian_resolvconf.go net/dns: add GOOS build tags 2021-04-29 21:34:55 -07:00
direct_test.go net/dns: factor directManager out over an FS interface 2021-06-28 14:18:15 -07:00
direct.go net/dns: set WSL /etc/resolv.conf 2021-06-28 14:18:15 -07:00
flush_windows.go Move DNS flush logic to net/dns. 2021-03-25 17:40:52 -07:00
ini_test.go net/dns: don't build init*.go on non-windows 2021-07-22 11:58:42 -07:00
ini.go net/dns: don't build init*.go on non-windows 2021-07-22 11:58:42 -07:00
manager_default.go net/dns: return error from NewOSManager, use it to initialize NM. 2021-04-12 15:51:37 -07:00
manager_freebsd.go net/dns: factor directManager out over an FS interface 2021-06-28 14:18:15 -07:00
manager_linux.go net/dns: factor directManager out over an FS interface 2021-06-28 14:18:15 -07:00
manager_openbsd.go net/dns: factor directManager out over an FS interface 2021-06-28 14:18:15 -07:00
manager_test.go net/dns{,/resolver}: refactor DNS forwarder, send out of right link on macOS/iOS 2021-06-23 16:04:10 -07:00
manager_windows.go net/dns: do not run wsl.exe as LocalSystem 2021-06-30 10:11:33 -07:00
manager.go net/dns{,/resolver}: quiet DNS output logging 2021-07-19 22:24:43 -07:00
nm.go staticcheck.conf: turn off noisy lint errors 2021-06-18 15:48:20 -07:00
noop.go net/dns: return error from NewOSManager, use it to initialize NM. 2021-04-12 15:51:37 -07:00
openresolv.go net/dns: add GOOS build tags 2021-04-29 21:34:55 -07:00
osconfig.go net/dns: make debian_resolvconf correctly clear DNS configs. 2021-04-20 15:51:14 -07:00
registry_windows.go wgengine/router/dns: move to net/dns. 2021-03-25 16:25:30 -07:00
resolvconf-workaround.sh net/dns: also include 'tail' and 'base' files when fixing up resolv.conf. 2021-04-10 23:01:11 -07:00
resolvconf.go net/dns: add GOOS build tags 2021-04-29 21:34:55 -07:00
resolved.go net/dns: factor directManager out over an FS interface 2021-06-28 14:18:15 -07:00
wsl_windows.go net/dns: do not run wsl.exe as LocalSystem 2021-06-30 10:11:33 -07:00