mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-28 11:11:33 +08:00
NET-710: Internet Gws Re-Design (#2718)
* add internet gateway to client gateway * migration func to remove internet egress range from egress gateway * add internet gateways ranges to firewall update * add internet gw ranges to extcleint conf * add ipv6 internet address * remove failover field from ingress req * only let normal to be created on PRO (#2716) * feat(NET-805): send internet gw props to rac * set inet gw field on node update api * move internet gws to EE --------- Co-authored-by: the_aceix <aceixsmartx@gmail.com>
This commit is contained in:
@@ -241,8 +241,18 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
|
||||
logger.Log(1, "error retrieving external clients:", err.Error())
|
||||
}
|
||||
}
|
||||
addedInetGwRanges := false
|
||||
if node.IsEgressGateway && node.EgressGatewayRequest.NatEnabled == "yes" && len(node.EgressGatewayRequest.Ranges) > 0 {
|
||||
hostPeerUpdate.FwUpdate.IsEgressGw = true
|
||||
if IsInternetGw(node) {
|
||||
hostPeerUpdate.FwUpdate.IsEgressGw = true
|
||||
egressrange := []string{"0.0.0.0/0"}
|
||||
if node.Address6.IP != nil {
|
||||
egressrange = append(egressrange, "::/0")
|
||||
}
|
||||
node.EgressGatewayRequest.Ranges = append(node.EgressGatewayRequest.Ranges, egressrange...)
|
||||
addedInetGwRanges = true
|
||||
}
|
||||
hostPeerUpdate.FwUpdate.EgressInfo[node.ID.String()] = models.EgressInfo{
|
||||
EgressID: node.ID.String(),
|
||||
Network: node.PrimaryNetworkRange(),
|
||||
@@ -252,6 +262,28 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
|
||||
},
|
||||
EgressGWCfg: node.EgressGatewayRequest,
|
||||
}
|
||||
|
||||
}
|
||||
if IsInternetGw(node) && !addedInetGwRanges {
|
||||
hostPeerUpdate.FwUpdate.IsEgressGw = true
|
||||
egressrange := []string{"0.0.0.0/0"}
|
||||
if node.Address6.IP != nil {
|
||||
egressrange = append(egressrange, "::/0")
|
||||
}
|
||||
hostPeerUpdate.FwUpdate.EgressInfo[node.ID.String()] = models.EgressInfo{
|
||||
EgressID: node.ID.String(),
|
||||
Network: node.PrimaryAddressIPNet(),
|
||||
EgressGwAddr: net.IPNet{
|
||||
IP: net.ParseIP(node.PrimaryAddress()),
|
||||
Mask: getCIDRMaskFromAddr(node.PrimaryAddress()),
|
||||
},
|
||||
EgressGWCfg: models.EgressGatewayRequest{
|
||||
NodeID: node.ID.String(),
|
||||
NetID: node.Network,
|
||||
NatEnabled: "yes",
|
||||
Ranges: egressrange,
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
// == post peer calculations ==
|
||||
|
||||
Reference in New Issue
Block a user