diff options
| author | sinanmohd <sinan@sinanmohd.com> | 2026-03-27 11:29:28 +0530 |
|---|---|---|
| committer | sinanmohd <sinan@sinanmohd.com> | 2026-03-27 11:51:44 +0530 |
| commit | 3d5b4849fe3dc86fdb00aeb6d041ef23105ae67b (patch) | |
| tree | 591bd36119470b530015e7ca7783670f56de7bd9 /os/kay/modules/network/router.nix | |
| parent | f3db446c02e1e54415f0b8f2dd662f384dadea1e (diff) | |
chore(os/kay/dns): refactor
Diffstat (limited to 'os/kay/modules/network/router.nix')
| -rw-r--r-- | os/kay/modules/network/router.nix | 65 |
1 files changed, 44 insertions, 21 deletions
diff --git a/os/kay/modules/network/router.nix b/os/kay/modules/network/router.nix index aeb008c..dc2e9eb 100644 --- a/os/kay/modules/network/router.nix +++ b/os/kay/modules/network/router.nix @@ -7,30 +7,29 @@ let gponPrefix = 24; lanInterface = "enp8s0f3u1c2"; - bridgeInterface = "lan"; - subnet = "192.168.43.0"; - prefix = 24; - host = "192.168.43.1"; - leaseRangeStart = "192.168.43.100"; - leaseRangeEnd = "192.168.43.254"; + lanBridgeInterface = "lan"; + lanPrefix = 24; + lanHost = "192.168.43.1"; - wapMac = "40:86:cb:d7:40:49"; - wapIp = "192.168.43.2"; + lanLeaseRangeStart = "192.168.43.100"; + lanLeaseRangeEnd = "192.168.43.254"; + # lanWapMac = "40:86:cb:d7:40:49"; + # lanWapIp = "192.168.43.2"; in { networking = { - bridges.${bridgeInterface}.interfaces = [ lanInterface ]; + bridges.${lanBridgeInterface}.interfaces = [ lanInterface ]; nat = { enable = true; externalInterface = wanInterface; - internalInterfaces = [ bridgeInterface ]; + internalInterfaces = [ lanBridgeInterface ]; }; interfaces = { - ${bridgeInterface}.ipv4.addresses = [ + ${lanBridgeInterface}.ipv4.addresses = [ { - address = host; - prefixLength = prefix; + address = lanHost; + prefixLength = lanPrefix; } ]; ${gponInterface}.ipv4.addresses = [ @@ -59,14 +58,38 @@ in }; }; - services.dnsmasq.settings = { - dhcp-range = [ "${leaseRangeStart},${leaseRangeEnd}" ]; - dhcp-host = "${wapMac},${wapIp}"; - interface = [ bridgeInterface ]; - }; + services = { + kea.dhcp4 = { + enable = true; + settings = { + interfaces-config.interfaces = [ lanBridgeInterface ]; + lease-database = { + persist = true; + type = "memfile"; + name = "/var/lib/kea/dhcp4.leases"; + }; + subnet4 = [ + { + id = 1; + pools = [ + { + pool = "${lanLeaseRangeStart} - ${lanLeaseRangeEnd}"; + } + ]; + subnet = "${lanHost}/${toString lanPrefix}"; + } + ]; + rebind-timer = 2000; + renew-timer = 1000; + valid-lifetime = 4000; + }; + }; - services.prometheus.exporters.dnsmasq = { - enable = true; - listenAddress = "127.0.0.1"; + resolved = { + enable = true; + extraConfig = '' + DNSStubListenerExtra=${lanHost} + ''; + }; }; } |
