wgengine/router: disable IPv6 if v6 policy routing is unavailable.
Fixes #895.
Signed-off-by: David Anderson <danderson@tailscale.com>
(cherry picked from commit a664aac877
)
release-branch/1.2
parent
e29f92f653
commit
c242540a97
|
@ -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…
Reference in New Issue