Brad Fitzpatrick
3e4c46259d
wgengine/magicsock: don't do netchecks either when network is down
...
A continuation of 6ee219a25d
Updates #640
2020-10-06 20:24:10 -07:00
Brad Fitzpatrick
6ee219a25d
ipn, wgengine, magicsock, tsdns: be quieter and less aggressive when offline
...
If no interfaces are up, calm down and stop spamming so much. It was
noticed as especially bad on Windows, but probably was bad
everywhere. I just have the best network conditions testing on a
Windows VM.
Updates #604
2020-10-06 15:26:53 -07:00
David Crawshaw
7616acd118
tailcfg: add Clone method for RegisterResponse
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-10-06 14:06:11 -04:00
David Crawshaw
15297a3a09
control/controlclient: some extra debug info in errors
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-10-06 14:06:11 -04:00
Brad Fitzpatrick
587bdc4280
ipn, wgengine: disable subnet routes if network has PAC configuration
...
Not configurable yet.
Updates tailscale/corp#653
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-10-05 21:04:23 -07:00
Josh Bleecher Snyder
a5103a4cae
all: upgrade to latest version of depaware
2020-10-02 20:35:13 -07:00
Josh Bleecher Snyder
585a0d8997
all: use testing.T.TempDir
...
Bit of Friday cleanup.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-10-02 20:31:31 -07:00
Brad Fitzpatrick
ed5d5f920f
net/interfaces: add interfaces.State.String method
2020-10-02 12:15:05 -07:00
Josh Bleecher Snyder
9784cae23b
util/uniq: add new package
...
This makes it easy to compact slices that contain duplicate elements
by sorting and then uniqing.
This is an alternative to constructing an intermediate map
and then extracting elements from it. It also provides
more control over equality than using a map key does.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-10-02 11:00:56 -07:00
Brad Fitzpatrick
12e28aa87d
ipn: on transition from no PAC to PAC, reset state
...
So previous routes aren't shadowing resources that the operating
system might need (Windows Domain Controller, DNS server, corp HTTP
proxy, WinHTTP fetching the PAC file itself, etc).
This effectively detects when we're transitioning from, say, public
wifi to corp wifi and makes Tailscale remove all its routes and stops
its TCP connections and tries connecting to everything anew.
Updates tailscale/corp#653
2020-10-01 22:03:25 -07:00
Brad Fitzpatrick
cab3eb995f
net/interfaces: quiet PAC detection logging in no-PAC case, add benchmark
2020-10-01 22:02:39 -07:00
Josh Bleecher Snyder
38dda1ea9e
all: update depaware.txt
...
Broken by 8051ecff55
.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-10-01 16:35:32 -07:00
Brad Fitzpatrick
8051ecff55
net/interfaces: add State.PAC field, populate it on Windows
...
Not used for anything yet (except logging), but populate the current
proxy autoconfig PAC URL in Interfaces.State.
A future change will do things based on it.
2020-10-01 15:33:37 -07:00
Brad Fitzpatrick
b5a3850d29
control/controlclient, ipn: store machine key separately from user prefs/persist
...
Updates #610 (fixes after some win/xcode changes in a separate repo)
2020-10-01 14:30:20 -07:00
Josh Bleecher Snyder
e1596d655a
tstest: skip resource check when test has failed
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-10-01 11:27:22 -07:00
Josh Bleecher Snyder
ce6aca13f0
tailcfg: add yet another IsZero method
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-30 17:55:12 -07:00
Josh Bleecher Snyder
070dfa0c3d
tailcfg: add more IsZero methods
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-30 17:47:07 -07:00
Josh Bleecher Snyder
efb08e4fee
all: use IsZero methods
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-30 17:13:41 -07:00
Brad Fitzpatrick
c8f257df00
Revert "all: keep UserProfiles a slice instead of a map for longer"
...
This reverts commit e5894aba42
.
Breaks macOS/iOS build. Reverting per chat with Josh; he'll fix later today.
2020-09-30 08:43:31 -07:00
Brad Fitzpatrick
90b7293b3b
ipn: add/move some constants, update a comment
...
And make the StateStore implementations be Stringers, for error messages.
2020-09-29 20:53:32 -07:00
Josh Bleecher Snyder
1fecf87363
control/controlclient: use wgcfg.PrivateKey.IsZero
...
Generated by eg using template:
---
package p
import "github.com/tailscale/wireguard-go/wgcfg"
func before(k wgcfg.PrivateKey) bool { return k == wgcfg.PrivateKey{} }
func after(k wgcfg.PrivateKey) bool { return k.IsZero() }
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-29 17:50:40 -07:00
Josh Bleecher Snyder
2b8d2babfa
tailcfg: add IsZero methods to UserID and NodeID
...
These will be helpful for doing some automated refactoring.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-29 17:38:56 -07:00
Josh Bleecher Snyder
e5894aba42
all: keep UserProfiles a slice instead of a map for longer
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-29 11:36:35 -07:00
Josh Bleecher Snyder
4d4ca2e496
control/controlclient: remove Roles fields from client
...
They are unused.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-29 11:36:35 -07:00
David Anderson
c493e5804f
wgengine/router: make v6-ness configurable in test, for consistent results.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-09-28 23:47:05 +00:00
Josh Bleecher Snyder
d3701417fc
tailcfg: fix typo in comment
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-28 14:44:34 -07:00
Brad Fitzpatrick
c86761cfd1
Remove tuntap references. We only use TUN.
2020-09-25 13:13:13 -07:00
Brad Fitzpatrick
8b94a769be
cmd/tailscaled: use the standard flag page instead of getopt
...
Per discussion with @crawshaw. The CLI tool already used std flag anyway.
If either of them, it would've made more sense for the CLI to use getopt.
2020-09-25 13:12:10 -07:00
Brad Fitzpatrick
94a68a113b
go.sum: tidy
2020-09-25 12:44:46 -07:00
Brad Fitzpatrick
01098f41d0
wgengine/tstun: fix typo in comment
2020-09-25 12:24:44 -07:00
Brad Fitzpatrick
73cc2d8f89
wgengine/filter: also silently drop link-local unicast traffic
...
Updates #629
2020-09-25 11:47:38 -07:00
Brad Fitzpatrick
5f807c389e
wgengine/filter: drop multicast packets out, don't log about them
...
Eventually we'll probably support multicast. For now it's just log spam.
Fixes #629
2020-09-25 11:27:57 -07:00
Brad Fitzpatrick
bbb56f2303
wgengine/router: fix tests on Debian Buster as regular user on machine with IPv6
2020-09-25 11:27:57 -07:00
David Anderson
fddbcb0c7b
wgengine/router: support various degrees of broken IPv6.
...
Gracefully skips touching the v6 NAT table on systems that don't have
it, and doesn't configure IPv6 at all if IPv6 is globally disabled.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-09-24 18:37:00 -07:00
David Anderson
0d80904fc2
wgengine/router: set up basic IPv6 routing/firewalling.
...
Part of #19 .
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-09-24 18:37:00 -07:00
Josh Bleecher Snyder
f0ef561049
wgengine/tsdns: use netns to obtain a socket
...
Fixes #789
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-24 15:48:40 -07:00
Josh Bleecher Snyder
6e8328cba5
wgengine/tsdns: replace connections when net link changes (macOS)
...
When the network link changes, existing UDP sockets fail immediately
and permanently on macOS.
The forwarder set up a single UDP conn and never changed it.
As a result, any time there was a network link change,
all forwarded DNS queries failed.
To fix this, create a new connection when send requests
fail because of network unreachability.
This change is darwin-only, although extended it to other platforms
should be straightforward.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-24 15:31:27 -07:00
Josh Bleecher Snyder
1fd10061fd
wgengine/tsdns: delegate bonjour service rdns requests
...
While we're here, parseQuery into a plain function.
This is helpful for fuzzing. (Which I did a bit of. Didn't find anything.)
And clean up a few minor things.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-24 12:26:12 -07:00
Brad Fitzpatrick
2d0ed99672
wgengine, wgengine/router: add a bunch of (temporary?) engine creation logging
...
Trying to debug what's slow on a user's machine.
Updates #785
2020-09-23 15:27:30 -07:00
Brad Fitzpatrick
7c11f71ac5
wgengine/router: ignore errors deleting 169.254.255.255/32 route on Windows
...
Updates #785
2020-09-23 14:01:00 -07:00
David Anderson
b7e0ff598a
wgengine: don't close tundev in NewUserspaceEngine.
...
newUserspaceEngineAdvanced closes the tun device on error already.
Fixes #783 .
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-09-23 19:55:34 +00:00
Brad Fitzpatrick
a601a760ba
version: add Windows MAJOR,MINOR,BUILD,REVISON value
...
Updates #778
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-09-22 20:34:57 -07:00
Brad Fitzpatrick
8893c2ee78
net/interfaces, net/netns: move default route interface code to interfaces
...
To populate interfaces.State.DefaultRouteInterface.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-09-22 19:02:17 -07:00
Brad Fitzpatrick
fda9dc8815
net/netns: document Windows socket binding a bit more
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-09-22 13:05:26 -07:00
Brad Fitzpatrick
5d8b88be88
control/controlclient, version/distro, wgengine: recognize OpenWrt
...
And help out with missing packages.
Thanks to @willangley for tips.
Updates #724
2020-09-22 10:28:40 -07:00
Brad Fitzpatrick
ec95e901e6
go.sum: update
2020-09-22 10:27:21 -07:00
Brad Fitzpatrick
3528d28ed1
wgengine/router: move Tailscale's winipcfg additions into wgengine/router
...
Part of unforking our winipcfg-go and using upstream (#760 ), move our
additions into our repo. (We might upstream them later if upstream has
interest)
Originally these were:
@apenwarr: "Add ifc.SyncAddresses() and SyncRoutes()."
609dcf2df5
@bradfitz: "winipcfg: make Interface.AddRoutes do as much as possible, return combined error"
e9f93d53f3
@bradfitz: "prevent unnecessary Interface.SyncAddresses work; normalize IPNets in deltaNets"
decb9ee8e1
2020-09-22 09:24:10 -07:00
Brad Fitzpatrick
56a787fff8
go.mod, go.sum: bump wireguard-go
2020-09-21 15:22:56 -07:00
Brad Fitzpatrick
fb03c60c9e
version: bump date
2020-09-21 15:21:05 -07:00
Brad Fitzpatrick
963b927d5b
net/tshttpproxy: appease staticcheck
2020-09-21 15:01:30 -07:00