From f671db8a1226a7cc88f4847dd80eb2b49afe4c37 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 30 Dec 2025 13:00:52 +0900 Subject: [PATCH] topology: extend --- flake.nix | 4 + topology/default.nix | 39 +++++-- topology/icons/bind9.png | Bin 0 -> 13012 bytes topology/non-nixos-machines.nix | 189 ++++++++++++++++++++++++++++++-- 4 files changed, 210 insertions(+), 22 deletions(-) create mode 100644 topology/icons/bind9.png diff --git a/flake.nix b/flake.nix index 9601dd4..5797bcc 100644 --- a/flake.nix +++ b/flake.nix @@ -264,6 +264,10 @@ overlays = [ inputs.nix-topology.overlays.default ]; }; + specialArgs = { + values = import ./values.nix; + }; + modules = [ ./topology { diff --git a/topology/default.nix b/topology/default.nix index a34f454..fda50ec 100644 --- a/topology/default.nix +++ b/topology/default.nix @@ -1,4 +1,4 @@ -{ lib, config, ... }: +{ config, pkgs, lib, values, ... }: let inherit (config.lib.topology) @@ -8,7 +8,6 @@ let mkDevice mkConnection mkConnectionRev; - values = import ../values.nix; in { imports = [ ./non-nixos-machines.nix @@ -53,7 +52,7 @@ in { nodes.ntnu-pvv-router = mkRouter "NTNU PVV Gateway" { interfaceGroups = [ ["wan1"] ["eth1"] ]; - connections.eth1 = mkConnection "brus-switch" "eth1"; + connections.eth1 = mkConnection "brus-switch" "eth0"; interfaces.eth1.network = "pvv"; }; @@ -63,7 +62,7 @@ in { connections = let connections' = [ (mkConnection "bekkalokk" "enp2s0") - # (mkConnection "bicep" "enp6s0f0") + # (mkConnection "bicep" "enp6s0f0") # NOTE: physical machine is dead at the moment (mkConnection "buskerud" "eth1") (mkConnection "knutsen" "eth1") (mkConnection "powerpuff-cluster" "eth1") @@ -75,13 +74,13 @@ in { (mkConnection "innovation" "em0") (mkConnection "microbel" "eth0") # (mkConnection "isvegg" "") - # (mkConnection "ameno" "") - # (mkConnection "sleipner" "") + (mkConnection "ameno" "eth0") + (mkConnection "sleipner" "eno0") ]; in builtins.listToAttrs ( lib.zipListsWith (a: b: lib.nameValuePair a b) - (lib.genList (i: "eth${toString i}") 16) + (lib.genList (i: "eth${toString (i + 1)}") 15) connections' ); }; @@ -133,17 +132,35 @@ in { nodes.ludvigsen = mkRouter "ludvigsen" { interfaceGroups = [ ["eth1"] ["eth2"] ["vpn1"] ]; - connections.eth2 = mkConnection "pvv-switch" "eth1"; + connections.eth2 = mkConnection "pvv-switch" "eth0"; + interfaces.vpn1.network = "site-vpn"; interfaces.vpn1.virtual = true; + interfaces.vpn1.icon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/openvpn.svg"; + interfaces.eth1.network = "ntnu"; interfaces.eth2.network = "pvv"; }; nodes.pvv-switch = mkSwitch "PVV Switch (Terminalrommet)" { - interfaceGroups = [ ["eth1" "eth2" "eth3"] ]; - connections.eth2 = mkConnection "brzeczyszczykiewicz" "eno1"; - connections.eth3 = mkConnection "georg" "eno1"; + interfaceGroups = [ (lib.genList (i: "eth${toString i}") 16) ]; + connections = let + connections' = [ + (mkConnection "brzeczyszczykiewicz" "eno1") + (mkConnection "georg" "eno1") + (mkConnection "wegonke" "enp4s0") + (mkConnection "demiurgen" "eno1") + (mkConnection "sanctuary" "ethernet_0") + # (mkConnection "torskas" "") + # (mkConnection "skrott" "") + # (mkConnection "principal" "") + ]; + in builtins.listToAttrs ( + lib.zipListsWith + (a: b: lib.nameValuePair a b) + (lib.genList (i: "eth${toString (i + 1)}") 15) + connections' + ); }; diff --git a/topology/icons/bind9.png b/topology/icons/bind9.png new file mode 100644 index 0000000000000000000000000000000000000000..cf781af4ca043ff3ff2d5db0b3149263b5d8e119 GIT binary patch literal 13012 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 literal 0 HcmV?d00001 diff --git a/topology/non-nixos-machines.nix b/topology/non-nixos-machines.nix index 77222a6..0da9140 100644 --- a/topology/non-nixos-machines.nix +++ b/topology/non-nixos-machines.nix @@ -1,24 +1,109 @@ -{ config, lib, ... }: +{ config, pkgs, lib, values, ... }: let inherit (config.lib.topology) mkDevice; in { nodes.balduzius = mkDevice "balduzius" { guestType = "proxmox"; parent = config.nodes.powerpuff-cluster.id; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + + interfaceGroups = [ [ "ens18" ] ]; + interfaces.ens18 = { + mac = "00:0c:29:de:05:0f"; + addresses = [ + "129.241.210.192" + "2001:700:300:1900::1:42" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; + + services = { + kdc = { + name = "Heimdal KDC"; + info = "kdc.pvv.ntnu.no"; + details.kdc.text = "0.0.0.0:88"; + details.kpasswd.text = "0.0.0.0:464"; + }; + }; }; nodes.tom = mkDevice "tom" { guestType = "proxmox"; parent = config.nodes.powerpuff-cluster.id; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + + interfaceGroups = [ [ "ens18" ] ]; + interfaces.ens18 = { + mac = "00:0c:29:4d:f7:56"; + addresses = [ + "129.241.210.180" + "2001:700:300:1900::180" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; + + services = { + apache2 = { + name = "Apache2 - user websites"; + info = "www.pvv.ntnu.no/~"; + details.listen.text = "0.0.0.0:443"; + }; + }; }; nodes.hildring = mkDevice "hildring" { guestType = "proxmox"; parent = config.nodes.powerpuff-cluster.id; - }; - nodes.microbel = mkDevice "microbel" { + deviceType = "loginbox"; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + interfaceGroups = [ [ "eth0" ] ]; + interfaces.eth0 = { + mac = "00:0c:29:e7:dd:79"; + addresses = [ + "129.241.210.176" + "2001:700:300:1900::1:9" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; + }; + nodes.drolsum = mkDevice "drolsum" { + guestType = "proxmox"; + parent = config.nodes.powerpuff-cluster.id; + deviceType = "loginbox"; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + }; + + nodes.microbel = mkDevice "microbel" { + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + + hardware.info = "Supermicro X8ST3"; + + interfaceGroups = [ [ "eth0" "eth1" ] ]; + interfaces.eth0 = { + mac = "00:25:90:24:76:2c"; + addresses = [ + "129.241.210.179" + "2001:700:300:1900::1:2" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; }; nodes.innovation = mkDevice "innovation" { + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/freebsd.svg"; + hardware.info = "Dell Optiplex 9010"; + interfaceGroups = [ [ "em0" ] ]; interfaces.em0 = { mac = "18:03:73:20:18:d3"; @@ -27,8 +112,8 @@ in { "2001:700:300:1900::1:56" ]; gateways = [ - "129.241.210.129" - "2001:700:300:1900::1" + values.hosts.gateway + values.hosts.gateway6 ]; }; services = { @@ -41,35 +126,117 @@ in { }; }; nodes.principal = mkDevice "principal" { + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/freebsd.svg"; + interfaceGroups = [ [ ] ]; }; nodes.sleipner = mkDevice "sleipner" { + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + interfaceGroups = [ [ "eno0" "enp2s0" ] ]; + interfaces.enp2s0 = { + mac = "00:25:90:57:35:8e"; + addresses = [ + "129.241.210.193" + "2001:700:300:1900:fab:cab:dab:7ab" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; }; nodes.isvegg = mkDevice "isvegg" { + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + interfaceGroups = [ [ ] ]; }; nodes.ameno = mkDevice "ameno" { - interfaceGroups = [ [ ] ]; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/ubuntu.svg"; + + interfaceGroups = [ [ "eth0" ] ]; + interfaces.eth0 = { + mac = "b8:27:eb:62:1d:d8"; + addresses = [ + "129.241.210.230" + "129.241.210.211" + "129.241.210.153" + "2001:700:300:1900:ba27:ebff:fe62:1dd8" + "2001:700:300:1900::4:230" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; + services = { + bind = { + name = "Bind DNS"; + icon = ./icons/bind9.png; + info = "hostmaster.pvv.ntnu.no"; + details.listen.text = "0.0.0.0:53"; + }; + }; }; nodes.skrott = mkDevice "skrott" { - deviceType = "terminal"; interfaceGroups = [ [ ] ]; }; nodes.torskas = mkDevice "torskas" { - deviceType = "terminal"; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/arch_linux.svg"; + interfaceGroups = [ [ ] ]; }; nodes.wegonke = mkDevice "wegonke" { deviceType = "terminal"; - interfaceGroups = [ [ ] ]; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + + hardware.info = "ASUSTeK G11CD-K"; + + interfaceGroups = [ [ "enp4s0" ] ]; + interfaces.enp4s0 = { + mac = "70:4d:7b:a3:32:57"; + addresses = [ + "129.241.210.218" + "2001:700:300:1900::1:218" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; }; nodes.demiurgen = mkDevice "demiurgen" { deviceType = "terminal"; - interfaceGroups = [ [ ] ]; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/debian.svg"; + + interfaceGroups = [ [ "eno1" ] ]; + interfaces.eno1 = { + mac = "18:03:73:1f:f4:1f"; + addresses = [ + "129.241.210.201" + "2001:700:300:1900::1:4e" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; }; + nodes.sanctuary = mkDevice "sanctuary" { deviceType = "terminal"; - interfaceGroups = [ [ ] ]; + deviceIcon = "${pkgs.super-tiny-icons}/share/icons/SuperTinyIcons/svg/windows.svg"; + + interfaceGroups = [ [ "ethernet_0" ] ]; + interfaces.ethernet_0 = { + addresses = [ + "129.241.210.170" + "2001:700:300:1900::1337" + ]; + gateways = [ + values.hosts.gateway + values.hosts.gateway6 + ]; + }; }; }