You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/cmd/tailscale/cli
James Tucker 8d1249550a net/netcheck,wgengine/magicsock: add potential workaround for Palo Alto DIPP misbehavior
Palo Alto firewalls have a typically hard NAT, but also have a mode
called Persistent DIPP that is supposed to provide consistent port
mapping suitable for STUN resolution of public ports. Persistent DIPP
works initially on most Palo Alto firewalls, but some models/software
versions have a bug which this works around.

The bug symptom presents as follows:

- STUN sessions resolve a consistent public IP:port to start with
- Much later netchecks report the same IP:Port for a subset of
  sessions, most often the users active DERP, and/or the port related
  to sustained traffic.
- The broader set of DERPs in a full netcheck will now consistently
  observe a new IP:Port.
- After this point of observation, new inbound connections will only
  succeed to the new IP:Port observed, and existing/old sessions will
  only work to the old binding.

In this patch we now advertise the lowest latency global endpoint
discovered as we always have, but in addition any global endpoints that
are observed more than once in a single netcheck report. This should
provide viable endpoints for potential connection establishment across
a NAT with this behavior.

Updates tailscale/corp#19106

Signed-off-by: James Tucker <james@tailscale.com>
2 years ago
..
ffcomplete cmd/tailscale/cli/ffcomplete: remove fullstop from ShortHelp 2 years ago
bugreport.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
cert.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
cli.go cmd/tailscale/cli: set localClient.UseSocketOnly during flag parsing 2 years ago
cli_test.go ipn/ipnlocal: set default NoStatefulFiltering in ipn.NewPrefs (#12031) 2 years ago
configure-kube.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
configure-kube_test.go cmd/tailscale/cli: fix configuring partially empty kubeconfig (#11417) 2 years ago
configure-synology-cert.go cmd/tailscale/cli: Add CLI command to update certs on Synology devices. 2 years ago
configure-synology-cert_test.go cmd/tailscale/cli: Add CLI command to update certs on Synology devices. 2 years ago
configure-synology.go cmd/tailscale: add shell tab-completion 2 years ago
configure.go cmd/tailscale/cli: fix "subcommand required" errors when typod 2 years ago
debug.go cmd/tailscale: add shell tab-completion 2 years ago
diag.go various: add detection and Taildrop for Unraid 3 years ago
diag_other.go all: update copyright and license headers 3 years ago
down.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
drive.go cmd/tailscale: clarify Taildrive grants in help text 2 years ago
exitnode.go cmd/tailscale/cli: fix "subcommand required" errors when typod 2 years ago
exitnode_test.go cli: introduce exit-node subcommand to list and filter exit nodes 2 years ago
file.go cmd/tailscale: add shell tab-completion 2 years ago
funnel.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
id-token.go cmd/tailscale: add shell tab-completion 2 years ago
ip.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
licenses.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
login.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
logout.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
nc.go cmd/tailscale: add shell tab-completion 2 years ago
netcheck.go net/netcheck,wgengine/magicsock: add potential workaround for Palo Alto DIPP misbehavior 2 years ago
network-lock.go cmd/tailscale/cli: prepend "tailscale" to usage errors 2 years ago
ping.go cmd/tailscale: add shell tab-completion 2 years ago
risks.go util/testenv: add new package to hold InTest 2 years ago
serve_legacy.go all: use Go 1.22 range-over-int 2 years ago
serve_legacy_test.go cmd/tailscale/cli: stop spamming os.Stdout/os.Stderr in tests 2 years ago
serve_v2.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
serve_v2_test.go {ipn/serve,cmd/tailscale/cli}: move some shared funcs to ipn 2 years ago
set.go cmd/tailscale: add missing set flags for linux 2 years ago
set_test.go all: update copyright and license headers 3 years ago
ssh.go cmd/tailscale/cli: set localClient.UseSocketOnly during flag parsing 2 years ago
ssh_exec.go all: update copyright and license headers 3 years ago
ssh_exec_js.go all: update copyright and license headers 3 years ago
ssh_exec_windows.go all: update copyright and license headers 3 years ago
ssh_unix.go types/logger, cmd/tailscale/cli: flesh out, simplify some non-unix build tags 2 years ago
status.go net/{interfaces,netmon}, all: merge net/interfaces package into net/netmon 2 years ago
switch.go cmd/tailscale: add shell tab-completion 2 years ago
up.go cmd/tailscale: add missing set flags for linux 2 years ago
update.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
version.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
web.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago
web_test.go client/web: extract web client from cli package 2 years ago
whois.go cmd/tailscale/cli: prefix all --help usages with "tailscale ...", some tidying 2 years ago