]> git.openstreetmap.org Git - chef.git/commitdiff
Use source routing to pick the correct external network on faffy
authorTom Hughes <tom@compton.nu>
Wed, 24 May 2023 08:20:53 +0000 (09:20 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 24 May 2023 08:30:35 +0000 (08:30 +0000)
cookbooks/networking/templates/default/network.erb
roles/faffy.rb

index 431330e2c7a28700c6d1fd6a9d1331f8b6d7b54b..796bf67d6f4c51c69e3386fe4efe41a77fc99085 100644 (file)
@@ -34,6 +34,20 @@ GatewayOnLink=true
 <% if @interface[:metric] -%>
 Metric=<%= @interface[:metric] %>
 <% end -%>
+<% if @interface[:source_route_table] -%>
+
+[Route]
+Gateway=<%= @interface[:inet][:gateway] %>
+GatewayOnLink=true
+<% if @interface[:metric] -%>
+Metric=<%= @interface[:metric] %>
+<% end -%>
+Table=<%= @interface[:source_route_table] %>
+
+[RoutingPolicyRule]
+From=<%= @interface[:inet][:address] %>
+Table=<%= @interface[:source_route_table] %>
+<% end -%>
 <% end -%>
 <% if @interface.dig(:inet6, :gateway) && @interface[:inet6][:gateway] != @interface[:inet6][:address] -%>
 
@@ -43,6 +57,20 @@ GatewayOnLink=true
 <% if @interface[:metric] -%>
 Metric=<%= @interface[:metric] %>
 <% end -%>
+<% if @interface[:source_route_table] -%>
+
+[Route]
+Gateway=<%= @interface[:inet6][:gateway] %>
+GatewayOnLink=true
+<% if @interface[:metric] -%>
+Metric=<%= @interface[:metric] %>
+<% end -%>
+Table=<%= @interface[:source_route_table] %>
+
+[RoutingPolicyRule]
+From=<%= @interface[:inet6][:address] %>
+Table=<%= @interface[:source_route_table] %>
+<% end -%>
 <% end -%>
 <% Hash(@interface.dig(:inet, :routes)).sort.each do |destination, details| -%>
 <% unless details[:via] == @interface[:inet][:address] -%>
index c55b8785358ba06085792e2c20fda94a4c3275d8..7c352f4bd487598f48af56a4562f719c1e038815 100644 (file)
@@ -20,6 +20,7 @@ default_attributes(
       :external_cogent => {
         :interface => "bond0.2",
         :role => :external,
+        :source_route_table => 100,
         :inet => {
           :address => "130.117.76.3",
           :prefix => "27",
@@ -38,6 +39,7 @@ default_attributes(
         :interface => "bond0.3",
         :role => :external,
         :metric => 150,
+        :source_route_table => 150,
         :inet => {
           :address => "184.104.179.131",
           :prefix => "27",