wgengine/router: disable IPv6 if v6 policy routing is unavailable.

Fixes #895.

Signed-off-by: David Anderson <danderson@tailscale.com>
pull/922/head
David Anderson 4 years ago committed by Dave Anderson
parent a2d78b4d3e
commit a664aac877

@ -1023,6 +1023,20 @@ func supportsV6() bool {
return false
}
// Older kernels don't support IPv6 policy routing.
bs, err = ioutil.ReadFile("/proc/sys/net/ipv6/conf/all/disable_policy")
if err != nil {
// Absent knob means policy routing is unsupported.
return false
}
disabled, err = strconv.ParseBool(strings.TrimSpace(string(bs)))
if err != nil {
return false
}
if disabled {
return false
}
// Some distros ship ip6tables separately from iptables.
if _, err := exec.LookPath("ip6tables"); err != nil {
return false

Loading…
Cancel
Save