mirror of
https://github.com/gravitl/netmaker.git
synced 2026-02-19 04:14:56 +08:00
commit
9e3f544842
1 changed files with 10 additions and 3 deletions
|
|
@ -94,7 +94,14 @@ func initWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
|||
|
||||
if ncutils.IsKernel() {
|
||||
logger.Log(2, "setting kernel device", ifacename)
|
||||
setKernelDevice(ifacename, node.Address)
|
||||
network, err := GetNetwork(node.Network)
|
||||
if err != nil {
|
||||
logger.Log(0, "failed to get network"+err.Error())
|
||||
return err
|
||||
}
|
||||
net := strings.Split(network.AddressRange, "/")
|
||||
mask := net[len(net)-1]
|
||||
setKernelDevice(ifacename, node.Address, mask)
|
||||
}
|
||||
|
||||
nodeport := int(node.ListenPort)
|
||||
|
|
@ -184,7 +191,7 @@ func initWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
|||
return err
|
||||
}
|
||||
|
||||
func setKernelDevice(ifacename string, address string) error {
|
||||
func setKernelDevice(ifacename, address, mask string) error {
|
||||
ipExec, err := exec.LookPath("ip")
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -193,7 +200,7 @@ func setKernelDevice(ifacename string, address string) error {
|
|||
// == best effort ==
|
||||
ncutils.RunCmd("ip link delete dev "+ifacename, false)
|
||||
ncutils.RunCmd(ipExec+" link add dev "+ifacename+" type wireguard", true)
|
||||
ncutils.RunCmd(ipExec+" address add dev "+ifacename+" "+address+"/24", true) // this is a bug waiting to happen
|
||||
ncutils.RunCmd(ipExec+" address add dev "+ifacename+" "+address+"/"+mask, true) // this was a bug waiting to happen
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue