Josh Bleecher Snyder
400e89367c
tailcfg: restore Role field to MapResponse
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-10-09 12:07:32 -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
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
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
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
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
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
Josh Bleecher Snyder
4cc0ed67f9
tailcfg: add MachineKey.IsZero
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-21 12:19:59 -07:00
Brad Fitzpatrick
904a91038a
tailcfg: add MapRequest.ReadOnly and OmitPeers; remove DebugForceDisco
...
DebugForceDisco was a development & safety knob during the the transition
to discovery. It's no longer needed.
Add MapRequest.ReadOnly to prevent clients needing to do two
peer-spamming MapRequest at start-up.
This only adds the field, not the use of the field. (The control server
needs to support it first.)
Updates tailscale/corp#557
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-09-17 12:07:49 -07:00
Josh Bleecher Snyder
96160973ce
tailcfg: regenerate Clone methods
...
cmd/cloner has changed. Regenerate.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-09-04 16:25:18 -07:00
David Crawshaw
95cddfcc75
tailcfg: add Clone methods to Login and DNSConfig
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-09-04 07:48:45 -04:00
Dmytro Shynkevych
a903d6c2ed
tailcfg, tsdns: derive root domains from list of nodes ( #708 )
...
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com>
2020-08-24 17:27:21 -04:00
David Crawshaw
9e2e8c80af
tailcfg: more Clone methods
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-08-21 08:38:08 -04:00
Brad Fitzpatrick
9337a99dff
tailcfg, wgengine, controlclient: add control-side gating of lazy WG config
2020-08-20 13:21:25 -07:00
Brad Fitzpatrick
f6dc47efe4
tailcfg, controlclient, magicsock: add control feature flag to enable DRPO
...
Updates #150
2020-08-17 13:01:39 -07:00
Ross Zurowski
3e2bfe48c3
derpmap: add full region name
...
We're beginning to reference DERP region names in the admin UI, so it's
best to consolidate this information in our DERP map.
Signed-off-by: Ross Zurowski <ross@rosszurowski.com>
2020-08-14 15:57:11 -04:00
Brad Fitzpatrick
1f7a7a4ffe
tailcfg: add missing Node.DERP check in Node.Equals
...
Updates tailscale/corp#549
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-08-10 19:46:22 -07:00
Brad Fitzpatrick
696020227c
tailcfg, control/controlclient: support delta-encoded netmaps
...
Should greatly reduce bandwidth for large networks (including our
hello.ipn.dev node).
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-08-07 21:49:49 -07:00
Dmytro Shynkevych
28e52a0492
all: dns refactor, add Proxied and PerDomain flags from control ( #615 )
...
Signed-off-by: Dmytro Shynkevych <dmytro@tailscale.com>
2020-07-31 16:27:09 -04:00
Brad Fitzpatrick
cd21ba0a71
tailcfg, control/controlclient: add GoArch, populate OSVersion on Linux
2020-07-27 21:14:28 -07:00
Brad Fitzpatrick
ec4feaf31c
cmd/cloner, tailcfg: fix nil vs len 0 issues, add tests, use for Hostinfo
...
Also use go:generate and https://golang.org/s/generatedcode header style.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-07-27 14:11:41 -07:00
David Crawshaw
990e2f1ae9
tailcfg: generate some Clone methods
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-07-27 11:08:09 +10:00
Brad Fitzpatrick
48fc9026e9
tailcfg: optimize Node.Equal allocs a bit
...
Noticed while working on something else.
2020-07-23 10:47:49 -07:00
Brad Fitzpatrick
ca2428ecaf
tailcfg: add Hostinfo.OSVersion, DeviceModel
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-07-20 16:10:06 -07:00
Brad Fitzpatrick
6c74065053
wgengine/magicsock, tstest/natlab: start hooking up natlab to magicsock
...
Also adds ephemeral port support to natlab.
Work in progress.
Pairing with @danderson.
2020-07-10 14:32:58 -07:00
Brad Fitzpatrick
0d481030f3
tailcfg: use ? for portmap summary to match netcheck
2020-07-07 18:54:50 -07:00
Brad Fitzpatrick
5c6d8e3053
netcheck, tailcfg, interfaces, magicsock: survey UPnP, NAT-PMP, PCP
...
Don't do anything with UPnP, NAT-PMP, PCP yet, but see how common they
are in the wild.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-07-06 15:25:35 -07:00
Brad Fitzpatrick
c9089c82e8
control/controlclient, tailcfg: turn active route discovery on by default
...
Updates #483
2020-07-03 13:55:33 -07:00
Brad Fitzpatrick
0f0ed3dca0
wgengine/magicsock: clean up discovery logging
...
Updates #483
2020-07-02 10:48:13 -07:00
Brad Fitzpatrick
23e74a0f7a
wgengine, magicsock, tstun: don't regularly STUN when idle (mobile only for now)
...
If there's been 5 minutes of inactivity, stop doing STUN lookups. That
means NAT mappings will expire, but they can resume later when there's
activity again.
We'll do this for all platforms later.
Updates tailscale/corp#320
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-06-25 19:14:24 -07:00
Brad Fitzpatrick
53fb25fc2f
all: generate discovery key, plumb it around
...
Not actually used yet.
Updates #483
2020-06-19 12:12:00 -07:00
Brad Fitzpatrick
88c305c8af
tailcfg: add DiscoKey, unify some code, add some tests
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-06-19 09:22:34 -07:00
Brad Fitzpatrick
8edcab04d5
log/logheap: change to POST to a URL instead of logging
...
It's too big to log.
2020-06-12 10:13:08 -07:00
Brad Fitzpatrick
51f421946f
tailcfg: add some example strings in comments
2020-06-12 08:17:31 -07:00
Brad Fitzpatrick
096d7a50ff
tailcfg: remove unused, unimplemented DERPNode.CertFingerprint for now
2020-05-30 20:44:18 -07:00
Brad Fitzpatrick
703d789005
tailcfg: add MapResponse.Debug mechanism to trigger logging heap pprof
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-05-25 15:22:13 -07:00
Brad Fitzpatrick
e6b84f2159
all: make client use server-provided DERP map, add DERP region support
...
Instead of hard-coding the DERP map (except for cmd/tailscale netcheck
for now), get it from the control server at runtime.
And make the DERP map support multiple nodes per region with clients
picking the first one that's available. (The server will balance the
order presented to clients for load balancing)
This deletes the stunner package, merging it into the netcheck package
instead, to minimize all the config hooks that would've been
required.
Also fix some test flakes & races.
Fixes #387 (Don't hard-code the DERP map)
Updates #388 (Add DERP region support)
Fixes #399 (wgengine: flaky tests)
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-05-23 22:31:59 -07:00
Wendi Yu
bb55694c95
wgengine: log node IDs when peers are added/removed ( #381 )
...
Also stop logging data sent/received from nodes we're not connected to (ie all those `x`s being logged in the `peers: ` line)
Signed-off-by: Wendi <wendi.yu@yahoo.ca>
2020-05-15 14:13:44 -06:00
Brad Fitzpatrick
cff53c6e6d
tailcfg: add DERP map structures
...
Updates #387
Updates #388
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-05-14 21:09:54 -07:00
Brad Fitzpatrick
fefd7e10dc
types/structs: add structs.Incomparable annotation, use it where applicable
...
Shotizam before and output queries:
sqlite> select sum(size) from bin where func like 'type..%';
129067
=>
120216
2020-05-03 14:05:32 -07:00
Avery Pennarun
9d1f48032a
cmd/tailscale: add --advertise-tags option.
...
These will be used for dynamically changing the identity of a node, so
its ACL rights can be different from your own.
Note: Not all implemented yet on the server side, but we need this so
we can request the tagged rights in the first place.
Signed-off-by: Avery Pennarun <apenwarr@tailscale.com>
2020-05-01 01:32:24 -04:00
Avery Pennarun
65fbb9c303
wgengine/filter: support subnet mask rules, not just /32 IPs.
...
This depends on improved support from the control server, to send the
new subnet width (Bits) fields. If these are missing, we fall back to
assuming their value is /32.
Conversely, if the server sends Bits fields to an older client, it will
interpret them as /32 addresses. Since the only rules we allow are
"accept" rules, this will be narrower or equal to the intended rule, so
older clients will simply reject hosts on the wider subnet (fail
closed).
With this change, the internal filter.Matches format has diverged
from the wire format used by controlclient, so move the wire format
into tailcfg and convert it to filter.Matches in controlclient.
Signed-off-by: Avery Pennarun <apenwarr@tailscale.com>
2020-04-30 04:56:43 -04:00
David Crawshaw
22a0acff39
tailcfg: add auth key to RegisterRequest
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-04-09 20:17:09 +10:00
Brad Fitzpatrick
c6aa5b639f
tailcfg: clarify Hostinfo.OS doc
2020-04-01 09:27:35 -07:00
David Crawshaw
e60b433831
tailcfg: NetInfo.String: handle nil object without panicing
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-23 13:34:33 +11:00
Brad Fitzpatrick
f9cc4e8f53
tailcfg: restore MapRequest.IncludeIPv6 bool
...
Partially restores 0be475ba46
2020-03-20 08:13:47 -07:00
David Anderson
0be475ba46
Revert "tailcfg, controlclient, magicsock: request IPv6 endpoints, but ignore them"
...
Breaks something deep in wireguard or magicsock's brainstem, no packets at all
can flow. All received packets fail decryption with "invalid mac1".
This reverts commit 94024355ed
.
Signed-off-by: David Anderson <dave@natulte.net>
2020-03-20 03:26:17 -07:00
Brad Fitzpatrick
94024355ed
tailcfg, controlclient, magicsock: request IPv6 endpoints, but ignore them
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-19 21:01:52 -07:00
Brad Fitzpatrick
b1d5548fa7
tailcfg: make NodeKey.IsZero have a value receiver
2020-03-19 20:00:32 -07:00
Brad Fitzpatrick
073bb8de80
control/controlclient: don't use Node as value type
2020-03-19 13:19:02 -07:00
David Crawshaw
73cae4eb11
tailcfg, controlclient: standardize on wgcfg ShortString key printing
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-19 09:17:34 +11:00
Brad Fitzpatrick
e085aec8ef
all: update to wireguard-go API changes
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-17 08:53:05 -07:00
David Crawshaw
290f83e9f6
tailcfg: fix test
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-03-14 11:03:00 -05:00
David Crawshaw
7a57ab1793
tailcfg: add a per-peer KeepAlive field
2020-03-14 10:56:52 -05:00
Avery Pennarun
7dd63abaed
tailcfg.NetInfo: add a .String() renderer.
...
For pretty printing purposes in logs.
2020-03-13 01:29:47 -04: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
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
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
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
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
David Crawshaw
a23a0d9c9f
tailcfg: add RegisterRequest.Copy
...
Add some docs while I'm here.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-02-18 06:45:56 -05:00
David Anderson
47da432991
ipn: handle advertised routes provided by frontend.
...
Signed-off-by: David Anderson <dave@natulte.net>
2020-02-17 20:47:45 -08:00
Brad Fitzpatrick
769e25e37b
derp: use new types/key package
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-17 13:29:49 -08:00
wardn
09fbae01a9
tailcfg: don't panic on node equal check
...
Signed-off-by: wardn <wardn@users.noreply.github.com>
2020-02-17 09:26:39 -08:00
Earl Lee
a8d8b8719a
Move Linux client & common packages into a public repo.
2020-02-09 09:32:57 -08:00