Proxmox 1xIP kein Internet für Container

  • Hallo @all


    ich wollte übers Wochenende mal etwas mit Proxmox VE experimentieren, scheitere aber schon an der Netzwerkkonfiguration. Nach einigem lesen diverser Anleitungen habe ich soweit verstanden, dass bei nur einer öffentlichen IP das ganze über NAT laufen muss. Nur leider funktioniert es bei mir irgendwie nicht :(


    Ein Ping vom Container zur Host IP oder auch zur vmbr0 und umgekehrt gehen, aber kein Internet. Hat jemand eine Idee woran es liegen könnte ?


    Meine bisherige Konfiguration:

  • ich denke hier musst Du suchen woher die 192.168.x.x Adressen herkommen, denn lt. dem wolltest Du ja 10.10.10.0/24 NATen ...


    bzw. ich habe bei NAT folgende Regel bei mir in der *nat Section


    -A POSTROUTING -o <WANiface> -s <LANsubnet> -j SNAT --to-source <WANip>

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

  • ich denke hier musst Du suchen woher die 192.168.x.x Adressen herkommen, denn lt. dem wolltest Du ja 10.10.10.0/24 NATen ...


    bzw. ich habe bei NAT folgende Regel bei mir in der *nat Section


    -A POSTROUTING -o <WANiface> -s <LANsubnet> -j SNAT --to-source <WANip>

    Danke für den Hinweis, war noch ein Überbleibsel von meinen vorherigen Versuchen.


    Was mich wundert, die Bridge scheint ja zu funktionieren. Den Host erreiche ich ohne Probleme, nur komme ich nicht ins Netzt von Netcup. Es scheitert schon am erreichen vom Gateway.

  • Hi,

    erstmal danke für den Synapsenfasching, den mir dein Profilbild verursacht... Gehirn gründet Gewerkschaft oder so. ^^


    Ich betreibe auch ein Proxmox Setup hier bei Netcup. Gut, zwei, um genau zu sein...


    Ich hänge dir einfach mal meine Configs und Scripts an... ich denke, die sind recht selbsterklärend. Wichtig ist bei meinem Setup, dass die Proxmox Firewall komplett aus sein muss. Das wird alles händisch über iptables abgewickelt - ist besser so, glaub mir. ;)


    Ich versuche die Configs und Scripts gleich mal für deinen Use Case umzubauen...

    Außerdem ist wichtig zu wissen, dass das letzte Feld der IP bei mir immer die Container ID ist. Ich glaube das ist ein ganz gutes Best Practice.


    Code: /etc/sysctl.conf (relevanter Auszug)
    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1
    
    # Uncomment the next line to enable packet forwarding for IPv6
    #  Enabling this option disables Stateless Address Autoconfiguration
    #  based on Router Advertisements for this host
    net.ipv6.conf.all.forwarding=1


    Und die iptables Scripts sind angehangen... Da sind auch auskommentiert beispielhafte Portforwardings drin.


    Der SSH Port ist in meinen iptables Scripts zu - da müsstest du dir ggf. noch die passende Regel einbauen. Ich selbst habe da noch ein VPN hinten dran und habe den Port nur intern offen.


    Wenn du Fragen hast oder irgendwas an meiner Config unklar ist, sag einfach bescheid - ich betreibe das jetzt schon recht lange so und bin sehr zufrieden damit. Und ich habe mich über die Zeit auch recht tiefgreifend eingearbeitet. :)

  • (..)


    Wenn du Fragen hast oder irgendwas an meiner Config unklar ist, sag einfach bescheid - ich betreibe das jetzt schon recht lange so und bin sehr zufrieden damit. Und ich habe mich über die Zeit auch recht tiefgreifend eingearbeitet. :)

    Es wäre schön, wenn du deine Parameter mal ekrlärst, damit nachstehende auch verstehen was du dort machst


    # external interface

    ext_int='ens3'

    #IPv6 Netz von Netcup?

    ext_ip='abcd:abcd:abcd:abcd::1'


    # bridge interface from the VM's

    bridge_int='vmbr0'

    bridge_net='fd10:10:10::/64'

    bridge_ip='fd10:10:10::1'

    Muss hier was geändert werden??


    It dein script geeignet, direkte IPv6 adressen zu vergeben? Also aus dem NEtCup netz?

  • Hi,

    ja, an ens3 hängen Public IPs von Netcup. Du musst die Adressen natürlich in der /etc/network/interfaces und in den Firewall Scripts an deine Adressen anpassen - das ist ja klar.


    Je nachdem, was du für interne Netze nehmen möchtest, musst du diese Dateien auch noch anpassen. Wenn du aber einfach die Netze, die ich bereits eingetragen habe, nehmen magst, brauchst du da nichts mehr ändern (außer natürlich die Network Interface Config deiner Container).


    It dein script geeignet, direkte IPv6 adressen zu vergeben? Also aus dem NEtCup netz?

    Nein, ist es nicht. Einfach weil ich es nicht für sinnvoll erachte, die LXC Container direkt ans Netz zu stellen. Ich habe lieber meine zentrale Firewall auf dem Proxmox Host und arbeite dort mit DNAT bzw. Portforwarding + internen IP Adressen.


    Und selbst wenn man sagt, man braucht jetzt meinentwegen 5 IPv6 Adressen, weil man 5 mal Port 443 freigeben mag - na dann zieht man sich auf dem Hostsystem halt fünf Stück und richtet fünf Portforwardings ein. Das halte ich so auch für sicherer und sauberer.

    Wie man zusätzliche IP Adressen an den Proxmox Host anbindet, kann ich dir gerne heute abend schicken - sag mir einfach bescheid, ob Bedarf besteht.


    Natürlich kommst du dann von Haus aus nicht in das interne Netz rein und kannst nicht direkt mit den Containern kommunizieren. Da wäre dann ein VPN auf dem Proxmox Host mit Netzkopplung an das Container Netz das Mittel der Wahl.

    Oder, wenn es nur SSH sein soll, könnte man sich auch den Proxmox Host oder einen LXC Container mit Portforwarding als Jumpserver nehmen. Über den könnte man dann per SSH optional auch noch einen Tunnel aufbauen und auf andere Dienste im internen Container Netz zugreifen.




    Wenn sonst noch was unklar ist, präzisier es einfach nochmal. Dann versuche ich es dir zu erklären. ;)

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Hi,

    erstmal danke für den Synapsenfasching, den mir dein Profilbild verursacht... Gehirn gründet Gewerkschaft oder so. ^^

    Sorry für meine späte Reaktion, lag ein paar tage Flach..nein kein Corona! und Danke für die ausführliche Beschreibung, versuche es gerade umzusetzten.


    ...ich hoffe du konntest die Gewerkschaftsgründung erfolgreich unterbinden ;) ...Ich nehme das mittlerweile schon garnicht mehr wahr.

  • Ich sehe hier kein Land in meinem Projekt :(


    Ich komme nicht raus mit dem Container, egal wo ich hin pinge nix reagiert und ein traceroute landet im Nirvana. Irgendwas übersehe ich doch hier, nur was 8|?


    Proxmox: Alle Firewalls deaktiviert


    Container Setup:


    Code: Container ID 100
    Sever: Debian-Buster
    
    Netzwerk
    ID:      net0
    Name:    eth0Bridge:  vmbr0
    IP:      10.10.10.5/24
    GW:      10.10.10.1 DNS:     werwende Werte vom Host


    Host Setup:

    Code: sysctl -a | grep net.ipv4.ip_forward
    net.ipv4.ip_forward = 1
    net.ipv4.ip_forward_update_priority = 1
    net.ipv4.ip_forward_use_pmtu = 0



  • In deiner /etc/network/interfaces sehe ich einen Fehler. Dort fehlen die Netzmasken beim vmbr0, daher wird das Interface nicht hochkommen. Schau dir nochmal meine Config an, pass deine an, reboote deinen Server und dann probierst du es nochmal. ;)

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Hmpf. Magst du mir das ganze vielleicht mal per TeamViewer + TS3 zeigen? Vielleicht kann ich dir dann eher helfen.


    Der Fehler steckt bestimmt irgendwo im Detail. ;)

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Ich hänge dir einfach mal meine Configs und Scripts an... ich denke, die sind recht selbsterklärend.

    Vielen Dank hierfür. Versuche gerade testweise so ein Setup lokal in Virtualbox auf zu bauen (ja, proxmox in vbox..) um es dann in 'ner Netcup Instanz ein zu bauen. Der Versuch Proxmox mit einer public IP & NAT zusammen zu bringen hat mich auch schon wahnsinnig gemacht.

  • Ich versuche seit zwei Tagen, eine identische Struktur aufzubauen. Alles funktioniert, solange die Firewall in den Einstellungen der Netzwerkkarten der Container deaktiviert ist. Sobald aber die Firewall aktiviert wird, erhalten die Container keinen Zugriff mehr auf das Internet.


    Dazu habe ich hier folgenden Hinweis eines Proxmox Staff Members gefunden:


    Zitat

    However: important to know that for firewalling of VM and CT ports additional bridges are created; to combine these bridges with NAT is not supported by LINUX. A possible workaround is to use for NAT an extra container.

    D.h. die Infrastruktur kann so nicht funktionieren. Der Lösungsvorschlag ist, einen Container als Router aufzusetzen, hier die Firewall nicht zu aktivieren und den Traffic der restlichen Container über diesen Router zu leiten.

  • D.h. die Infrastruktur kann so nicht funktionieren. Der Lösungsvorschlag ist, einen Container als Router aufzusetzen, hier die Firewall nicht zu aktivieren und den Traffic der restlichen Container über diesen Router zu leiten.

    Auch wenn das Thema schon älter ist...

    Genau das habe ich vor! Jedoch bekommt mein "Router Container" keine Verbindung. Kann es sein, dass die öffentliche IP nur mit der "originalen" Schnittstelle des VPS funktioniert?


    Wenn ich dem Proxmox Host wieder die öffentliche IP zuweise ist er erreichbar. Gebe ich dem Router Container die IP, klappt es nicht.


    Viele Grüße

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • Kann es sein, dass die öffentliche IP nur mit der "originalen" Schnittstelle des VPS funktioniert?

    Richtig. Was für eine IP hat der Netcup-NIC denn, wenn du die IP zu deinem Gast rückst? Nur weitere IPs lassen sich an Gäste zuteilen und müssen dann aber über die öffentliche Haupt-IP über den Netcup-NIC geroutet werden.


    Bearbeitung:

    Vielleicht liesse sich die MAC der Netcup-NIC überschreiben und ebenfalls dem Gast zuteilen, der durch Routing ausnahmslos alle Pakete bekommt, also praktisch vorgibt der Host zu sein.

  • Dann kann ich mich ja auf den Kopf stellen und es klappt nicht...

    Dem VPS, also dem proxmox Host gebe ich eine private ip aus der bridge1.

    Der Router Container sollte dann die öffentliche ip bekommen und Router zwischen bridge0 (öffentliche IP) und bridge1 spielen


    danke für deine Antwort!

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20

  • Dem VPS, also dem proxmox Host gebe ich eine private ip aus der bridge1.

    Also eine private IP an einem externen Interface kann nur Bogus sein. Spätestens der Gateway verwirft die Pakete, wenn nicht schon die Containerumgebung der VPS und Root-Server. Im besten Fall könnte dein Server damit versuchen im Subnetz zu quatschen, mit Servern, die das nicht verwerfen.

  • ens3 (öffentliche Schnittstelle) -> bridge0 -> Router container (öffentliche ip)

    ens4 (Netcup vlan) -> bridge1 -> VPS proxmox Host


    Wäre die öffentliche ip nicht an den VPS gebunden, sollte das klappen?! So hatte ich das schonmal woanders konfiguriert

    Webhosting: Bestprice Classic

    Server: RS Frankenstein - VPS 200 G8 BF20