[SOLVED] Hetzner IPv6 und IPv4 über NAT

eliaskrbg

Member
Nov 12, 2022
20
0
6
Guten Abend,

ich habe bei Hetzner folgende Netzconf unten.
Die VMs haben keinen Internetzugriff.
Das Ziel des Ganzen ist eine eigene IPv6 Adresse für jede VM/jeden CT und IPv4 Verbindung über NAT mit entsprechender Portweiterleitung.
Wo ist der Fehler?

Code:
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

iface lo inet6 loopback

auto enp0s31f6
iface enp0s31f6 inet static
        address IPv4/26
        gateway 95.216.68.1
        up route add -net 95.216.68.0 netmask 255.255.255.192 gw 95.216.68.1 dev enp0s31f6
# route 95.216.68.0/26 via 95.216.68.1

iface enp0s31f6 inet6 static
        address IPv6-Netz::2/64
        gateway fe80::1

iface eth0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 10.10.0.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -s '10.10.0.0/24' -o enp0s31f6 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.0.0/24' -o enp0s31f6 -j MASQUERADE

iface vmbr0 inet6 static
        address IPv6-Netz::3/64
        up ip -6 route add IPv6-Netz::/64 dev vmbr0
 
moin, hast du den VMs eine IP zugewiesen?

hatte mal ein ähnliches setup, und für die VMs ein eigenes Netz erstellt. Allerdings dann ohne Portforwarding an die VMs
Mein Tipp wäre hier entweder eine zweite IPv4 zu bestellen oder sehr vorsichtig zu sein wenn du entsprechende regeln auf dem Proxmox Host erstellst
 
Hi,

klar:

IPv4:
Static
IPv4/CIDR:10.0.0.100/24
Gateway (IPv4): 10.0.0.1


IPv6:
Static
IPv6/CIDR: IPv6::100/64
Gateway (IPv6): fe80::1

IP bestellen ist so nicht wirklich umsetzbar, da es circa 15 VMs geben wird, welche jeweils einen anderen Port weitergeleitet braucht. Bei den IP Preisen ist das nicht wirtschaftlich
 
Tacho, hab nochmal über meine alte config drübergeschaut und gesehen, dass da 2 Regeln mehr drin sind.
Soweit ich das verstehe (keine ahnung mehr wie das genau funktioniert ) wird bei mir hinzugefügt, dass bereits bestehende States von Proxmox aus zu der jeweiligen VM weitergeleitet wird.

Hier einmal der entsprechende eintrag, wie gesagt mit nem anderen Interface und dem "normalen" interface als bridge(vmbr0) eingerichtet

Code:
auto vmbr0001
iface vmbr0001 inet static
        address 192.168.69.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
        post-up   iptables -A FORWARD -i vmbr0 -o vmbr0001 -m state --state RELATED,ESTABLISHED -j ACCEPT
        post-up   iptables -A FORWARD -i vmbr0001 -o vmbr0 -j ACCEPT

Mit IP bestellen meinte ich eigentlich lediglich eine einzelne IP, welche du dann als eine art Reverse-Proxy konfigurieren kannst (NginX Proxy Manager, SWAG, Traefik, etc.), so hatte ich das dann danach gemacht, als mir die config um die ohren geflogen ist.
Mit dem Reverse Proxy kannst du dann halt auch einfach beliebig viele Webseiten hosten und hast anschließend nur einen Ort wo du HTTP Feature und Zertifikate dieser managen musst. ist ganz angenehm
 
Achso, habs verstanden.

So sieht das jetzt bei mir aus, klappt aber noch nicht.
Code:
auto vmbr0
iface vmbr0 inet static
        address IPv4-1/26
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        up ip route add 192.168.0.1/24 dev vmbr0
        up ip route add IPv4-2/32 dev vmbr0

iface vmbr0 inet6 static
  address IPv6::3
  netmask 64
  up ip -6 route add IPv6::/64 dev vmbr0

auto vmbr1
iface vmbr1 inet static
        address 192.168.0.1/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
        post-up   iptables -A FORWARD -i vmbr0 -o vmbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT
        post-up   iptables -A FORWARD -i vmbr1 -o vmbr0 -j ACCEPT
 
ich würde Nginx-Proxy-Manager empfehlen:
https://nginxproxymanager.com/



als erstes konfigurierst du eine Bridge nach der Proxmox Doku:

Code:
auto lo
iface lo inet loopback

iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.10.2/24
        gateway 192.168.10.1
        bridge-ports INTERFACENAME
        bridge-stp off
        bridge-fd 0
https://pve.proxmox.com/wiki/Network_Configuration

da wo "INTERFACENAME" steht musst du dann den namen deines Interfaces eingeben (in deinem falle hier wäre dass dann "enp0s31f6"), damit schließt du quasi die netzwerkkarte an einen Switch an (Open vSwitch) und erlaubst auch VMs sich mit diesem zu verbinden.
Allgemein kann man sich die Linux Bridge in Proxmox wie einen 10G Netzwerkswitch vorstellen.

das "vmbr0" solltest du auch anpassen, meines wissens nach kannst du dir was ausdenken, hauptsache vmbr und dann irgendwelche zahlen.



Gehen wir davon aus, dass du ein weiteres interface hast, welches du vmbr333 nennst, wirst du folgende konfiguration haben

Code:
# Linux Bridge für Proxmox
auto vmbr0
iface vmbr0 inet static
        address Deine IP plus CIDR
        gateway Gateway vom Provider
        bridge-ports PhysischerPort (im moment "enp0s31f6")
        bridge-stp off
        bridge-fd 0

#Bridge für die VMs, hier wird geNATted
auto vmbr222
iface vmbr222 inet static
        address IPADRESSE/24        
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   iptables -t nat -A POSTROUTING -o vmbr0 -j MASQUERADE
        post-up   iptables -A FORWARD -i vmbr0 -o vmbr0001 -m state --state RELATED,ESTABLISHED -j ACCEPT
        post-up   iptables -A FORWARD -i vmbr0001 -o vmbr0 -j ACCEPT

#Bridge für den Reverse Proxy
auto vmbr333
iface vmbr333 inet static
        bridge-ports neues Interface (in der regel auch "enp...")
        bridge-stp off
        bridge-fd 0

damit hast du dann nach den Best Practices dein Proxmox angebunden und eine weitere Schnittstelle, wo eine weitere öffentliche IPv4 vorhanden ist, an einen Gedanklichen Switch angeschlossen.

Wichtig ist hier bei dem interface "vmbr333" KEINE IP VERGEBEN, da diese sonst nicht mehr für den Reverse Proxy frei ist

dann erstmal die oben genannten einstellungen anwenden indem du im Terminal ifreload -a eingibst
Hier kann es zu einem kurzen verbindungsabbruch kommen.

Damit hast du dann erstmal 3 Netze
vmbr0: Damit ist dein Proxmox angebunden und auch erreichbar
vmbr222: das ist dein geNATtetes Netzwerk, hier haben alle internetzugriff, sind abber von außen nicht erreichbar
vmbr333: das ist das Netz für deinen Reverse Proxy, hier ist nachher nur dieser drinne



Ich hoffe ich hab nix wichtiges vergesen
 

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!