Merge pull request #966 from gravitl/feature_v0.12.2_ingress_outbound

added ingress outbound to ext clients
This commit is contained in:
dcarns 2022-03-25 16:06:29 -04:00 committed by GitHub
commit fb8769aec1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -61,6 +61,9 @@ func GetNodePeers(networkName, nodeid string, excludeRelayed bool, isP2S bool) (
peer.EgressGatewayRanges = node.EgressGatewayRanges
peer.IsEgressGateway = node.IsEgressGateway
}
peer.IsIngressGateway = node.IsIngressGateway
isDualStack := node.IsDualStack == "yes"
allow := node.IsRelayed != "yes" || !excludeRelayed
if node.Network == networkName && node.IsPending != "yes" && allow {
@ -89,6 +92,17 @@ 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 {
peer.AllowedIPs = append(peer.AllowedIPs, currentExtClients[i].Address)
if isDualStack {
peer.AllowedIPs = append(peer.AllowedIPs, currentExtClients[i].Address6)
}
}
}
}
if (!isP2S || peer.IsHub == "yes") && currentNetworkACLs.IsAllowed(acls.AclID(nodeid), acls.AclID(node.ID)) {
peers = append(peers, peer)
}