mirror of
https://github.com/tailscale/tailscale.git
synced 2025-10-28 05:00:08 +00:00
net/ace, control/controlhttp: start adding ACE dialing support
Updates tailscale/corp#32227 Change-Id: I38afc668f99eb1d6f7632e82554b82922f3ebb9f Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
b9cda4bca5
commit
ecfdd86fc9
@@ -842,6 +842,7 @@ tailscale.com/cmd/k8s-operator dependencies: (generated by github.com/tailscale/
|
||||
tailscale.com/logtail/backoff from tailscale.com/control/controlclient+
|
||||
tailscale.com/logtail/filch from tailscale.com/log/sockstatlog+
|
||||
tailscale.com/metrics from tailscale.com/derp+
|
||||
tailscale.com/net/ace from tailscale.com/control/controlhttp
|
||||
tailscale.com/net/bakedroots from tailscale.com/net/tlsdial+
|
||||
💣 tailscale.com/net/batching from tailscale.com/wgengine/magicsock
|
||||
tailscale.com/net/captivedetection from tailscale.com/ipn/ipnlocal+
|
||||
|
||||
@@ -35,6 +35,7 @@ import (
|
||||
"tailscale.com/hostinfo"
|
||||
"tailscale.com/internal/noiseconn"
|
||||
"tailscale.com/ipn"
|
||||
"tailscale.com/net/ace"
|
||||
"tailscale.com/net/netmon"
|
||||
"tailscale.com/net/tsaddr"
|
||||
"tailscale.com/net/tshttpproxy"
|
||||
@@ -287,6 +288,7 @@ func debugCmd() *ffcli.Command {
|
||||
fs.StringVar(&ts2021Args.host, "host", "controlplane.tailscale.com", "hostname of control plane")
|
||||
fs.IntVar(&ts2021Args.version, "version", int(tailcfg.CurrentCapabilityVersion), "protocol version")
|
||||
fs.BoolVar(&ts2021Args.verbose, "verbose", false, "be extra verbose")
|
||||
fs.StringVar(&ts2021Args.aceHost, "ace", "", "if non-empty, use this ACE server IP/hostname as a candidate path")
|
||||
return fs
|
||||
})(),
|
||||
},
|
||||
@@ -964,6 +966,7 @@ var ts2021Args struct {
|
||||
host string // "controlplane.tailscale.com"
|
||||
version int // 27 or whatever
|
||||
verbose bool
|
||||
aceHost string // if non-empty, FQDN of https ACE server to use ("ace.example.com")
|
||||
}
|
||||
|
||||
func runTS2021(ctx context.Context, args []string) error {
|
||||
@@ -972,6 +975,13 @@ func runTS2021(ctx context.Context, args []string) error {
|
||||
|
||||
keysURL := "https://" + ts2021Args.host + "/key?v=" + strconv.Itoa(ts2021Args.version)
|
||||
|
||||
keyTransport := http.DefaultTransport.(*http.Transport).Clone()
|
||||
if ts2021Args.aceHost != "" {
|
||||
log.Printf("using ACE server %q", ts2021Args.aceHost)
|
||||
keyTransport.Proxy = nil
|
||||
keyTransport.DialContext = (&ace.Dialer{ACEHost: ts2021Args.aceHost}).Dial
|
||||
}
|
||||
|
||||
if ts2021Args.verbose {
|
||||
u, err := url.Parse(keysURL)
|
||||
if err != nil {
|
||||
@@ -997,7 +1007,7 @@ func runTS2021(ctx context.Context, args []string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
res, err := http.DefaultClient.Do(req)
|
||||
res, err := keyTransport.RoundTrip(req)
|
||||
if err != nil {
|
||||
log.Printf("Do: %v", err)
|
||||
return err
|
||||
@@ -1052,6 +1062,16 @@ func runTS2021(ctx context.Context, args []string) error {
|
||||
Logf: logf,
|
||||
NetMon: netMon,
|
||||
}
|
||||
if ts2021Args.aceHost != "" {
|
||||
noiseDialer.DialPlan = &tailcfg.ControlDialPlan{
|
||||
Candidates: []tailcfg.ControlIPCandidate{
|
||||
{
|
||||
ACEHost: ts2021Args.aceHost,
|
||||
DialTimeoutSec: 10,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
const tries = 2
|
||||
for i := range tries {
|
||||
err := tryConnect(ctx, keys.PublicKey, noiseDialer)
|
||||
|
||||
@@ -120,6 +120,7 @@ tailscale.com/cmd/tailscale dependencies: (generated by github.com/tailscale/dep
|
||||
tailscale.com/kube/kubetypes from tailscale.com/envknob
|
||||
tailscale.com/licenses from tailscale.com/client/web+
|
||||
tailscale.com/metrics from tailscale.com/derp+
|
||||
tailscale.com/net/ace from tailscale.com/cmd/tailscale/cli+
|
||||
tailscale.com/net/bakedroots from tailscale.com/net/tlsdial
|
||||
tailscale.com/net/captivedetection from tailscale.com/net/netcheck
|
||||
tailscale.com/net/dnscache from tailscale.com/control/controlhttp+
|
||||
|
||||
@@ -314,6 +314,7 @@ tailscale.com/cmd/tailscaled dependencies: (generated by github.com/tailscale/de
|
||||
tailscale.com/logtail/backoff from tailscale.com/cmd/tailscaled+
|
||||
tailscale.com/logtail/filch from tailscale.com/log/sockstatlog+
|
||||
tailscale.com/metrics from tailscale.com/derp+
|
||||
tailscale.com/net/ace from tailscale.com/control/controlhttp
|
||||
tailscale.com/net/bakedroots from tailscale.com/net/tlsdial+
|
||||
💣 tailscale.com/net/batching from tailscale.com/wgengine/magicsock+
|
||||
tailscale.com/net/captivedetection from tailscale.com/ipn/ipnlocal+
|
||||
|
||||
@@ -273,6 +273,7 @@ tailscale.com/cmd/tsidp dependencies: (generated by github.com/tailscale/depawar
|
||||
tailscale.com/logtail/backoff from tailscale.com/control/controlclient+
|
||||
tailscale.com/logtail/filch from tailscale.com/log/sockstatlog+
|
||||
tailscale.com/metrics from tailscale.com/derp+
|
||||
tailscale.com/net/ace from tailscale.com/control/controlhttp
|
||||
tailscale.com/net/bakedroots from tailscale.com/ipn/ipnlocal+
|
||||
💣 tailscale.com/net/batching from tailscale.com/wgengine/magicsock
|
||||
tailscale.com/net/captivedetection from tailscale.com/ipn/ipnlocal+
|
||||
|
||||
Reference in New Issue
Block a user