{ config, ... }: { services.kea.dhcp4 = { enable = true; settings = { interfaces-config = { interfaces = [ "lan" "server" "infrastructure" "multimedia" "smart" "guest" ]; }; lease-database = { name = "/var/lib/kea/dhcp4.leases"; persist = true; type = "memfile"; }; rebind-timer = 2000; renew-timer = 1000; subnet4 = [ { id = 96; pools = [ { pool = "${config.networkPrefix}.96.100 - ${config.networkPrefix}.96.240"; } ]; subnet = "${config.networkPrefix}.96.0/24"; interface = "lan"; option-data = [ { name = "routers"; data = "${config.networkPrefix}.96.1"; } { name = "domain-name"; data = "cloonar.com"; } { name = "domain-search"; data = "cloonar.com"; } { name = "domain-name-servers"; data = "${config.networkPrefix}.96.1"; } ]; reservations = [ { hw-address = "04:7c:16:d5:63:5e"; ip-address = "${config.networkPrefix}.96.5"; server-hostname = "omada.cloonar.com"; } { hw-address = "30:05:5c:56:62:37"; ip-address = "${config.networkPrefix}.96.100"; server-hostname = "brn30055c566237.cloonar.com"; } { hw-address = "24:df:a7:b1:1b:74"; ip-address = "${config.networkPrefix}.96.101"; server-hostname = "rmproplus-b1-1b-74.cloonar.com"; } ]; } { id = 97; pools = [ { pool = "${config.networkPrefix}.97.100 - ${config.networkPrefix}.97.240"; } ]; subnet = "${config.networkPrefix}.97.0/24"; interface = "server"; option-data = [ { name = "routers"; data = "${config.networkPrefix}.97.1"; } { name = "domain-name"; data = "cloonar.com"; } { name = "domain-name-servers"; data = "${config.networkPrefix}.97.1"; } ]; reservations = [ { hw-address = "1a:c4:04:6e:29:bd"; ip-address = "${config.networkPrefix}.97.2"; server-hostname = "omada.cloonar.com"; } { hw-address = "02:00:00:00:00:03"; ip-address = "${config.networkPrefix}.97.5"; server-hostname = "web-02.cloonar.com"; } { hw-address = "02:00:00:00:00:04"; ip-address = "${config.networkPrefix}.97.6"; server-hostname = "matrix.cloonar.com"; } { hw-address = "ea:db:d4:c1:18:ba"; ip-address = "${config.networkPrefix}.97.50"; server-hostname = "git.cloonar.com"; } { hw-address = "c2:4f:64:dd:13:0c"; ip-address = "${config.networkPrefix}.97.20"; server-hostname = "home-assistant.cloonar.com"; } { hw-address = "1a:c4:04:6e:29:02"; ip-address = "${config.networkPrefix}.97.25"; server-hostname = "deconz.cloonar.com"; } ]; } { id = 101; pools = [ { pool = "${config.networkPrefix}.101.100 - ${config.networkPrefix}.101.240"; } ]; subnet = "${config.networkPrefix}.101.0/24"; interface = "infrastructure"; option-data = [ { name = "routers"; data = "${config.networkPrefix}.101.1"; } { name = "domain-name"; data = "cloonar.com"; } { name = "domain-name-servers"; data = "${config.networkPrefix}.101.1"; } { name = "capwap-ac-v4"; code = 138; data = "${config.networkPrefix}.97.2"; } ]; reservations = [ ]; } { id = 99; pools = [ { pool = "${config.networkPrefix}.99.100 - ${config.networkPrefix}.99.240"; } ]; subnet = "${config.networkPrefix}.99.0/24"; interface = "multimedia"; option-data = [ { name = "routers"; data = "${config.networkPrefix}.99.1"; } { name = "domain-name"; data = "cloonar.multimedia"; } { name = "domain-name-servers"; data = "${config.networkPrefix}.99.1"; } ]; reservations = [ { hw-address = "c4:a7:2b:c7:ea:30"; ip-address = "${config.networkPrefix}.99.10"; hostname = "metz.cloonar.multimedia"; } { hw-address = "f0:2f:9e:d4:3b:21"; ip-address = "${config.networkPrefix}.99.11"; hostname = "firetv-living"; } { hw-address = "bc:33:29:ed:24:f0"; ip-address = "${config.networkPrefix}.99.12"; hostname = "ps5"; } { hw-address = "e4:2a:ac:32:3f:79"; ip-address = "${config.networkPrefix}.99.13"; hostname = "xbox"; } { hw-address = "98:b6:e9:b6:ef:f4"; ip-address = "${config.networkPrefix}.99.14"; hostname = "switch"; } { hw-address = "f0:2f:9e:c1:74:72"; ip-address = "${config.networkPrefix}.99.21"; hostname = "firetv-bedroom"; } { hw-address = "30:05:5c:56:62:37"; ip-address = "${config.networkPrefix}.99.100"; server-hostname = "brn30055c566237"; } ]; } { id = 254; pools = [ { pool = "${config.networkPrefix}.254.10 - ${config.networkPrefix}.254.254"; } ]; subnet = "${config.networkPrefix}.254.0/24"; interface = "guest"; option-data = [ { name = "routers"; data = "${config.networkPrefix}.254.1"; } { name = "domain-name-servers"; data = "9.9.9.9"; } ]; } { id = 100; pools = [ { pool = "${config.networkPrefix}.100.100 - ${config.networkPrefix}.100.240"; } ]; subnet = "${config.networkPrefix}.100.0/24"; interface = "smart"; option-data = [ { name = "routers"; data = "${config.networkPrefix}.100.1"; } { name = "domain-name"; data = "cloonar.smart"; } { name = "domain-name-servers"; data = "${config.networkPrefix}.100.1"; } ]; reservations = [ { hw-address = "fc:ee:28:03:63:e9"; ip-address = "${config.networkPrefix}.100.148"; server-hostname = "k1c"; } { hw-address = "cc:50:e3:bc:27:64"; ip-address = "${config.networkPrefix}.100.112"; server-hostname = "Nuki_Bridge_1A753F72"; } { hw-address = "34:6f:24:f3:af:ad"; ip-address = "${config.networkPrefix}.100.137"; server-hostname = "daikin86604"; } { hw-address = "34:6f:24:c1:f8:54"; ip-address = "${config.networkPrefix}.100.139"; server-hostname = "daikin53800"; } ]; } ]; valid-lifetime = 4000; }; }; }