network/README.md

108 lines
4.5 KiB
Markdown
Raw Normal View History

# Netzwerk im [Zentralwerk](http://www.zentralwerk.de/)
2016-11-27 01:47:02 +01:00
## Zweck
2016-11-27 01:47:02 +01:00
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.
2016-11-27 01:47:02 +01:00
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, …)
2016-11-27 01:47:02 +01:00
## allgemeine Informationen
2016-11-27 01:47:02 +01:00
### Informationen für Menschen, die angeschlossen werden möchten
[Begrüßung von Menschen im Haus, die für ihren Anschluss Zugang zum Netzwerk brauchen](doc/hello.md)
### Informationen für Menschen, die das Netzwerk mit verwalten
#### Inhaltsverzeichnis
2016-11-27 01:47:02 +01:00
2016-12-14 21:12:29 +01:00
* [Verkabelung Patchpanel Haus B](cabling.md)
2016-11-27 01:47:02 +01:00
* [Planung der IP-Adressbereiche](subnets.md)
* (verschlüsselte) [Kontakte zu den Personen mit den einzelnen Anschlüssen](contact.md.gpg)
2016-11-27 01:47:02 +01:00
* Dokumentation
2016-12-14 21:12:29 +01:00
* [WiFi-Provisionierung](doc/wifi-provisioning.md) und Erstellung von Privatnetzen
* [Einrichtung einer Testumgebung fürs Mit- und Nachmachen (Entwicklung)](doc/test-environment.md)
2016-11-27 01:54:52 +01:00
* Unterverzeichnis [salt/](salt): Skripte (*salt states*) zum Aufbau des zentralen Services
* Unterverzeichnis [salt-pillar/](salt-pillar): individuelle Konfigurationsdaten
2016-11-27 01:47:02 +01:00
* **vlans** bildet Netznamen auf VLAN-IDs ab
* **subnets** und ../subnets.md enthält unsere IP-Netzplanung
2016-11-27 01:47:02 +01:00
* **hosts** sind alle statisch konfigurierten IP-Adressen
2016-12-14 21:12:29 +01:00
* **dhcp** enthält die zur Verfügung gestellten privaten Addressbereiche
2016-11-27 01:47:02 +01:00
* **switches** dient zur Konfigurationserzeugung für alle Managed Switches
* **cpe** sind Daten für Konfiguration des *Customer Premise Equipment* (WiFi Access Points)
2016-12-14 21:12:29 +01:00
* Datei top.sls listet die auf einzelnen Containern und im Host verwendeten Systemdienste
2016-11-27 01:47:02 +01:00
#### Dinge die stets schieflaufen
2016-11-27 01:47:02 +01:00
##### `salt server1 state.apply server1-network`
2016-12-15 15:43:20 +01:00
Hier werden die Bridges abgerissen und neu erstellt. Danach hängen
gestartete lxc-Container nicht mehr dran.
**Lösung:** Manuell hinzufügen mit `brctl addif` oder einfach die
Container neustarten.
##### Switch-Konfigurationsskripte ausgeführt, dabei ist das Netz gestorben
2016-12-15 15:43:20 +01:00
Das tritt auf wenn man so doll die Konfiguration verändert, dass die
Nummern der Link-Aggregation Groups sich ändern. Dabei landet server1,
von welchem gerade konfiguriert wird, temporär in einer Gruppe die
eigentlich zu was anderem gehört.
**Lösung:** Skript auf eigenen Computer kopieren, direkt ans *mgmt*
hängen und ausführen.
2017-11-02 17:09:35 +01:00
##### pub-Netz läuft, aber kein DHCP+Internet darüber verfügbar
2017-11-02 17:09:35 +01:00
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`
* **Beheben**: VLAN manuell in `/etc/config/network` anelegen
## Ö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).
## System
Verkabelung
* im Haus
* in Serverschränken
Server (Hardware)
* Bebriebssystem: Debian (GNU/Linux)
* Verwaltung der Konfiguration:
* [salt](https://www.saltstack.com/)
* Repository
* (generierte) Skripte
* Container: LXC
* Dienst DHCP:
* Dienst DNS:
*
Geräte für die Verteilung vom Netzwerk
* Switches (bis zu den Anschlüssen)
* Access Points (hinter den Anschlüssen)
Zugänge fürs Internet
* bezogene Anschlüsse bei anbietenden Unternehmen
* bezogener Zugang zu einem VPN bei anbietenden Unternehmen
Randbedingungen:
* Server (Hardware)
* Betriebssystem: Proxmox VE (als kleines Cluster, auch für Dienste)
## Zukunft
#### Einsatz von NixOS auf dem Server
Mittelfristig soll das System bestmöglich mit NixOS betrieben werden. Entsprechend würde dann Debian und (mindestens Großteile) von salt ersetzt werden.
Mit NixOS wäre eine bessere (absolutere) Kontrolle möglich. Die Konfiguration wird nicht komplizierter.