]> git.proxmox.com Git - pve-network.git/commitdiff
zones: evpn: fix exitnodes for snat
authorAlexandre Derumier <aderumier@odiso.com>
Thu, 3 Dec 2020 09:19:40 +0000 (10:19 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 18 Dec 2020 16:58:22 +0000 (17:58 +0100)
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/Network/SDN/Controllers/EvpnPlugin.pm
PVE/Network/SDN/Zones/EvpnPlugin.pm

index b997cca42575741735f46157cd868c6be11aa815..6927921ebac455fdea527ce9b69289d711f9410a 100644 (file)
@@ -144,7 +144,8 @@ sub generate_controller_zone_config {
        push(@{$config->{frr}->{router}->{"bgp $asn vrf $vrf"}->{"address-family"}->{"l2vpn evpn"}}, "route-target export $autortas:$vrfvxlan");
     }
 
-    my $is_gateway = grep { $_ eq $local_node } PVE::Tools::split_list($exitnodes);
+    my $is_gateway = $exitnodes->{$local_node};
+
     if ($is_gateway) {
 
        @controller_config = ();
index d833641e2820fa95fbf7dab39b62ed7f40725944..e6ee839b1dcf4dd8ed8d251bafc4aaf576d51745 100644 (file)
@@ -100,12 +100,11 @@ sub generate_sdn_config {
            push @iface_config, "address $gateway/$mask" if !defined($address->{$gateway});
            $address->{$gateway} = 1;
        }
+
        if ($subnet->{snat}) {
-           my $gatewaynodes = $controller->{'gateway-nodes'};
-           my $is_evpn_gateway = "";
-           foreach my $evpn_gatewaynode (PVE::Tools::split_list($gatewaynodes)) {
-               $is_evpn_gateway = 1 if $evpn_gatewaynode eq $local_node;
-           }
+
+           my $is_evpn_gateway = $plugin_config->{'exitnodes'}->{$local_node};
+
             #find outgoing interface
             my ($outip, $outiface) = PVE::Network::SDN::Zones::Plugin::get_local_route_ip('8.8.8.8');
             if ($outip && $outiface && $is_evpn_gateway) {