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/cmd/tailscaled
Brad Fitzpatrick 58abae1f83 net/dns/{publicdns,resolver}: add NextDNS DoH support
NextDNS is unique in that users create accounts and then get
user-specific DNS IPs & DoH URLs.

For DoH, the customer ID is in the URL path.

For IPv6, the IP address includes the customer ID in the lower bits.

For IPv4, there's a fragile "IP linking" mechanism to associate your
public IPv4 with an assigned NextDNS IPv4 and that tuple maps to your
customer ID.

We don't use the IP linking mechanism.

Instead, NextDNS is DoH-only. Which means using NextDNS necessarily
shunts all DNS traffic through 100.100.100.100 (programming the OS to
use 100.100.100.100 as the global resolver) because operating systems
can't usually do DoH themselves.

Once it's in Tailscale's DoH client, we then connect out to the known
NextDNS IPv4/IPv6 anycast addresses.

If the control plane sends the client a NextDNS IPv6 address, we then
map it to the corresponding NextDNS DoH with the same client ID, and
we dial that DoH server using the combination of v4/v6 anycast IPs.

Updates #2452

Change-Id: I3439d798d21d5fc9df5a2701839910f5bef85463
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2 years ago
..
childproc cmd/tailscaled/childproc: add be-child registration mechanism 2 years ago
debug.go all: require Go 1.19 2 years ago
depaware.txt net/dns/{publicdns,resolver}: add NextDNS DoH support 2 years ago
install_darwin.go all: require Go 1.19 2 years ago
install_windows.go all: require Go 1.19 2 years ago
proxy.go all: require Go 1.19 2 years ago
required_version.go all: require Go 1.19 2 years ago
ssh.go all: gofmt all 2 years ago
tailscaled.defaults cmd/tailscaled: rename relaynode reference in defaults file comment 4 years ago
tailscaled.go cmd/tailscaled: enable hybrid netstack mode on openbsd too 2 years ago
tailscaled.openrc tstest/integration/vms: use an in-process logcatcher (#2360) 3 years ago
tailscaled.service cmd/tailscaled: set StateDirectoryMode=0700 in tailscaled.service 3 years ago
tailscaled_bird.go all: require Go 1.19 2 years ago
tailscaled_notwindows.go all: require Go 1.19 2 years ago
tailscaled_test.go cmd/tailscaled: add a no-op test for profiling init-time memory allocs 2 years ago
tailscaled_windows.go all: require Go 1.19 2 years ago
with_cli.go cmd/tailscaled: add opt-in support for linking CLI into daemon 2 years ago