tailscale/wgengine
David Crawshaw a6ad3c46e2 magicsock: spray some normal packets after a handshake
In particular, this is designed to catch the case where a
HandshakeInitiation packet is sent out but the intermediate NATs
have not been primed, so the packet passes over DERP.
In that case, the HandshakeResponse also comes back over DERP,
and the connection proceeds via DERP without ever trying to punch
through the NAT.

With this change, the HandshakeResponse (which was sprayed out
and so primed one NAT) triggers an UpdateDst, which triggers
the extra spray logic.

(For this to work, there has to be an initial supply of packets
to send on to a peer for the three seconds following a handshake.
The source of these packets is left as a future exercise.)

Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-24 17:29:35 -05:00
..
filter Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
magicsock magicsock: spray some normal packets after a handshake 2020-02-24 17:29:35 -05:00
monitor wgengine/monitor: use RTMGRP_* consts from x/sys/unix 2020-02-17 14:15:08 -08:00
packet wgengine/packet: fix minor lint errors. 2020-02-11 00:01:14 -08:00
winnet Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
faketun.go wgengine: flesh out some docs 2020-02-12 13:37:45 -08:00
ifconfig_windows.go wgengine: fix build on linux/freebsd/openbsd/windows 2020-02-19 11:58:59 -05:00
router_darwin_support.go wgengine: make SetRoutesFunc less appealing to use. 2020-02-10 21:40:00 -08:00
router_darwin.go wgengine: move link monitor to be owned by the engine, not the router 2020-02-17 09:53:17 -08:00
router_default.go wgengine: simplify, change some signatures 2020-02-17 08:04:31 -08:00
router_fake.go wgengine: move link monitor to be owned by the engine, not the router 2020-02-17 09:53:17 -08:00
router_freebsd.go wgengine: fix build on linux/freebsd/openbsd/windows 2020-02-19 11:58:59 -05:00
router_linux.go wgengine: resolv.conf spelling corrections 2020-02-22 06:44:56 -08:00
router_openbsd.go wgengine: add OpenBSD router DNS update handling 2020-02-20 08:03:07 -08:00
router_windows.go wgengine: move link monitor to be owned by the engine, not the router 2020-02-17 09:53:17 -08:00
rusage_nowindows.go wgengine: flesh out some docs 2020-02-12 13:37:45 -08:00
rusage_windows.go Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
rusage.go Move "logger" package to under types, now that we have it. 2020-02-14 20:23:05 -08:00
userspace.go wgengine, magicsock: adjust for wireguard-go conn/device package split 2020-02-24 07:30:14 -05:00
watchdog_test.go wgengine: simplify, change some signatures 2020-02-17 08:04:31 -08:00
watchdog.go wgengine: flesh out some docs 2020-02-12 13:37:45 -08:00
wgengine.go wgengine: update for wgcfg changes 2020-02-19 11:44:37 -05:00