Das Netzwerk in der Riesaer Str. 32
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
network/README.md

147 lines
4.6 KiB

# Netzwerk im [Zentralwerk](http://www.zentralwerk.de/)
6 years ago
1 year ago
[Begrüßung von Menschen im Haus, die für ihren Anschluss Zugang zum Netzwerk brauchen](doc/hello.md)
## Zweck
6 years ago
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.
6 years ago
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, …)
6 years ago
1 year ago
## Öffentlichkeit
6 years ago
1 year ago
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!
1 year ago
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).
1 year ago
## Informationen für Lebewesen, die das Netzwerk mit verwalten
1 year ago
### Inhaltsverzeichnis
6 years ago
6 years ago
* [Verkabelung Patchpanel Haus B](cabling.md)
1 year ago
* TODO: tuerme, saal
* (verschlüsselte) [Kontakte zu den Personen mit den einzelnen Anschlüssen](contact.md.gpg)
6 years ago
* Dokumentation
6 years ago
* [WiFi-Provisionierung](doc/wifi-provisioning.md) und Erstellung von Privatnetzen
1 year ago
* `flake.nix` und Unterverzeichnis [nix/](nix): Konfigurationsskripte
1 year ago
### 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
11 months ago
```bash
nix build .#all-device-scripts
./result/bin/...
```
11 months ago
Oder direkt:
```bash
nix run .#switch-b2 && nix run .#ap3
```
1 year ago
### Server Setup
1 year ago
```
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.
11 months ago
Ausserdem werden dort immer wieder `nix run .#switch-to-production`
ausgeführt.
1 year ago
### 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`
1 year ago
1 year ago
### Nix Flake
5 years ago
1 year ago
#### Site Config
1 year ago
Wir verwenden das Module-System von NixOS eigenständig in
`nix/lib/config` weil:
1 year ago
* Checks gegen options
* Nutzbarkeit in Paketen (device-scripts) ausserhalb eines
`nixos-rebuild`
* Konfigurationsdaten über mehr als 1 Host
1 year ago
#### nixosConfigurations
1 year ago
Systemkonfigurationen für alle Hosts mit der `role` `"server"` oder
`"container"`
1 year ago
#### nixosModule
1 year ago
Alle NixOS-Einstellungen
11 months ago
#### Secrets
```bash
nix run .#decrypt-secrets
$EDITOR config/secrets-production.nix
nix run .#encrypt-secrets
```
### 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`.
11 months ago
#### IP Subnet Plans
`nix build .#`[subnetplan4](https://hydra.hq.c3d2.de/job/c3d2/zentralwerk-network/subnetplans/latest/download/1)
11 months ago
`nix build .#`[subnetplan6](https://hydra.hq.c3d2.de/job/c3d2/zentralwerk-network/subnetplans/latest/download/2)
11 months ago
#### Network Maps
![Physikalische Vernetzung](https://hydra.hq.c3d2.de/job/c3d2/zentralwerk-network/network-graphs/latest/download/2)
![Logische Vernetzung](https://hydra.hq.c3d2.de/job/c3d2/zentralwerk-network/network-graphs/latest/download/1)