]> git.proxmox.com Git - pve-network.git/commitdiff
evpn : add "ip route del vrf vrf_myzone unreachable default metric 4278198272" on...
authorAlexandre Derumier <aderumier@odiso.com>
Mon, 23 Aug 2021 13:22:14 +0000 (15:22 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 24 Aug 2021 12:25:02 +0000 (14:25 +0200)
This is breaking routing between the evpn vrf && default vrf leak  on exit node only

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/Network/SDN/Zones/EvpnPlugin.pm
test/zones/evpn/exitnode/expected_sdn_interfaces
test/zones/evpn/exitnode_snat/expected_sdn_interfaces

index 4fa46f71e17538f41bd1257b1777a628f98ea48e..36edccd1a8d3bfe99f70f97e47a239733b94af93 100644 (file)
@@ -73,6 +73,7 @@ sub generate_sdn_config {
     my $bgprouter = PVE::Network::SDN::Controllers::EvpnPlugin::find_bgp_controller($local_node, $controller_cfg);
     my $loopback = $bgprouter->{loopback} if $bgprouter->{loopback};
     my ($ifaceip, $iface) = PVE::Network::SDN::Zones::Plugin::find_local_ip_interface_peers(\@peers, $loopback);
+    my $is_evpn_gateway = $plugin_config->{'exitnodes'}->{$local_node};
 
     my $mtu = 1450;
     $mtu = $interfaces_config->{$iface}->{mtu} - 50 if $interfaces_config->{$iface}->{mtu};
@@ -127,8 +128,6 @@ sub generate_sdn_config {
 
        if ($subnet->{snat}) {
 
-           my $is_evpn_gateway = $plugin_config->{'exitnodes'}->{$local_node};
-
             #find outgoing interface
             my ($outip, $outiface) = PVE::Network::SDN::Zones::Plugin::get_local_route_ip($checkrouteip);
             if ($outip && $outiface && $is_evpn_gateway) {
@@ -158,7 +157,12 @@ sub generate_sdn_config {
        #vrf interface
        @iface_config = ();
        push @iface_config, "vrf-table auto";
-       push @iface_config, "post-up ip route add vrf $vrf_iface unreachable default metric 4278198272";
+       if(!$is_evpn_gateway) {
+           push @iface_config, "post-up ip route add vrf $vrf_iface unreachable default metric 4278198272";
+       } else {
+           push @iface_config, "post-up ip route del vrf $vrf_iface unreachable default metric 4278198272";
+       }
+
        push(@{$config->{$vrf_iface}}, @iface_config) if !$config->{$vrf_iface};
 
        if ($vrfvxlan) {
index 4cf13e05e6887d8df572cab730dd60c023f3fd00..5ab308477596b61d353243c01f8480ce6c33beec 100644 (file)
@@ -14,7 +14,7 @@ iface myvnet
 auto vrf_myzone
 iface vrf_myzone
        vrf-table auto
-       post-up ip route add vrf vrf_myzone unreachable default metric 4278198272
+       post-up ip route del vrf vrf_myzone unreachable default metric 4278198272
 
 auto vrfbr_myzone
 iface vrfbr_myzone
index a2a183ef1943d125f28c1691d3332d60de3d4abc..47df77a4c125c27564270b742869bfbe790853dd 100644 (file)
@@ -33,7 +33,7 @@ iface myvnet2
 auto vrf_myzone
 iface vrf_myzone
        vrf-table auto
-       post-up ip route add vrf vrf_myzone unreachable default metric 4278198272
+       post-up ip route del vrf vrf_myzone unreachable default metric 4278198272
 
 auto vrfbr_myzone
 iface vrfbr_myzone