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
Nick Khyl caa3d7594f ipn/ipnlocal, net/tsdial: plumb routes into tsdial and use them in UserDial
We'd like to use tsdial.Dialer.UserDial instead of SystemDial for DNS over TCP.
This is primarily necessary to properly dial internal DNS servers accessible
over Tailscale and subnet routes. However, to avoid issues when switching
between Wi-Fi and cellular, we need to ensure that we don't retain connections
to any external addresses on the old interface. Therefore, we need to determine
which dialer to use internally based on the configured routes.

This plumbs routes and localRoutes from router.Config to tsdial.Dialer,
and updates UserDial to use either the peer dialer or the system dialer,
depending on the network address and the configured routes.

Updates tailscale/corp#18725
Fixes #4529

Signed-off-by: Nick Khyl <nickk@tailscale.com>
2 years ago
..
art all: use Go 1.22 range-over-int 2 years ago
connstats all: use Go 1.22 range-over-int 2 years ago
dns net/dns/resolver: add better error wrapping 2 years ago
dnscache net/netns, net/dns/resolver, etc: make netmon required in most places 2 years ago
dnsfallback tsd, ipnlocal, etc: add tsd.System.HealthTracker, start some plumbing 2 years ago
flowtrack all: update copyright and license headers 3 years ago
ktimeout net/ktimeout: add a package to set TCP user timeout 2 years ago
memnet net/memnet: export the network name (#9111) 2 years ago
netaddr all: update copyright and license headers 3 years ago
netcheck all: make more tests pass/skip in airplane mode 2 years ago
neterror net/neterror, wgengine/magicsock: use UDP GSO and GRO on Linux (#7791) 3 years ago
netkernelconf client/tailscale,ipn/{ipnlocal,localapi}: check UDP GRO config (#10071) 2 years ago
netknob all: update copyright and license headers 3 years ago
netmon net/netmon: remove spammy log statements (#11953) 2 years ago
netns net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
netstat net/{netns,netstat}: use new x/sys/cpu.IsBigEndian 3 years ago
netutil net/netmon, add: add netmon.State type alias of interfaces.State 2 years ago
packet all: use Go 1.22 range-over-int 2 years ago
ping net/ping: fix ICMP echo code field to 0 2 years ago
portmapper net/portmapper: add envknob to disable portmapper in localhost integration tests 2 years ago
proxymux all: cleanup unused code, part 1 (#10661) 2 years ago
routetable net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
socks5 net/socks5: add password auth support 3 years ago
sockstats net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
speedtest all: update copyright and license headers 3 years ago
stun all: make more tests pass/skip in airplane mode 2 years ago
stunserver all: use Go 1.22 range-over-int 2 years ago
tcpinfo all: use Go 1.22 range-over-int 2 years ago
tlsdial tsd, ipnlocal, etc: add tsd.System.HealthTracker, start some plumbing 2 years ago
tsaddr types/views: remove duplicate SliceContainsFunc 2 years ago
tsdial ipn/ipnlocal, net/tsdial: plumb routes into tsdial and use them in UserDial 2 years ago
tshttpproxy all: use Go 1.22 range-over-int 2 years ago
tstun net/tstun: rename natConfig to peerConfig 2 years ago
wsconn net/wsconn: accept a remote addr string and plumb it through 2 years ago