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
Maisem Ali 1f51bb6891 net/tstun: do SNAT after filterPacketOutboundToWireGuard
In a configuration where the local node (ip1) has a different IP (ip2)
that it uses to communicate with a peer (ip3) we would do UDP flow
tracking on the `ip2->ip3` tuple. When we receive the response from
the peer `ip3->ip2` we would dnat it back to `ip3->ip1` which would
then not match the flow track state and the packet would get dropped.

To fix this, we should do flow tracking on the `ip1->ip3` tuple instead
of `ip2->ip3` which requires doing SNAT after the running filterPacketOutboundToWireGuard.

Updates tailscale/corp#19971, tailscale/corp#8020

Signed-off-by: Maisem Ali <maisem@tailscale.com>
6 months ago
..
art all: use Go 1.22 range-over-int 7 months ago
connstats all: use Go 1.22 range-over-int 7 months ago
dns net/dns/resolver, control/controlknobs, tailcfg: use UserDial instead of SystemDial to dial DNS servers 7 months ago
dnscache net/netns, net/dns/resolver, etc: make netmon required in most places 7 months ago
dnsfallback tsd, ipnlocal, etc: add tsd.System.HealthTracker, start some plumbing 7 months ago
flowtrack all: update copyright and license headers 2 years ago
ktimeout net/ktimeout: add a package to set TCP user timeout 9 months ago
memnet net/memnet: export the network name (#9111) 1 year ago
netaddr all: update copyright and license headers 2 years ago
netcheck net/netcheck: do not add derps if IPv4/IPv6 is set to "none" 7 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) 1 year ago
netknob all: update copyright and license headers 2 years ago
netmon net/netmon: remove spammy log statements (#11953) 7 months ago
netns net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 7 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 7 months ago
packet all: use Go 1.22 range-over-int 7 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 7 months ago
proxymux all: cleanup unused code, part 1 (#10661) 11 months ago
routetable net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 7 months ago
socks5 net/socks5: add password auth support 2 years ago
sockstats net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 7 months ago
speedtest all: update copyright and license headers 2 years ago
stun all: make more tests pass/skip in airplane mode 7 months ago
stunserver all: use Go 1.22 range-over-int 7 months ago
tcpinfo all: use Go 1.22 range-over-int 7 months ago
tlsdial tsd, ipnlocal, etc: add tsd.System.HealthTracker, start some plumbing 7 months ago
tsaddr types/views: remove duplicate SliceContainsFunc 7 months ago
tsdial ipn/ipnlocal, net/tsdial: plumb routes into tsdial and use them in UserDial 7 months ago
tshttpproxy all: use Go 1.22 range-over-int 7 months ago
tstun net/tstun: do SNAT after filterPacketOutboundToWireGuard 6 months ago
wsconn net/wsconn: accept a remote addr string and plumb it through 1 year ago