David Crawshaw
d133339216
ipn: always guard LocalBackend.prefs with mu
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-28 21:54:22 -05:00
Brad Fitzpatrick
bcf3719b9e
netcheck: add hairpinning detection
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 14:26:51 -08:00
Brad Fitzpatrick
1abf2da392
wgengine/magicsock: reset favorite address on handshakes
...
Updates #92 (not a complete fix; could be better/faster?)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 17:23:09 -05:00
Brad Fitzpatrick
517a91de75
derp/derphttp: fix reconnect behavior
...
I broke it in today's 752146a70f
.
Added some comments to prevent recurrences.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 13:39:48 -08:00
Brad Fitzpatrick
d59d0576af
derp: don't log on all dropped packets; super spammy
...
Signed-off-by: Brad Fitzpatrick <brad@danga.com>
2020-02-28 13:33:47 -08:00
Brad Fitzpatrick
38acccad09
derp: remove some debug noise I left in
...
:(
2020-02-28 13:20:56 -08:00
Brad Fitzpatrick
752146a70f
derp: clean up derphttp client code, use contexts
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 13:18:59 -08:00
David Crawshaw
cdc10b74f1
ipn: always guard LocalBackend.endpoints with mu
...
For #112
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-28 15:13:01 -05:00
David Crawshaw
3425d8d84f
ipn: always guard LocalBackend.engineStatus with mu
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-28 14:58:52 -05:00
David Crawshaw
e7cdc11654
ipn: always guard LocalBackend.netMapCache with mu
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-28 14:39:36 -05:00
Brad Fitzpatrick
67ede8d6d2
wgengine, magicsock: fix SetPrivateKey data race
...
Updates #112
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 11:15:07 -08:00
Brad Fitzpatrick
4cd3e82bbd
go.mod: bump wireguard-go
...
Updates #112
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 11:15:07 -08:00
Brad Fitzpatrick
a6c695ba6b
types/key: add IsZero methods
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 11:15:07 -08:00
michael wilson
3878f0a67a
interfaces: recognize utun as a possible Tailscale interface name prefix
...
Signed-off-by: Michael Wilson <mewil@umich.edu>
2020-02-28 10:16:09 -08:00
Brad Fitzpatrick
07f0fd0fdc
version: add a manual date as version for now
...
Maybe we'll auto-bump this with a bot over time.
See golang/go#37475 & golang/go#29814
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 09:44:34 -08:00
Brad Fitzpatrick
f3c0ea23d9
netcheck, stunner: reduce log spam
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 09:40:25 -08:00
Brad Fitzpatrick
19b54d0ae7
wgengine: fix a data race on StatusCallback
...
Updates tailscale/tailscale#112
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-28 09:32:06 -08:00
David Crawshaw
c576a57067
wgengine: avoid holding any locks during HandshakeDone
...
Because wgLock is held while some wireguard-go methods run,
trying to hold wgLock during HandshakeDone potentially creates
lock cycles between wgengine and internals of wireguard-go.
Arguably wireguard-go should call HandshakeDone in a new goroutine,
but until its API promises that, don't make any assumptions here.
Maybe for #110 .
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-28 06:32:38 -05:00
David Crawshaw
06bf0d980e
go.mod: bump wireguard-go version
...
For #110
2020-02-28 06:21:07 -05:00
David Anderson
78654ee1bd
cmd/tailscale: switch to an ffcli based CLI.
...
Two commands for now, `up` and `netcheck`. The commands and the flags they take
will change a bunch in the future, but this is good enough to launch on parity
with relaynode.
Signed-Off-By: David Anderson <dave@natulte.net>
2020-02-28 00:15:25 -08:00
David Crawshaw
4e3ff4b63b
controlclient: allow prefixed endpoints in tests
2020-02-27 16:52:14 -05:00
Brad Fitzpatrick
25797c8c2a
all: rename deep "Copy" methods to conventional Go name "Clone"
2020-02-27 12:20:29 -08:00
Brad Fitzpatrick
14559340ee
Start of netcheck package & including network state in Hostinfo.
...
* adds new packet "netcheck" to do the checking of UDP, IPv6, and
nearest DERP server, and the Report type for all that (and more
in the future, probably pulling in danderson's natprobe)
* new tailcfg.NetInfo type
* cmd/tailscale netcheck subcommand (tentative name, likely to
change/move) to print out the netcheck.Report.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-27 11:05:27 -08:00
Brad Fitzpatrick
a07af762e4
types/opt: add opt package for a new opt.Bool JSON type
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-27 10:39:42 -08:00
Brad Fitzpatrick
c185e6b4b0
stunner: support IPv6, add latency info to callbacks, use unique TxIDs per retry
...
And some more docs.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-27 09:23:51 -08:00
Brad Fitzpatrick
00ad93ec25
cmd/derper: add a STUN server
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-26 19:11:14 -08:00
Brad Fitzpatrick
0e128f8f22
stun: add server support
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-26 15:19:32 -08:00
Brad Fitzpatrick
74650d6fb5
go.mod, go.sum: update
2020-02-26 15:19:10 -08:00
Brad Fitzpatrick
14abc82033
stun: check high bits in Is, add tests
...
Also use new stun.TxID type in stunner.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-26 11:34:01 -08:00
Brad Fitzpatrick
2489ea4268
stun: fix IPv6 bug, refactor a bit
...
Fixes #104
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-26 09:20:46 -08:00
David Crawshaw
6879581891
controlclient: adjust user expiry test
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-26 09:44:42 -05:00
Brad Fitzpatrick
eefafad9f8
ipn: fix some mutex/ownership issues
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-25 14:07:43 -08:00
David Crawshaw
6d2ac01464
go.mod: bump wireguard-go version
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-25 17:03:20 -05:00
David Crawshaw
44670d0da9
wgengine: revert wgdev.Close on Close from last commit
...
Causes as-yet-unknown problems in some tests.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-25 17:00:37 -05:00
wardn
9390a3ef55
wgengine: properly clean up freebsd routes and interfaces on close
...
Signed-off-by: wardn <wardn@users.noreply.github.com>
2020-02-25 16:40:10 -05:00
David Crawshaw
7a3be96199
wgengine: add pinger to generate initial spray packets
...
For 3 seconds after a successful handshake, wgengine will send a
ping packet every 300ms to its peer. This ensures the spray logic
in magicsock has something to spray.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-25 15:09:08 -05:00
Brad Fitzpatrick
3988ddc85d
types/logger: add WithPrefix, use it in two places
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-25 11:35:46 -08:00
Brad Fitzpatrick
758744a4e3
Fix some Hostinfo value usages from the previous commit.
2020-02-25 11:01:20 -08:00
Brad Fitzpatrick
d8de11a01b
control: make Hostinfo accessed by pointer
...
Fix potential races in copying aliased slices by value.
Also few little doc updates.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-25 10:35:51 -08:00
Brad Fitzpatrick
824f825552
tsweb, cmd/derper: move common web/debug stuff from derper to new tsweb
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-25 10:06:56 -08:00
Brad Fitzpatrick
367ffde21a
ipn: misc cleanup
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-25 10:05:14 -08:00
Brad Fitzpatrick
04e6b77774
safesocket: delete incorrect build tag
...
Leftover from copying one file to another to create safesocket.go
in the earlier documentation change (29f7d64091
).
2020-02-25 09:02:52 -08:00
Brad Fitzpatrick
29f7d64091
safesocket: document
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-25 08:46:34 -08:00
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
Brad Fitzpatrick
8696b17b5f
wgengine/magicsock: turn off DERP log spamminess by default
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-24 10:24:12 -08:00
David Anderson
accf868130
cmd/mkpkg: add flags for debian scripts.
2020-02-24 09:37:06 -08:00
Brad Fitzpatrick
f473965ca1
go.sum: update
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-24 08:48:06 -08:00
Brad Fitzpatrick
7a3b91390b
wgengine/magicsock: fix crash in Send when Endpoint isn't an AddrSet
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-24 08:47:20 -08:00
David Crawshaw
868cfae84f
wgengine, magicsock: adjust for wireguard-go conn/device package split
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-24 07:30:14 -05:00
David Crawshaw
8994a59e20
go.mod: update wireguard-go version
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-23 13:49:21 -05:00