David Anderson
6e52633c53
net/packet: record allocations in benchmark.
2020-11-10 02:19:55 -08:00
David Anderson
093431f5dd
net/packet: s/ParsedPacket/Parsed/ to avoid package stuttering.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-11-09 23:52:54 -08:00
David Anderson
427bf2134f
net/packet: rename from wgengine/packet.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-11-09 16:25:24 -08:00
Brad Fitzpatrick
1036f51a56
net/tshttpproxy: aggressively rate-limit error logs in Transport.Proxy path
...
Otherwise log upload HTTP requests generate proxy errrors which
generate logs which generate HTTP requests which generate proxy
errors which generate more logs, etc.
Fixes #879
2020-11-03 09:23:57 -08:00
Brad Fitzpatrick
7ac91c15bd
net/netcheck: fix tests on Windows
...
Updates #50
2020-10-28 09:10:35 -07:00
Brad Fitzpatrick
fd2a30cd32
wgengine/magicsock: make test pass on Windows and without firewall dialog box
...
Updates #50
2020-10-28 09:02:08 -07:00
David Anderson
5c35c35e7f
tsaddr: add helpers for the Tailscale IPv6 range, and 4to6 conversion.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-10-15 15:15:24 -07:00
Brad Fitzpatrick
551e1e99e9
net/netns: don't bind to device for localhost connections
...
Fixes derphttp test failures on Windows (for #50 ).
2020-10-13 15:24:07 -07:00
Alex Brainman
f2ce64f0c6
wgengine/router: unfork winipcfg-go package, use upstream
...
Use golang.zx2c4.com/wireguard/windows/tunnel/winipcfg
instead of github.com/tailscale/winipcfg-go package.
Updates #760
Signed-off-by: Alex Brainman <alex.brainman@gmail.com>
2020-10-13 09:21:22 -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
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
Brad Fitzpatrick
ed5d5f920f
net/interfaces: add interfaces.State.String method
2020-10-02 12:15:05 -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
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
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
963b927d5b
net/tshttpproxy: appease staticcheck
2020-09-21 15:01:30 -07:00
Brad Fitzpatrick
5bcac4eaac
net/tshttpproxy: add GetProxyForURL negative cache
...
Otherwise when PAC server is down, we log, and each log entry is a new
HTTP request (from logtail) and a new GetProxyForURL call, which again
logs, non-stop. This is also nicer to the WinHTTP service.
Then also hook up link change notifications to the cache to reset it
if there's a chance the network might work sooner.
2020-09-21 14:05:28 -07:00
David Anderson
8f5b52e571
net/netns: add windows support.
...
Also remove rebinding logic from the windows router. Magicsock will
instead rebind based on link change signals.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-09-14 16:28:49 -07:00
Brad Fitzpatrick
40e12c17ec
net/netcheck: remove mistaken double Mutex.Unlock in error path
...
Thanks to @dotaheor for noticing.
Fixes #751
2020-09-11 07:55:49 -07:00
Brad Fitzpatrick
f65eb4e5c1
net/netstat: start of new netstat package, with Windows for now
...
This will be used in a future change to do localhost connection
authentication. This lets us quickly map a localhost TCP connection to
a PID. (A future change will then map a pid to a user)
TODO: pull portlist's netstat code into this package. Then portlist
will be fast on Windows without requiring shelling out to netstat.exe.
2020-09-10 15:24:49 -07:00
Brad Fitzpatrick
9c25968b63
net/tshttpproxy: fix typo in Windows code added at least second
...
I ran tests & vet & staticcheck, but for Linux, not Windows.
(#728 would be nice)
2020-09-02 21:25:38 -07:00
Brad Fitzpatrick
b026a638c7
net/tshttpproxy: if winhttp.GetProxyForURL blocks too long, use previous value
...
We currently have a chickend-and-egg situation in some environments
where we can set up routes that WinHTTP's WPAD/PAC resolution service
needs to download the PAC file to evaluate GetProxyForURL, but the PAC
file is behind a route for which we need to call GetProxyForURL to
e.g. dial a DERP server.
As a short-term fix, just assume that the most recently returned proxy
is good enough for such situations.
2020-09-02 21:15:36 -07:00
Brad Fitzpatrick
74ee374667
net/tshttpproxy: add more winhttp logging
...
Notably around duration of calls.
2020-08-28 21:37:49 -07:00
Brad Fitzpatrick
1e0be5a458
tshttp, derphttp: send Proxy-Authorization, not Authorization, to proxies
...
Whoops. But weirdly, sending Authorization sometimes worked?
2020-08-28 21:01:00 -07:00
Brad Fitzpatrick
2bac125cad
net/tshttpproxy: move the TS_DEBUG_FAKE_PROXY_AUTH knob up a level
2020-08-27 08:17:57 -07:00
Brad Fitzpatrick
28f9cd06f5
tshttpproxy, controlclient, derphttp, logpolicy: send Negotiate auth to proxies
...
For Windows only, and only when built with Tailscale's Go tree.
Updates tailscale/corp#583
2020-08-26 20:08:05 -07:00
Brad Fitzpatrick
f915ab6552
net/tshttpproxy: add start of Kerberos Negotiate auth to proxies on Windows
...
For now only used by a new cmd/tailscale debug --get-url
subcommand. Not yet wired up to the places making HTTP requests.
Updates tailscale/corp#583
2020-08-25 13:49:06 -07:00
renthraysk
10cad39abd
net/stun: Fix STUN attribute padding ( #710 )
...
net/stun: fix STUN attribute padding
Signed-off-by: RenThraysk <renthraysk@gmail.com>
2020-08-24 12:52:13 -07:00
Brad Fitzpatrick
9be1917c5b
net/tshttpproxy: discard secondary Windows proxies for now
2020-08-24 09:21:33 -07:00
Brad Fitzpatrick
1e562886f5
net/netcheck: in verbose mode, probe all regions
...
So 'tailscale netcheck --verbose' shows all regions' latencies.
2020-08-19 20:47:17 -07:00
Brad Fitzpatrick
c5eb57f4d6
net/tshttpproxy: new package, support WPAD/PAC proxies on Windows
...
Updates tailscale/corp#553
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-08-18 15:40:56 -07:00
Brad Fitzpatrick
dbb4c246fa
wgengine/monitor: add Windows linkchange monitor
...
Updates tailscale/corp#553
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-08-13 07:39:26 -07:00
Brad Fitzpatrick
b97aac1718
net/interfaces: include DefaultRouteInterface in interfaces.State
...
And log it in wgengine on change. Changing bug in #643 .
Updates #643
2020-08-12 12:48:34 -07:00
Josh Bleecher Snyder
a9b1e3f9e8
net/interfaces: remove old debug old
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-08-10 14:28:16 -07:00
Brad Fitzpatrick
25b021388b
net/netns, net/interfaces: move defaultRouteInterface, add Android fallback
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-08-10 13:02:47 -07:00
Josh Bleecher Snyder
a16a793605
net/interfaces: use syscalls to find private gateway IP address
...
iOS doesn't let you run subprocesses,
which means we can't use netstat to get routing information.
Instead, use syscalls and grub around in the results.
We keep the old netstat version around,
both for use in non-cgo builds,
and for use testing the syscall-based version.
Note that iOS doesn't ship route.h,
so we include a copy here from the macOS 10.15 SDK
(which is itself unchanged from the 10.14 SDK).
I have tested manually that this yields the correct
gateway IP address on my own macOS and iOS devices.
More coverage would be most welcome.
Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
2020-08-04 15:45:56 -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
c253d4f948
net/interfaces: don't try to fork on iOS in likelyHomeRouterIPDarwin
...
No subprocesses allowed on iOS. Will need to do this differently later.
2020-07-31 10:35:15 -07:00
Brad Fitzpatrick
33a748bec1
net/interfaces: fix likelyHomeRouterIP on Android
2020-07-28 09:12:04 -07:00
David Anderson
a2b4ad839b
net/netcheck: lower the hairpin check timeout to 100ms.
...
This single check is the long pole for netcheck, and significantly slows down magicsock
tests.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-07-27 14:09:54 -07:00
David Anderson
25288567ec
net/netcheck: centralize all clock values in one place.
...
This makes it easier to see how long a netcheck might take, and what
the slow bits might be.
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-07-27 14:09:54 -07:00
David Anderson
d60917c0f1
wgengine/router: switch packet marks to avoid conflict with Weave Net.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-07-22 01:24:46 +00:00
Brad Fitzpatrick
10ac066013
all: fix vet warnings
2020-07-16 08:39:38 -07:00
Brad Fitzpatrick
723b9eecb0
net/interfaces: set SysProcAttr.HideWindow to prevent cmd.exe flash on Windows
2020-07-15 12:43:48 -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
ecf5d69c7c
net/netcheck: add missing comment asked for in earlier code review
2020-07-08 15:26:56 -07:00
Brad Fitzpatrick
742b8b44a8
net/tsaddr: new package to hold Tailscale-specific IPs/ranges
...
And update existing callers with (near) duplicated cases.
2020-07-06 22:33:29 -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
32156330a8
net/interfaces: add func LikelyHomeRouterIP
...
For discovering where we might direct NAT-PMP/PCP/UPnP queries at in
the future.
2020-07-06 10:38:00 -07:00