Das Netzwerk in der Riesaer Str. 32 https://zentralwerk.org/
Go to file
Astro 739d6fefaa hosts: fix jabber.serv ipv6 2021-10-16 23:09:56 +02:00
doc doc: dev env 2021-04-11 02:02:15 +02:00
nix pkgs/dns-slaves: add allow-query { all; }; 2021-10-16 00:58:13 +02:00
openwrt openwrt: add tl-wr841-v{8,10,11} .config 2020-11-06 18:28:48 +01:00
salt switches/linksys-srw2048: do never deconfigure vlans 2021-09-19 02:17:09 +02:00
salt-pillar hosts: fix jabber.serv ipv6 2021-10-16 23:09:56 +02:00
.gitignore doc fixes 2016-11-27 01:54:52 +01:00
README.md README: doc cold standby 2021-08-21 00:08:13 +02:00
cabling.md switch-b2: deploy ap56 2021-05-02 19:33:05 +02:00
contact.md.asc deploy priv40 2021-02-24 15:30:12 +01:00
flake.lock flake.lock: update 2021-09-16 19:27:29 +02:00
flake.nix nixos-module/server/defaults: enable IPMI monitoring with collectd from nixpkgs-master 2021-08-25 16:48:04 +02:00
security.md more of the good stuff 2016-11-16 01:17:28 +01:00
subnets.md priv35, priv42: fix subnets 2021-09-16 18:07:43 +02:00

README.md

Netzwerk im Zentralwerk

Begrüßung von Menschen im Haus, die für ihren Anschluss Zugang zum Netzwerk brauchen

Zweck

Das Zentralwerk ist ein Gebäude, das bestmöglich vernetzt sein soll. Das beginnt mit der Bereitstellung vom Zugang zum Internet, reicht über das isolierte Zusammenführen von einzelnen Anschlüssen und endet mit Angebot von zeitgemäßen Diensten für alle, die das Netz nutzen wollen.

Anstatt irgendwie rumzukonfigurieren, soll es eine Nachvollziehbarkeit (Reproduzierbarkeit) der gemachten Einstellungen geben. Mit der Transparenz soll es möglich sein, dass das Netzwerk möglichst einfach verwaltet werden kann. (Stichworte sind: Zusammenarbeit, Wiederherstellbarkeit, Teilhabe, Mitmachen, Nachahmen, …)

Öffentlichkeit

Warum ist das alles einsehbar? Für maximale Transparenz! Wir sind kein Unternehmen das Geheimnisse schützen muss. Stattdessen wollen wir freie Kommunikation für alle!

Wie werden die (wenigen) persönlichen Daten "öffentlich" verwaltet? Mit entsprechender Verschlüsselung! Wir, ein kleiner Kreis von Menschen die das Netzwerk im Zentralwerk betreuen, haben dafür einen Geheimschlüssel. Im Übrigen behandeln wir gleichermaßen sicher die "heiligen" Zugangsdaten für die Geräte (und andere für den Betrieb wichtigen Instanzen).

Informationen für Lebewesen, die das Netzwerk mit verwalten

Inhaltsverzeichnis

Nixification Roadmap

  • Einlesen der Salt-Daten in Nix
  • Containererstellung
  • Migration der Container
  • device-scripts auf Site Config umstellen
  • Site Config ohne Entschlüsselung dumpen, Salt-Daten löschen

Development Setup

Get Nix with Flakes first:

nix-shell -p nixFlakes

To test-drive a server, run in a checkout of this repository:

nix run .#server2-vm

Login as root with an empty password. Use build-container $(ls -1 /etc/lxc/containers) to build and start the required containers.

If you encounter too many open files errors, bump limits for virtio with ulimit -n 524288 before starting QEMU.

For development purposes build-container can pick up container rootfs built outside QEMU when the container's prebuilt option is set.

Gerätekonfigurationen

nix build .#all-device-scripts
./result/bin/...

Server Setup

ssh root@server2.cluster.zentralwerk.org

Ein Checkout dieses Repositorys liegt in ~/network. Dorthin zeigt auch /etc/nixos so dass nixos-rebuild switch problemlos klappt. Ausserdem ist dieser lokale Checkout in der nix registry eingetragen, was von bspw. von build-container verwendet wird.

Der Flake-input zentralwerk-network-key ist mit einem lokalen Repository überschrieben, weshalb die flake.lock dirty ist.

LXC-Containers auf Server

Ein Server erwartet die für ihn (location = hostName) konfigurierten Container. systemd versucht sie zu starten. Das wird erst nach build-container funktionieren, welches das Rootfs anlegt.

Management per systemd-Service lxc@.service. Beispiel:

systemctl start lxc@pub-gw
lxc-attach -n pub-gw

Innerhalb eines Containers gibts erneut systemctl, journalctl, networkctl

Nix Flake

Segfaulting nix? Until resolved, export GC_DONT_GC=1

Site Config

Wir verwenden das Module-System von NixOS eigenständig in nix/lib/config weil:

  • Checks gegen options
  • Nutzbarkeit in Paketen (device-scripts) ausserhalb eines nixos-rebuild
  • Konfigurationsdaten über mehr als 1 Host

nixosConfigurations

Systemkonfigurationen für alle Hosts mit der role "server" oder "container"

nixosModule

Alle NixOS-Einstellungen

server1 als Cold Standby

Was ein Server kann, kann ein anderer auch. Er sollte gelegentlich gebootet und aufgefrischt werden.

Damit die LXC-Container ganz kontrolliert nur auf einem gestartet werden, muss die Datei /etc/start-containers vorhanden sein. Zum Umgang damit gibt es die zwei handlichen Befehle enable-containers und disable-containers.

Dinge die stets schieflaufen

pub-Netz läuft, aber kein DHCP+Internet darüber verfügbar

Eventuell hat uci bei der ap-Konfiguration die Switch-Konfiguration für dieses VLAN nicht in /etc/config/network angelegt.

  • Überprüfen: swconfig dev switch0 show