os/hosts/pie/dhcpd.nix

141 lines
3.2 KiB
Nix

{ pkgs, adblock-unbound, ... }:
{
networking.firewall.allowedUDPPorts = [ 67 ];
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
{
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 = "48:a4:72:1d:29:32";
# ip-address = "192.168.178.5";
# }
{
hostname = "biolimo.local";
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::/64"; }
];
option-data = [
{
name = "dns-servers";
code = 23;
space = "dhcp6";
csv-format = true;
data = "2a02:908:5b1:e3c0:2::";
}
];
reservations = [
{
hostname = "droppie.local";
hw-address = "08:f1:ea:97:0f:0c";
ip-addresses = [
"2a02:908:5b1:e3c0:3::"
];
}
# {
# hostname = "chocolatebar.local";
# hw-address = "08:f1:ea:97:0f:0c";
# ip-addresses = [
# "2a02:908:5b1:e3c0:5::"
# ];
# }
{
hostname = "biolimo.local";
hw-address = "48:a4:72:1d:29:32";
ip-addresses = [
"2a02:908:5b1:e3c0:6::"
];
}
];
}
];
};
};
}