skip internet gateways

This commit is contained in:
Abhishek Kondur 2023-02-06 20:04:47 +04:00
parent b695f6e288
commit 66faa18fb9
2 changed files with 18 additions and 8 deletions

View file

@ -22,20 +22,25 @@ func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, erro
if err != nil {
return models.Node{}, err
}
for i, cidr := range gateway.Ranges {
normalized, err := NormalizeCIDR(cidr)
if err != nil {
return models.Node{}, err
}
gateway.Ranges[i] = normalized
}
if host.OS != "linux" && host.OS != "freebsd" { // add in darwin later
return models.Node{}, errors.New(host.OS + " is unsupported for egress gateways")
}
if host.OS == "linux" && host.FirewallInUse == models.FIREWALL_NONE {
return models.Node{}, errors.New("firewall is not supported for egress gateways")
}
for i := len(gateway.Ranges) - 1; i >= 0; i-- {
if gateway.Ranges[i] == "0.0.0.0/0" || gateway.Ranges[i] == "::/0" {
logger.Log(0, "currently internet gateways are not supported", gateway.Ranges[i])
gateway.Ranges = append(gateway.Ranges[:i], gateway.Ranges[i+1:]...)
continue
}
normalized, err := NormalizeCIDR(gateway.Ranges[i])
if err != nil {
return models.Node{}, err
}
gateway.Ranges[i] = normalized
}
if gateway.NatEnabled == "" {
gateway.NatEnabled = "yes"
}

View file

@ -160,7 +160,12 @@ type EgressGatewayRequest struct {
NetID string `json:"netid" bson:"netid"`
NatEnabled string `json:"natenabled" bson:"natenabled"`
Ranges []string `json:"ranges" bson:"ranges"`
<<<<<<< Updated upstream
Interface string `json:"interface" bson:"interface"`
=======
PostUp string `json:"postup" bson:"postup"`
PostDown string `json:"postdown" bson:"postdown"`
>>>>>>> Stashed changes
}
// RelayRequest - relay request struct