From 965b3a92e4a5bf768ae85b229a6e96246b858d16 Mon Sep 17 00:00:00 2001 From: Felix Albrigtsen Date: Sun, 28 Jul 2024 19:25:52 +0200 Subject: [PATCH] Ildkule/openstack: fix networking Removes systemd-networkd, and configures proper ipv4 and ipv6 in openstack. --- hosts/ildkule/configuration.nix | 29 +++++++++++++++++++++++------ misc/metrics-exporters.nix | 2 -- values.nix | 17 ++++++++--------- 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/hosts/ildkule/configuration.nix b/hosts/ildkule/configuration.nix index 99e14bf..84d8f2a 100644 --- a/hosts/ildkule/configuration.nix +++ b/hosts/ildkule/configuration.nix @@ -1,4 +1,4 @@ -{ config, pkgs, values, ... }: +{ config, pkgs, lib, values, ... }: { imports = [ # Include the results of the hardware scan. @@ -19,11 +19,28 @@ boot.tmp.cleanOnBoot = true; zramSwap.enable = true; - networking.hostName = "ildkule"; # Define your hostname. - systemd.network.networks."30-all" = values.defaultNetworkConfig // { - matchConfig.Name = "en*"; - DHCP = "yes"; - gateway = [ ]; + # Openstack Neutron and systemd-networkd are not best friends, use something else: + systemd.network.enable = lib.mkForce false; + networking = let + hostConf = values.hosts.ildkule; + in { + hostName = "ildkule"; + tempAddresses = "disabled"; + useDHCP = lib.mkForce true; + + search = values.defaultNetworkConfig.domains; + nameservers = values.defaultNetworkConfig.dns; + defaultGateway.address = hostConf.ipv4_internal_gw; + + interfaces."ens4" = { + ipv4.addresses = [ + { address = hostConf.ipv4; prefixLength = 32; } + { address = hostConf.ipv4_internal; prefixLength = 24; } + ]; + ipv6.addresses = [ + { address = hostConf.ipv6; prefixLength = 64; } + ]; + }; }; # List packages installed in system profile diff --git a/misc/metrics-exporters.nix b/misc/metrics-exporters.nix index 9f32a28..3018936 100644 --- a/misc/metrics-exporters.nix +++ b/misc/metrics-exporters.nix @@ -14,8 +14,6 @@ "::1" values.hosts.ildkule.ipv4 values.hosts.ildkule.ipv6 - values.hosts.ildkule.ipv4_global - values.hosts.ildkule.ipv6_global ]; }; diff --git a/values.nix b/values.nix index 0c68b65..bfb8785 100644 --- a/values.nix +++ b/values.nix @@ -30,11 +30,10 @@ in rec { ipv6 = pvv-ipv6 168; }; ildkule = { - ipv4 = "10.212.25.209"; - ipv6 = "2001:700:300:6025:f816:3eff:feee:812d"; - - ipv4_global = "129.241.153.213"; - ipv6_global = "2001:700:300:6026:f816:3eff:fe58:f1e8"; + ipv4 = "129.241.153.213"; + ipv4_internal = "192.168.12.209"; + ipv4_internal_gw = "192.168.12.1"; + ipv6 = "2001:700:300:6026:f816:3eff:fe58:f1e8"; }; bicep = { ipv4 = pvv-ipv4 209; @@ -66,11 +65,11 @@ in rec { }; defaultNetworkConfig = { - networkConfig.IPv6AcceptRA = "no"; - gateway = [ hosts.gateway ]; - dns = [ "129.241.0.200" "129.241.0.201" ]; + dns = [ "129.241.0.200" "129.241.0.201" "2001:700:300:1900::200" "2001:700:300:1900::201" ]; domains = [ "pvv.ntnu.no" "pvv.org" ]; + gateway = [ hosts.gateway ]; + + networkConfig.IPv6AcceptRA = "no"; DHCP = "no"; }; - }