summaryrefslogtreecommitdiffhomepage
path: root/control/controlknobs
diff options
context:
space:
mode:
authorMaisem Ali <maisem@tailscale.com>2024-05-14 13:23:34 -0400
committerMaisem Ali <maisem@gmail.com>2024-05-14 17:19:09 -0400
commit1f51bb68915eec6ba7e44a4fb184ff68b069d9d2 (patch)
treee7b65a8ed5fa8abf5ef48dc7cdf7fd7e213afc87 /control/controlknobs
parent60266be29878ceba887ea9195c257fcc29593cfe (diff)
downloadtailscale-1f51bb68915eec6ba7e44a4fb184ff68b069d9d2.tar.xz
tailscale-1f51bb68915eec6ba7e44a4fb184ff68b069d9d2.zip
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>
Diffstat (limited to 'control/controlknobs')
0 files changed, 0 insertions, 0 deletions