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