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/resolver
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>
3 years ago
..
doh_test.go net/dns/resolver: fall back to IPv6 for well-known DoH servers if v4 fails 3 years ago
forwarder.go net/dns/resolver: race well-known resolvers less aggressively 3 years ago
macios_ext.go net/dns{,/resolver}: refactor DNS forwarder, send out of right link on macOS/iOS 3 years ago
neterr_darwin.go net/dns/resolver: permit larger max responses, signal truncation 4 years ago
neterr_other.go net/dns/resolver: fmt item 3 years ago
neterr_windows.go net/dns/resolver: permit larger max responses, signal truncation 4 years ago
tsdns.go net/dns/resolver: race well-known resolvers less aggressively 3 years ago
tsdns_server_test.go net/dns/resolver: clamp EDNS size 3 years ago
tsdns_test.go net/dns/resolver: clamp EDNS size 3 years ago