technik:proxmox

Proxmox

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 migriert
  • vmbr2: 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: Migration

Bei 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.

  1. Nutzer im Ansible anlegen
  2. Playbook all.yml laufen lassen.
  3. Den Nutzer per pveum user add NUTZER@pam bei Proxmox bekannt machen. Das muss nur einmal pro Cluster und Nutzer gemacht werden.
  4. Den Nutzer per pveum user modify --groups ffs nrb@pam zur Proxmox-Gruppe ffs hinzufuegen. Das muss nur einmal pro Cluster und Nutzer gemacht werden.
  5. Nutzer kann sich per SSH einloggen und anschließend ein Passwort per `passwd` setzen, mit dem er sich im Proxmox einloggen kann. Das Passwort gilt jeweils nur für einen Host, nicht clusterweit.

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.

  1. IP-Adresse reservieren im wiki-Artikel IP-Adressen.
  2. Im Proxmox auf „Create CT“ klicken
  3. Container-ID, Hostnamen und SSH-Key eintragen
  4. Bei Netzwerk die IP-Adresse aus dem Wiki-Artikel eintragen. Das letzte Oktett wird in das jeweilige Netz des Clusters eingesetzt. Beispiel: hat man die IP-Adresse 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.
  5. Den Container oeffnen, auf „Console mode“ klicken und auf „shell“ aendern.
  6. Unter Netzwerk die MTU von eth0 auf 1400 umstellen (nur bei Hetzner, wegen vSwitch).
  • technik/proxmox.txt
  • Zuletzt geändert: vor 8 Wochen
  • von nrb