Proxmox bei Hetzner | VMs ohne Public IP ans Netz bringen (Internet access)

speedbird

Well-Known Member
Nov 3, 2017
73
8
48
Hallo zusammen :)

Folgendes Szenario...

Mein Proxmox Server bei Hetzner läuft mit folgender Netzwerkconfig:

Code:
auto lo
iface lo inet loopback

iface enp4s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address xx.xx.xx.58/27
        gateway xx.xx.xx.29
        bridge-ports enp4s0
        bridge-stp off
        bridge-fd 0

post-up iptables -A INPUT -i vmbr0 -p tcp --destination-port 111 -j REJECT || true
post-up iptables -A FORWARD -i vmbr0 -p tcp --destination-port 111 -j REJECT || true
post-up iptables -A INPUT -i vmbr0 -p udp --destination-port 111 -j REJECT || true
post-up iptables -A FORWARD -i vmbr0 -p udp --destination-port 111 -j REJECT || true

auto vmbr1
iface vmbr1 inet static
 address 10.10.0.1
 netmask 255.255.255.0
 bridge_ports none
 bridge_stp off
 bridge_fd 0

post-up iptables -t nat -A POSTROUTING -s '10.10.0.0/24' -o enp4s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.0.0/24' -o enp4s0 -j MASQUERADE

Ich habe dort 2 VMs laufen, welche separate IPs haben, gekauft als Einzel-IPs über den Robot, zugewiesen über die MAC Adresse. Funktioniert 1a.

Jetzt möchte ich 1-2 weitere VMs erzeugen, welche zwar keine Public IP benötigen, aber dennoch Zugriff aufs Netz haben sollen, z.B. für Updates / Downloads etc.

Da ich mich eh nur per VPN auf den Server verbinde, wäre es mir also lieb, wenn die "internen VMs" einfach im vmbr1 Adressbereich liegen würden und ich dann über diese Adressen auf die jeweiligen VMs zugreifen kann. Dass das Setup ansich so funktioniert weiß ich, schließlich habe ich eine der VMs mit Public IP testweise mal mit einer zweiten Netzwerkkarte versehen, die auf vmbr1 gemappt ist und wenn ich dort dann z.B. die 10.10.0.2 vergebe, kann ich darüber auf die entsprechende VM verbinden.

So, jetzt ist halt die Frage, wie bekomme ich es hin, dass ich die VMs nur über das interne Netz erreichen kann, die VMs aber z.B. über die Verbindung des Proxmox Hosts nach draußen können, eben für Updates, Downloads etc?

Wäre klasse, wenn ihr mir da weiterhelfen könntet.

Vielen Dank.
 
Es sollte reichen in den VMs die 10.10.0.1 als default gateway zu setzen. Und schauen das ip4_forwarding aktiv ist auf dem Hypervisor
 
Danke für deine Antwort. Die Idee hatte ich auch schon. Und ausprobiert habe ich es auch, aber es funktioniert leider nicht. Ich habe meiner VM die 10.10.0.3 gegeben und als Gateway 10.10.0.1 gesetzt. Ebenso als Nameserver 10.10.0.1 aber die VM kommt nicht raus. Ich kann noch nicht mal einen Ping raussenden. Ich kann interessanterweise auch die anderen VMs nicht anpingen, die mit 10.10.0.2 zum Beispiel online sind. Irgendwie ist das sehr merkwürdig. Keine Ahnung, woran es genau liegt. Ich habe als Name Server auch schon mal die 1.1.1.1 genommen, aber das hat auch nichts gebracht. IPv4 forwarding ist auf jeden Fall eingeschaltet.
 
post-up iptables -t nat -A POSTROUTING -s '10.10.0.0/24' -o enp4s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.0.0/24' -o enp4s0 -j MASQUERADE

Kann es sein das hier das falsche Interface für Output angegeben ist? Hier sollte vmbr0 eingetragen sein.
 
Kann es sein das hier das falsche Interface für Output angegeben ist? Hier sollte vmbr0 eingetragen sein.

Habe das nun auf vmbr0 gelegt, den Hypervisor neu gestartet, aber auch das bring mit nichts.

Verstehe das nicht. Ich bekomme einfach keine Verbindung. Ich kann nichtmal die 10.10.0.1 von einer VM aus anpingen, was ja eigentlich wenigstens gehen müsste.
 
Habe die testweise mal abgeschaltet – keine Chance, ändert nichts.

Also ich kann, nachdem ich die Änderung auf vmbr0 gemacht habe, immerhin meine andere VM mit 10.10.0.2 anpingen, das geht in beide Richtungen. Auch vom VPN aus, kann ich die 10.10.0.3 anpingen, also meine neue "interne" VM.

Aber egal was ich mache, die VM ohne Public IP auf vmbr1 kann einfach nicht raus.

Habe schon DNS ausprobiert mit 10.10.0.1 / 1.1.1.1 / 8.8.8.8 / nichts

Gateway steht auf 10.10.0.1

In der /etc/sysctl.conf ist folgende Zeile gesetzt:

Code:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Wird auch übernommen:

Code:
nx:/etc# cat /proc/sys/net/ipv4/ip_forward
1

Ich bin langsam ratlos. Was übersehe ich hier?
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!