Brad Fitzpatrick
d5d70ae9ea
wgengine/monitor: reduce Linux log spam on down
...
Fixes #1689
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 10:38:51 -07:00
Brad Fitzpatrick
c0befee188
portlist: use windows OpenCurrentProcessToken, not GetCurrentProcessToken
...
The latter only works on Windows 8+.
Also add a TODO to get do this all more efficiently.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 09:23:52 -07:00
Brad Fitzpatrick
e619296ece
portlist: filter out all of 127.0.0.0/8, not just 127.0.0.1/32
...
Per user private bug report.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 09:17:39 -07:00
Brad Fitzpatrick
f325aa7e38
portlist: exclude services bound to IPv6 loopback address
...
Fixes #1683
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-12 09:07:16 -07:00
Brad Fitzpatrick
303805a389
ipn/localapi: require write access to PATCH prefs
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-11 21:31:20 -07:00
Brad Fitzpatrick
79109f4965
ipn/ipnlocal: use PATCH for EditPrefs, not POST
...
Addendum to earlier 00d641d9fc .
Reserve POST for SetPrefs in the future.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-11 20:49:07 -07:00
Brad Fitzpatrick
4b47393e0c
net/dns: pacify staticcheck for now
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-11 20:43:15 -07:00
Brad Fitzpatrick
00d641d9fc
ipn/localapi: move EditPrefs to localapi
...
Follow-up/revision to recent 53cfff109b which
added EditPrefs.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-11 16:11:43 -07:00
Brad Fitzpatrick
958782c737
cmd/{tailscale,tailscaled}: use netstack for subnet routing on Synology
...
Updates #707
Fixes #451
Fixes tailscale/tailscale-synology#52 (just make it work by default)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 18:44:33 -07:00
Brad Fitzpatrick
3b451509dd
cmd/tailscale/cli: make advertise-{routes,exit-node} available unconditionally
...
It was only Linux and BSDs before, but now with netstack mode, it also works on
Windows and darwin. It's not worth limiting it to certain platforms.
Tailscaled itself can complain/fail if it doesn't like the settings
for the mode/OS it's operating under.
Updates #707
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 18:37:24 -07:00
Brad Fitzpatrick
83402e2753
cmd/tailscale/cli: show nicer status output when logged out
...
Also nicer output when running "down".
Fixes #1680
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 18:25:22 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
3167e55ddf
ipn/{ipnlocal,localapi}, cmd/tailscale: add logout command
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 13:26:35 -07:00
Brad Fitzpatrick
11127666b2
ipn/ipnlocal: fix deadlock from 227f73284
...
Sigh.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 13:23:34 -07:00
Brad Fitzpatrick
227f73284f
ipn/ipnlocal: eagerly announce peerapi service(s) on change
...
We were previously only doing it as a side effect of the port poller,
which doesn't run on e.g. iOS.
Updates tailscale/corp#1559
2021-04-09 12:10:52 -07:00
Brad Fitzpatrick
fe23506471
ipn/ipnlocal: avoid unneeded initPeerAPIListener work if no changes
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 11:13:46 -07:00
Brad Fitzpatrick
20e7646b8d
ipn/ipnlocal: always set Notify.FilesWaiting, set IncomingFiles non-nil when empty
2021-04-09 07:59:36 -07:00
Brad Fitzpatrick
b0af15ff5c
portlist: remove some old TODOs
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-09 07:50:00 -07:00
Brad Fitzpatrick
c50c3f0313
tailcfg: document new RegisterRequest.Expiry behavior
...
Deployed to control server.
For upcoming "logout" command and fixes.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-08 22:27:14 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
6d01d3bece
ipn/ipnlocal: provide IPN bus updates as files arrive
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-08 20:09:52 -07:00
Brad Fitzpatrick
6a7912e37a
cmd/tailscale/cli: add debug mode to push slowly for testing
...
Also set Content-Length when known, and fail explicitly on sending
directories for now.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-08 15:01:12 -07:00
Brad Fitzpatrick
a9a3d3b4c1
ipn/ipnlocal: don't filter by time in FileTargets
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-08 14:02:07 -07:00
Brad Fitzpatrick
597c19ff4e
control/controlclient: refactor some internals
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 21:20:17 -07:00
Brad Fitzpatrick
71432c6449
ipn/ipnlocal: some more variable renames
...
Missed in earlier commit.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 21:17:33 -07:00
Brad Fitzpatrick
e86b7752ef
ipn/ipnlocal: rename some variables to be consistent
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 21:12:28 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
939861773d
net/tstun: accept peerapi connections through the filter
...
Fixes tailscale/corp#1545
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 12:29:20 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
950fc28887
ipn, paths, cmd/tailscaled: remove LegacyConfigPath, relaynode migration
...
It is time.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 10:15:45 -07:00
Brad Fitzpatrick
d581ee2536
ipn: remove Options.HTTPTestClient, move to LocalBackend
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 09:20:51 -07:00
Brad Fitzpatrick
50b309c1eb
ipn/localapi, cmd/tailscale: add API to get prefs, CLI debug command to show
...
Updates #1436
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 08:28:11 -07:00
Brad Fitzpatrick
03be116997
client/tailscale: factor out some helpers to reduce boilerplate
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 08:19:36 -07:00
Brad Fitzpatrick
d4b609e138
cmd/tailscale/cli: fix bug in earlier tailscale debug --local-creds addition
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-07 08:01:04 -07:00
Brad Fitzpatrick
799973a68d
ipn: move Options.Notify to its own method
...
We already had SetNotifyCallback elsewhere on controlclient, so use
that name.
Baby steps towards some CLI refactor work.
Updates tailscale/tailscale#1436
2021-04-06 22:12:40 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
d488678fdc
cmd/tailscaled, wgengine{,/netstack}: add netstack hybrid mode, add to Windows
...
For #707
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-06 21:37:28 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
1f99f889e1
ipn/{ipnlocal,localapi}: add localapi handler to dial/proxy file PUTs
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-06 21:31:50 -07:00
Brad Fitzpatrick
ea9e68280d
cmd/tailscale/cli: add debug command to print localapi curl command
2021-04-06 14:05:49 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
d717499ac4
ipn/localapi: add API for getting file targets
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-06 11:01:30 -07:00
Brad Fitzpatrick
2074dfa5e0
types/preftype: don't use iota for consts persisted to disk
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-02 09:02:54 -07:00
Brad Fitzpatrick
9b57cd53ba
ipn/ipnlocal: lazily connect to control, lazily generate machine key
...
Fixes #1573
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-02 08:21:40 -07:00
Brad Fitzpatrick
d50406f185
ipn/ipnlocal: simplify loadStateLocked control flow a bit, restore logging
...
The common Linux start-up path (fallback file defined but not
existing) was missing the log print of initializing Prefs. The code
was too twisty. Simplify a bit.
Updates #1573
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-02 07:56:07 -07:00
Brad Fitzpatrick
6266cf8e36
ipn/ipnlocal: fix peerapi6 port being report as 0 in netstack mode
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-01 22:04:46 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
2f60ab92dd
tailcfg: add Node.Capabilities, remove old stuff
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-01 15:09:08 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
c25ecddd1b
tailcfg: remove UserProfile.Roles field, add tests for legacy behavior
...
Old macOS clients required we populate this field to a non-null
value so we were unable to remove this field before.
Instead, keep the field but change its type to a custom empty struct
that can marshal/unmarshal JSON. And lock it in with a test.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-01 14:54:55 -07:00
Brad Fitzpatrick
e698973196
ipn/policy: mark peerapi4 and peerapi6 as interesting services
2021-04-01 11:57:24 -07:00
Brad Fitzpatrick
39b9ab3522
cmd/tailscaled: rename isUserspace to useNetstack
...
The bool was already called useNetstack at the caller.
isUserspace (to mean netstack) is confusing next to wgengine.NewUserspaceEngine, as that's
a different type of 'userspace'.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-01 11:18:03 -07:00
Brad Fitzpatrick
e64383a80e
wgengine/router: document some fields a bit more
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-01 07:50:50 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
53cfff109b
ipn: replace SetWantRunning(bool) with EditPrefs(MaskedPrefs)
...
This adds a new ipn.MaskedPrefs embedding a ipn.Prefs, along with a
bunch of "has bits", kept in sync with tests & reflect.
Then it adds a Prefs.ApplyEdits(MaskedPrefs) method.
Then the ipn.Backend interface loses its weirdo SetWantRunning(bool)
method (that I added in 483141094c for "tailscale down")
and replaces it with EditPrefs (alongside the existing SetPrefs for now).
Then updates 'tailscale down' to use EditPrefs instead of SetWantRunning.
In the future, we can use this to do more interesting things with the
CLI, reconfiguring only certain properties without the reset-the-world
"tailscale up".
Updates #1436
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-31 22:14:11 -07:00
Brad Fitzpatrick
4ed6b62c7a
ipn/ipnlocal: refactor to unindent a bit
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-31 16:03:23 -07:00
Brad Fitzpatrick
1f583a895e
ipn/ipnlocal: stop sending machine key to frontends
...
We were going to remove this in Tailscale 1.3 but forgot.
This means Tailscale 1.8 users won't be able to downgrade to Tailscale
1.0, but that's fine.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-31 15:51:51 -07:00
Brad Fitzpatrick
47363c95b0
go.mod: bump wireguard-go
2021-03-31 14:20:45 -07:00
Brad Fitzpatrick
c3bee0b722
ipn/ipnlocal: make peerapi work on iOS again
...
It didn't have a storage directory.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-31 14:09:06 -07:00
Brad Fitzpatrick
1bd14a072c
cmd/tailscale, ipn/localapi: move IP forwarding check to tailscaled, API
...
Instead of having the CLI check whether IP forwarding is enabled, ask
tailscaled. It has a better idea. If it's netstack, for instance, the
sysctl values don't matter. And it's possible that only the daemon has
permission to know.
Fixes #1626
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-31 12:09:16 -07:00
Brad Fitzpatrick
7f03c0f8fe
wgengine/wgcfg/nmcfg: reduce some logging when a /0 route skipped
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-31 09:51:55 -07:00
Brad Fitzpatrick
a998fe7c3d
control/controlclient: support lazy machine key generation
...
It's not done in the caller yet, but the controlclient does it now.
Updates #1573
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-31 08:52:57 -07:00
Brad Fitzpatrick
ddaacf0a57
control/controlclient: document a few things
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-31 08:26:05 -07:00
Brad Fitzpatrick
cf2beafbcd
ipn/ipnlocal: on Windows peerapi bind failures, try again on link change
...
Updates #1620
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-30 13:49:37 -07:00
Brad Fitzpatrick
a7be780155
go.mod, go.sum: bump wireguard-go
2021-03-30 13:05:23 -07:00
Brad Fitzpatrick
6d1a9017c9
ipn/{ipnlocal,localapi}, client/tailscale: add file get/delete APIs
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-30 12:56:51 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
672b9fd4bd
ipn{,/ipnlocal}: set new Notify.FilesWaiting when server has file(s)
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-30 11:36:12 -07:00
Brad Fitzpatrick
0301ccd275
cmd/tailscale/cli: add debug --ipn mode
...
To watch the IPN message bus.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-30 10:43:36 -07:00
Brad Fitzpatrick
f01091babe
ipn/ipnlocal: make peerapi work in netstack mode
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-30 09:55:01 -07:00
Brad Fitzpatrick
4c83bbf850
wgengine: add IsNetstack func and test
...
So we have a documented & tested way to check whether we're in
netstack mode. To be used by future commits.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-30 09:53:12 -07:00
Brad Fitzpatrick
91bc723817
wgengine: add temp workaround for netstack WhoIs registration race
...
Updates #1616
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-30 09:50:54 -07:00
Brad Fitzpatrick
33bc69cf1f
paths: fall back to XDG_DATA_HOME for non-root users' state dir
...
So peerapi has a default state directory, mostly for netstack mode
testing.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-30 08:21:14 -07:00
Brad Fitzpatrick
3a1eae5b6b
cmd/tailscale/cli: factor out filename selection
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-29 22:19:42 -07:00
Brad Fitzpatrick
1e26d4ae19
cmd/tailscale/cli: add push subcommand
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-29 22:06:57 -07:00
Brad Fitzpatrick
eeacf84dae
cmd/tailscale/cli: factor out tailscaleIPFromArg from ping command
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-29 21:29:27 -07:00
Brad Fitzpatrick
41e4e02e57
net/{packet,tstun}: send peerapi port in TSMP pongs
...
For discovery when an explicit hostname/IP is known. We'll still
also send it via control for finding peers by a list.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-29 15:18:23 -07:00
Brad Fitzpatrick
9659ab81e0
ipn/ipnlocal: send peerapi port(s) in Hostinfo.Services
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-29 12:51:19 -07:00
Brad Fitzpatrick
12ae2d73b3
control/controlclient: fix TS_DEBUG_MAP on requests
...
The concrete type being encoded changed from a value to pointer
earlier and this was never adjusted.
(People don't frequently use TS_DEBUG_MAP to see requests, so it went
unnoticed until now.)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-29 12:51:19 -07:00
Brad Fitzpatrick
35596ae5ce
ipn/ipnlocal: push down a user-specific root dir to peerapi handler
...
And add a put handler.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-29 11:33:35 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
a4c679e646
wgengine/monitor: on wall time jump, synthesize network change event
...
... to force rebinds of TCP connections
Fixes #1555
Updates tailscale/felicity#4
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-28 21:56:50 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
e18c3a7d84
wgengine: optimize isLocalAddr a bit
...
On macOS/iOS, this removes a map lookup per outgoing packet.
Noticed it while reading code, not from profiles, but can't hurt.
BenchmarkGenLocalAddrFunc
BenchmarkGenLocalAddrFunc/map1
BenchmarkGenLocalAddrFunc/map1-4 16184868 69.78 ns/op
BenchmarkGenLocalAddrFunc/map2
BenchmarkGenLocalAddrFunc/map2-4 16878140 70.73 ns/op
BenchmarkGenLocalAddrFunc/or1
BenchmarkGenLocalAddrFunc/or1-4 623055721 1.950 ns/op
BenchmarkGenLocalAddrFunc/or2
BenchmarkGenLocalAddrFunc/or2-4 472493098 2.589 ns/op
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-28 21:23:25 -07:00
Brad Fitzpatrick
f26dfd054a
ipn/ipnlocal: rename/document peerapi stuff a bit, pass self identity
...
So handlers can vary based on whether owner of peer matches owner of
local node.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-26 21:36:39 -07:00
Brad Fitzpatrick
1642dfdb07
ipn/ipnlocal: get peerapi ~working in macOS/iOS NetworkExtension sandbox
...
IPv4 and IPv6 both work remotely, but IPv6 doesn't yet work from the
machine itself due to routing mysteries.
Untested yet on iOS, but previous prototype worked on iOS, so should
work the same.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-26 13:46:01 -07:00
Brad Fitzpatrick
bcf571ec97
wgengine/monitor: fix OpenBSD build
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-26 09:16:43 -07:00
Brad Fitzpatrick
7f174e84e6
net/interfaces: remove mutating methods, add EqualFiltered instead
...
Now callers (wgengine/monitor) don't need to mutate the state to remove
boring interfaces before calling State.Equal. Instead, the methods
to remove boring interfaces from the State are removed, as is
the reflect-using Equal method itself, and in their place is
a new EqualFiltered method that takes a func predicate to match
interfaces to compare.
And then the FilterInteresting predicate is added for use
with EqualFiltered to do the job that that wgengine/monitor
previously wanted.
Now wgengine/monitor can keep the full interface state around,
including the "boring" interfaces, which we'll need for peerapi on
macOS/iOS to bind to the interface index of the utunN device.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-26 09:11:48 -07:00
Brad Fitzpatrick
5a62aa8047
ipn/ipnlocal: pass down interface state to peerapi ListenConfig hook
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-26 09:11:48 -07:00
Brad Fitzpatrick
7dc88e4c1e
net/interfaces: track more interface metadata in State
...
We have it already but threw it away. But macOS/iOS code will
be needing the interface index, so hang on to it.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-26 09:11:48 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
81143b6d9a
ipn/ipnlocal: start of peerapi between nodes
...
Also some necessary refactoring of the ipn/ipnstate too.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-25 16:00:35 -07:00
Brad Fitzpatrick
dad10fee9c
Revert "cmd/tailscaled: split package main into main shim + package"
...
This reverts commit b81bd8025b71f35295201d18011855c1cfae630e.
Not needed. See:
https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module
2021-03-25 09:06:00 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
82c4cb765c
cmd/tailscaled: split package main into main shim + package
...
So we can empty import the guts of cmd/tailscaled from another
module for go mod tidy reasons.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-24 21:23:00 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
b7f0e39bf2
cmd/tailscale: add "tailscale ip [-4] [-6]" command
...
This adds an easy and portable way for us to document how to get
your Tailscale IP address.
$ tailscale ip
100.74.70.3
fd7a:115c:a1e0:ab12:4843:cd96:624a:4603
$ tailscale ip -4
100.74.70.3
$ tailscale ip -6
fd7a:115c:a1e0:ab12:4843:cd96:624a:4603
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-24 09:54:32 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
2384c112c9
net/packet, wgengine/{filter,tstun}: add TSMP ping
...
Fixes #1467
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-24 09:50:01 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
c99f260e40
wgengine/magicsock: prefer IPv6 transport if roughly equivalent latency
...
Fixes #1566
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-23 17:34:01 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
e2b3d9aa5f
all: s/Magic DNS/MagicDNS/ for consistency
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-23 14:25:28 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
77ec80538a
syncs: add Semaphore
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-23 12:39:28 -07:00
Brad Fitzpatrick
9643d8b34d
wgengine/magicsock: add an addrLatency type to combine an IPPort+time.Duration
...
Updates #1566 (but no behavior changes as of this change)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-23 10:09:10 -07:00
Brad Fitzpatrick
96dfeb2d7f
wgengine: log tailscale pings
...
Fixes #1561
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-22 21:48:05 -07:00
Brad Fitzpatrick
85138d3183
health: track whether any network interface is up
...
Fixes #1562
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-22 21:42:14 -07:00
Brad Fitzpatrick
0994a9f7c4
wgengine{,/magicsock}: fix, improve "tailscale ping" to default routes and subnets
...
e.g.
$ tailscale ping 1.1.1.1
exit node found but not enabled
$ tailscale ping 10.2.200.2
node "tsbfvlan2" found, but not using its 10.2.200.0/24 route
$ sudo tailscale up --accept-routes
$ tailscale ping 10.2.200.2
pong from tsbfvlan2 (100.124.196.94) via 10.2.200.34:41641 in 1ms
$ tailscale ping mon.ts.tailscale.com
pong from monitoring (100.88.178.64) via DERP(sfo) in 83ms
pong from monitoring (100.88.178.64) via DERP(sfo) in 21ms
pong from monitoring (100.88.178.64) via [2604:a880:4:d1::37:d001]:41641 in 22ms
This necessarily moves code up from magicsock to wgengine, so we can
look at the actual wireguard config.
Fixes #1564
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-22 21:29:44 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
7e0d12e7cc
wgengine/magicsock: don't update control if only endpoint order changes
...
Updates #1559
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-22 10:37:04 -07:00
Brad Fitzpatrick
1eb95c7e32
net/packet, wgengine{,/filter}: remove net/packet IPProto forwarding consts
...
Only use the ones in types/ipproto now.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-20 21:45:47 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
01b90df2fa
net/packet, wgengine/filter: support SCTP
...
Add proto to flowtrack.Tuple.
Add types/ipproto leaf package to break a cycle.
Server-side ACL work remains.
Updates #1516
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-20 21:34:13 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
90a6fb7ffe
tailcfg: add FilterRule.IPProto
...
Updates #1516
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-19 18:08:23 -07:00
Brad Fitzpatrick
32562a82a9
wgengine/magicsock: annotate a few more disco logs as verbose
...
Fixes #1540
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-19 13:24:29 -07:00
Brad Fitzpatrick
0406a7436a
cmd/tailscale/cli: use double hypens, make default usage func more clear
...
Mash up some code from ffcli and std's flag package to make a default
usage func that's super explicit for those not familiar with the Go
style flags. Only show double hyphens in usage text (but still accept both),
and show default values, and only show the proper usage of boolean flags.
Fixes #1353
Fixes #1529
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-19 13:11:55 -07:00
Brad Fitzpatrick and Brad Fitzpatrick
0a02aaf813
control, ipn, tailcfg: remove golang.org/x/oauth2 dep, add tailcfg.Oauth2Token
...
golang.org/x/oauth2 pulls in App Engine and grpc module dependencies,
screwing up builds that depend on this module.
Some background on the problem:
https://go.googlesource.com/proposal/+/master/design/36460-lazy-module-loading.md
Fixes tailscale/corp#1471
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-19 10:40:48 -07:00
Brad Fitzpatrick
439d70dce2
cmd/tailscale, ipn/localapi: get daemon version from localapi status
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-18 21:14:10 -07:00
Brad Fitzpatrick
d0dffe33c0
cmd/tailscale, ipn/localapi: use localapi for status, not IPN acrobatics
...
Yay simpler code.
Tested on Linux, macOS and Windows.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-18 19:51:02 -07:00
Brad Fitzpatrick
0c3e9722cc
cmd/tailscale/cli: fix typo in comment
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-18 15:43:04 -07:00
Brad Fitzpatrick
c19ed37b0f
wgengine/magicsock: mark some legacy debug log output as verbose
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-18 08:17:59 -07:00