{ lib, ... }: { site.net.c3d2 = { dhcp = { server = "c3d2-gw3"; start = "172.22.99.100"; end = "172.22.99.199"; fixed-hosts = { "172.22.99.96" = "08:00:27:bb:8c:b3"; "172.22.99.98" = "08:00:27:aa:90:e2"; "astrom.hq.c3d2.de" = "aa:00:5b:08:f0:5c"; "astron.hq.c3d2.de" = "aa:00:5b:08:f0:5b"; "batman.hq.c3d2.de" = "5c:cf:7f:c0:05:28"; "beere.hq.c3d2.de" = "b8:27:eb:ac:65:d2"; "beere2.hq.c3d2.de" = "b8:27:eb:53:0b:27"; "bender.hq.c3de.de" = "00:23:df:7e:c8:0a"; "cider.hq.c3d2.de" = "00:0d:93:75:ee:fa"; "dacbert.hq.c3d2.de" = "dc:a6:32:31:b6:32"; "dn42.hq.c3d2.de" = "aa:00:42:7a:32:46"; "drucker.hq.c3d2.de" = "00:23:c3:d2:12:0f"; "feile.hq.c3d2.de" = "aa:00:5b:12:c1:f7"; "fernandopoo.hq.c3d2.de" = "aa:00:f7:52:85:27"; "fhem.hq.c3d2.de" = "b8:27:eb:9e:8b:db"; "git.hq.c3d2.de" = "aa:00:47:d8:57:10"; "glotzbert.hq.c3d2.de" = "ec:a8:6b:fe:b4:cb"; "icq.hq.c3d2.de" = "aa:00:30:f6:27:89"; "jabber1.hq.c3d2.de" = "aa:00:0b:19:8f:14"; "jabber2.hq.c3d2.de" = "aa:00:3d:6a:23:b8"; "knot.hq.c3d2.de" = "52:54:cf:fd:ce:3f"; "ledball1.hq.c3d2.de" = "b8:27:eb:53:0b:27"; "ledbeere.hq.c3d2.de" = "b8:27:eb:60:99:59"; "leviathan.hq.c3d2.de" = "00:ff:08:31:db:e5"; "lisbeth.hq.c3d2.de" = "b8:27:eb:a5:ee:5c"; "marenz-build.hq.c3d2.de" = "44:1e:a1:59:2e:e8"; "matemat.hq.c3d2.de" = "a2:1b:7c:e8:19:72"; "minecraft.hq.c3d2.de" = "4a:57:d3:64:fe:e9"; "moleflap.hq.c3d2.de" = "aa:00:0d:b1:6c:67"; "monit.hq.c3d2.de" = "00:23:ae:94:e7:19"; "public-access-proxy.hq.c3d2.de" = "12:24:5f:bd:9b:e7"; "pulsebert.hq.c3d2.de" = "b8:27:eb:16:31:61"; "ruststripe1.hq.c3d2.de" = "06:32:0e:39:21:69"; "schalter.hq.c3d2.de" = "b8:27:eb:4c:be:ff"; "semanta.hq.c3d2.de" = "00:ff:e4:bb:ea:2a"; "server2.hq.c3d2.de" = "d0:67:e5:f3:57:10"; "server3.hq.c3d2.de" = "e4:1f:13:2e:4f:c0"; "server4.hq.c3d2.de" = "00:9c:02:a9:26:01"; "sharing.hq.c3d2.de" = "00:23:c3:d2:75:18"; "sofafon.hq.c3d2.de" = "b8:27:eb:23:8d:01"; "storage2.hq.c3d2.de" = "42:5e:0f:4e:f3:cc"; "ustriper.hq.c3d2.de" = "aa:bb:95:33:bb:aa"; "wiefelspuetz.hq.c3d2.de" = "aa:00:7f:01:8a:d0"; "wormhole.hq.c3d2.de" = "00:23:c3:d2:00:76"; "www1.hq.c3d2.de" = "aa:00:13:8b:03:47"; }; time = 86400; max-time = 2592000; router = "c3d2-anon"; }; domainName = "c3d2.zentralwerk.org"; dynamicDomain = true; subnet4 = "172.22.99.0/24"; hosts4 = { bgp = "172.22.99.250"; c3d2-anon = "172.22.99.1"; c3d2-gw1 = "172.22.99.2"; c3d2-gw2 = "172.22.99.3"; c3d2-gw3 = "172.22.99.4"; dn42 = "172.22.99.253"; }; hosts6.dn42 = { bgp = "fd23:42:c3d2:523::c3d2:ff0b"; c3d2-anon = "fd23:42:c3d2:523::c3d2:1"; c3d2-gw1 = "fd23:42:c3d2:523::c3d2:2"; c3d2-gw2 = "fd23:42:c3d2:523::c3d2:3"; c3d2-gw3 = "fd23:42:c3d2:523::c3d2:4"; }; hosts6.up4 = { bgp = "2a00:8180:2c00:223::c3d2:ff0b"; c3d2-anon = "2a00:8180:2c00:223::c3d2:1"; c3d2-gw1 = "2a00:8180:2c00:223::c3d2:2"; c3d2-gw2 = "2a00:8180:2c00:223::c3d2:3"; c3d2-gw3 = "2a00:8180:2c00:223::c3d2:4"; }; subnets6 = { dn42 = "fd23:42:c3d2:523::/64"; up4 = "2a00:8180:2c00:223::/64"; }; }; site.hosts = let makeGateway = lib.recursiveUpdate { interfaces = { c3d2.type = "veth"; core.type = "veth"; }; role = "container"; }; in { c3d2-anon = makeGateway { interfaces = { c3d2.hwaddr = "0A:14:48:01:07:05"; core.hwaddr = "0A:14:48:01:07:04"; }; ospf.allowedUpstreams = [ "anon1" "freifunk" ]; }; c3d2-gw1 = makeGateway { interfaces = { c3d2.hwaddr = "0A:14:48:01:21:01"; core.hwaddr = "0A:14:48:01:21:00"; }; ospf.allowedUpstreams = [ "upstream3" "upstream4" "upstream1" "anon1" "freifunk" ]; }; c3d2-gw2 = makeGateway { interfaces = { c3d2.hwaddr = "0A:14:48:01:21:03"; core.hwaddr = "0A:14:48:01:21:02"; }; ospf.allowedUpstreams = [ "upstream1" "upstream3" "upstream4" "anon1" "freifunk" ]; }; c3d2-gw3 = makeGateway { interfaces = { c3d2.hwaddr = "0A:14:48:01:21:05"; core.hwaddr = "0A:14:48:01:21:04"; }; ospf.allowedUpstreams = [ "upstream4" "upstream3" "upstream1" "anon1" "freifunk" ]; }; }; }