summaryrefslogtreecommitdiff
path: root/os/srv/kea.nix
diff options
context:
space:
mode:
Diffstat (limited to 'os/srv/kea.nix')
-rw-r--r--os/srv/kea.nix58
1 files changed, 58 insertions, 0 deletions
diff --git a/os/srv/kea.nix b/os/srv/kea.nix
new file mode 100644
index 0000000..168590e
--- /dev/null
+++ b/os/srv/kea.nix
@@ -0,0 +1,58 @@
+{ config, lib, ... }:
+let
+ cfg = config.os.srv.kea;
+in
+{
+ options.os.srv.kea.enable = lib.mkEnableOption "enables kea dhcp server";
+ config = lib.mkIf cfg.enable {
+ services.kea.dhcp4 = {
+ enable = true;
+ settings = {
+ interfaces-config = {
+ # To be used in a VM
+ interfaces = [ "eth0" ];
+ dhcp-socket-type = "udp";
+ };
+
+ lease-database = {
+ type = "memfile";
+ persist = true;
+ name = "/var/lib/kea/dhcp4.leases";
+ };
+
+ subnet4 = [
+ {
+ id = 1;
+ subnet = "10.1.0.0/24";
+ pools = [ { pool = "10.1.0.50 - 10.1.0.250"; } ];
+ option-data = [
+ {
+ name = "routers";
+ data = "10.1.0.1";
+ }
+ {
+ name = "domain-name-servers";
+ data = "10.0.0.3";
+ }
+ ];
+ }
+ {
+ id = 2;
+ subnet = "10.2.0.0/24";
+ pools = [ { pool = "10.2.0.50 - 10.2.0.250"; } ];
+ option-data = [
+ {
+ name = "routers";
+ data = "10.2.0.1";
+ }
+ {
+ name = "domain-name-servers";
+ data = "10.0.0.3";
+ }
+ ];
+ }
+ ];
+ };
+ };
+ };
+}