From 2afc93ad943ae8a9d5763367fce5cfa15b2a0a2b Mon Sep 17 00:00:00 2001 From: Ivan Bushchik Date: Sun, 22 Oct 2023 08:59:33 +0300 Subject: [PATCH] Update ivabus-dev.nix and router.nix --- pkgs/ivabus-dev.nix | 2 +- roles/router.nix | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/pkgs/ivabus-dev.nix b/pkgs/ivabus-dev.nix index 7fb48be..c955f6a 100644 --- a/pkgs/ivabus-dev.nix +++ b/pkgs/ivabus-dev.nix @@ -1,6 +1,6 @@ { pkgs ? import { }, bundlerEnv, ... }: let - version = "8a9a1364bc2111ea4889134f8ca18f10699f26ef"; + version = "79511faa094e7447aa1179b87a4d4687440b18f6"; repo = builtins.fetchGit { url = "https://github.com/ivabus/website"; rev = version; diff --git a/roles/router.nix b/roles/router.nix index 0c8e8ba..512ed25 100644 --- a/roles/router.nix +++ b/roles/router.nix @@ -1,6 +1,11 @@ { config, lib, pkgs, ... }: -let cfg = config.my.roles.router; +let + cfg = config.my.roles.router; + ipv6_subnet = "2a05:3580:e41a:d600"; + ipv6_prefix = 64; + ipv4_subnet = "192.168"; + ipv4_prefix = 24; in { options.my.roles.router.enable = lib.mkEnableOption "Enable router capabilities"; @@ -19,6 +24,13 @@ in { LAN interface name. ''; }; + options.my.roles.router.addresses.ipv4.subnet = lib.mkOption { + type = lib.types.str; + default = "192.168"; + description = '' + IPv4 subnet to allocate (currently only with /24 mask) + ''; + }; config = lib.mkIf (cfg.enable) { boot.kernel.sysctl = lib.mkForce { @@ -57,12 +69,30 @@ in { ''; }; }; + networking = { + useNetworkd = false; + useDHCP = false; + interfaces = { + "${cfg.interfaces.lan}" = { + ipv4.addresses = [ + { + address = "${ipv4_subnet}.0.1"; + prefixLength = 24; + } + { + address = "${ipv4_subnet}.1.1"; + prefixLength = 24; + } + ]; + }; + "${cfg.interfaces.wan}".useDHCP = true; + }; nat = { enable = true; externalInterface = "${cfg.interfaces.wan}"; internalInterfaces = [ "${cfg.interfaces.lan}" ]; - internalIPs = [ "192.168.0.0/24" "192.168.1.0" /24 ]; + internalIPs = [ "192.168.0.0/24" "192.168.1.0/24" ]; }; }; };