{ config, lib, pkgs, ... }: { # Enable the DHCP server services.kea.dhcp4 = { enable = true; settings = { calculate-tee-times = true; interfaces-config = { interfaces = [ "lan" "guest" "iot" "mgmt" ]; }; lease-database = { name = "/var/lib/kea/dhcp4.leases"; persist = true; type = "memfile"; }; subnet4 = [ # LAN { option-data = [ { name = "domain-name"; data = "home.seedno.de"; } { name = "domain-name-servers"; data = "10.10.100.1"; } { name = "routers"; data = "10.10.100.1"; } ]; pools = [ { pool = "10.10.100.100 - 10.10.103.254"; } ]; reservations = [ # anduriel { hw-address = ""; ip-address = "10.10.100.10"; } # iphone { hw-address = ""; ip-address = "10.10.100.11"; } # dietpi { hw-address = ""; ip-address = "10.10.100.13"; } ]; subnet = "10.10.100.0/22"; } # GUEST { option-data = [ { name = "domain-name"; data = "home.seedno.de"; } { name = "domain-name-servers"; data = "8.8.8.8"; } { name = "routers"; data = "10.10.104.1"; } ]; pools = [ { pool = "10.10.104.100 - 10.10.107.254"; } ]; subnet = "10.10.104.0/22"; } # IOT { option-data = [ { name = "domain-name"; data = "home.seedno.de"; } { name = "domain-name-servers"; data = "10.10.108.1"; } { name = "routers"; data = "10.10.108.1"; } ]; pools = [ { pool = "10.10.108.100 - 10.10.111.254"; } ]; subnet = "10.10.108.0/22"; } # MGMT { option-data = [ { name = "domain-name"; data = "home.seedno.de"; } { name = "domain-name-servers"; data = "10.10.112.1"; } { name = "routers"; data = "10.10.112.1"; } ]; pools = [ { pool = "10.10.112.100 - 10.10.112.254"; } ]; reservations = [ # eoc { hw-address = ""; ip-address = "10.10.112.50"; } ]; subnet = "10.10.112.0/24"; } ]; t1-percent = 0.50; t2-percent = 0.875; valid-lifetime = 86400; }; }; }