os/hosts/pie/dhcpd.nix

138 lines
3.1 KiB
Nix

{ pkgs, adblock-unbound, ... }:
{
networking.firewall.allowedUDPPorts = [ 67 ];
services.kea.dhcp4 = {
enable = true;
settings = {
interfaces-config = {
dhcp-socket-type = "raw";
interfaces = [
"enabcm6e4ei0"
"wlan0"
];
};
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 = [
{
hostname = "pie.local";
hw-address = "dc:a6:32:5c:31:64";
ip-address = "192.168.178.2";
}
{
hostname = "droppie.local";
hw-address = "08:f1:ea:97:0f:0c";
ip-address = "192.168.178.3";
}
{
hostname = "brwb8763f64a364.local";
hw-address = "b8:76:3f:64:a3:64";
ip-address = "192.168.178.4";
}
{
hostname = "chocolatebar.local";
hw-address = "b8:76:3f:64:a3:64";
ip-address = "192.168.178.5";
}
{
hostname = "biolimo.local";
hw-address = "c6:f2:d1:df:ed:a4";
ip-address = "192.168.178.6";
}
];
}
];
};
};
services.kea.dhcp6 = {
enable = true;
settings = {
interfaces-config = {
interfaces = [
"enabcm6e4ei0"
"wlan0"
];
};
lease-database = {
name = "/var/lib/kea/dhcp6.leases";
persist = true;
type = "memfile";
};
subnet6 = [
{
subnet = "2a02:908:5b1:e3c0::/59";
pools = [
{ pool = "2a02:908:5b1:e3c0::/59"; }
];
option-data = [
{
name = "dns-servers";
code = 23;
space = "dhcp6";
csv-format = true;
data = "2a02:908:5b1:e3c0:3077:4e39:7763:b5b7";
}
];
reservations = [
{
hostname = "droppie.local";
hw-address = "08:f1:ea:97:0f:0c";
ip-addresses = [
"2a02:908:5b1:e3c0:3077:4e39:7763:3"
];
}
{
hostname = "pie.local";
hw-address = "dc:a6:32:5c:31:64";
ip-addresses = [
"2a02:908:5b1:e3c0:3077:4e39:7763:2"
];
}
];
}
];
rebind-timer = 2000;
renew-timer = 1000;
};
};
}