Brad Fitzpatrick
fe0051fafd
wgengine/magicsock: expand AddrSet.addrs comment
2020-03-05 21:17:41 -08:00
Brad Fitzpatrick
e733fa6f7e
derp: add some varz tests for active/home conns
2020-03-05 20:29:07 -08:00
Brad Fitzpatrick
dd456f04c5
derp: actually record client's preferred bit
2020-03-05 19:02:54 -08:00
David Anderson
2839854994
wgengine/magicsock: never set a DERP server as a roamAddr.
...
DERP traffic is asymmetric by design, with nodes always sending
to their peer's home DERP server. However, if roamAddr is set,
magicsock will always push data there, rather than let DERP
server selection do its thing, so we end up accidentally
creating a symmetric flow.
Signed-Off-By: David Anderson <danderson@tailscale.com>
2020-03-05 17:45:17 -08:00
David Anderson
4f5c0da1ae
wgengine/magicsock: log when home DERP server changes.
2020-03-05 17:18:05 -08:00
Brad Fitzpatrick
61f3fda405
tsweb: let expvar.Ints be gauges too
2020-03-05 15:10:01 -08:00
Brad Fitzpatrick
6978b93bdd
derp, magicsock: track home (preferred) vs visiting connections for stats
2020-03-05 15:00:56 -08:00
Brad Fitzpatrick
12b77f30ad
wgengine/magicsock: close stale DERP connections
2020-03-05 12:49:37 -08:00
Brad Fitzpatrick
cf4aacde57
derp/derphttp: appease staticcheck
2020-03-05 12:34:57 -08:00
Brad Fitzpatrick
2cff9016e4
net/dnscache: add overly simplistic DNS cache package for selective use
...
I started to write a full DNS caching resolver and I realized it was
overkill and wouldn't work on Windows even in Go 1.14 yet, so I'm
doing this tiny one instead for now, just for all our netcheck STUN
derp lookups, and connections to DERP servers. (This will be caching a
exactly 8 DNS entries, all ours.)
Fixes #145 (can be better later, of course)
2020-03-05 12:23:37 -08:00
Brad Fitzpatrick
a36ccb8525
wgengine/magicsock: actually add to the activeDerp map
...
Fixes bug just introduced in 8f9849c140; not tested enough :(
2020-03-05 12:23:37 -08:00
Brad Fitzpatrick
8f9849c140
wgengine/magicsock: collapse three DERP maps down into one
2020-03-05 08:54:08 -08:00
Brad Fitzpatrick
7e1bed82bd
go.sum: update
2020-03-05 08:51:21 -08:00
Brad Fitzpatrick
40ebba1373
magicsock: use [unexpected] convention more
...
Fixes #136 (not entirely, but we have a convention now)
2020-03-05 08:18:55 -08:00
Brad Fitzpatrick
848a2bddf0
wgengine/magicsock: update set of DERP nodes
2020-03-05 08:18:55 -08:00
David Crawshaw
551964c562
go.mod: update wireguard-go version
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 21:29:53 -05:00
David Crawshaw
4a7638c319
go.mod: update wireguard-go version
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 18:13:56 -05:00
David Crawshaw
7932481b95
magicsock: lookup AddrSet by key from DERP
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 18:07:27 -05:00
Brad Fitzpatrick
57de94c7aa
tsweb: add /debug/ access via &debugkey + TS_DEBUG_KEY_PATH
2020-03-04 13:49:30 -08:00
David Anderson
d580157921
tsweb: quote label values to comply with Prometheus format.
2020-03-04 13:46:00 -08:00
Brad Fitzpatrick
ff6b3c2c38
netcheck: include two more DERP nodes, show more in CLI report
2020-03-04 13:40:49 -08:00
David Anderson
f192c05413
metrics: add a LabelMap type for variables with 1 label dimension.
...
This lets us publish sets of vars that are breakdowns along one
dimension in a format that Prometheus and Grafana natively know
how to do useful things with.
Signed-off-by: David Anderson <dave@natulte.net>
2020-03-04 13:22:50 -08:00
Brad Fitzpatrick
eac62ec5ff
ipn, wgengine/magicsock: add ipn.Prefs.DisableDERP bool
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-04 12:53:37 -08:00
Brad Fitzpatrick
bf704a5218
derp: protocol negotiation, add v2: send src pub keys to clients in packets
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-04 09:55:13 -08:00
David Crawshaw
a65b2a0efd
magicsock: add some DERP tests
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 12:40:33 -05:00
David Crawshaw
a33419167b
magicsock: plumb through derpTLSConfig variable (for testing)
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 12:40:33 -05:00
David Crawshaw
9be9738f62
derphttp: add TLSConfig field
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 12:40:33 -05:00
David Crawshaw
caec2c7e8b
magicsock: test sequence of pings
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 12:40:33 -05:00
David Crawshaw
9f584414d9
magicsock: simple ping test via magicsock
...
Passes `go test -count=20 -race ./wgengine/magicsock`
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 12:40:33 -05:00
David Crawshaw
34859f8e7d
wgengine, magicsock: add a CreateBind method
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 12:40:33 -05:00
David Crawshaw
75e62d318f
magicsock: use local STUN server in tests
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-04 12:40:33 -05:00
Brad Fitzpatrick
596fd449b9
netcheck: add TODO about alternate timing strategies
2020-03-04 08:20:38 -08:00
Brad Fitzpatrick
b27d4c017a
magicsock, wgengine, ipn, controlclient: plumb regular netchecks to map poll
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-04 08:19:45 -08:00
Brad Fitzpatrick
4cf5ac3060
ipn/ipnserver: remove unnecessary closure parameter
2020-03-03 19:38:01 -08:00
Brad Fitzpatrick
724c37fb41
wgengine/magicsock: start tracking nearest DERP node
2020-03-03 17:50:17 -08:00
David Anderson
dbc99dc0d2
paths: use /var/db for state on BSDs, and /var/run for sockets.
...
On BSD, /var/db is what linux calls /var/lib.
On modern linux, /run and /var/run are the same directory, but
on BSD the correct path is /var/run, so use that.
Fixes #79
Signed-off-by: David Anderson <dave@natulte.net>
2020-03-03 17:49:31 -08:00
David Anderson
20da44eae3
cmd/mkpkg: support scripts for rpm as well.
2020-03-03 16:36:52 -08:00
Brad Fitzpatrick
e371520cc5
tsweb, derp: add expvar http.Handler for Prometheus's format
...
And add some opinions.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-03 13:59:16 -08:00
Brad Fitzpatrick
89a2c3eb04
wgengine: don't create duplicate iptables rules on Linux, clean up
...
Fixes #131
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-03 13:46:53 -08:00
David Anderson
21fc5ec371
cmd/mkpkg: support specifying that a package replaces another.
...
Both RPM and Deb require us to specify both Replaces and Conflicts:
Conflicts tells them that the packages cannot coexist on the system,
Replaces tells them which one to keep.
2020-03-03 13:39:58 -08:00
Brad Fitzpatrick
dd68debd64
cmd/derper: set autocert Email
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-03 13:30:50 -08:00
Brad Fitzpatrick
68ff31a0ba
ipn: have NewFileStore try to create directories as needed
2020-03-03 11:51:44 -08:00
Brad Fitzpatrick
b3d9eab1fe
safesocket: make some effort to create parent directory of sock
2020-03-03 11:47:21 -08:00
Brad Fitzpatrick
383d86df5f
paths: remove some debug logging I left in
2020-03-03 11:45:49 -08:00
Brad Fitzpatrick
65e7c58aa4
cmd/tailscale, cmd/tailscaled, paths: add paths package for default paths
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-03 09:36:18 -08:00
Brad Fitzpatrick
06092a3af3
ipn/ipnserver: document potential race, start on test for it
2020-03-03 09:15:11 -08:00
Brad Fitzpatrick
ef1f967ec0
ipn: remove an unnecessary named parameter in doc
2020-03-03 08:05:11 -08:00
Brad Fitzpatrick
844d991baf
netcheck: add Report.Clone, return cloned report to avoid races on late replies
2020-03-02 15:02:34 -08:00
Brad Fitzpatrick
657f9593ae
Reduce some logspam.
2020-03-02 14:55:12 -08:00
David Crawshaw
61529ac459
controlclient, tailcfg: deliver DERP addresses in a separate field
...
We still include them directly in the controlclient network map
just where we have been. Client plumbing we can do later.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-02 17:16:17 -05:00