]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/networking/templates/default/network.erb
Add new source for taginfo
[chef.git] / cookbooks / networking / templates / default / network.erb
index ea414bd37af14aca1a3f92108d16118688cbda5d..7f38de3c563d14bd1f37d13c08129766d94c6d1e 100644 (file)
@@ -2,6 +2,9 @@
 Name=<%= @interface[:interface] %>
 
 [Network]
+<% if @interface.dig(:inet6, :dhcp) -%>
+DHCP=ipv6
+<% end -%>
 <% if @interface[:inet] -%>
 Address=<%= @interface[:inet][:address] %>/<%== @interface[:inet][:prefix] %>
 <% end -%>
@@ -12,6 +15,23 @@ 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]
+<% if @interface[:inet6][:dhcp][:duidtype] -%>
+DUIDType=<%= @interface[:inet6][:dhcp][:duidtype] %>
+<% end -%>
+<% if @interface[:inet6][:dhcp][:duidrawdata] -%>
+DUIDRawData=<%= @interface[:inet6][:dhcp][:duidrawdata] %>
+<% end -%>
+WithoutRA=solicit
+<% end -%>
 <% if @interface.dig(:inet, :gateway) && @interface[:inet][:gateway] != @interface[:inet][:address] -%>
 
 [Route]
@@ -20,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] -%>
 
@@ -29,8 +64,24 @@ 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] -%>
 
 [Route]
 <% if details[:via] -%>
@@ -44,7 +95,9 @@ Metric=<%= details[:metric] %>
 Type=<%= details[:type] %>
 <% end -%>
 <% end -%>
+<% end -%>
 <% Hash(@interface.dig(:inet6, :routes)).sort.each do |destination, details| -%>
+<% unless details[:via] == @interface[:inet6][:address] -%>
 
 [Route]
 <% if details[:via] -%>
@@ -58,3 +111,36 @@ Metric=<%= details[:metric] %>
 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 -%>