From 7c9c6c4a9e91e30e12c3c757328e3097792e4fc7 Mon Sep 17 00:00:00 2001 From: Astro Date: Tue, 16 Nov 2021 00:21:37 +0100 Subject: [PATCH] config/net/priv: cleanup --- config/net/priv.nix | 2477 ++++++++++++------------------------------- 1 file changed, 659 insertions(+), 1818 deletions(-) diff --git a/config/net/priv.nix b/config/net/priv.nix index 19ead56..591fdb1 100644 --- a/config/net/priv.nix +++ b/config/net/priv.nix @@ -1,1828 +1,669 @@ -{ - site.net = { - priv1 = { - dhcp = { - end = "172.20.74.14"; - max-time = 86400; - router = "priv1-gw.priv1"; - server = "priv1-gw"; - start = "172.20.74.2"; - time = 120; - }; - domainName = "priv1.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv1-gw = "172.20.74.1"; }; - hosts6 = { - dn42 = { priv1-gw = "fd23:42:c3d2:5c0::1"; }; - up4 = { priv1-gw = "2a00:8180:2c00:2c0::1"; }; - }; - subnet4 = "172.20.74.0/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c0::/64"; - up4 = "2a00:8180:2c00:2c0::/64"; - }; - }; - priv10 = { - dhcp = { - end = "172.20.74.110"; - max-time = 86400; - router = "priv10-gw.priv10"; - server = "priv10-gw"; - start = "172.20.74.98"; - time = 120; - }; - domainName = "priv10.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv10-gw = "172.20.74.97"; }; - hosts6 = { - dn42 = { priv10-gw = "fd23:42:c3d2:5c9::1"; }; - up4 = { priv10-gw = "2a00:8180:2c00:2c9::1"; }; - }; - subnet4 = "172.20.74.96/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c9::/64"; - up4 = "2a00:8180:2c00:2c9::/64"; - }; - }; - priv11 = { - dhcp = { - end = "172.20.74.174"; - max-time = 86400; - router = "priv11-gw.priv11"; - server = "priv11-gw"; - start = "172.20.74.162"; - time = 120; - }; - domainName = "priv11.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv11-gw = "172.20.74.161"; }; - hosts6 = { - dn42 = { priv11-gw = "fd23:42:c3d2:5ca::1"; }; - up4 = { priv11-gw = "2a00:8180:2c00:2ca::1"; }; - }; - subnet4 = "172.20.74.160/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5ca::/64"; - up4 = "2a00:8180:2c00:2ca::/64"; - }; - }; - priv12 = { - dhcp = { - end = "172.20.74.238"; - max-time = 86400; - router = "priv12-gw.priv12"; - server = "priv12-gw"; - start = "172.20.74.226"; - time = 120; - }; - domainName = "priv12.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv12-gw = "172.20.74.225"; }; - hosts6 = { - dn42 = { priv12-gw = "fd23:42:c3d2:5cb::1"; }; - up4 = { priv12-gw = "2a00:8180:2c00:2cb::1"; }; - }; - subnet4 = "172.20.74.224/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5cb::/64"; - up4 = "2a00:8180:2c00:2cb::/64"; - }; - }; - priv13 = { - dhcp = { - end = "172.20.75.46"; - max-time = 86400; - router = "priv13-gw.priv13"; - server = "priv13-gw"; - start = "172.20.75.34"; - time = 120; - }; - domainName = "priv13.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv13-gw = "172.20.75.33"; }; - hosts6 = { - dn42 = { priv13-gw = "fd23:42:c3d2:5cc::1"; }; - up4 = { priv13-gw = "2a00:8180:2c00:2cc::1"; }; - }; - subnet4 = "172.20.75.32/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5cc::/64"; - up4 = "2a00:8180:2c00:2cc::/64"; - }; - }; - priv14 = { - dhcp = { - end = "172.20.75.110"; - max-time = 86400; - router = "priv14-gw.priv14"; - server = "priv14-gw"; - start = "172.20.75.98"; - time = 120; - }; - domainName = "priv14.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv14-gw = "172.20.75.97"; }; - hosts6 = { - dn42 = { priv14-gw = "fd23:42:c3d2:5cd::1"; }; - up4 = { priv14-gw = "2a00:8180:2c00:2cd::1"; }; - }; - subnet4 = "172.20.75.96/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5cd::/64"; - up4 = "2a00:8180:2c00:2cd::/64"; - }; - }; - priv15 = { - dhcp = { - end = "172.20.75.174"; - max-time = 86400; - router = "priv15-gw.priv15"; - server = "priv15-gw"; - start = "172.20.75.162"; - time = 120; - }; - domainName = "priv15.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv15-gw = "172.20.75.161"; }; - hosts6 = { - dn42 = { priv15-gw = "fd23:42:c3d2:5ce::1"; }; - up4 = { priv15-gw = "2a00:8180:2c00:2ce::1"; }; - }; - subnet4 = "172.20.75.160/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5ce::/64"; - up4 = "2a00:8180:2c00:2ce::/64"; - }; - }; - priv16 = { - dhcp = { - end = "172.20.75.238"; - max-time = 86400; - router = "priv16-gw.priv16"; - server = "priv16-gw"; - start = "172.20.75.226"; - time = 120; - }; - domainName = "priv16.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv16-gw = "172.20.75.225"; }; - hosts6 = { - dn42 = { priv16-gw = "fd23:42:c3d2:5cf::1"; }; - up4 = { priv16-gw = "2a00:8180:2c00:2cf::1"; }; - }; - subnet4 = "172.20.75.224/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5cf::/64"; - up4 = "2a00:8180:2c00:2cf::/64"; - }; - }; - priv17 = { - dhcp = { - end = "172.20.73.158"; - max-time = 86400; - router = "priv17-gw.priv17"; - server = "priv17-gw"; - start = "172.20.73.131"; - time = 120; - }; - domainName = "priv17.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { - priv17-gw = "172.20.73.129"; - priv17-gw-up3 = "172.20.73.130"; - }; - hosts6 = { - dn42 = { priv17-gw = "fd23:42:c3d2:5d0::1"; }; - up4 = { priv17-gw = "2a00:8180:2c00:2d0::1"; }; - }; - subnet4 = "172.20.73.128/27"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d0::/64"; - up4 = "2a00:8180:2c00:2d0::/64"; - }; - }; - priv18 = { - dhcp = { - end = "172.20.74.62"; - max-time = 86400; - router = "priv18-gw.priv18"; - server = "priv18-gw"; - start = "172.20.74.50"; - time = 120; - }; - domainName = "priv18.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv18-gw = "172.20.74.49"; }; - hosts6 = { - dn42 = { priv18-gw = "fd23:42:c3d2:5d1::1"; }; - up4 = { priv18-gw = "2a00:8180:2c00:2d1::1"; }; - }; - subnet4 = "172.20.74.48/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d1::/64"; - up4 = "2a00:8180:2c00:2d1::/64"; - }; - }; - priv19 = { - dhcp = { - end = "172.20.73.254"; - max-time = 2592000; - router = "priv19-gw.priv19"; - server = "priv19-gw"; - start = "172.20.73.194"; - time = 120; - }; - domainName = "priv19.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv19-gw = "172.20.73.193"; }; - hosts6 = { - dn42 = { priv19-gw = "fd23:42:c3d2:5d2::1"; }; - up4 = { priv19-gw = "2a00:8180:2c00:2d2::1"; }; - }; - subnet4 = "172.20.73.192/26"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d2::/64"; - up4 = "2a00:8180:2c00:2d2::/64"; - }; - }; - priv2 = { - dhcp = { - end = "172.20.75.31"; - fixed-hosts = { - "172.20.75.7" = "60:33:4b:0b:cd:fc"; - "172.20.75.9" = "00:11:32:22:95:79"; +{ lib, ... }: +let + privCount = 42; + seq = n: max: + if n <= max + then [ n ] ++ seq (n + 1) max + else []; +in +lib.mkMerge ( + map (n: + let + toHex = n: with lib; toLower (toHexString n); + subnetUp4 = "2a00:8180:2c00:${toHex (703 + n)}::"; + subnetDn42 = "fd23:42:c3d2:${toHex (1471 + n)}::"; + in { + site.net."priv${toString n}" = { + dhcp = { + server = "priv${toString n}-gw"; + time = 120; + max-time = 86400; + router = "priv${toString n}-gw.priv${toString n}"; }; - max-time = 86400; - router = "priv2-gw.priv2"; - server = "priv2-gw"; - start = "172.20.75.2"; - time = 120; - }; - domainName = "priv2.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv2-gw = "172.20.75.1"; }; - hosts6 = { - dn42 = { priv2-gw = "fd23:42:c3d2:5c1::1"; }; - up4 = { priv2-gw = "2a00:8180:2c00:2c1::1"; }; - }; - subnet4 = "172.20.75.0/27"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c1::/64"; - up4 = "2a00:8180:2c00:2c1::/64"; - }; - }; - priv20 = { - dhcp = { - end = "172.20.74.126"; - max-time = 86400; - router = "priv20-gw.priv20"; - server = "priv20-gw"; - start = "172.20.74.114"; - time = 120; - }; - domainName = "priv20.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv20-gw = "172.20.74.113"; }; - hosts6 = { - dn42 = { priv20-gw = "fd23:42:c3d2:5d3::1"; }; - up4 = { priv20-gw = "2a00:8180:2c00:2d3::1"; }; - }; - subnet4 = "172.20.74.112/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d3::/64"; - up4 = "2a00:8180:2c00:2d3::/64"; - }; - }; - priv21 = { - dhcp = { - end = "172.20.74.158"; - max-time = 86400; - router = "priv21-gw.priv21"; - server = "priv21-gw"; - start = "172.20.74.146"; - time = 120; - }; - domainName = "priv21.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv21-gw = "172.20.74.145"; }; - hosts6 = { - dn42 = { priv21-gw = "fd23:42:c3d2:5d4::1"; }; - up4 = { priv21-gw = "2a00:8180:2c00:2d4::1"; }; - }; - subnet4 = "172.20.74.144/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d4::/64"; - up4 = "2a00:8180:2c00:2d4::/64"; - }; - }; - priv22 = { - dhcp = { - end = "172.20.74.190"; - max-time = 86400; - router = "priv22-gw.priv22"; - server = "priv22-gw"; - start = "172.20.74.178"; - time = 120; - }; - domainName = "priv22.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv22-gw = "172.20.74.177"; }; - hosts6 = { - dn42 = { priv22-gw = "fd23:42:c3d2:5d5::1"; }; - up4 = { priv22-gw = "2a00:8180:2c00:2d5::1"; }; - }; - subnet4 = "172.20.74.176/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d5::/64"; - up4 = "2a00:8180:2c00:2d5::/64"; - }; - }; - priv23 = { - dhcp = { - end = "172.20.73.190"; - fixed-hosts = { - "172.20.73.162" = "da:2c:3a:2c:87:22"; - "172.20.73.163" = "ca:9f:27:b2:bf:6d"; - "172.20.73.164" = "60:01:94:6f:81:a6"; + domainName = "priv${toString n}.zentralwerk.org"; + dynamicDomain = true; + hosts6 = { + dn42 = { "priv${toString n}-gw" = "${subnetDn42}1"; }; + up4 = { "priv${toString n}-gw" = "${subnetUp4}1"; }; + }; + subnets6 = { + dn42 = "${subnetDn42}/64"; + up4 = "${subnetUp4}/64"; }; - max-time = 86400; - router = "priv23-gw.priv23"; - server = "priv23-gw"; - start = "172.20.73.165"; - time = 120; }; - domainName = "priv23.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv23-gw = "172.20.73.161"; }; - hosts6 = { - dn42 = { priv23-gw = "fd23:42:c3d2:5d6::1"; }; - up4 = { priv23-gw = "2a00:8180:2c00:2d6::1"; }; - }; - subnet4 = "172.20.73.160/27"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d6::/64"; - up4 = "2a00:8180:2c00:2d6::/64"; - }; - }; - priv24 = { - dhcp = { - end = "172.20.74.254"; - max-time = 86400; - router = "priv24-gw.priv24"; - server = "priv24-gw"; - start = "172.20.74.242"; - time = 120; - }; - domainName = "priv24.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv24-gw = "172.20.74.241"; }; - hosts6 = { - dn42 = { priv24-gw = "fd23:42:c3d2:5d7::1"; }; - up4 = { priv24-gw = "2a00:8180:2c00:2d7::1"; }; - }; - subnet4 = "172.20.74.240/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d7::/64"; - up4 = "2a00:8180:2c00:2d7::/64"; - }; - }; - priv25 = { - dhcp = { - end = "172.20.74.94"; - max-time = 86400; - router = "priv25-gw.priv25"; - server = "priv25-gw"; - start = "172.20.74.82"; - time = 120; - }; - domainName = "priv25.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv25-gw = "172.20.74.81"; }; - hosts6 = { - dn42 = { priv25-gw = "fd23:42:c3d2:5d8::1"; }; - up4 = { priv25-gw = "2a00:8180:2c00:2d8::1"; }; - }; - subnet4 = "172.20.74.80/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d8::/64"; - up4 = "2a00:8180:2c00:2d8::/64"; - }; - }; - priv26 = { - dhcp = { - end = "172.20.75.62"; - max-time = 86400; - router = "priv26-gw.priv26"; - server = "priv26-gw"; - start = "172.20.75.50"; - time = 120; - }; - domainName = "priv26.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv26-gw = "172.20.75.49"; }; - hosts6 = { - dn42 = { priv26-gw = "fd23:42:c3d2:5d9::1"; }; - up4 = { priv26-gw = "2a00:8180:2c00:2d9::1"; }; - }; - subnet4 = "172.20.75.48/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5d9::/64"; - up4 = "2a00:8180:2c00:2d9::/64"; - }; - }; - priv27 = { - dhcp = { - end = "172.20.75.94"; - max-time = 86400; - router = "priv27-gw.priv27"; - server = "priv27-gw"; - start = "172.20.75.82"; - time = 120; - }; - domainName = "priv27.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv27-gw = "172.20.75.81"; }; - hosts6 = { - dn42 = { priv27-gw = "fd23:42:c3d2:5da::1"; }; - up4 = { priv27-gw = "2a00:8180:2c00:2da::1"; }; - }; - subnet4 = "172.20.75.80/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5da::/64"; - up4 = "2a00:8180:2c00:2da::/64"; - }; - }; - priv28 = { - dhcp = { - end = "172.20.75.126"; - max-time = 86400; - router = "priv28-gw.priv28"; - server = "priv28-gw"; - start = "172.20.75.114"; - time = 120; - }; - domainName = "priv28.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv28-gw = "172.20.75.113"; }; - hosts6 = { - dn42 = { priv28-gw = "fd23:42:c3d2:5db::1"; }; - up4 = { priv28-gw = "2a00:8180:2c00:2db::1"; }; - }; - subnet4 = "172.20.75.112/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5db::/64"; - up4 = "2a00:8180:2c00:2db::/64"; - }; - }; - priv29 = { - dhcp = { - end = "172.20.75.158"; - max-time = 86400; - router = "priv29-gw.priv29"; - server = "priv29-gw"; - start = "172.20.75.146"; - time = 120; - }; - domainName = "priv29.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv29-gw = "172.20.75.145"; }; - hosts6 = { - dn42 = { priv29-gw = "fd23:42:c3d2:5dc::1"; }; - up4 = { priv29-gw = "2a00:8180:2c00:2dc::1"; }; - }; - subnet4 = "172.20.75.144/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5dc::/64"; - up4 = "2a00:8180:2c00:2dc::/64"; - }; - }; - priv3 = { - dhcp = { - end = "172.20.74.142"; - max-time = 86400; - router = "priv3-gw.priv3"; - server = "priv3-gw"; - start = "172.20.74.130"; - time = 120; - }; - domainName = "priv3.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv3-gw = "172.20.74.129"; }; - hosts6 = { - dn42 = { priv3-gw = "fd23:42:c3d2:5c2::1"; }; - up4 = { priv3-gw = "2a00:8180:2c00:2c2::1"; }; - }; - subnet4 = "172.20.74.128/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c2::/64"; - up4 = "2a00:8180:2c00:2c2::/64"; - }; - }; - priv30 = { - dhcp = { - end = "172.20.75.190"; - max-time = 86400; - router = "priv30-gw.priv30"; - server = "priv30-gw"; - start = "172.20.75.178"; - time = 120; - }; - domainName = "priv30.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv30-gw = "172.20.75.177"; }; - hosts6 = { - dn42 = { priv30-gw = "fd23:42:c3d2:5dd::1"; }; - up4 = { priv30-gw = "2a00:8180:2c00:2dd::1"; }; - }; - subnet4 = "172.20.75.176/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5dd::/64"; - up4 = "2a00:8180:2c00:2dd::/64"; - }; - }; - priv31 = { - dhcp = { - end = "172.20.75.222"; - max-time = 86400; - router = "priv31-gw.priv31"; - server = "priv31-gw"; - start = "172.20.75.210"; - time = 120; - }; - domainName = "priv31.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv31-gw = "172.20.75.209"; }; - hosts6 = { - dn42 = { priv31-gw = "fd23:42:c3d2:5de::1"; }; - up4 = { priv31-gw = "2a00:8180:2c00:2de::1"; }; - }; - subnet4 = "172.20.75.208/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5de::/64"; - up4 = "2a00:8180:2c00:2de::/64"; - }; - }; - priv32 = { - dhcp = { - end = "172.20.75.254"; - max-time = 86400; - router = "priv32-gw.priv32"; - server = "priv32-gw"; - start = "172.20.75.242"; - time = 120; - }; - domainName = "priv32.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv32-gw = "172.20.75.241"; }; - hosts6 = { - dn42 = { priv32-gw = "fd23:42:c3d2:5df::1"; }; - up4 = { priv32-gw = "2a00:8180:2c00:2df::1"; }; - }; - subnet4 = "172.20.75.240/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5df::/64"; - up4 = "2a00:8180:2c00:2df::/64"; - }; - }; - priv33 = { - dhcp = { - end = "172.20.74.30"; - max-time = 86400; - router = "priv33-gw.priv33"; - server = "priv33-gw"; - start = "172.20.74.18"; - time = 120; - }; - domainName = "priv33.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv33-gw = "172.20.74.17"; }; - hosts6 = { - dn42 = { priv33-gw = "fd23:42:c3d2:5e0::1"; }; - up4 = { priv33-gw = "2a00:8180:2c00:2e0::1"; }; - }; - subnet4 = "172.20.74.16/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e0::/64"; - up4 = "2a00:8180:2c00:2e0::/64"; - }; - }; - priv34 = { - dhcp = { - end = "172.20.74.222"; - max-time = 86400; - router = "priv34-gw.priv34"; - server = "priv34-gw"; - start = "172.20.74.210"; - time = 120; - }; - domainName = "priv34.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv34-gw = "172.20.74.209"; }; - hosts6 = { - dn42 = { priv34-gw = "fd23:42:c3d2:5e1::1"; }; - up4 = { priv34-gw = "2a00:8180:2c00:2e1::1"; }; - }; - subnet4 = "172.20.74.208/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e1::/64"; - up4 = "2a00:8180:2c00:2e1::/64"; - }; - }; - priv35 = { - dhcp = { - end = "172.20.76.14"; - max-time = 86400; - router = "priv35-gw.priv35"; - server = "priv35-gw"; - start = "172.20.76.2"; - time = 120; - }; - domainName = "priv35.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv35-gw = "172.20.76.1"; }; - hosts6 = { - dn42 = { priv35-gw = "fd23:42:c3d2:5e2::1"; }; - up4 = { priv35-gw = "2a00:8180:2c00:2e2::1"; }; - }; - subnet4 = "172.20.76.0/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e2::/64"; - up4 = "2a00:8180:2c00:2e2::/64"; - }; - }; - priv36 = { - dhcp = { - end = "172.20.76.78"; - max-time = 86400; - router = "priv36-gw.priv36"; - server = "priv36-gw"; - start = "172.20.76.66"; - time = 120; - }; - domainName = "priv36.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv36-gw = "172.20.76.65"; }; - hosts6 = { - dn42 = { priv36-gw = "fd23:42:c3d2:5e3::1"; }; - up4 = { priv36-gw = "2a00:8180:2c00:2e3::1"; }; - }; - subnet4 = "172.20.76.64/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e3::/64"; - up4 = "2a00:8180:2c00:2e3::/64"; - }; - }; - priv37 = { - dhcp = { - end = "172.20.76.142"; - max-time = 86400; - router = "priv37-gw.priv37"; - server = "priv37-gw"; - start = "172.20.76.130"; - time = 120; - }; - domainName = "priv37.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv37-gw = "172.20.76.129"; }; - hosts6 = { - dn42 = { priv37-gw = "fd23:42:c3d2:5e4::1"; }; - up4 = { priv37-gw = "2a00:8180:2c00:2e4::1"; }; - }; - subnet4 = "172.20.76.128/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e4::/64"; - up4 = "2a00:8180:2c00:2e4::/64"; - }; - }; - priv38 = { - dhcp = { - end = "172.20.76.206"; - max-time = 86400; - router = "priv38-gw.priv38"; - server = "priv38-gw"; - start = "172.20.76.194"; - time = 120; - }; - domainName = "priv38.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv38-gw = "172.20.76.193"; }; - hosts6 = { - dn42 = { priv38-gw = "fd23:42:c3d2:5e5::1"; }; - up4 = { priv38-gw = "2a00:8180:2c00:2e5::1"; }; - }; - subnet4 = "172.20.76.192/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e5::/64"; - up4 = "2a00:8180:2c00:2e5::/64"; - }; - }; - priv39 = { - dhcp = { - end = "172.20.77.142"; - max-time = 86400; - router = "priv39-gw.priv39"; - server = "priv39-gw"; - start = "172.20.77.130"; - time = 120; - }; - domainName = "priv39.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv39-gw = "172.20.77.129"; }; - hosts6 = { - dn42 = { priv39-gw = "fd23:42:c3d2:5e6::1"; }; - up4 = { priv39-gw = "2a00:8180:2c00:2e6::1"; }; - }; - subnet4 = "172.20.77.128/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e6::/64"; - up4 = "2a00:8180:2c00:2e6::/64"; - }; - }; - priv4 = { - dhcp = { - end = "172.20.75.142"; - max-time = 86400; - router = "priv4-gw.priv4"; - server = "priv4-gw"; - start = "172.20.75.130"; - time = 120; - }; - domainName = "priv4.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv4-gw = "172.20.75.129"; }; - hosts6 = { - dn42 = { priv4-gw = "fd23:42:c3d2:5c3::1"; }; - up4 = { priv4-gw = "2a00:8180:2c00:2c3::1"; }; - }; - subnet4 = "172.20.75.128/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c3::/64"; - up4 = "2a00:8180:2c00:2c3::/64"; - }; - }; - priv40 = { - dhcp = { - end = "172.20.77.78"; - max-time = 86400; - router = "priv40-gw.priv40"; - server = "priv40-gw"; - start = "172.20.77.66"; - time = 120; - }; - domainName = "priv40.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv40-gw = "172.20.77.65"; }; - hosts6 = { - dn42 = { priv40-gw = "fd23:42:c3d2:5e7::1"; }; - up4 = { priv40-gw = "2a00:8180:2c00:2e7::1"; }; - }; - subnet4 = "172.20.77.64/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e7::/64"; - up4 = "2a00:8180:2c00:2e7::/64"; - }; - }; - priv41 = { - dhcp = { - end = "172.20.77.206"; - max-time = 86400; - router = "priv41-gw.priv41"; - server = "priv41-gw"; - start = "172.20.77.194"; - time = 120; - }; - domainName = "priv41.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv41-gw = "172.20.77.193"; }; - hosts6 = { - dn42 = { priv41-gw = "fd23:42:c3d2:5e8::1"; }; - up4 = { priv41-gw = "2a00:8180:2c00:2e8::1"; }; - }; - subnet4 = "172.20.77.192/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e8::/64"; - up4 = "2a00:8180:2c00:2e8::/64"; - }; - }; - priv42 = { - dhcp = { - end = "172.20.76.46"; - max-time = 86400; - router = "priv42-gw.priv42"; - server = "priv42-gw"; - start = "172.20.76.34"; - time = 120; - }; - domainName = "priv42.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv42-gw = "172.20.76.33"; }; - hosts6 = { - dn42 = { priv42-gw = "fd23:42:c3d2:5e9::1"; }; - up4 = { priv42-gw = "2a00:8180:2c00:2e9::1"; }; - }; - subnet4 = "172.20.76.32/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5e9::/64"; - up4 = "2a00:8180:2c00:2e9::/64"; - }; - }; - priv43 = { - dhcp = null; - domainName = "priv43.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv44 = { - dhcp = null; - domainName = "priv44.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv45 = { - dhcp = null; - domainName = "priv45.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv46 = { - dhcp = null; - domainName = "priv46.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv47 = { - dhcp = null; - domainName = "priv47.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv48 = { - dhcp = null; - domainName = "priv48.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv49 = { - dhcp = null; - domainName = "priv49.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv5 = { - dhcp = { - end = "172.20.74.78"; - max-time = 86400; - router = "priv5-gw.priv5"; - server = "priv5-gw"; - start = "172.20.74.66"; - time = 120; - }; - domainName = "priv5.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv5-gw = "172.20.74.65"; }; - hosts6 = { - dn42 = { priv5-gw = "fd23:42:c3d2:5c4::1"; }; - up4 = { priv5-gw = "2a00:8180:2c00:2c4::1"; }; - }; - subnet4 = "172.20.74.64/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c4::/64"; - up4 = "2a00:8180:2c00:2c4::/64"; - }; - }; - priv50 = { - dhcp = null; - domainName = "priv50.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv51 = { - dhcp = null; - domainName = "priv51.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv52 = { - dhcp = null; - domainName = "priv52.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv53 = { - dhcp = null; - domainName = "priv53.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv54 = { - dhcp = null; - domainName = "priv54.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv55 = { - dhcp = null; - domainName = "priv55.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv56 = { - dhcp = null; - domainName = "priv56.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv57 = { - dhcp = null; - domainName = "priv57.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv58 = { - dhcp = null; - domainName = "priv58.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv59 = { - dhcp = null; - domainName = "priv59.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv6 = { - dhcp = { - end = "172.20.74.206"; - max-time = 86400; - router = "priv6-gw.priv6"; - server = "priv6-gw"; - start = "172.20.74.194"; - time = 120; - }; - domainName = "priv6.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv6-gw = "172.20.74.193"; }; - hosts6 = { - dn42 = { priv6-gw = "fd23:42:c3d2:5c5::1"; }; - up4 = { priv6-gw = "2a00:8180:2c00:2c5::1"; }; - }; - subnet4 = "172.20.74.192/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c5::/64"; - up4 = "2a00:8180:2c00:2c5::/64"; - }; - }; - priv60 = { - dhcp = null; - domainName = "priv60.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv61 = { - dhcp = null; - domainName = "priv61.zentralwerk.org"; - hosts4 = { }; - hosts6 = { }; - subnet4 = null; - subnets6 = { }; - }; - priv7 = { - dhcp = { - end = "172.20.75.78"; - max-time = 86400; - router = "priv7-gw.priv7"; - server = "priv7-gw"; - start = "172.20.75.66"; - time = 120; - }; - domainName = "priv7.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv7-gw = "172.20.75.65"; }; - hosts6 = { - dn42 = { priv7-gw = "fd23:42:c3d2:5c6::1"; }; - up4 = { priv7-gw = "2a00:8180:2c00:2c6::1"; }; - }; - subnet4 = "172.20.75.64/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c6::/64"; - up4 = "2a00:8180:2c00:2c6::/64"; - }; - }; - priv8 = { - dhcp = { - end = "172.20.75.206"; - max-time = 86400; - router = "priv8-gw.priv8"; - server = "priv8-gw"; - start = "172.20.75.194"; - time = 120; - }; - domainName = "priv8.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv8-gw = "172.20.75.193"; }; - hosts6 = { - dn42 = { priv8-gw = "fd23:42:c3d2:5c7::1"; }; - up4 = { priv8-gw = "2a00:8180:2c00:2c7::1"; }; - }; - subnet4 = "172.20.75.192/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c7::/64"; - up4 = "2a00:8180:2c00:2c7::/64"; - }; - }; - priv9 = { - dhcp = { - end = "172.20.74.46"; - max-time = 86400; - router = "priv9-gw.priv9"; - server = "priv9-gw"; - start = "172.20.74.34"; - time = 120; - }; - domainName = "priv9.zentralwerk.org"; - dynamicDomain = true; - hosts4 = { priv9-gw = "172.20.74.33"; }; - hosts6 = { - dn42 = { priv9-gw = "fd23:42:c3d2:5c8::1"; }; - up4 = { priv9-gw = "2a00:8180:2c00:2c8::1"; }; - }; - subnet4 = "172.20.74.32/28"; - subnets6 = { - dn42 = "fd23:42:c3d2:5c8::/64"; - up4 = "2a00:8180:2c00:2c8::/64"; - }; - }; - }; - site.hosts = { - priv1-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:19:00"; - type = "veth"; + site.hosts."priv${toString n}-gw" = { + role = "container"; + interfaces = { + core.type = "veth"; + "priv${toString n}".type = "veth"; }; - priv1 = { - hwaddr = "0A:14:48:01:19:01"; - type = "veth"; + ospf.allowedUpstreams = [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; + }; + } + ) (seq 1 privCount) + ++ + [ { + site.net = { + priv1 = { + subnet4 = "172.20.74.0/28"; + hosts4 = { priv1-gw = "172.20.74.1"; }; + dhcp = { + end = "172.20.74.14"; + start = "172.20.74.2"; }; }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; + priv2 = { + hosts4 = { priv2-gw = "172.20.75.1"; }; + subnet4 = "172.20.75.0/27"; + dhcp = { + start = "172.20.75.2"; + end = "172.20.75.31"; + fixed-hosts = { + "172.20.75.7" = "60:33:4b:0b:cd:fc"; + "172.20.75.9" = "00:11:32:22:95:79"; + }; + }; + }; + priv3 = { + hosts4 = { priv3-gw = "172.20.74.129"; }; + subnet4 = "172.20.74.128/28"; + dhcp = { + start = "172.20.74.130"; + end = "172.20.74.142"; + }; + }; + priv4 = { + hosts4 = { priv4-gw = "172.20.75.129"; }; + subnet4 = "172.20.75.128/28"; + dhcp = { + start = "172.20.75.130"; + end = "172.20.75.142"; + }; + }; + priv5 = { + hosts4 = { priv5-gw = "172.20.74.65"; }; + subnet4 = "172.20.74.64/28"; + dhcp = { + start = "172.20.74.66"; + end = "172.20.74.78"; + }; + }; + priv6 = { + hosts4 = { priv6-gw = "172.20.74.193"; }; + subnet4 = "172.20.74.192/28"; + dhcp = { + start = "172.20.74.194"; + end = "172.20.74.206"; + }; + }; + priv7 = { + hosts4 = { priv7-gw = "172.20.75.65"; }; + subnet4 = "172.20.75.64/28"; + dhcp = { + start = "172.20.75.66"; + end = "172.20.75.78"; + }; + }; + priv8 = { + hosts4 = { priv8-gw = "172.20.75.193"; }; + subnet4 = "172.20.75.192/28"; + dhcp = { + start = "172.20.75.194"; + end = "172.20.75.206"; + }; + }; + priv9 = { + hosts4 = { priv9-gw = "172.20.74.33"; }; + subnet4 = "172.20.74.32/28"; + dhcp = { + start = "172.20.74.34"; + end = "172.20.74.46"; + }; + }; + priv10 = { + hosts4 = { priv10-gw = "172.20.74.97"; }; + subnet4 = "172.20.74.96/28"; + dhcp = { + start = "172.20.74.98"; + end = "172.20.74.110"; + }; + }; + priv11 = { + hosts4 = { priv11-gw = "172.20.74.161"; }; + subnet4 = "172.20.74.160/28"; + dhcp = { + start = "172.20.74.162"; + end = "172.20.74.174"; + }; + }; + priv12 = { + hosts4 = { priv12-gw = "172.20.74.225"; }; + subnet4 = "172.20.74.224/28"; + dhcp = { + start = "172.20.74.226"; + end = "172.20.74.238"; + }; + }; + priv13 = { + hosts4 = { priv13-gw = "172.20.75.33"; }; + subnet4 = "172.20.75.32/28"; + dhcp = { + start = "172.20.75.34"; + end = "172.20.75.46"; + }; + }; + priv14 = { + hosts4 = { priv14-gw = "172.20.75.97"; }; + subnet4 = "172.20.75.96/28"; + dhcp = { + start = "172.20.75.98"; + end = "172.20.75.110"; + }; + }; + priv15 = { + hosts4 = { priv15-gw = "172.20.75.161"; }; + subnet4 = "172.20.75.160/28"; + dhcp = { + start = "172.20.75.162"; + end = "172.20.75.174"; + }; + }; + priv16 = { + hosts4 = { priv16-gw = "172.20.75.225"; }; + subnet4 = "172.20.75.224/28"; + dhcp = { + start = "172.20.75.226"; + end = "172.20.75.238"; + }; + }; + priv17 = { + hosts4 = { + priv17-gw = "172.20.73.129"; + priv17-gw-up3 = "172.20.73.130"; + }; + subnet4 = "172.20.73.128/27"; + dhcp = { + start = "172.20.73.131"; + end = "172.20.73.158"; + }; + }; + priv18 = { + hosts4 = { priv18-gw = "172.20.74.49"; }; + subnet4 = "172.20.74.48/28"; + dhcp = { + start = "172.20.74.50"; + end = "172.20.74.62"; + }; + }; + priv19 = { + hosts4 = { priv19-gw = "172.20.73.193"; }; + subnet4 = "172.20.73.192/26"; + dhcp = { + start = "172.20.73.194"; + end = "172.20.73.254"; + max-time = lib.mkForce 2592000; + }; + }; + priv20 = { + hosts4 = { priv20-gw = "172.20.74.113"; }; + subnet4 = "172.20.74.112/28"; + dhcp = { + start = "172.20.74.114"; + end = "172.20.74.126"; + }; + }; + priv21 = { + hosts4 = { priv21-gw = "172.20.74.145"; }; + subnet4 = "172.20.74.144/28"; + dhcp = { + start = "172.20.74.146"; + end = "172.20.74.158"; + }; + }; + priv22 = { + hosts4 = { priv22-gw = "172.20.74.177"; }; + subnet4 = "172.20.74.176/28"; + dhcp = { + start = "172.20.74.178"; + end = "172.20.74.190"; + }; + }; + priv23 = { + hosts4 = { priv23-gw = "172.20.73.161"; }; + subnet4 = "172.20.73.160/27"; + dhcp = { + start = "172.20.73.165"; + end = "172.20.73.190"; + fixed-hosts = { + "172.20.73.162" = "da:2c:3a:2c:87:22"; + "172.20.73.163" = "ca:9f:27:b2:bf:6d"; + "172.20.73.164" = "60:01:94:6f:81:a6"; + }; + }; + }; + priv24 = { + hosts4 = { priv24-gw = "172.20.74.241"; }; + subnet4 = "172.20.74.240/28"; + dhcp = { + start = "172.20.74.242"; + end = "172.20.74.254"; + }; + }; + priv25 = { + hosts4 = { priv25-gw = "172.20.74.81"; }; + subnet4 = "172.20.74.80/28"; + dhcp = { + start = "172.20.74.82"; + end = "172.20.74.94"; + }; + }; + priv26 = { + hosts4 = { priv26-gw = "172.20.75.49"; }; + subnet4 = "172.20.75.48/28"; + dhcp = { + start = "172.20.75.50"; + end = "172.20.75.62"; + }; + }; + priv27 = { + hosts4 = { priv27-gw = "172.20.75.81"; }; + subnet4 = "172.20.75.80/28"; + dhcp = { + start = "172.20.75.82"; + end = "172.20.75.94"; + }; + }; + priv28 = { + hosts4 = { priv28-gw = "172.20.75.113"; }; + subnet4 = "172.20.75.112/28"; + dhcp = { + start = "172.20.75.114"; + end = "172.20.75.126"; + }; + }; + priv29 = { + hosts4 = { priv29-gw = "172.20.75.145"; }; + subnet4 = "172.20.75.144/28"; + dhcp = { + start = "172.20.75.146"; + end = "172.20.75.158"; + }; + }; + priv30 = { + hosts4 = { priv30-gw = "172.20.75.177"; }; + subnet4 = "172.20.75.176/28"; + dhcp = { + start = "172.20.75.178"; + end = "172.20.75.190"; + }; + }; + priv31 = { + hosts4 = { priv31-gw = "172.20.75.209"; }; + subnet4 = "172.20.75.208/28"; + dhcp = { + start = "172.20.75.210"; + end = "172.20.75.222"; + }; + }; + priv32 = { + hosts4 = { priv32-gw = "172.20.75.241"; }; + subnet4 = "172.20.75.240/28"; + dhcp = { + start = "172.20.75.242"; + end = "172.20.75.254"; + }; + }; + priv33 = { + hosts4 = { priv33-gw = "172.20.74.17"; }; + subnet4 = "172.20.74.16/28"; + dhcp = { + start = "172.20.74.18"; + end = "172.20.74.30"; + }; + }; + priv34 = { + hosts4 = { priv34-gw = "172.20.74.209"; }; + subnet4 = "172.20.74.208/28"; + dhcp = { + start = "172.20.74.210"; + end = "172.20.74.222"; + }; + }; + priv35 = { + hosts4 = { priv35-gw = "172.20.76.1"; }; + subnet4 = "172.20.76.0/28"; + dhcp = { + start = "172.20.76.2"; + end = "172.20.76.14"; + }; + }; + priv36 = { + hosts4 = { priv36-gw = "172.20.76.65"; }; + subnet4 = "172.20.76.64/28"; + dhcp = { + start = "172.20.76.66"; + end = "172.20.76.78"; + }; + }; + priv37 = { + hosts4 = { priv37-gw = "172.20.76.129"; }; + subnet4 = "172.20.76.128/28"; + dhcp = { + start = "172.20.76.130"; + end = "172.20.76.142"; + }; + }; + priv38 = { + hosts4 = { priv38-gw = "172.20.76.193"; }; + subnet4 = "172.20.76.192/28"; + dhcp = { + start = "172.20.76.194"; + end = "172.20.76.206"; + }; + }; + priv39 = { + hosts4 = { priv39-gw = "172.20.77.129"; }; + subnet4 = "172.20.77.128/28"; + dhcp = { + start = "172.20.77.130"; + end = "172.20.77.142"; + }; + }; + priv40 = { + hosts4 = { priv40-gw = "172.20.77.65"; }; + subnet4 = "172.20.77.64/28"; + dhcp = { + start = "172.20.77.66"; + end = "172.20.77.78"; + }; + }; + priv41 = { + hosts4 = { priv41-gw = "172.20.77.193"; }; + subnet4 = "172.20.77.192/28"; + dhcp = { + start = "172.20.77.194"; + end = "172.20.77.206"; + }; + }; + priv42 = { + hosts4 = { priv42-gw = "172.20.76.33"; }; + subnet4 = "172.20.76.32/28"; + dhcp = { + start = "172.20.76.34"; + end = "172.20.76.46"; + }; }; - role = "container"; }; - priv10-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:13:02"; - type = "veth"; - }; - priv10 = { - hwaddr = "0A:14:48:01:13:03"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv11-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:29:00"; - type = "veth"; - }; - priv11 = { - hwaddr = "0A:14:48:01:29:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv12-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:00"; - type = "veth"; - }; - priv12 = { - hwaddr = "0A:14:48:01:2A:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv13-gw = { - firewall.enable = true; - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:10"; - type = "veth"; - }; - priv13 = { - hwaddr = "0A:14:48:01:2A:11"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv14-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:12"; - type = "veth"; - }; - priv14 = { - hwaddr = "0A:14:48:01:2A:13"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv15-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:14"; - type = "veth"; - }; - priv15 = { - hwaddr = "0A:14:48:01:2A:15"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv16-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:16"; - type = "veth"; - }; - priv16 = { - hwaddr = "0A:14:48:01:2A:17"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv17-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:18"; - type = "veth"; - }; - priv17 = { - hwaddr = "0A:14:48:01:2A:19"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv17-gw-up3 = { - interfaces = { - core = { - hwaddr = "0A:14:47:02:2A:18"; - type = "veth"; - }; - priv17 = { - hwaddr = "0A:14:47:02:2A:19"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream3" "upstream4" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv18-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:1A"; - type = "veth"; - }; - priv18 = { - hwaddr = "0A:14:48:01:2A:1B"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv19-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:1C"; - type = "veth"; - }; - priv19 = { - hwaddr = "0A:14:48:01:2A:1D"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv2-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:18:00"; - type = "veth"; - }; - priv2 = { - hwaddr = "0A:14:48:01:18:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv20-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:1E"; - type = "veth"; - }; - priv20 = { - hwaddr = "0A:14:48:01:2A:1F"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv21-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:20"; - type = "veth"; - }; - priv21 = { - hwaddr = "0A:14:48:01:2A:21"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv22-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:24"; - type = "veth"; - }; - priv22 = { - hwaddr = "0A:14:48:01:2A:25"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv23-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:22"; - type = "veth"; - }; - priv23 = { - hwaddr = "0A:14:48:01:2A:23"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv24-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:26"; - type = "veth"; - }; - priv24 = { - hwaddr = "0A:14:48:01:2A:27"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv25-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:28"; - type = "veth"; - }; - priv25 = { - hwaddr = "0A:14:48:01:2A:29"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv26-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:2A"; - type = "veth"; - }; - priv26 = { - hwaddr = "0A:14:48:01:2A:2B"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv27-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:2C"; - type = "veth"; - }; - priv27 = { - hwaddr = "0A:14:48:01:2A:2D"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv28-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:2E"; - type = "veth"; - }; - priv28 = { - hwaddr = "0A:14:48:01:2A:2F"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv29-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:30"; - type = "veth"; - }; - priv29 = { - hwaddr = "0A:14:48:01:2A:31"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv3-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:08:00"; - type = "veth"; - }; - priv3 = { - hwaddr = "0A:14:48:01:08:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv30-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:32"; - type = "veth"; - }; - priv30 = { - hwaddr = "0A:14:48:01:2A:33"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv31-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:34"; - type = "veth"; - }; - priv31 = { - hwaddr = "0A:14:48:01:2A:35"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv32-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:36"; - type = "veth"; - }; - priv32 = { - hwaddr = "0A:14:48:01:2A:37"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv33-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:38"; - type = "veth"; - }; - priv33 = { - hwaddr = "0A:14:48:01:2A:39"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv34-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:40"; - type = "veth"; - }; - priv34 = { - hwaddr = "0A:14:48:01:2A:41"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv35-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:42"; - type = "veth"; - }; - priv35 = { - hwaddr = "0A:14:48:01:2A:43"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv36-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:44"; - type = "veth"; - }; - priv36 = { - hwaddr = "0A:14:48:01:2A:45"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv37-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:46"; - type = "veth"; - }; - priv37 = { - hwaddr = "0A:14:48:01:2A:47"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv38-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:48"; - type = "veth"; - }; - priv38 = { - hwaddr = "0A:14:48:01:2A:49"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv39-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:4A"; - type = "veth"; - }; - priv39 = { - hwaddr = "0A:14:48:01:2A:4B"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv4-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:17:01"; - type = "veth"; - }; - priv4 = { - hwaddr = "0A:14:48:01:17:00"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv40-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:4C"; - type = "veth"; - }; - priv40 = { - hwaddr = "0A:14:48:01:2A:4D"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv41-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:4E"; - type = "veth"; - }; - priv41 = { - hwaddr = "0A:14:48:01:2A:4F"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv42-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:2A:50"; - type = "veth"; - }; - priv42 = { - hwaddr = "0A:14:48:01:2A:51"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv5-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:12:00"; - type = "veth"; - }; - priv5 = { - hwaddr = "0A:14:48:01:12:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv6-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:11:00"; - type = "veth"; - }; - priv6 = { - hwaddr = "0A:14:48:01:11:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv7-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:10:00"; - type = "veth"; - }; - priv7 = { - hwaddr = "0A:14:48:01:10:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv8-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:09:00"; - type = "veth"; - }; - priv8 = { - hwaddr = "0A:14:48:01:09:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - priv9-gw = { - interfaces = { - core = { - hwaddr = "0A:14:48:01:20:00"; - type = "veth"; - }; - priv9 = { - hwaddr = "0A:14:48:01:20:01"; - type = "veth"; - }; - }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; - }; - role = "container"; - }; - }; -} + site.hosts = { + priv1-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:19:00"; + priv1.hwaddr = "0A:14:48:01:19:01"; + }; + }; + priv2-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:18:00"; + priv2.hwaddr = "0A:14:48:01:18:01"; + }; + }; + priv3-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:08:00"; + priv3.hwaddr = "0A:14:48:01:08:01"; + }; + }; + priv4-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:17:01"; + priv4.hwaddr = "0A:14:48:01:17:00"; + }; + }; + priv5-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:12:00"; + priv5.hwaddr = "0A:14:48:01:12:01"; + }; + }; + priv6-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:11:00"; + priv6.hwaddr = "0A:14:48:01:11:01"; + }; + }; + priv7-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:10:00"; + priv7.hwaddr = "0A:14:48:01:10:01"; + }; + }; + priv8-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:09:00"; + priv8.hwaddr = "0A:14:48:01:09:01"; + }; + }; + priv9-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:20:00"; + priv9.hwaddr = "0A:14:48:01:20:01"; + }; + }; + priv10-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:13:02"; + priv10.hwaddr = "0A:14:48:01:13:03"; + }; + }; + priv11-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:29:00"; + priv11.hwaddr = "0A:14:48:01:29:01"; + }; + }; + priv12-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:00"; + priv12.hwaddr = "0A:14:48:01:2A:01"; + }; + }; + priv13-gw = { + firewall.enable = true; + interfaces = { + core.hwaddr = "0A:14:48:01:2A:10"; + priv13.hwaddr = "0A:14:48:01:2A:11"; + }; + }; + priv14-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:12"; + priv14.hwaddr = "0A:14:48:01:2A:13"; + }; + }; + priv15-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:14"; + priv15.hwaddr = "0A:14:48:01:2A:15"; + }; + }; + priv16-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:16"; + priv16.hwaddr = "0A:14:48:01:2A:17"; + }; + }; + priv17-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:18"; + priv17.hwaddr = "0A:14:48:01:2A:19"; + }; + }; + priv17-gw-up3 = { + role = "container"; + interfaces = { + core = { + type = "veth"; + hwaddr = "0A:14:47:02:2A:18"; + }; + priv17 = { + type = "veth"; + hwaddr = "0A:14:47:02:2A:19"; + }; + }; + ospf.allowedUpstreams = [ "upstream3" "upstream4" "upstream1" "anon1" "freifunk" ]; + }; + priv18-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:1A"; + priv18.hwaddr = "0A:14:48:01:2A:1B"; + }; + }; + priv19-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:1C"; + priv19.hwaddr = "0A:14:48:01:2A:1D"; + }; + }; + priv20-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:1E"; + priv20.hwaddr = "0A:14:48:01:2A:1F"; + }; + }; + priv21-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:20"; + priv21.hwaddr = "0A:14:48:01:2A:21"; + }; + }; + priv22-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:24"; + priv22.hwaddr = "0A:14:48:01:2A:25"; + }; + }; + priv23-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:22"; + priv23.hwaddr = "0A:14:48:01:2A:23"; + }; + }; + priv24-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:26"; + priv24.hwaddr = "0A:14:48:01:2A:27"; + }; + }; + priv25-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:28"; + priv25.hwaddr = "0A:14:48:01:2A:29"; + }; + }; + priv26-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:2A"; + priv26.hwaddr = "0A:14:48:01:2A:2B"; + }; + }; + priv27-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:2C"; + priv27.hwaddr = "0A:14:48:01:2A:2D"; + }; + }; + priv28-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:2E"; + priv28.hwaddr = "0A:14:48:01:2A:2F"; + }; + }; + priv29-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:30"; + priv29.hwaddr = "0A:14:48:01:2A:31"; + }; + }; + priv30-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:32"; + priv30.hwaddr = "0A:14:48:01:2A:33"; + }; + }; + priv31-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:34"; + priv31.hwaddr = "0A:14:48:01:2A:35"; + }; + }; + priv32-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:36"; + priv32.hwaddr = "0A:14:48:01:2A:37"; + }; + }; + priv33-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:38"; + priv33.hwaddr = "0A:14:48:01:2A:39"; + }; + }; + priv34-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:40"; + priv34.hwaddr = "0A:14:48:01:2A:41"; + }; + }; + priv35-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:42"; + priv35.hwaddr = "0A:14:48:01:2A:43"; + }; + }; + priv36-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:44"; + priv36.hwaddr = "0A:14:48:01:2A:45"; + }; + }; + priv37-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:46"; + priv37.hwaddr = "0A:14:48:01:2A:47"; + }; + }; + priv38-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:48"; + priv38.hwaddr = "0A:14:48:01:2A:49"; + }; + }; + priv39-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:4A"; + priv39.hwaddr = "0A:14:48:01:2A:4B"; + }; + }; + priv40-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:4C"; + priv40.hwaddr = "0A:14:48:01:2A:4D"; + }; + }; + priv41-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:4E"; + priv41.hwaddr = "0A:14:48:01:2A:4F"; + }; + }; + priv42-gw = { + interfaces = { + core.hwaddr = "0A:14:48:01:2A:50"; + priv42.hwaddr = "0A:14:48:01:2A:51"; + }; + }; + }; + } ] +)