tailscale/wgengine/router
Irbe Krumina 9bd158cc09
cmd/containerboot,util/linuxfw: create a SNAT rule for dst/src only once, clean up if needed (#13658)
The AddSNATRuleForDst rule was adding a new rule each time it was called including:
- if a rule already existed
- if a rule matching the destination, but with different desired source already existed

This was causing issues especially for the in-progress egress HA proxies work,
where the rules are now refreshed more frequently, so more redundant rules
were being created.

This change:
- only creates the rule if it doesn't already exist
- if a rule for the same dst, but different source is found, delete it
- also ensures that egress proxies refresh firewall rules
if the node's tailnet IP changes

Updates tailscale/tailscale#13406

Signed-off-by: Irbe Krumina <irbe@tailscale.com>
2024-10-03 20:15:00 +01:00
..
callback.go wgengine/router: implement UpdateMagicsockPort for CallbackRouter (#10494) 2023-12-07 10:45:14 -05:00
consolidating_router_test.go wgengine/router: consolidate routes before reconfiguring router for mobile clients 2024-04-23 20:15:56 -05:00
consolidating_router.go wgengine/router: consolidate routes before reconfiguring router for mobile clients 2024-04-23 20:15:56 -05:00
ifconfig_windows_test.go all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
ifconfig_windows.go wgengine/router: use quad-100 as the nexthop on Windows 2024-07-18 10:08:29 -05:00
router_darwin.go health, all: remove health.Global, finish plumbing health.Tracker 2024-04-26 12:03:11 -07:00
router_default.go health, all: remove health.Global, finish plumbing health.Tracker 2024-04-26 12:03:11 -07:00
router_fake.go util/linuxfw, wgengine: allow ingress to magicsock UDP port on Linux (#10370) 2023-12-05 18:12:02 -05:00
router_freebsd.go health, all: remove health.Global, finish plumbing health.Tracker 2024-04-26 12:03:11 -07:00
router_linux_test.go cmd/containerboot,util/linuxfw: create a SNAT rule for dst/src only once, clean up if needed (#13658) 2024-10-03 20:15:00 +01:00
router_linux.go health: begin work to use structured health warnings instead of strings, pipe changes into ipn.Notify (#12406) 2024-06-14 11:53:56 -07:00
router_openbsd.go health, all: remove health.Global, finish plumbing health.Tracker 2024-04-26 12:03:11 -07:00
router_test.go various: implement stateful firewalling on Linux (#12025) 2024-05-06 16:22:17 -06:00
router_userspace_bsd.go health, all: remove health.Global, finish plumbing health.Tracker 2024-04-26 12:03:11 -07:00
router_windows_test.go wgengine/router: look up absolute path to netsh.exe on Windows 2024-01-10 20:20:19 -05:00
router_windows.go cmd/tailscaled, net/dns, wgengine/router: start Windows child processes with DETACHED_PROCESS when I/O is being piped 2024-06-11 11:35:26 -06:00
router.go various: implement stateful firewalling on Linux (#12025) 2024-05-06 16:22:17 -06:00
runner.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00