X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/318c337ccc883d77d9bed297c01f29a40280e927..4b9d80c0887c9792ebfbbb1c3bed79dc19173b18:/cookbooks/networking/templates/default/network.erb diff --git a/cookbooks/networking/templates/default/network.erb b/cookbooks/networking/templates/default/network.erb index 431330e2c..7f38de3c5 100644 --- a/cookbooks/networking/templates/default/network.erb +++ b/cookbooks/networking/templates/default/network.erb @@ -15,6 +15,12 @@ IPv6AcceptRA=no <% Array(@interface[:vlans]).sort.uniq.each do |vlan| -%> VLAN=<%= @interface[:interface] %>.<%= vlan %> <% end -%> +<% if @interface[:interface] =~ /^bond\d+$/ && node[:packages][:systemd][:version].to_i < 254 -%> + +[Link] +RequiredFamilyForOnline=ipv4 +RequiredForOnline=degraded-carrier +<% end -%> <% if @interface.dig(:inet6, :dhcp) -%> [DHCPv6] @@ -34,6 +40,21 @@ 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] %> +Priority=1000 +<% end -%> <% end -%> <% if @interface.dig(:inet6, :gateway) && @interface[:inet6][:gateway] != @interface[:inet6][:address] -%> @@ -43,6 +64,21 @@ 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] %> +Priority=1000 +<% end -%> <% end -%> <% Hash(@interface.dig(:inet, :routes)).sort.each do |destination, details| -%> <% unless details[:via] == @interface[:inet][:address] -%> @@ -76,3 +112,35 @@ Type=<%= details[:type] %> <% end -%> <% end -%> <% end -%> +<% Array(@interface.dig(:inet, :rules)).each do |rule| -%> + +[RoutingPolicyRule] +<% if rule[:from] -%> +From=<%= rule[:from] %> +<% end -%> +<% if rule[:to] -%> +To=<%= rule[:to] %> +<% end -%> +<% if rule[:table] -%> +Table=<%= rule[:table] %> +<% end -%> +<% if rule[:priority] -%> +Priority=<%= rule[:priority] %> +<% end -%> +<% end -%> +<% Array(@interface.dig(:inet6, :rules)).each do |rule| -%> + +[RoutingPolicyRule] +<% if rule[:from] -%> +From=<%= rule[:from] %> +<% end -%> +<% if rule[:to] -%> +To=<%= rule[:to] %> +<% end -%> +<% if rule[:table] -%> +Table=<%= rule[:table] %> +<% end -%> +<% if rule[:priority] -%> +Priority=<%= rule[:priority] %> +<% end -%> +<% end -%>