tailscale/wgengine
Brad Fitzpatrick 75a03fc719 wgengine/magicsock: use learned DERP route as send path of last resort
If we get a packet in over some DERP and don't otherwise know how to
reply (no known DERP home or UDP endpoint), this makes us use the
DERP connection on which we received the packet to reply. This will
almost always be our own home DERP region.

This is particularly useful for large one-way nodes (such as
hello.ts.net) that don't actively reach out to other nodes, so don't
need to be told the DERP home of peers. They can instead learn the
DERP home upon getting the first connection.

This can also help nodes from a slow or misbehaving control plane.

Updates tailscale/corp#26438

Change-Id: I6241ec92828bf45982e0eb83ad5c7404df5968bc
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2025-03-07 05:37:24 -08:00
..
bench ipn/ipnlocal, all: plumb health trackers in tests 2024-05-07 22:22:10 -07:00
filter wgengine/filter: add check for unknown proto 2025-01-24 12:20:44 +01:00
magicsock wgengine/magicsock: use learned DERP route as send path of last resort 2025-03-07 05:37:24 -08:00
netlog wgengine: add exit destination logging enable for wgengine logger (#11952) 2024-05-02 13:55:05 -04:00
netstack wgengine/netstack: respond to service IPs in Linux tun mode 2025-02-06 20:14:11 -05:00
router wgengine/router: refactor udm-pro into broader ubnt support 2025-01-03 13:06:16 -05:00
wgcfg wgengine/wgcfg/nmcfg: coalesce, limit some debug logs 2025-02-03 10:36:36 -08:00
wgint wgengine{,/wgint}: add wgint.Peer wrapper type, add to wgengine.Engine 2024-02-28 09:50:18 -08:00
wglog all: use Go 1.22 range-over-int 2024-04-16 15:32:38 -07:00
winnet all: add test for package comments, fix, add comments as needed 2024-07-10 09:57:00 -07:00
mem_ios.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
pendopen.go all: add Node.HomeDERP int, phase out "127.3.3.40:$region" hack [capver 111] 2025-01-14 12:27:14 -08:00
userspace_ext_test.go util/usermetrics: make usermetrics non-global 2024-09-25 15:57:00 +02:00
userspace_test.go util/usermetrics: make usermetrics non-global 2024-09-25 15:57:00 +02:00
userspace.go feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
watchdog_js.go all: update copyright and license headers 2023-01-27 15:36:29 -08:00
watchdog_test.go util/usermetrics: make usermetrics non-global 2024-09-25 15:57:00 +02:00
watchdog.go feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00
wgengine.go feature/capture: move packet capture to feature/*, out of iOS + CLI 2025-01-24 17:52:43 -08:00