mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-17 06:11:21 +08:00
removed isdualstack references
This commit is contained in:
@@ -152,11 +152,6 @@ func updateNetwork(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// if newNetwork.IsDualStack != currentNetwork.IsDualStack && newNetwork.IsDualStack == "no" {
|
||||
// // Remove IPv6 address from network nodes
|
||||
// RemoveNetworkNodeIPv6Addresses(currentNetwork.NetID)
|
||||
// }
|
||||
|
||||
if rangeupdate {
|
||||
err = logic.UpdateNetworkNodeAddresses(network.NetID)
|
||||
if err != nil {
|
||||
|
@@ -408,7 +408,6 @@ func RemoveNetworkNodeIPv6Addresses(networkName string) error {
|
||||
return err
|
||||
}
|
||||
if node.Network == networkName {
|
||||
node.IsDualStack = "no"
|
||||
node.Address6 = ""
|
||||
data, err := json.Marshal(&node)
|
||||
if err != nil {
|
||||
|
@@ -425,9 +425,7 @@ func SetNodeDefaults(node *models.Node) {
|
||||
}
|
||||
}
|
||||
// == Parent Network settings ==
|
||||
if node.IsDualStack == "" {
|
||||
node.IsDualStack = parentNetwork.IsDualStack
|
||||
}
|
||||
|
||||
if node.MTU == 0 {
|
||||
node.MTU = parentNetwork.DefaultMTU
|
||||
}
|
||||
@@ -435,7 +433,6 @@ func SetNodeDefaults(node *models.Node) {
|
||||
node.SetIPForwardingDefault()
|
||||
node.SetDNSOnDefault()
|
||||
node.SetIsLocalDefault()
|
||||
node.SetIsDualStackDefault()
|
||||
node.SetLastModified()
|
||||
node.SetDefaultName()
|
||||
node.SetLastCheckIn()
|
||||
|
@@ -34,19 +34,19 @@ func GetHubPeer(networkName string) []models.Node {
|
||||
*/
|
||||
|
||||
// GetNodePeers - fetches peers for a given node
|
||||
func GetNodePeers(networkName, nodeid string, excludeRelayed bool, isP2S bool) ([]models.Node, error) {
|
||||
func GetNodePeers(network *models.Network, nodeid string, excludeRelayed bool, isP2S bool) ([]models.Node, error) {
|
||||
var peers []models.Node
|
||||
var networkNodes, egressNetworkNodes, err = getNetworkEgressAndNodes(networkName)
|
||||
var networkNodes, egressNetworkNodes, err = getNetworkEgressAndNodes(network.NetID)
|
||||
if err != nil {
|
||||
return peers, nil
|
||||
}
|
||||
|
||||
udppeers, errN := database.GetPeers(networkName)
|
||||
udppeers, errN := database.GetPeers(network.NetID)
|
||||
if errN != nil {
|
||||
logger.Log(2, errN.Error())
|
||||
}
|
||||
|
||||
currentNetworkACLs, aclErr := nodeacls.FetchAllACLs(nodeacls.NetworkID(networkName))
|
||||
currentNetworkACLs, aclErr := nodeacls.FetchAllACLs(nodeacls.NetworkID(network.NetID))
|
||||
if aclErr != nil {
|
||||
return peers, aclErr
|
||||
}
|
||||
@@ -63,10 +63,9 @@ func GetNodePeers(networkName, nodeid string, excludeRelayed bool, isP2S bool) (
|
||||
}
|
||||
|
||||
peer.IsIngressGateway = node.IsIngressGateway
|
||||
isDualStack := node.IsDualStack == "yes"
|
||||
allow := node.IsRelayed != "yes" || !excludeRelayed
|
||||
|
||||
if node.Network == networkName && node.IsPending != "yes" && allow {
|
||||
if node.Network == network.NetID && node.IsPending != "yes" && allow {
|
||||
peer = setPeerInfo(&node)
|
||||
if node.UDPHolePunch == "yes" && errN == nil && CheckEndpoint(udppeers[node.PublicKey]) {
|
||||
endpointstring := udppeers[node.PublicKey]
|
||||
@@ -84,12 +83,7 @@ func GetNodePeers(networkName, nodeid string, excludeRelayed bool, isP2S bool) (
|
||||
peer.ListenPort = node.LocalListenPort
|
||||
}
|
||||
if node.IsRelay == "yes" {
|
||||
network, err := GetNetwork(networkName)
|
||||
if err == nil {
|
||||
peer.AllowedIPs = append(peer.AllowedIPs, network.AddressRange)
|
||||
} else {
|
||||
peer.AllowedIPs = append(peer.AllowedIPs, node.RelayAddrs...)
|
||||
}
|
||||
for _, egressNode := range egressNetworkNodes {
|
||||
if egressNode.IsRelayed == "yes" && StringSliceContains(node.RelayAddrs, egressNode.Address) {
|
||||
peer.AllowedIPs = append(peer.AllowedIPs, egressNode.EgressGatewayRanges...)
|
||||
@@ -99,8 +93,10 @@ func GetNodePeers(networkName, nodeid string, excludeRelayed bool, isP2S bool) (
|
||||
if peer.IsIngressGateway == "yes" { // handle ingress stuff
|
||||
if currentExtClients, err := GetExtPeersList(&node); err == nil {
|
||||
for i := range currentExtClients {
|
||||
if network.IsIPv4 == "yes" {
|
||||
peer.AllowedIPs = append(peer.AllowedIPs, currentExtClients[i].Address)
|
||||
if isDualStack {
|
||||
}
|
||||
if network.IsIPv6 == "yes" {
|
||||
peer.AllowedIPs = append(peer.AllowedIPs, currentExtClients[i].Address6)
|
||||
}
|
||||
}
|
||||
@@ -135,7 +131,7 @@ func GetPeersList(refnode *models.Node) ([]models.Node, error) {
|
||||
isP2S = true
|
||||
}
|
||||
if relayedNodeAddr == "" {
|
||||
peers, err = GetNodePeers(networkName, refnode.ID, excludeRelayed, isP2S)
|
||||
peers, err = GetNodePeers(&network, refnode.ID, excludeRelayed, isP2S)
|
||||
} else {
|
||||
var relayNode models.Node
|
||||
relayNode, err = GetNodeRelay(networkName, relayedNodeAddr)
|
||||
@@ -155,7 +151,7 @@ func GetPeersList(refnode *models.Node) ([]models.Node, error) {
|
||||
} else {
|
||||
peerNode.AllowedIPs = append(peerNode.AllowedIPs, peerNode.RelayAddrs...)
|
||||
}
|
||||
nodepeers, err := GetNodePeers(networkName, refnode.ID, false, isP2S)
|
||||
nodepeers, err := GetNodePeers(&network, refnode.ID, false, isP2S)
|
||||
if err == nil && peerNode.UDPHolePunch == "yes" {
|
||||
for _, nodepeer := range nodepeers {
|
||||
if nodepeer.Address == peerNode.Address {
|
||||
|
@@ -287,7 +287,7 @@ func GetServerPeers(serverNode *models.Node) ([]wgtypes.PeerConfig, bool, []stri
|
||||
}
|
||||
ranges = nil
|
||||
}
|
||||
if node.Address6 != "" && serverNode.IsDualStack == "yes" {
|
||||
if node.Address6 != "" {
|
||||
var addr6 = net.IPNet{
|
||||
IP: net.ParseIP(node.Address6),
|
||||
Mask: net.CIDRMask(128, 128),
|
||||
@@ -357,7 +357,7 @@ func GetServerExtPeers(serverNode *models.Node) ([]wgtypes.PeerConfig, error) {
|
||||
peeraddr,
|
||||
}
|
||||
|
||||
if extPeer.Address6 != "" && serverNode.IsDualStack == "yes" {
|
||||
if extPeer.Address6 != "" {
|
||||
var addr6 = net.IPNet{
|
||||
IP: net.ParseIP(extPeer.Address6),
|
||||
Mask: net.CIDRMask(128, 128),
|
||||
|
@@ -50,9 +50,9 @@ func HasPeerConnected(node *models.Node) bool {
|
||||
func IfaceDelta(currentNode *models.Node, newNode *models.Node) bool {
|
||||
// single comparison statements
|
||||
if newNode.Endpoint != currentNode.Endpoint ||
|
||||
newNode.LocalAddress != currentNode.LocalAddress ||
|
||||
newNode.PublicKey != currentNode.PublicKey ||
|
||||
newNode.Address != currentNode.Address ||
|
||||
newNode.Address6 != currentNode.Address6 ||
|
||||
newNode.IsEgressGateway != currentNode.IsEgressGateway ||
|
||||
newNode.IsIngressGateway != currentNode.IsIngressGateway ||
|
||||
newNode.IsRelay != currentNode.IsRelay ||
|
||||
@@ -67,12 +67,6 @@ func IfaceDelta(currentNode *models.Node, newNode *models.Node) bool {
|
||||
}
|
||||
|
||||
// multi-comparison statements
|
||||
if newNode.IsDualStack == "yes" {
|
||||
if newNode.Address6 != currentNode.Address6 {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
if newNode.IsEgressGateway == "yes" {
|
||||
if len(currentNode.EgressGatewayRanges) != len(newNode.EgressGatewayRanges) {
|
||||
return true
|
||||
@@ -239,7 +233,7 @@ func initWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
|
||||
_, _ = ncutils.RunCmd(ipExec+" -4 route add "+gateway+" dev "+ifacename, true)
|
||||
}
|
||||
}
|
||||
if node.Address6 != "" && node.IsDualStack == "yes" {
|
||||
if node.Address6 != "" {
|
||||
logger.Log(1, "adding address:", node.Address6)
|
||||
_, _ = ncutils.RunCmd(ipExec+" address add dev "+ifacename+" "+node.Address6+"/64", true)
|
||||
}
|
||||
|
@@ -21,7 +21,6 @@ type Network struct {
|
||||
AccessKeys []AccessKey `json:"accesskeys" bson:"accesskeys"`
|
||||
AllowManualSignUp string `json:"allowmanualsignup" bson:"allowmanualsignup" validate:"checkyesorno"`
|
||||
IsLocal string `json:"islocal" bson:"islocal" validate:"checkyesorno"`
|
||||
IsDualStack string `json:"isdualstack" bson:"isdualstack" validate:"checkyesorno"` // ** IsDualStack deprecated **
|
||||
IsIPv4 string `json:"isipv4" bson:"isipv4" validate:"checkyesorno"`
|
||||
IsIPv6 string `json:"isipv6" bson:"isipv6" validate:"checkyesorno"`
|
||||
IsPointToSite string `json:"ispointtosite" bson:"ispointtosite" validate:"checkyesorno"`
|
||||
@@ -77,16 +76,6 @@ func (network *Network) SetDefaults() {
|
||||
if network.AllowManualSignUp == "" {
|
||||
network.AllowManualSignUp = "no"
|
||||
}
|
||||
if network.IsDualStack == "" {
|
||||
network.IsDualStack = "no"
|
||||
}
|
||||
if network.IsDualStack == "yes" {
|
||||
network.IsIPv6 = "yes"
|
||||
network.IsIPv4 = "yes"
|
||||
} else {
|
||||
network.IsIPv6 = "no"
|
||||
network.IsIPv4 = "yes"
|
||||
}
|
||||
|
||||
if network.IsIPv4 == "" {
|
||||
network.IsIPv4 = "yes"
|
||||
|
@@ -37,10 +37,10 @@ type Node struct {
|
||||
Address string `json:"address" bson:"address" yaml:"address" validate:"omitempty,ipv4"`
|
||||
Address6 string `json:"address6" bson:"address6" yaml:"address6" validate:"omitempty,ipv6"`
|
||||
LocalAddress string `json:"localaddress" bson:"localaddress" yaml:"localaddress" validate:"omitempty,ip"`
|
||||
LocalListenPort int32 `json:"locallistenport" bson:"locallistenport" yaml:"locallistenport" validate:"numeric,min=0,max=65535"`
|
||||
Name string `json:"name" bson:"name" yaml:"name" validate:"omitempty,max=62,in_charset"`
|
||||
NetworkSettings Network `json:"networksettings" bson:"networksettings" yaml:"networksettings" validate:"-"`
|
||||
ListenPort int32 `json:"listenport" bson:"listenport" yaml:"listenport" validate:"omitempty,numeric,min=1024,max=65535"`
|
||||
LocalListenPort int32 `json:"locallistenport" bson:"locallistenport" yaml:"locallistenport" validate:"numeric,min=0,max=65535"`
|
||||
PublicKey string `json:"publickey" bson:"publickey" yaml:"publickey" validate:"required,base64"`
|
||||
Endpoint string `json:"endpoint" bson:"endpoint" yaml:"endpoint" validate:"required,ip"`
|
||||
PostUp string `json:"postup" bson:"postup" yaml:"postup"`
|
||||
@@ -69,10 +69,7 @@ type Node struct {
|
||||
IngressGatewayRange string `json:"ingressgatewayrange" bson:"ingressgatewayrange" yaml:"ingressgatewayrange"`
|
||||
IsStatic string `json:"isstatic" bson:"isstatic" yaml:"isstatic" validate:"checkyesorno"`
|
||||
UDPHolePunch string `json:"udpholepunch" bson:"udpholepunch" yaml:"udpholepunch" validate:"checkyesorno"`
|
||||
//PullChanges string `json:"pullchanges" bson:"pullchanges" yaml:"pullchanges" validate:"checkyesorno"`
|
||||
DNSOn string `json:"dnson" bson:"dnson" yaml:"dnson" validate:"checkyesorno"`
|
||||
// ** IsDualStack deprecated **
|
||||
IsDualStack string `json:"isdualstack" bson:"isdualstack" yaml:"isdualstack" validate:"checkyesorno"`
|
||||
IsServer string `json:"isserver" bson:"isserver" yaml:"isserver" validate:"checkyesorno"`
|
||||
Action string `json:"action" bson:"action" yaml:"action"`
|
||||
IsLocal string `json:"islocal" bson:"islocal" yaml:"islocal" validate:"checkyesorno"`
|
||||
@@ -201,13 +198,6 @@ func (node *Node) SetDNSOnDefault() {
|
||||
}
|
||||
}
|
||||
|
||||
// Node.SetIsDualStackDefault - set is dual stack default status
|
||||
func (node *Node) SetIsDualStackDefault() {
|
||||
if node.IsDualStack == "" {
|
||||
node.IsDualStack = "no"
|
||||
}
|
||||
}
|
||||
|
||||
// Node.SetIsServerDefault - sets node isserver default
|
||||
func (node *Node) SetIsServerDefault() {
|
||||
if node.IsServer != "yes" {
|
||||
@@ -350,18 +340,12 @@ func (newNode *Node) Fill(currentNode *Node) {
|
||||
if newNode.DNSOn == "" {
|
||||
newNode.DNSOn = currentNode.DNSOn
|
||||
}
|
||||
if newNode.IsDualStack == "" {
|
||||
newNode.IsDualStack = currentNode.IsDualStack
|
||||
}
|
||||
if newNode.IsLocal == "" {
|
||||
newNode.IsLocal = currentNode.IsLocal
|
||||
}
|
||||
if newNode.IPForwarding == "" {
|
||||
newNode.IPForwarding = currentNode.IPForwarding
|
||||
}
|
||||
//if newNode.Roaming == "" {
|
||||
//newNode.Roaming = currentNode.Roaming
|
||||
//}
|
||||
if newNode.Action == "" {
|
||||
newNode.Action = currentNode.Action
|
||||
}
|
||||
|
@@ -144,12 +144,6 @@ func GetFlags(hostname string) []cli.Flag {
|
||||
Value: "",
|
||||
Usage: "Sets endpoint to local address if 'yes'. Ignores if 'no'. Will retrieve from network if unset.",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "isdualstack",
|
||||
EnvVars: []string{"NETCLIENT_IS_DUALSTACK"},
|
||||
Value: "",
|
||||
Usage: "Sets ipv6 address if 'yes'. Ignores if 'no'. Will retrieve from network if unset.",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "udpholepunch",
|
||||
EnvVars: []string{"NETCLIENT_UDP_HOLEPUNCH"},
|
||||
|
@@ -237,7 +237,6 @@ func GetCLIConfig(c *cli.Context) (ClientConfig, string, error) {
|
||||
cfg.Node.DNSOn = c.String("dnson")
|
||||
cfg.Node.IsLocal = c.String("islocal")
|
||||
cfg.Node.IsStatic = c.String("isstatic")
|
||||
cfg.Node.IsDualStack = c.String("isdualstack")
|
||||
cfg.Node.PostUp = c.String("postup")
|
||||
cfg.Node.PostDown = c.String("postdown")
|
||||
cfg.Node.ListenPort = int32(c.Int("port"))
|
||||
|
@@ -10,9 +10,9 @@ import (
|
||||
func IfaceDelta(currentNode *models.Node, newNode *models.Node) bool {
|
||||
// single comparison statements
|
||||
if newNode.Endpoint != currentNode.Endpoint ||
|
||||
newNode.LocalAddress != currentNode.LocalAddress ||
|
||||
newNode.PublicKey != currentNode.PublicKey ||
|
||||
newNode.Address != currentNode.Address ||
|
||||
newNode.Address6 != currentNode.Address6 ||
|
||||
newNode.IsEgressGateway != currentNode.IsEgressGateway ||
|
||||
newNode.IsIngressGateway != currentNode.IsIngressGateway ||
|
||||
newNode.IsRelay != currentNode.IsRelay ||
|
||||
@@ -27,12 +27,6 @@ func IfaceDelta(currentNode *models.Node, newNode *models.Node) bool {
|
||||
}
|
||||
|
||||
// multi-comparison statements
|
||||
if newNode.IsDualStack == "yes" {
|
||||
if newNode.Address6 != currentNode.Address6 {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
if newNode.IsEgressGateway == "yes" {
|
||||
if len(currentNode.EgressGatewayRanges) != len(newNode.EgressGatewayRanges) {
|
||||
return true
|
||||
|
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/gravitl/netmaker/netclient/config"
|
||||
"github.com/gravitl/netmaker/netclient/local"
|
||||
"github.com/gravitl/netmaker/netclient/ncutils"
|
||||
"github.com/gravitl/netmaker/netclient/server"
|
||||
"golang.zx2c4.com/wireguard/wgctrl"
|
||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||
"gopkg.in/ini.v1"
|
||||
@@ -229,6 +230,10 @@ func SetWGConfig(network string, peerupdate bool) error {
|
||||
servercfg := cfg.Server
|
||||
nodecfg := cfg.Node
|
||||
|
||||
peers, hasGateway, gateways, err := server.GetPeers(nodecfg.MacAddress, nodecfg.Network, servercfg.GRPCAddress, nodecfg.IsIngressGateway == "yes", nodecfg.IsServer == "yes")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
privkey, err := RetrievePrivKey(network)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@@ -88,9 +88,14 @@ func ApplyWithoutWGQuick(node *models.Node, ifacename string, confPath string) e
|
||||
runcmds := strings.Split(node.PostUp, "; ")
|
||||
_ = ncutils.RunCmds(runcmds, true)
|
||||
}
|
||||
if node.Address6 != "" && node.IsDualStack == "yes" {
|
||||
if node.Address6 != "" {
|
||||
logger.Log(1, "adding address: ", node.Address6)
|
||||
_, _ = ncutils.RunCmd(ipExec+" address add dev "+ifacename+" "+node.Address6+"/64", true)
|
||||
netmaskArr := strings.Split(node.NetworkSettings.AddressRange6, "/")
|
||||
var netmask = "64"
|
||||
if len(netmaskArr) == 2 {
|
||||
netmask = netmaskArr[1]
|
||||
}
|
||||
ncutils.RunCmd(ipExec+" address add dev "+ifacename+" "+node.Address6+"/"+netmask, true)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user