tailscale/cmd
Michael Ben-Ami ce7789071f feature/conn25: add NATing support with flow caching
Introduce a datapathHandler that implements hooks that will
receive packets from the tstun.Wrapper. This commit does not wire
those up just yet.

Perform DNAT from Magic IP to Transit IP on outbound flows on clients,
and reverse SNAT in the reverse direction.

Perform DNAT from Transit IP to final destination IP on outbound flows
on connectors, and reverse SNAT in the reverse direction.

Introduce FlowTable to cache validated flows by 5-tuple for fast lookups
after the first packet.

Flow expiration is not covered, and is intended as future work before
the feature is officially released.

Fixes tailscale/corp#34249
Fixes tailscale/corp#35995

Co-authored-by: Fran Bull <fran@tailscale.com>
Signed-off-by: Michael Ben-Ami <mzb@tailscale.com>
2026-03-18 11:49:47 -04:00
..
addlicense all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
build-webclient all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
checkmetrics all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
cigocacher cmd/cigocacher: make --stats flag best-effort (#18761) 2026-02-19 16:06:12 +00:00
cloner types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
connector-gen all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
containerboot cmd/{containerboot,k8s-operator}: reissue auth keys for broken proxies (#16450) 2026-03-11 10:25:57 +00:00
derper all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
derpprobe all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
dist all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
distsign all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
featuretags all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
get-authkey all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
gitops-pusher cmd/gitops-pusher: fix precedence when id token env var is empty 2026-01-30 17:37:11 -07:00
hello all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
jsonimports all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
k8s-nameserver all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
k8s-operator cmd/k8s-operator: fix Service reconcile triggers for default ProxyClass (#18983) 2026-03-13 14:31:16 +00:00
k8s-proxy types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
mkmanifest all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
mkpkg all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
mkversion all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
nardump all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
natc all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
netlogfmt all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
nginx-auth all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
omitsize all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
pgproxy all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
printdep cmd/printdep: add --next flag to use rc Go build hash instead 2026-01-27 14:49:56 -08:00
proxy-test-server all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
proxy-to-grafana all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
sniproxy all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
speedtest all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
ssh-auth-none-demo all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
stunc all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
stund types/ptr: deprecate ptr.To, use Go 1.26 new 2026-03-05 20:13:18 -08:00
stunstamp all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
sync-containers all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
systray all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
tailscale all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
tailscaled feature/conn25: add NATing support with flow caching 2026-03-18 11:49:47 -04:00
testcontrol all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
testwrapper cmd/testwrapper: make test tolerant of a GOEXPERIMENT being set 2026-03-06 14:05:35 -08:00
tl-longchain all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
tsconnect go.toolchain.branch: switch to Go 1.26 2026-03-04 21:57:05 -08:00
tsidp ipn/ipnlocal, feature/ssh: move SSH code out of LocalBackend to feature 2026-03-10 17:27:17 -07:00
tsshd all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
tta all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
vet all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
viewer all: use Go 1.26 things, run most gofix modernizers 2026-03-06 13:32:03 -08:00
vnet all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00
xdpderper all: remove AUTHORS file and references to it 2026-01-23 15:49:45 -08:00