]> git.openstreetmap.org Git - chef.git/commitdiff
Use named sets for OSM IP addresses
authorTom Hughes <tom@compton.nu>
Sat, 4 Mar 2023 12:46:14 +0000 (12:46 +0000)
committerTom Hughes <tom@compton.nu>
Sat, 4 Mar 2023 12:52:38 +0000 (12:52 +0000)
cookbooks/networking/resources/firewall_rule.rb
cookbooks/networking/templates/default/nftables.conf.erb

index 0eca031765f224772712abdd786c3aaf3194feba..48a5074d7fba0a102da70150cd9f21b0163955b4 100644 (file)
@@ -114,7 +114,7 @@ action_class do
     end
 
     if new_resource.source == "osm"
-      rule << "#{ip} saddr { $#{ip}-osm-addresses }"
+      rule << "#{ip} saddr @#{ip}-osm-addresses"
     elsif new_resource.source =~ /^net:(.*)$/
       addresses = Regexp.last_match(1).split(",").join(", ")
 
@@ -122,7 +122,7 @@ action_class do
     end
 
     if new_resource.dest == "osm"
-      rule << "#{ip} daddr $#{ip}-osm-addresses"
+      rule << "#{ip} daddr @#{ip}-osm-addresses"
     elsif new_resource.dest =~ /^net:(.*)$/
       addresses = Regexp.last_match(1).split(",").join(", ")
 
index 923437f773394a4f15ec45e6e69ca212dd09a72b..63f45a0c837eb33dd6cc6c07534193950ef5ee0b 100644 (file)
@@ -5,12 +5,19 @@ define external-interfaces = { <%= @interfaces.sort.uniq.join(", ") %> }
 define ip-private-addresses = { 10.0.0.0/8, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.0.2.0/24, 192.168.0.0/16 }
 define ip6-private-addresses = { 2001:db8::/32, fc00::/7 }
 
-define ip-osm-addresses = { <%= Array(@hosts["inet"]).sort.join(", ") %> }
-define ip6-osm-addresses = { <%= Array(@hosts["inet6"]).sort.join(", ") %> }
-
 flush ruleset
 
 table inet filter {
+  set ip-osm-addresses {
+    type ipv4_addr
+    elements = { <%= Array(@hosts["inet"]).sort.join(", ") %> }
+  }
+
+  set ip6-osm-addresses {
+    type ipv6_addr
+    elements = { <%= Array(@hosts["inet6"]).sort.join(", ") %> }
+  }
+
   set ip-blacklist {
     type ipv4_addr
     flags dynamic