mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-21 23:53:14 +01:00
Add dummy ipv6 to macos interface (#2025)
This commit is contained in:
parent
91fa2e20a0
commit
e71059d245
@ -43,11 +43,6 @@ func routeCmd(action string, prefix netip.Prefix, nexthop netip.Addr, intf *net.
|
|||||||
}
|
}
|
||||||
if prefix.Addr().Is6() {
|
if prefix.Addr().Is6() {
|
||||||
inet = "-inet6"
|
inet = "-inet6"
|
||||||
// Special case for IPv6 split default route, pointing to the wg interface fails
|
|
||||||
// TODO: Remove once we have IPv6 support on the interface
|
|
||||||
if prefix.Bits() == 1 {
|
|
||||||
intf = &net.Interface{Name: "lo0"}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
args := []string{"-n", action, inet, network}
|
args := []string{"-n", action, inet, network}
|
||||||
|
@ -3,6 +3,7 @@ package iface
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
"net/netip"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -79,8 +80,19 @@ func TestWGIface_UpdateAddr(t *testing.T) {
|
|||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, addr, addrs[0].String())
|
var found bool
|
||||||
|
for _, a := range addrs {
|
||||||
|
prefix, err := netip.ParsePrefix(a.String())
|
||||||
|
assert.NoError(t, err)
|
||||||
|
if prefix.Addr().Is4() {
|
||||||
|
found = true
|
||||||
|
assert.Equal(t, addr, prefix.String())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !found {
|
||||||
|
t.Fatal("v4 address not found")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getIfaceAddrs(ifaceName string) ([]net.Addr, error) {
|
func getIfaceAddrs(ifaceName string) ([]net.Addr, error) {
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
//go:build !ios
|
//go:build !ios
|
||||||
// +build !ios
|
|
||||||
|
|
||||||
package iface
|
package iface
|
||||||
|
|
||||||
@ -121,13 +120,19 @@ func (t *tunDevice) Wrapper() *DeviceWrapper {
|
|||||||
func (t *tunDevice) assignAddr() error {
|
func (t *tunDevice) assignAddr() error {
|
||||||
cmd := exec.Command("ifconfig", t.name, "inet", t.address.IP.String(), t.address.IP.String())
|
cmd := exec.Command("ifconfig", t.name, "inet", t.address.IP.String(), t.address.IP.String())
|
||||||
if out, err := cmd.CombinedOutput(); err != nil {
|
if out, err := cmd.CombinedOutput(); err != nil {
|
||||||
log.Infof(`adding address command "%v" failed with output %s and error: `, cmd.String(), out)
|
log.Errorf("adding address command '%v' failed with output: %s", cmd.String(), out)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// dummy ipv6 so routing works
|
||||||
|
cmd = exec.Command("ifconfig", t.name, "inet6", "fe80::/64")
|
||||||
|
if out, err := cmd.CombinedOutput(); err != nil {
|
||||||
|
log.Debugf("adding address command '%v' failed with output: %s", cmd.String(), out)
|
||||||
|
}
|
||||||
|
|
||||||
routeCmd := exec.Command("route", "add", "-net", t.address.Network.String(), "-interface", t.name)
|
routeCmd := exec.Command("route", "add", "-net", t.address.Network.String(), "-interface", t.name)
|
||||||
if out, err := routeCmd.CombinedOutput(); err != nil {
|
if out, err := routeCmd.CombinedOutput(); err != nil {
|
||||||
log.Printf(`adding route command "%v" failed with output %s and error: `, routeCmd.String(), out)
|
log.Errorf("adding route command '%v' failed with output: %s", routeCmd.String(), out)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user