{ pkgs, adblock-unbound, ... }: { networking.firewall.allowedUDPPorts = [ 67 547 ]; networking.firewall.extraInputRules = '' ip6 daddr ff02::1:2/128 udp dport 547 accept comment "DHCPv6 client" ''; services.kea.dhcp4 = { enable = true; settings = { interfaces-config = { dhcp-socket-type = "raw"; interfaces = [ "enabcm6e4ei0" ]; }; lease-database = { name = "/var/lib/kea/dhcp4.leases"; persist = true; type = "memfile"; }; rebind-timer = 2000; renew-timer = 1000; valid-lifetime = 4000; subnet4 = [ { subnet = "192.168.178.0/24"; pools = [ { pool = "192.168.178.2 - 192.168.178.255"; } ]; option-data = [ { name = "domain-name-servers"; space = "dhcp4"; csv-format = true; data = "192.168.178.2"; always-send = true; } { name = "routers"; data = "192.168.178.1"; always-send = true; } ]; reservations = [ # Pie should set ip itself { hw-address = "08:f1:ea:97:0f:0c"; ip-address = "192.168.178.3"; } { hw-address = "b8:76:3f:64:a3:64"; ip-address = "192.168.178.4"; } { hw-address = "04:d9:f5:fa:35:f5"; ip-address = "192.168.178.5"; } { hw-address = "48:a4:72:1d:29:32"; ip-address = "192.168.178.6"; } ]; } ]; }; }; services.kea.dhcp6 = { enable = true; settings = { interfaces-config = { interfaces = [ "enabcm6e4ei0" ]; }; lease-database = { name = "/var/lib/kea/dhcp6.leases"; persist = true; type = "memfile"; }; rebind-timer = 2000; renew-timer = 1000; valid-lifetime = 4000; subnet6 = [ { subnet = "2a02:908:5b1:e3c0::/64"; pools = [ { pool = "2a02:908:5b1:e3c0::/72"; } ]; ddns-qualifying-suffix = "local."; option-data = [ { name = "dns-servers"; data = "2a02:908:5b1:e3c0:2::"; } { name = "domain-search"; data = "local"; } ]; reservations = [ { hw-address = "08:f1:ea:97:0f:0c"; ip-addresses = [ "2a02:908:5b1:e3c0:3::" ]; } { hw-address = "04:d9:f5:fa:35:f5"; ip-addresses = [ "2a02:908:5b1:e3c0:5::" ]; } { hw-address = "48:a4:72:1d:29:32"; ip-addresses = [ "2a02:908:5b1:e3c0:6::" ]; } ]; } ]; }; }; }