Hallo @CainDawson,
du hast ja schon einen wichtigen Punkt selbst herausgefunden: Der direkte Weg über
Gehen wir mal deine neuen Fragen durch:
Die Empfehlung von @bluesite, das IP-Forwarding dauerhaft in der
Wenn du also den SDN-Ansatz wegen der besseren IP-Verwaltung weiterverfolgen möchtest (was eine gute Idee ist), fehlt dir nur noch der letzte Schritt: die Port-Weiterleitung per
Ein Beispiel für SSH auf Port 22 wäre:
Damit diese Regel einen Neustart überlebt, musst du sie dauerhaft speichern, z.B. mit dem Paket
du hast ja schon einen wichtigen Punkt selbst herausgefunden: Der direkte Weg über
vmbr0
funktioniert. Das ist die "Bridged"-Methode und für den Anfang oft am einfachsten zu verstehen.Gehen wir mal deine neuen Fragen durch:
- IP-Adressen protokollieren: Außer dem IPAM vom SDN-Modul gibt es in Proxmox leider kein eingebautes Tool, das dir eine so schöne Übersicht über die IP-Vergabe gibt. Dafür müsstest du auf externe Lösungen (wie z.B. NetBox) oder eine einfache Tabelle zurückgreifen. Die Kommentarfunktion bei den VMs/CTs ist hier auch oft hilfreich.
- Root-Benutzer bei Ubuntu: Das ist eine Sicherheitsmaßnahme von Ubuntu. Es wird empfohlen, mit einem normalen Benutzer und
sudo
zu arbeiten. Wenn du den root-Login wirklich brauchst, kannst du ihn nach der Installation mitsudo passwd root
(um ein Passwort zu setzen) und einer Anpassung der SSH-Konfiguration aktivieren. - SDN, vmbr0 und die Firewall: Hier liegt der Kern des Problems, und du bist kurz davor, es zu verstehen. Es gibt einen entscheidenden Unterschied:
- Bei vmbr0 (Bridged): Deine VM hängt direkt mit ihrer öffentlichen IP im Internet. Hier ist die Proxmox Firewall (oder eine Firewall in der VM) absolut notwendig, um den Zugriff von außen zu regeln. Du musst also z.B. Port 22 explizit erlauben, damit du per SSH darauf zugreifen kannst.
- Bei SDN (Simple-Zone mit SNAT): Deine VM hat nur eine private IP und ist vom Internet isoliert. SNAT sorgt nur dafür, dass die VM eine Verbindung nach außen aufbauen kann (z.B. für Updates). Damit du von außen auf einen Dienst in der VM (z.B. SSH) zugreifen kannst, reicht es nicht, einen Port in der Firewall freizuschalten. Du musst dem Host per Port-Weiterleitung (DNAT) sagen, dass er Anfragen an die öffentliche Failover-IP an die private IP der VM weiterleiten soll.
Die Empfehlung von @bluesite, das IP-Forwarding dauerhaft in der
/etc/sysctl.conf
zu aktivieren, ist für den SDN-Ansatz absolut korrekt, denn der Proxmox-Host muss ja als Router für das private Netz der VMs agieren.Wenn du also den SDN-Ansatz wegen der besseren IP-Verwaltung weiterverfolgen möchtest (was eine gute Idee ist), fehlt dir nur noch der letzte Schritt: die Port-Weiterleitung per
iptables
.Ein Beispiel für SSH auf Port 22 wäre:
iptables -t nat -A PREROUTING -i vmbr0 -d DEINE_FAILOVER_IP -p tcp --dport 22 -j DNAT --to-destination PRIVATE_IP_DEINES_CT:22
Damit diese Regel einen Neustart überlebt, musst du sie dauerhaft speichern, z.B. mit dem Paket
iptables-persistent
.