Probleme mit der Netzwerkkonfiguration mit Containers

Hallo @CainDawson,

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:
  1. 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.
  2. 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 mit sudo passwd root (um ein Passwort zu setzen) und einer Anpassung der SSH-Konfiguration aktivieren.
  3. 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.
Genau das war dein ursprüngliches Problem: Du hattest nur SNAT (raus), aber keine DNAT-Regel (rein).

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.
 
Hallo @Bu66as,

Ganz lieben Dank! Also bin ich doch noch nicht zu alt, das irgendwie mal auf die Reihe zu bekommen. :-) Ich gehe mal auf deine Punkte ein.
  1. Alles klar.
  2. Ok, ich hab mich schon gewundert. Das letzte Mal, wo ich direkt mit ISO Installationen gearbeitet habe, ist schon eine ganze Weile her. Da war das noch nicht so direkt der fall. Aber schön, was dazu zulernen.
  3. Danke, dass du es siehst, dass ich echt versuche, mir die Mühe zu machen und doch nicht ganz dumm sterben muss. Dann werde ich das wie bereits geschrieben mit dem SDN durch das IPAM nochmal in Angriff nehmen und deinen Rat hier beherzigen. Denn ich müsste ja jede neue IP-Adresse dann ja Manuel in die sysctl.conf nachträglich eintragen.
    vmbr0: Ich werde das ganze mit dem Bridged weiterhin versuchen. Was mich jetzt dazu noch interessieren würde. Wenn ich über das Datacenter die Firewall Regeln entsprechend mir Konfiguriere, da kann man ja das "Security-Gruppe" ja nutzen. Sodass ich ja dann jede VM/CT nur noch die Gruppe zuweisen muss und somit dann die VM/CT nicht einzeln jedes Mal die Firewall Einstellung vornehmen muss. Das sollte ja ausreichend klappen? Ich muss ja dann nur die Netzwerkschnittstelle für den Host als Beispiel: "vmbr0" angeben und auf für die VM dann das "net0" richtig? Wenn ich jetzt nicht mit SDN arbeiten würde, oder würde das mit SDN auch so dann funktionieren. Denn ich verstehe das jetzt aktuell so, dass ich für jede Portweiterleitung mit SDN jede Regel per Befehl in die iptables schreiben muss?
Die Empfehlung von @bluesite war mir auch dann eingefallen, er hatte es dann schon geschrieben, dass es ein Nutzen hat, den bei einem Start/Stop/Reboot wären die iptables Regeln ja wieder weg.

Könnte man jetzt mal, sagen wir mal so, den Befehl für iptables auch so einrichten, dass er automatisch alle Ports öffnet? Ich sage jetzt mal so; als eine Art Catch-All Variante? Klar, die Sicherheit ist damit etwas mehr getrübt am Ende, aber nur um das überhaupt erstmal auszutesten, bevor ich in die Produktive gehe?

Nachtrag:
Wenn ich in der Proxmox VE sagen wir mal auch die Firewall komplett auslasse. Datacenter, Root, VM/CT müssten ja die ganzen Ports ja auch offen sein? Sodass ich keine weitere Konfiguration vornehmen muss. Denn ich hätte noch die Möglichkeit extern gesehen oberhalb der Proxmox VE, sprich direkt beim Provider die Firewall Ports zu öffnen oder zu verwerfen?!

Liebe Grüße
Cain
 
Last edited: