147 lines
3.2 KiB
Nix
147 lines
3.2 KiB
Nix
{
|
|
pkgs,
|
|
adblock-unbound,
|
|
...
|
|
}: {
|
|
networking.firewall.allowedUDPPorts = [67 547];
|
|
networking.firewall.extraInputRules = ''
|
|
ip6 daddr ff02::1:2/128 udp dport 547 accept comment "DHCPv6 server"
|
|
'';
|
|
|
|
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 = "dc:a6:32:5c:31:64";
|
|
ip-address = "192.168.178.2";
|
|
}
|
|
{
|
|
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::"
|
|
];
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|