tailscale/ipn/ipnlocal
James Tucker c7ce4e07e5 ipn/ipnlocal: allow Split-DNS and default resolvers with WireGuard nodes
The initial implementation directly mirrored the behavior of Tailscale
exit nodes, where the WireGuard exit node DNS took precedence over other
configuration.

This adjusted implementation treats the WireGuard DNS
resolvers as a lower precedence default resolver than the tailnet
default resolver, and allows split DNS configuration as well.

This also adds test coverage to the existing DNS selection behavior with
respect to default resolvers and split DNS routes for Tailscale exit
nodes above cap 25. There may be some refinement to do in the logic in
those cases, as split DNS may not be working as we intend, though that
would be a pre-existing and separate issue.

Updates #9377
Signed-off-by: James Tucker <james@tailscale.com>
2023-09-19 16:29:57 -07:00
..
testdata ipn/ipnlocal: fix the path for writing cert files (#7203) 2023-02-07 14:34:04 -08:00
breaktcp_darwin.go cmd/tailscale: add debug commands to break connections 2023-08-11 06:37:26 -07:00
breaktcp_linux.go cmd/tailscale: add debug commands to break connections 2023-08-11 06:37:26 -07:00
c2n.go ipn/ipnlocal: add logging and locking to c2n /update (#9290) 2023-09-08 14:26:55 -07:00
c2n_pprof.go tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 2023-08-16 20:35:04 -07:00
cert.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
cert_js.go ipn/{ipnlocal,localapi}: actually renew certs before expiry (#8731) 2023-07-27 12:29:40 -07:00
cert_test.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
dnsconfig_test.go types/netmap: remove NetworkMap.{Addresses,MachineStatus} 2023-09-18 17:08:11 +01:00
expiry.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
expiry_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 2023-08-21 13:34:49 -07:00
local.go ipn/ipnlocal: allow Split-DNS and default resolvers with WireGuard nodes 2023-09-19 16:29:57 -07:00
local_test.go ipn/ipnlocal: allow Split-DNS and default resolvers with WireGuard nodes 2023-09-19 16:29:57 -07:00
loglines_test.go tsd: add package with System type to unify subsystem init, discovery 2023-05-04 14:21:59 -07:00
network-lock.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
network-lock_test.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
peerapi.go all: declare & plumb IPv6 masquerade address for peer 2023-09-18 21:27:36 -07:00
peerapi_h2c.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
peerapi_macios_ext.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
peerapi_test.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
profiles.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
profiles_notwindows.go ipn/ipnlocal: fix profile duplication 2023-08-08 13:43:37 -06:00
profiles_test.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00
profiles_windows.go ipn/ipnlocal: add more logging during profile migration 2023-06-01 21:00:55 -04:00
serve.go types/netmap: start phasing out Addresses, add GetAddresses method 2023-09-17 19:16:43 +01:00
serve_test.go ipn/ipnlocal: keep internal map updated of latest Nodes post mutations 2023-09-17 19:35:17 +01:00
ssh.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 2023-08-17 08:42:35 -07:00
ssh_stub.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
ssh_test.go ipn/ipnlocal: drop not required StateKey parameter 2023-01-30 17:58:55 -08:00
state_test.go ipn/ipnlocal: add tailnet MagicDNS name to ipn.LoginProfile 2023-09-18 13:58:32 -04:00