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/ipn/ipnlocal
Anton Tolchanov 8cc5c51888 health: warn about reverse path filtering and exit nodes
When reverse path filtering is in strict mode on Linux, using an exit
node blocks all network connectivity. This change adds a warning about
this to `tailscale status` and the logs.

Example in `tailscale status`:

```
- not connected to home DERP region 22
- The following issues on your machine will likely make usage of exit nodes impossible: [interface "eth0" has strict reverse-path filtering enabled], please set rp_filter=2 instead of rp_filter=1; see https://github.com/tailscale/tailscale/issues/3310
```

Example in the logs:
```
2024/02/21 21:17:07 health("overall"): error: multiple errors:
	not in map poll
	The following issues on your machine will likely make usage of exit nodes impossible: [interface "eth0" has strict reverse-path filtering enabled], please set rp_filter=2 instead of rp_filter=1; see https://github.com/tailscale/tailscale/issues/3310
```

Updates #3310

Signed-off-by: Anton Tolchanov <anton@tailscale.com>
9 months ago
..
testdata
breaktcp_darwin.go cmd/tailscale: add debug commands to break connections 1 year ago
breaktcp_linux.go cmd/tailscale: add debug commands to break connections 1 year ago
c2n.go ipn: apply tailnet-wide default for auto-updates (#10508) 12 months ago
c2n_pprof.go tailcfg: move LogHeapPprof from Debug to c2n [capver 69] 1 year ago
c2n_test.go util/cmpx: delete now that we're using Go 1.22 10 months ago
cert.go ipn/ipnlocal: remove ancient transition mechanism for https certs 10 months ago
cert_js.go ipn/ipnlocal: add c2n method to check on TLS cert fetch status 1 year ago
cert_test.go all: use Go 1.21 slices, maps instead of x/exp/{slices,maps} 1 year ago
dnsconfig_test.go util/cmpx: delete now that we're using Go 1.22 10 months ago
expiry.go ssh/tailssh: use control server time instead of local time 1 year ago
expiry_test.go types/netmap, all: make NetworkMap.SelfNode a tailcfg.NodeView 1 year ago
local.go health: warn about reverse path filtering and exit nodes 9 months ago
local_test.go tailfs: initial implementation 10 months ago
loglines_test.go
network-lock.go all: remove LenIter, use Go 1.22 range-over-int instead 9 months ago
network-lock_test.go ipn/ipnlocal,cmd/tailscale: persist tailnet name in user profile 1 year ago
peerapi.go ipn/ipnlocal: fix doctor API endpoint (#11155) 10 months ago
peerapi_h2c.go
peerapi_macios_ext.go
peerapi_test.go appc,ipn/ipnlocal: add app connector routes if any part of a CNAME chain is routed 10 months ago
profiles.go util/cmpx: remove code that's in the stdlib now 12 months ago
profiles_notwindows.go
profiles_test.go ipn/ipnlocal,cmd/tailscale: persist tailnet name in user profile 1 year ago
profiles_windows.go ipn/ipnlocal: better enforce system policies 12 months ago
serve.go all: remove LenIter, use Go 1.22 range-over-int instead 9 months ago
serve_test.go util/cmpx: delete now that we're using Go 1.22 10 months ago
ssh.go ipnlocal: log failure to get ssh host keys 10 months ago
ssh_stub.go ipnlocal: log failure to get ssh host keys 10 months ago
ssh_test.go
state_test.go tailcfg: remove UserProfile.Groups 10 months ago
tailfs.go tailfs: listen for local clients only on 100.100.100.100 10 months ago
tailfs_test.go tailfs: initial implementation 10 months ago
web_client.go all: remove LenIter, use Go 1.22 range-over-int instead 9 months ago
web_client_stub.go ipn/ipnlocal: add mutex to webClient struct 1 year ago