diff --git a/config/serv.nix b/config/serv.nix index 545d276..0319d06 100644 --- a/config/serv.nix +++ b/config/serv.nix @@ -1,52 +1,44 @@ +{ lib, ... }: { site.net.serv = { domainName = "serv.zentralwerk.org"; + subnet4 = "172.20.73.0/26"; hosts4 = { - bind = "172.20.73.61"; + serv-gw = "172.20.73.1"; + dns = "172.20.73.2"; + stats = "172.20.73.3"; + radius = "172.20.73.4"; + zeit = "172.20.73.5"; + ntp = "172.20.73.5"; + minecraft = "172.20.73.6"; + used1 = "172.20.73.7"; + dnscache = "172.20.73.8"; + used2 = "172.20.73.9"; + used3 = "172.20.73.10"; + used4 = "172.20.73.11"; + used5 = "172.20.73.12"; + logging = "172.20.73.13"; + used6 = "172.20.73.14"; c3d2-web = "172.20.73.15"; deployer = "172.20.73.16"; - dns = "172.20.73.2"; - dnscache = "172.20.73.8"; - gitea = "172.20.73.53"; - grafana = "172.20.73.43"; - hydra = "172.20.73.49"; + used7 = "172.20.73.17"; + used8 = "172.20.73.18"; + used9 = "172.20.73.19"; ipa = "172.20.73.20"; - jabber = "172.20.73.55"; - keycloak = "172.20.73.59"; - kibana = "172.20.73.44"; - leonos = "172.20.73.47"; - logging = "172.20.73.13"; - mail = "172.20.73.58"; - marenz = "172.20.73.46"; matemat = "172.20.73.21"; - minecraft = "172.20.73.6"; - minetest = "172.20.73.48"; - mobilizon = "172.20.73.56"; - mucbot = "172.20.73.27"; - netboot = "172.20.73.50"; - ntp = "172.20.73.5"; - public-access-proxy = "172.20.73.45"; - radiobert = "172.20.73.57"; - radius = "172.20.73.4"; - scrape = "172.20.73.32"; - sdrweb = "172.20.73.60"; - serv-gw = "172.20.73.1"; - spaceapi = "172.20.73.25"; - stats = "172.20.73.3"; - stream = "172.20.73.54"; - ticker = "172.20.73.52"; - used1 = "172.20.73.7"; used10 = "172.20.73.22"; used11 = "172.20.73.23"; used12 = "172.20.73.24"; + spaceapi = "172.20.73.25"; used13 = "172.20.73.26"; + mucbot = "172.20.73.27"; used14 = "172.20.73.28"; used15 = "172.20.73.29"; used16 = "172.20.73.30"; used17 = "172.20.73.31"; + scrape = "172.20.73.32"; used18 = "172.20.73.32"; used19 = "172.20.73.33"; - used2 = "172.20.73.9"; used20 = "172.20.73.34"; used21 = "172.20.73.35"; used22 = "172.20.73.36"; @@ -54,134 +46,121 @@ used24 = "172.20.73.38"; used25 = "172.20.73.39"; used26 = "172.20.73.40"; - used3 = "172.20.73.10"; - used4 = "172.20.73.11"; - used5 = "172.20.73.12"; - used6 = "172.20.73.14"; - used7 = "172.20.73.17"; - used8 = "172.20.73.18"; - used9 = "172.20.73.19"; + # unused = "172.22.73.41"; + # unused = "172.22.73.42"; + grafana = "172.20.73.43"; + kibana = "172.20.73.44"; + public-access-proxy = "172.20.73.45"; + marenz = "172.20.73.46"; + leonos = "172.20.73.47"; + minetest = "172.20.73.48"; + hydra = "172.20.73.49"; + netboot = "172.20.73.50"; vps1 = "172.20.73.51"; - zeit = "172.20.73.5"; + ticker = "172.20.73.52"; + gitea = "172.20.73.53"; + stream = "172.20.73.54"; + jabber = "172.20.73.55"; + mobilizon = "172.20.73.56"; + radiobert = "172.20.73.57"; + mail = "172.20.73.58"; + keycloak = "172.20.73.59"; + sdrweb = "172.20.73.60"; + bind = "172.20.73.61"; }; - hosts6 = { - dn42 = { - bind = "fd23:42:c3d2:582:cd7:56ff:fe69:6366"; - c3d2-web = "fd23:42:c3d2:582:642e:95ff:fe34:49f9"; - dns = "fd23:42:c3d2:582:2:0:0:2"; - dnscache = "fd23:42:c3d2:582:f096:dbff:fee8:427d"; - grafana = "fd23:42:c3d2:582:4042:fbff:fe4b:2de8"; - hydra = "fd23:42:c3d2:582:e03c:d7ff:fe8e:fe16"; - jabber = "fd23:42:c3d2:582:b869:ccff:fe46:902a"; - keycloak = "fd23:42:c3d2:582:c48:bbff:fe87:721d"; - logging = "fd23:42:c3d2:582:6811:edff:fe40:89c6"; - mail = "fd23:42:c3d2:582:88c0:41ff:fe70:d6cd"; - minetest = "fd23:42:c3d2:582:c3a:42ff:fe5d:b20c"; - mobilizon = "fd23:42:c3d2:582:48d1:5cff:fea7:1676"; - mongo = "fd23:42:c3d2:582:14ec:c8ff:fe0a:fc5c"; - netboot = "fd23:42:c3d2:582:2:0:0:6"; - radiobert = "fd23:42:c3d2:582:e65f:1ff:fe5d:1679"; - radius = "fd23:42:c3d2:582:2:0:0:4"; - serv-gw = "fd23:42:c3d2:582::1"; - spaceapi = "fd23:42:c3d2:582:1457:adff:fe93:62e9"; - stats = "fd23:42:c3d2:582:2:0:0:3"; - zeit = "fd23:42:c3d2:582:2:0:0:5"; - }; - up4 = { - bind = "2a00:8180:2c00:282:cd7:56ff:fe69:6366"; - c3d2-web = "2a00:8180:2c00:282:642e:95ff:fe34:49f9"; - dns = "2a00:8180:2c00:282:2:0:0:2"; - dnscache = "2a00:8180:2c00:282:f096:dbff:fee8:427d"; - grafana = "2a00:8180:2c00:282:4042:fbff:fe4b:2de8"; - hydra = "2a00:8180:2c00:282:e03c:d7ff:fe8e:fe16"; - jabber = "2a00:8180:2c00:282:b869:ccff:fe46:902a"; - keycloak = "2a00:8180:2c00:282:c48:bbff:fe87:721d"; - logging = "2a00:8180:2c00:282:6811:edff:fe40:89c6"; - mail = "2a00:8180:2c00:282:88c0:41ff:fe70:d6cd"; - minetest = "2a00:8180:2c00:282:c3a:42ff:fe5d:b20c"; - mobilizon = "2a00:8180:2c00:282:48d1:5cff:fea7:1676"; - mongo = "2a00:8180:2c00:282:14ec:c8ff:fe0a:fc5c"; - netboot = "2a00:8180:2c00:282:2:0:0:6"; - public-access-proxy = "2a00:8180:2c00:282:1024:5fff:febd:9be7"; - radiobert = "2a00:8180:2c00:282:e65f:1ff:fe5d:1679"; - radius = "2a00:8180:2c00:282:2:0:0:4"; - scrape = "2a00:8180:2c00:282:e073:50ff:fef5:eb6e"; - serv-gw = "2a00:8180:2c00:282::1"; - spaceapi = "2a00:8180:2c00:282:1457:adff:fe93:62e9"; - stats = "2a00:8180:2c00:282:2:0:0:3"; - ticker = "2a00:8180:2c00:282:b407:40ff:fec1:81f2"; - zeit = "2a00:8180:2c00:282:2:0:0:5"; - }; + subnets6.dn42 = "fd23:42:c3d2:582::/64"; + subnets6.up4 = "2a00:8180:2c00:282::/64"; + hosts6.dn42 = { + bind = "fd23:42:c3d2:582:cd7:56ff:fe69:6366"; + c3d2-web = "fd23:42:c3d2:582:642e:95ff:fe34:49f9"; + dns = "fd23:42:c3d2:582:2:0:0:2"; + dnscache = "fd23:42:c3d2:582:f096:dbff:fee8:427d"; + grafana = "fd23:42:c3d2:582:4042:fbff:fe4b:2de8"; + hydra = "fd23:42:c3d2:582:e03c:d7ff:fe8e:fe16"; + jabber = "fd23:42:c3d2:582:b869:ccff:fe46:902a"; + keycloak = "fd23:42:c3d2:582:c48:bbff:fe87:721d"; + logging = "fd23:42:c3d2:582:6811:edff:fe40:89c6"; + mail = "fd23:42:c3d2:582:88c0:41ff:fe70:d6cd"; + minetest = "fd23:42:c3d2:582:c3a:42ff:fe5d:b20c"; + mobilizon = "fd23:42:c3d2:582:48d1:5cff:fea7:1676"; + mongo = "fd23:42:c3d2:582:14ec:c8ff:fe0a:fc5c"; + netboot = "fd23:42:c3d2:582:2:0:0:6"; + radiobert = "fd23:42:c3d2:582:e65f:1ff:fe5d:1679"; + radius = "fd23:42:c3d2:582:2:0:0:4"; + serv-gw = "fd23:42:c3d2:582::1"; + spaceapi = "fd23:42:c3d2:582:1457:adff:fe93:62e9"; + stats = "fd23:42:c3d2:582:2:0:0:3"; + zeit = "fd23:42:c3d2:582:2:0:0:5"; }; - subnet4 = "172.20.73.0/26"; - subnets6 = { - dn42 = "fd23:42:c3d2:582::/64"; - up4 = "2a00:8180:2c00:282::/64"; + hosts6.up4 = { + bind = "2a00:8180:2c00:282:cd7:56ff:fe69:6366"; + c3d2-web = "2a00:8180:2c00:282:642e:95ff:fe34:49f9"; + dns = "2a00:8180:2c00:282:2:0:0:2"; + dnscache = "2a00:8180:2c00:282:f096:dbff:fee8:427d"; + grafana = "2a00:8180:2c00:282:4042:fbff:fe4b:2de8"; + hydra = "2a00:8180:2c00:282:e03c:d7ff:fe8e:fe16"; + jabber = "2a00:8180:2c00:282:b869:ccff:fe46:902a"; + keycloak = "2a00:8180:2c00:282:c48:bbff:fe87:721d"; + logging = "2a00:8180:2c00:282:6811:edff:fe40:89c6"; + mail = "2a00:8180:2c00:282:88c0:41ff:fe70:d6cd"; + minetest = "2a00:8180:2c00:282:c3a:42ff:fe5d:b20c"; + mobilizon = "2a00:8180:2c00:282:48d1:5cff:fea7:1676"; + mongo = "2a00:8180:2c00:282:14ec:c8ff:fe0a:fc5c"; + netboot = "2a00:8180:2c00:282:2:0:0:6"; + public-access-proxy = "2a00:8180:2c00:282:1024:5fff:febd:9be7"; + radiobert = "2a00:8180:2c00:282:e65f:1ff:fe5d:1679"; + radius = "2a00:8180:2c00:282:2:0:0:4"; + scrape = "2a00:8180:2c00:282:e073:50ff:fef5:eb6e"; + serv-gw = "2a00:8180:2c00:282::1"; + spaceapi = "2a00:8180:2c00:282:1457:adff:fe93:62e9"; + stats = "2a00:8180:2c00:282:2:0:0:3"; + ticker = "2a00:8180:2c00:282:b407:40ff:fec1:81f2"; + zeit = "2a00:8180:2c00:282:2:0:0:5"; }; }; - site.hosts = { - dns = { - interfaces = { - serv = { - gw4 = "serv-gw"; - gw6 = "serv-gw"; - hwaddr = "0A:14:48:01:23:00"; - type = "veth"; + site.hosts = + let + makeContainer = lib.recursiveUpdate { + role = "container"; + interfaces = { + serv = { + gw4 = "serv-gw"; + gw6 = "serv-gw"; + type = "veth"; + }; }; }; + in { + dns = makeContainer { + interfaces.serv.hwaddr = "0A:14:48:01:23:00"; services.dns.enable = true; - role = "container"; }; - dnscache = { - interfaces = { - serv = { - gw4 = "serv-gw"; - gw6 = "serv-gw"; - type = "veth"; - }; - }; + dnscache = makeContainer { services.dnscache.enable = true; - role = "container"; }; - netboot = { - interfaces = { - serv = { - gw4 = "serv-gw"; - gw6 = "serv-gw"; - hwaddr = "0A:14:48:01:15:01"; - type = "veth"; - }; - }; - role = "container"; + netboot = makeContainer { + interfaces.serv.hwaddr = "0A:14:48:01:15:01"; }; - serv-gw = { + serv-gw = makeContainer { interfaces = { core = { - hwaddr = "0A:14:48:01:06:01"; type = "veth"; + hwaddr = "0A:14:48:01:06:01"; + gw4 = null; + gw6 = null; }; serv = { hwaddr = "0A:14:48:01:06:00"; - type = "veth"; + gw4 = null; + gw6 = null; }; }; - ospf = { - allowedUpstreams = - [ "upstream4" "upstream1" "upstream3" "anon1" "freifunk" ]; - }; - role = "container"; + ospf.allowedUpstreams = + [ "upstream4" "upstream1" "upstream3" "anon1" "freifunk" ]; }; - stats = { - interfaces = { - serv = { - gw4 = "serv-gw"; - gw6 = "serv-gw"; - hwaddr = "0A:14:48:01:15:00"; - type = "veth"; - }; - }; - role = "container"; + stats = makeContainer { + interfaces.serv.hwaddr = "0A:14:48:01:15:00"; }; }; }