mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-25 19:15:34 +00:00
wgengine/router: don't configure IPv6 on Linux when IPv6 is unavailable
Fixes #1214 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
de497358b8
commit
c7fc4a06da
@ -366,7 +366,9 @@ func (r *linuxRouter) setNetfilterMode(mode NetfilterMode) error {
|
|||||||
// address is already assigned to the interface, or if the addition
|
// address is already assigned to the interface, or if the addition
|
||||||
// fails.
|
// fails.
|
||||||
func (r *linuxRouter) addAddress(addr netaddr.IPPrefix) error {
|
func (r *linuxRouter) addAddress(addr netaddr.IPPrefix) error {
|
||||||
|
if !r.v6Available && addr.IP.Is6() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
if err := r.cmd.run("ip", "addr", "add", addr.String(), "dev", r.tunname); err != nil {
|
if err := r.cmd.run("ip", "addr", "add", addr.String(), "dev", r.tunname); err != nil {
|
||||||
return fmt.Errorf("adding address %q to tunnel interface: %w", addr, err)
|
return fmt.Errorf("adding address %q to tunnel interface: %w", addr, err)
|
||||||
}
|
}
|
||||||
@ -380,6 +382,9 @@ func (r *linuxRouter) addAddress(addr netaddr.IPPrefix) error {
|
|||||||
// the address is not assigned to the interface, or if the removal
|
// the address is not assigned to the interface, or if the removal
|
||||||
// fails.
|
// fails.
|
||||||
func (r *linuxRouter) delAddress(addr netaddr.IPPrefix) error {
|
func (r *linuxRouter) delAddress(addr netaddr.IPPrefix) error {
|
||||||
|
if !r.v6Available && addr.IP.Is6() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
if err := r.delLoopbackRule(addr.IP); err != nil {
|
if err := r.delLoopbackRule(addr.IP); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -437,6 +442,9 @@ func (r *linuxRouter) delLoopbackRule(addr netaddr.IP) error {
|
|||||||
// interface. Fails if the route already exists, or if adding the
|
// interface. Fails if the route already exists, or if adding the
|
||||||
// route fails.
|
// route fails.
|
||||||
func (r *linuxRouter) addRoute(cidr netaddr.IPPrefix) error {
|
func (r *linuxRouter) addRoute(cidr netaddr.IPPrefix) error {
|
||||||
|
if !r.v6Available && cidr.IP.Is6() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
args := []string{
|
args := []string{
|
||||||
"ip", "route", "add",
|
"ip", "route", "add",
|
||||||
normalizeCIDR(cidr),
|
normalizeCIDR(cidr),
|
||||||
@ -452,6 +460,9 @@ func (r *linuxRouter) addRoute(cidr netaddr.IPPrefix) error {
|
|||||||
// interface. Fails if the route doesn't exist, or if removing the
|
// interface. Fails if the route doesn't exist, or if removing the
|
||||||
// route fails.
|
// route fails.
|
||||||
func (r *linuxRouter) delRoute(cidr netaddr.IPPrefix) error {
|
func (r *linuxRouter) delRoute(cidr netaddr.IPPrefix) error {
|
||||||
|
if !r.v6Available && cidr.IP.Is6() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
args := []string{
|
args := []string{
|
||||||
"ip", "route", "del",
|
"ip", "route", "del",
|
||||||
normalizeCIDR(cidr),
|
normalizeCIDR(cidr),
|
||||||
|
Loading…
Reference in New Issue
Block a user