Browse Source

reset ingress to older way

Abhishek Kondur 2 years ago
parent
commit
051f60343b
5 changed files with 14 additions and 49 deletions
  1. 0 11
      logic/extpeers.go
  2. 3 0
      logic/gateway.go
  3. 2 2
      logic/networks.go
  4. 9 34
      logic/peers.go
  5. 0 2
      models/extclient.go

+ 0 - 11
logic/extpeers.go

@@ -138,12 +138,6 @@ func CreateExtClient(extclient *models.ExtClient) error {
 				return err
 			}
 			extclient.Address = newAddress.String()
-
-			extclientInternalAddr, err := UniqueAddress(extclient.Network, false)
-			if err != nil {
-				return err
-			}
-			extclient.InternalIPAddr = extclientInternalAddr.String()
 		}
 	}
 
@@ -154,11 +148,6 @@ func CreateExtClient(extclient *models.ExtClient) error {
 				return err
 			}
 			extclient.Address6 = addr6.String()
-			extclientInternalAddr6, err := UniqueAddress6(extclient.Network, false)
-			if err != nil {
-				return err
-			}
-			extclient.InternalIPAddr6 = extclientInternalAddr6.String()
 		}
 	}
 

+ 3 - 0
logic/gateway.go

@@ -193,6 +193,9 @@ func CreateIngressGateway(netid string, nodeid string, failover bool) (models.No
 	if err != nil {
 		return models.Node{}, err
 	}
+	if host.OS != "linux" {
+		return models.Node{}, errors.New("ingress can only be created on linux based node")
+	}
 	if host.FirewallInUse == models.FIREWALL_NONE {
 		return models.Node{}, errors.New("firewall is not supported for ingress gateways")
 	}

+ 2 - 2
logic/networks.go

@@ -237,12 +237,12 @@ func IsIPUnique(network string, ip string, tableName string, isIpv6 bool) bool {
 				continue
 			}
 			if isIpv6 {
-				if (extClient.Address6 == ip || extClient.InternalIPAddr6 == ip) && extClient.Network == network {
+				if (extClient.Address6 == ip) && extClient.Network == network {
 					return false
 				}
 
 			} else {
-				if (extClient.Address == ip || extClient.InternalIPAddr == ip) && extClient.Network == network {
+				if (extClient.Address == ip) && extClient.Network == network {
 					return false
 				}
 			}

+ 9 - 34
logic/peers.go

@@ -407,7 +407,7 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
 
 		}
 		if node.IsIngressGateway {
-			extPeers, extPeerIDAndAddrs, err := getExtPeers(&node, true)
+			extPeers, extPeerIDAndAddrs, err := getExtPeers(&node)
 			if err == nil {
 				hostPeerUpdate.Peers = append(hostPeerUpdate.Peers, extPeers...)
 				for _, extPeerIdAndAddr := range extPeerIDAndAddrs {
@@ -698,7 +698,7 @@ func GetPeerUpdateLegacy(node *models.Node) (models.PeerUpdate, error) {
 
 	}
 	if node.IsIngressGateway {
-		extPeers, idsAndAddr, err := getExtPeers(node, true)
+		extPeers, idsAndAddr, err := getExtPeers(node)
 		if err == nil {
 			peers = append(peers, extPeers...)
 			for i := range idsAndAddr {
@@ -721,7 +721,7 @@ func GetPeerUpdateLegacy(node *models.Node) (models.PeerUpdate, error) {
 	return peerUpdate, nil
 }
 
-func getExtPeers(node *models.Node, forIngressNode bool) ([]wgtypes.PeerConfig, []models.IDandAddr, error) {
+func getExtPeers(node *models.Node) ([]wgtypes.PeerConfig, []models.IDandAddr, error) {
 	var peers []wgtypes.PeerConfig
 	var idsAndAddr []models.IDandAddr
 	extPeers, err := GetNetworkExtClients(node.Network)
@@ -745,7 +745,7 @@ func getExtPeers(node *models.Node, forIngressNode bool) ([]wgtypes.PeerConfig,
 
 		var allowedips []net.IPNet
 		var peer wgtypes.PeerConfig
-		if forIngressNode && extPeer.Address != "" {
+		if extPeer.Address != "" {
 			var peeraddr = net.IPNet{
 				IP:   net.ParseIP(extPeer.Address),
 				Mask: net.CIDRMask(32, 32),
@@ -755,7 +755,7 @@ func getExtPeers(node *models.Node, forIngressNode bool) ([]wgtypes.PeerConfig,
 			}
 		}
 
-		if forIngressNode && extPeer.Address6 != "" {
+		if extPeer.Address6 != "" {
 			var addr6 = net.IPNet{
 				IP:   net.ParseIP(extPeer.Address6),
 				Mask: net.CIDRMask(128, 128),
@@ -764,26 +764,6 @@ func getExtPeers(node *models.Node, forIngressNode bool) ([]wgtypes.PeerConfig,
 				allowedips = append(allowedips, addr6)
 			}
 		}
-		if !forIngressNode {
-			if extPeer.InternalIPAddr != "" {
-				peerInternalAddr := net.IPNet{
-					IP:   net.ParseIP(extPeer.InternalIPAddr),
-					Mask: net.CIDRMask(32, 32),
-				}
-				if peerInternalAddr.IP != nil && peerInternalAddr.Mask != nil {
-					allowedips = append(allowedips, peerInternalAddr)
-				}
-			}
-			if extPeer.InternalIPAddr6 != "" {
-				peerInternalAddr6 := net.IPNet{
-					IP:   net.ParseIP(extPeer.InternalIPAddr6),
-					Mask: net.CIDRMask(32, 32),
-				}
-				if peerInternalAddr6.IP != nil && peerInternalAddr6.Mask != nil {
-					allowedips = append(allowedips, peerInternalAddr6)
-				}
-			}
-		}
 
 		primaryAddr := extPeer.Address
 		if primaryAddr == "" {
@@ -854,14 +834,9 @@ func getExtPeersForProxy(node *models.Node, proxyPeerConf map[string]proxy_model
 			ReplaceAllowedIPs: true,
 			AllowedIPs:        allowedips,
 		}
-		extInternalPrimaryAddr := extPeer.InternalIPAddr
-		if extInternalPrimaryAddr == "" {
-			extInternalPrimaryAddr = extPeer.InternalIPAddr6
-		}
 		extConf := proxy_models.PeerConf{
-			IsExtClient:   true,
-			Address:       net.ParseIP(extPeer.Address),
-			ExtInternalIp: net.ParseIP(extInternalPrimaryAddr),
+			IsExtClient: true,
+			Address:     net.ParseIP(extPeer.Address),
 		}
 		proxyPeerConf[peer.PublicKey.String()] = extConf
 
@@ -878,7 +853,7 @@ func GetAllowedIPs(node, peer *models.Node, metrics *models.Metrics) []net.IPNet
 
 	// handle ingress gateway peers
 	if peer.IsIngressGateway {
-		extPeers, _, err := getExtPeers(peer, false)
+		extPeers, _, err := getExtPeers(peer)
 		if err != nil {
 			logger.Log(2, "could not retrieve ext peers for ", peer.ID.String(), err.Error())
 		}
@@ -1056,7 +1031,7 @@ func GetPeerUpdateForRelayedNode(node *models.Node, udppeers map[string]string)
 	peers = append(peers, peerData)
 	//if ingress add extclients
 	if node.IsIngressGateway {
-		extPeers, _, err := getExtPeers(node, true)
+		extPeers, _, err := getExtPeers(node)
 		if err == nil {
 			peers = append(peers, extPeers...)
 		} else {

+ 0 - 2
models/extclient.go

@@ -14,6 +14,4 @@ type ExtClient struct {
 	LastModified           int64  `json:"lastmodified" bson:"lastmodified"`
 	Enabled                bool   `json:"enabled" bson:"enabled"`
 	OwnerID                string `json:"ownerid" bson:"ownerid"`
-	InternalIPAddr         string `json:"internal_ip_addr" bson:"internal_ip_addr"`
-	InternalIPAddr6        string `json:"internal_ip_addr6" bson:"internal_ip_addr6"`
 }