Der Verein betreibt mehrere Proxmox-Kisten.
Der Zugriff auf die Admin-Oberflaechen erfolgt bitte immer per HOSTNAME.pveadmin.freifunk-stuttgart.de. Hintergrund: damit kann man auch ueber den Reverse Proxy, die auf anderen Hosts laufen, zugreifen. Ausserdem bekommt man so ein ordentliches Zertifikat.
Jeder pve-Cluster hat ein lokales Netzwerk (Hetzner vSwitch/Crossoverkabel) das fuer die Kommunikation im Cluster verwendet wird. Getrennt davon gibt es L2-Netze fuer die Gaeste, die auf den Proxmox-Hosts laufen.
Es gibt per VXLAN ein Clusteruebergreifendes L2, ueber das die Gaeste miteinander kommunizieren koennen. Wird per Proxmox SDN konfiguriert.
Als L3-underlay dient der Babel-Backbone.
Clustername | Cluster-ID | Hoster/Standort | Cluster-Netz |
---|---|---|---|
ffshetzner | 3 | Hetzner | 10.5.0.0/24 |
ffsz10a | 8 | Nepustil, Zettachring 10a | 10.0.8.0/24 |
Proxmox Instanz | Cluster | Cluster-IP |
---|---|---|
ffs05.freifunk-stuttgart.de | ffshetzner | 10.5.0.5 |
ffs08.freifunk-stuttgart.de | ffsz10a | 10.8.0.8 |
ffs11.freifunk-stuttgart.de | ffshetzner | 10.5.0.11 |
ffs13.freifunk-stuttgart.de | ffsz10a | 10.8.0.13 |
Es gibt ein paar Konventionen zum Setup, an die wir uns halten moechten.
vmbr1
: NAT für Gäste, Netz ist hier `10.0.CLUSTERID.0/24`. Die Mitglieder des Cluster haben die IPs 1-10. - bald alt wird auf gastnat migriertvmbr2
: Layer 2 Freifunknetz, VLAN = Segment + 100. VLAN 255 ist Transfernetz in den Wireguard Backbone.vmbr999
: externes Interface mit öffentlicher IP. Finger weg, bei Hetzner droht Serversperrung wenn hier unbekannte MACs oder IPs unterwegs sind!gastnat
: Clusteruebergreifendes VXLAN fuer Gaeste-Kommunikation 10.0.3/24
TODO 20241010: MigrationBei Hetzner kein Root auf ZFS, weil das Hetzner Rescue kein ZFS kann! Dann bitte mdadm RAID + LVM + ZFS (ja, wirklich).
Bitte alle IP-Adressen fuer Container und VMs im Wiki-Artikel Zentraler Backbone aus 10.191.255.0/24
reservieren. Das stellt sicher, dass alle Gaeste spaeter auch prinzipiell an den Backbone angebunden werden koennen.
Leiten sich aus dem letzten Oktett der Backbone-IP und der Cluster-ID ab:
Gast-ID = Cluster-ID * 1000 + letztes Oktett der IP
Also hat der Gast mit IP 10.191.255.123
auf Cluster 7 die IP 7123
.
Es werden grundsaetzlich nur lokale Nutzeraccounts benutzt, damit die Nutzer die Proxmox-Shell verwenden koennen und ihr Passwort selbst per SSH setzen koennen.
Die Nutzerkonten auf Proxmox Hosts werden alle mit Ansible verwaltet.
Die Proxmox(!)-Gruppe ffs gibt den Nutzern Zugriff aufs Proxmox-Webinterface.
all.yml
laufen lassen. pveum user add NUTZER@pam
bei Proxmox bekannt machen. Das muss nur einmal pro Cluster und Nutzer gemacht werden.pveum user modify --groups ffs nrb@pam
zur Proxmox-Gruppe ffs hinzufuegen. Das muss nur einmal pro Cluster und Nutzer gemacht werden.Sobald man einen Account auf den Proxmox Hosts hat und sich auf den Hosts per SSH einloggen kann, kann man sich auf den Gästen einloggen.
Entweder per Jumphost und IP des Gastes:
ssh -J PROXMOXHOST GASTIP
Oder man fügt folgenden Schnipsel in seine `.ssh/config` ein:
Host *.ffs05 User root ProxyCommand ssh ffs05 -W 10.0.3.$(( $(echo %n | sed -e 's/.ffs05//') - 3000 )):22
Und kann dann per ssh GASTID.ffs05
auf jeden beliebigen Gast hinter ffs05.
Wer ein Freifunkprojekt hat, kann vom Verein einen Container bekommen. Voraussetzung ist Vereinsmitgliedschaft und/oder eine entsprechende Vereinbarung mit dem Verein. Der Vorstand kann hierzu Auskunft geben.
10.191.255.163
reserviert, nutzt man im Cluster 3
die IP 10.0.3.163
. Netzmaske ist immer /24
. Gateway ist die Cluster-IP des jeweiligen Hosts.eth0
auf 1400
umstellen (nur bei Hetzner, wegen vSwitch).