|
@@ -2,6 +2,7 @@ package logic
|
|
|
|
|
|
import (
|
|
import (
|
|
"errors"
|
|
"errors"
|
|
|
|
+ "fmt"
|
|
"net"
|
|
"net"
|
|
"net/netip"
|
|
"net/netip"
|
|
|
|
|
|
@@ -277,18 +278,8 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
|
|
logger.Log(1, "error retrieving external clients:", err.Error())
|
|
logger.Log(1, "error retrieving external clients:", err.Error())
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- addedInetGwRanges := false
|
|
|
|
if node.IsEgressGateway && node.EgressGatewayRequest.NatEnabled == "yes" && len(node.EgressGatewayRequest.Ranges) > 0 {
|
|
if node.IsEgressGateway && node.EgressGatewayRequest.NatEnabled == "yes" && len(node.EgressGatewayRequest.Ranges) > 0 {
|
|
hostPeerUpdate.FwUpdate.IsEgressGw = true
|
|
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{
|
|
hostPeerUpdate.FwUpdate.EgressInfo[node.ID.String()] = models.EgressInfo{
|
|
EgressID: node.ID.String(),
|
|
EgressID: node.ID.String(),
|
|
Network: node.PrimaryNetworkRange(),
|
|
Network: node.PrimaryNetworkRange(),
|
|
@@ -300,13 +291,13 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
- if IsInternetGw(node) && !addedInetGwRanges {
|
|
|
|
|
|
+ if IsInternetGw(node) {
|
|
hostPeerUpdate.FwUpdate.IsEgressGw = true
|
|
hostPeerUpdate.FwUpdate.IsEgressGw = true
|
|
egressrange := []string{"0.0.0.0/0"}
|
|
egressrange := []string{"0.0.0.0/0"}
|
|
if node.Address6.IP != nil {
|
|
if node.Address6.IP != nil {
|
|
egressrange = append(egressrange, "::/0")
|
|
egressrange = append(egressrange, "::/0")
|
|
}
|
|
}
|
|
- hostPeerUpdate.FwUpdate.EgressInfo[node.ID.String()] = models.EgressInfo{
|
|
|
|
|
|
+ hostPeerUpdate.FwUpdate.EgressInfo[fmt.Sprintf("%s-%s", node.ID.String(), "inet")] = models.EgressInfo{
|
|
EgressID: node.ID.String(),
|
|
EgressID: node.ID.String(),
|
|
Network: node.PrimaryAddressIPNet(),
|
|
Network: node.PrimaryAddressIPNet(),
|
|
EgressGwAddr: net.IPNet{
|
|
EgressGwAddr: net.IPNet{
|