tailscale/net
Tom DNetto c8f4dfc8c0 derp/derphttp,net/netcheck: improve netcheck behavior under MITM proxies
In cases where tailscale is operating behind a MITM proxy, we need to consider
that a lot more of the internals of our HTTP requests are visible and may be
used as part of authorization checks. As such, we need to 'behave' as closely
as possible to ideal.

 - Some proxies do authorization or consistency checks based the on Host header
   or HTTP URI, instead of just the IP/hostname/SNI. As such, we need to
   construct a `*http.Request` with a valid URI everytime HTTP is going to be
   used on the wire, even if its over TLS.
   Aside from the singular instance in net/netcheck, I couldn't find anywhere
   else a http.Request was constructed incorrectly.

 - Some proxies may deny requests, typically by returning a 403 status code. We
   should not consider these requests as a valid latency check, so netcheck
   semantics have been updated to consider >299 status codes as a failed probe.

Signed-off-by: Tom DNetto <tom@tailscale.com>
2022-04-19 12:47:57 -07:00
..
dns net/dns: schedule DoH upgrade explicitly, fix Resolver.Addr confusion 2022-04-19 12:00:22 -07:00
dnscache net/dns/resolver: make DoH dialer use existing dnscache happy eyeball dialer 2022-04-18 13:18:39 -07:00
dnsfallback net/dnsfallback: update from 'go generate' 2022-04-17 10:06:09 -07:00
flowtrack all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
interfaces net/interfaces: add FreeBSD default route lookup (portmapping, etc) 2022-03-08 13:02:02 -08:00
netcheck derp/derphttp,net/netcheck: improve netcheck behavior under MITM proxies 2022-04-19 12:47:57 -07:00
neterror net/{neterror,dns/resolver}: move PacketWasTruncated to neterror from DNS code 2022-01-03 14:03:30 -08:00
netknob all: disable TCP keep-alives on iOS/Android 2021-09-28 12:03:18 -07:00
netns net/netns: remove a useless probe of the "ip" command 2022-01-11 17:47:06 -08:00
netstat all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
nettest net/nettest: deflake TestPipeTimeout 2021-11-30 12:21:59 -08:00
netutil net/netutil: add CheckIPForwardingLinux (#4301) 2022-03-28 10:24:11 -07:00
packet net/packet, wgengine/netstack: remove workaround for old gvisor ECN bug 2022-03-26 21:24:24 -07:00
portmapper all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
proxymux net/proxymux: add a listener mux that can run SOCKS and HTTP on a single socket. 2021-11-29 16:49:48 -08:00
socks5 all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
speedtest all: fix spelling mistakes 2021-10-12 21:23:14 -07:00
stun all: gofmt with Go 1.17 2021-08-05 15:54:00 -07:00
tlsdial envknob: add new package for all the strconv.ParseBool(os.Getenv(..)) 2022-01-24 11:51:23 -08:00
tsaddr net/tsaddr, wgengine/netstack: add IPv6 range that forwards to site-relative IPv4 2022-04-11 17:26:07 -07:00
tsdial cmd/tailscale: write fewer known_hosts, resolve ssh host to FQDN early 2022-03-25 15:17:27 -07:00
tshttpproxy net/tshttpproxy: ensure we pass the correct flags to WinHttpOpen on Win7 and Win8.0 2022-03-18 11:05:02 -06:00
tstun wgengine: inject packetbuffers rather than bytes (#4220) 2022-03-21 14:58:43 -07:00