|
@@ -11,6 +11,7 @@ import (
|
|
|
|
|
|
"github.com/gravitl/netmaker/logger"
|
|
"github.com/gravitl/netmaker/logger"
|
|
"github.com/gravitl/netmaker/models"
|
|
"github.com/gravitl/netmaker/models"
|
|
|
|
+ "github.com/gravitl/netmaker/netclient/local"
|
|
"github.com/gravitl/netmaker/netclient/ncutils"
|
|
"github.com/gravitl/netmaker/netclient/ncutils"
|
|
"github.com/gravitl/netmaker/netclient/wireguard"
|
|
"github.com/gravitl/netmaker/netclient/wireguard"
|
|
"golang.zx2c4.com/wireguard/wgctrl"
|
|
"golang.zx2c4.com/wireguard/wgctrl"
|
|
@@ -257,6 +258,10 @@ func initWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
|
wireguard.SetPeers(ifacename, node, peers)
|
|
wireguard.SetPeers(ifacename, node, peers)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if node.IsServer == "yes" {
|
|
|
|
+ setServerRoutes(node.Interface, node.Network)
|
|
|
|
+ }
|
|
|
|
+
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
|
|
@@ -387,3 +392,15 @@ func removeLocalServer(node *models.Node) error {
|
|
}
|
|
}
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+func setServerRoutes(iface, network string) {
|
|
|
|
+ parentNetwork, err := GetParentNetwork(network)
|
|
|
|
+ if err == nil {
|
|
|
|
+ if parentNetwork.AddressRange != "" {
|
|
|
|
+ local.SetCIDRRoute(iface, parentNetwork.AddressRange, nil)
|
|
|
|
+ }
|
|
|
|
+ if parentNetwork.AddressRange6 != "" {
|
|
|
|
+ local.SetCIDRRoute(iface, parentNetwork.AddressRange6, nil)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|