Maisem Ali
72d8672ef7
tailcfg: make Node.Hostinfo a HostinfoView
...
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2022-02-16 12:55:57 -08:00
Maisem Ali
53998e26a6
tailcfg: introduce HostinfoView
...
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2022-02-16 12:55:57 -08:00
Brad Fitzpatrick
57115e923e
tailcfg: add start of SSH policy to be sent from control plane to nodes
...
Updates #3802
Change-Id: Iec58f35d445aaa267d0f7e7e2f30c049c1df4c0e
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-02-15 16:05:42 -08:00
Brad Fitzpatrick
a7da236d3d
tailcfg: no-op bump of MapRequest.Version
...
So 1.18 and 1.20 don't have the same.
Change-Id: Ib2cac7c11eb37d9a0c2fcb66630f1cae619a97f4
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2022-01-12 15:20:52 -08:00
Brad Fitzpatrick
bc537adb1a
tailcfg: add Hostinfo.HowUnequal method
...
Change-Id: I80ee49c2ab581feccc4aa6ab47bc3c8392d9989d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-12-23 09:04:53 -08:00
Brad Fitzpatrick
b811a316bc
tailcfg, ipn/ipnlocal: advertise a Service when exit node DNS proxy available
...
Updates #1713
Change-Id: I20c8e2ad1062d82ef17363414e372133f4c7181e
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-11-29 21:57:06 -08:00
Brad Fitzpatrick
135580a5a8
tailcfg, ipn/ipnlocal, net/dns: forward exit node DNS on Unix to system DNS
...
Updates #1713
Change-Id: I4c073fec0992d9e01a9a4ce97087d5af0efdc68d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-11-29 15:25:41 -08:00
David Anderson
0532eb30db
all: replace tailcfg.DiscoKey with key.DiscoPublic.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-11-03 14:00:16 -07:00
David Anderson
17b5782b3a
types/key: delete legacy NodeKey type.
...
Fixes #3206
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-11-02 14:14:32 -07:00
David Anderson
7e6a1ef4f1
tailcfg: use key.NodePublic in wire protocol types.
...
Updates #3206 .
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-11-02 09:11:43 -07:00
Brad Fitzpatrick
ff597e773e
tailcfg, control/controlclient: add method to exit client from control plane
...
Change-Id: Ic28ef283ba63396b68fab86bfb0a8ee8f432474c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-11-01 11:59:04 -07:00
David Anderson
0fcc88873b
tailcfg: remove NodeKeyFromNodePublic.
...
Updates #3206
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-10-29 16:35:32 -07:00
David Anderson
ff16e58d23
tailcfg: move NodeKey type to types/key.
...
This leaves behind a type alias and associated constructor, to allow
for gradual switchover.
Updates #3206 .
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-10-29 16:04:45 -07:00
David Anderson
15d329b4fa
tailcfg: add marshaling round-tripping test.
...
Temporary until #3206 goes away, but having changed the marshal/unmarshal
implementation I got nervous about the new one doing the correct thing.
Thankfully, the test says it does.
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-10-29 15:21:41 -07:00
David Anderson
2486d7cb9b
tailcfg: remove use of legacy key parsing helper.
...
Updates #3206 .
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-10-29 14:48:07 -07:00
David Anderson
ef241f782e
wgengine/magicsock: remove uses of tailcfg.DiscoKey.
...
Updates #3206
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-10-29 14:31:44 -07:00
David Anderson
ebae0d95d0
Revert "Revert "tailcfg: remove reference to types/key.Public.""
...
Updates #3206
This reverts commit ef14663934 .
2021-10-29 09:38:44 -07:00
David Anderson
ef14663934
Revert "tailcfg: remove reference to types/key.Public."
...
Breaks corp unit tests.
Updates #3206
This reverts commit 94f6257fde .
2021-10-28 19:00:29 -07:00
David Anderson
94f6257fde
tailcfg: remove reference to types/key.Public.
...
Updates #3206
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-10-28 16:16:38 -07:00
Brad Fitzpatrick
7b87c04861
tailcfg: add RegisterRequest.Ephemeral to request new ephemeral node
...
So js/wasm clients can log in for a bit using regular Gmail/GitHub auth
without using an ephemeral key but still have their node cleaned up
when they're done.
Updates #3157
Change-Id: I49e3d14e9d355a9b8bff0ea810b0016bfe8d47f2
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-10-28 10:05:36 -07:00
David Anderson
bc89a796ec
types/key: add a dedicated type for node keys.
...
Complete with converters to all the other types that represent a
node key today, so the new type can gradually subsume old ones.
Updates #3206
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-10-28 09:16:39 -07:00
Maisem Ali
81cabf48ec
control/controlclient,tailcfg: propagate registration errors to the frontend
...
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2021-10-27 06:57:26 -07:00
Maisem Ali
10745c099a
tailcfg: add Node.Tags
...
Signed-off-by: Maisem Ali <maisem@tailscale.com >
2021-10-25 22:04:45 -07:00
Brad Fitzpatrick
aae622314e
tailcfg, health: add way for control plane to add problems to health check
...
So if the control plane knows that something's broken about the node, it can
include problem(s) in MapResponse and "tailscale status" will show it.
(and GUIs in the future, as it's in ipnstate.Status/JSON)
This also bumps the MapRequest.Version, though it's not strictly
required. Doesn't hurt.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-09-19 17:55:49 -07:00
Adrian Dewhurst
4da559d7cc
control/controlclient: update machine certificate signature version
...
This iterates on the original signature format.
Signed-off-by: Adrian Dewhurst <adrian@tailscale.com >
2021-09-17 17:43:06 -04:00
Brad Fitzpatrick
3e2a7de2e9
tailcfg: don't panic on clone of nil RegisterRequest
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-09-14 09:10:29 -07:00
Dave Anderson
980acc38ba
types/key: add a special key with custom serialization for control private keys ( #2792 )
...
* Revert "Revert "types/key: add MachinePrivate and MachinePublic.""
This reverts commit 61c3b98a24 .
Signed-off-by: David Anderson <danderson@tailscale.com >
* types/key: add ControlPrivate, with custom serialization.
ControlPrivate is just a MachinePrivate that serializes differently
in JSON, to be compatible with how the Tailscale control plane
historically serialized its private key.
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-09-03 13:17:46 -07:00
David Anderson
61c3b98a24
Revert "types/key: add MachinePrivate and MachinePublic."
...
Broke the tailscale control plane due to surprise different serialization.
This reverts commit 4fdb88efe1 .
2021-09-03 11:34:34 -07:00
David Anderson
4fdb88efe1
types/key: add MachinePrivate and MachinePublic.
...
Plumb throughout the codebase as a replacement for the mixed use of
tailcfg.MachineKey and wgkey.Private/Public.
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-09-03 10:07:15 -07:00
Brad Fitzpatrick
88bd796622
tailcfg,ipn/ipnlocal: support DNSConfig.Routes with empty values [mapver 23]
...
Fixes #2706
Updates #1235
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-08-25 11:35:48 -07:00
Brad Fitzpatrick
47045265b9
hostinfo: add SetDeviceModel setter, move remaining code from controlclient
...
Updates tailscale/corp#1959
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-08-20 10:45:22 -07:00
Simeng He
e199e407d2
tailcfg: add IP and Types field to PingRequest
...
Signed-off-by: Simeng He <simeng@tailscale.com >
2021-08-18 12:23:24 -04:00
David Crawshaw
360223fccb
types/dnstype: introduce new package for Resolver
...
So the type can be used in net/dns without introducing a tailcfg
dependency.
For #2596
Signed-off-by: David Crawshaw <crawshaw@tailscale.com >
2021-08-06 08:54:33 -07:00
Brad Fitzpatrick
d8d9036dbb
tailcfg: add Node.PrimaryRoutes
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-07-27 12:09:40 -07:00
julianknodt
1bb6abc604
net/portmapper: add upnp port mapping
...
Add in UPnP portmapping, using goupnp library in order to get the UPnP client and run the
portmapping functions. This rips out anywhere where UPnP used to be in portmapping, and has a
flow separate from PMP and PCP.
RELNOTE=portmapper now supports UPnP mappings
Fixes #682
Updates #2109
Signed-off-by: julianknodt <julianknodt@gmail.com >
2021-07-15 15:22:12 -07:00
julianknodt
0f18801716
cmd/cloner: support maps with clone ptrs
...
In order to clone DERPMaps, it was necessary to extend the cloner so that it supports
nested pointers inside of maps which are also cloneable. This also adds cloning for DERPRegions
and DERPNodes because they are on DERPMap's maps.
Signed-off-by: julianknodt <julianknodt@gmail.com >
2021-06-22 22:11:38 -07:00
Brad Fitzpatrick
bb363095a5
tailcfg: add Debug.RandomizeClientPort
...
Not yet used.
Updates #2187
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-06-22 12:07:53 -07:00
Brad Fitzpatrick
0debb99f08
tailcfg: add DNSConfig.ExtraRecords
...
Updates #1748
Updates #1235
Updates #2055
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-06-16 15:52:21 -07:00
Brad Fitzpatrick
cd282ec00f
tailcfg: add DNSConfig.CertDomains
...
Updates #1235
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-06-15 14:05:46 -07:00
Brad Fitzpatrick
333e9e75d4
tailcfg, control/controlclient: clarify more, enforce PingRequest.URL is unique
...
Updates #2079
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-06-15 12:28:34 -07:00
Brad Fitzpatrick
80a4052593
cmd/tailscale, wgengine, tailcfg: don't assume LastSeen is present [mapver 20]
...
Updates #2107
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-06-11 08:41:16 -07:00
Brad Fitzpatrick
9794be375d
tailcfg: add SetDNSRequest type
...
Updates #1235
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-06-01 20:05:01 -07:00
Brad Fitzpatrick
e66d4e4c81
tailcfg, types/wgkey: add AppendTo methods on some types
...
Add MarshalText-like appending variants. Like:
https://pkg.go.dev/inet.af/netaddr#IP.AppendTo
To be used by @josharian's pending deephash optimizations.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-05-24 15:09:57 -07:00
Josh Bleecher Snyder
ceb568202b
tailcfg: optimize keyMarshalText
...
This function accounted for ~1% of all allocs by tailscaled.
It is trivial to improve, so may as well.
name old time/op new time/op delta
KeyMarshalText-8 197ns ± 0% 47ns ± 0% -76.12% (p=0.016 n=4+5)
name old alloc/op new alloc/op delta
KeyMarshalText-8 200B ± 0% 80B ± 0% -60.00% (p=0.008 n=5+5)
name old allocs/op new allocs/op delta
KeyMarshalText-8 5.00 ± 0% 1.00 ± 0% -80.00% (p=0.008 n=5+5)
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-05-07 18:50:10 -07:00
Josh Bleecher Snyder
462f7e38fc
tailcfg: fix typo in comment
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-05-06 12:44:22 -07:00
Brad Fitzpatrick
6f52fa02a3
control/controlclient, tailcfg: add Debug.SleepSeconds (mapver 19)
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-21 22:05:41 -07:00
David Anderson
1e5c608fae
ipn/ipnlocal: plumb fallback DNS in as a workaround for split DNS issues.
...
Cause of #1743 .
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-20 12:49:48 -07:00
David Anderson
28ba20d733
tailcfg: add FallbackResolvers to DNSConfig.
...
Signed-off-by: David Anderson <danderson@tailscale.com >
2021-04-20 12:49:48 -07:00
Brad Fitzpatrick
e9d24341e0
tailcfg, control/controlclient: accept nil MapResponse.Node (mapver 18)
...
All MapResponse fields can not be omitted and are tagged "omitempty".
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-19 11:53:21 -07:00
Brad Fitzpatrick
3739cf22b0
tailcfg, control/controlclient: allow empty MapResponse.Domain (mapver17)
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-04-19 09:31:21 -07:00