Einrichten eines Dedicated Servers mit Proxmox und IPv6 auf Hetzner

Einrichten eines Dedicated Servers mit Proxmox und IPv6 auf Hetzner
Photo by Thomas Jensen / Unsplash

!!! Der Text wurde mit hilfe von Copilot erstellt als probe, viele teile habe ich aber ueberarbeitet. !!!

Wenn du einen Dedicated Server bei Hetzner mieten möchtest, dich Proxmox VE und IPv6 faszinieren und du Lust auf ein bisschen Tüfteln hast, bist du hier genau richtig. In diesem Blogartikel zeige ich dir, wie du einen Server mit Proxmox VE einrichtest und IPv6 im Routing-Modus mit OPNsense konfigurierst. Wir orientieren uns dabei an der Anleitung auf der Hetzner-Community-Seite: Hetzner Proxmox VE Tutorial.

Ich habe mir einen dedicated server nur mit ipv6 geholt, keine ipv4 dabei

Schritt 1: Installation von Proxmox VE

Um Proxmox bei Hetzner installieren zu koennen fragst du entweder per ticket ob sie dir ein USB stick mit an die Remote Konsole anschliessen oder du kannst theoretisch auch auf einem debian das von hand installieren ueber die repos.

Ich habe den ersten weg genommen.

Schritt 2: IPv6 und Präfix korrekt konfigurieren

Um sicherzustellen, dass dein Netzwerk und die OPNsense-VM reibungslos funktionieren, musst du das IPv6-Präfix korrekt konfigurieren.

Du musst dein prefix in vier elemente aufteilen:

  1. Du brauchst eine statische IP fuer den Proxmox
  2. Du brauchst eine statische IP fuer das interne VM Routing interface
  3. Du brauchst eine statische IP fuer die opnsense
  4. Ein Prefix fuer opnsense welches es verteilen kann innerhalb der prefix delegation von IP2

IP 1 muss sich in einem anderen prefix befinden als IP2 und IP3, und die letzten beiden muessen im selben Scope liegen als im selben Prefix. Das wird gleich klarer wenn wir zu den bridges kommen.

Ich habe mit Proxmox SDN und dnsmasq leider kein DHCPv6 ans laufen bekommen daher die OPNSense, sonst braeuchte man die auch nicht.

Schritt 3: Netzwerkkonfiguration im Routing-Modus

Jetzt geht's ans Eingemachte: Die Netzwerkkonfiguration.

    • Öffne die Datei /etc/network/interfaces auf deinem Proxmox-Server und füge die folgenden Einträge hinzu:
    • Stelle sicher, dass die IPv6-Adresse und das Gateway entsprechend der Hetzner-Anleitung konfiguriert sind.

Hetzner hat sein Gateway immer auf fe80::1 was aber durch das Router Advertisement kommt, standard IP fuer ipv6 Gateways.

Routing aktivieren: Um IPv6 im Routing-Modus zu betreiben, bearbeite die Datei /etc/sysctl.conf und füge folgende Zeile hinzu:

net.ipv6.conf.all.forwarding=1

Aktiviere dies mit sysctl -p

Host-Konfiguration:

auto vmbr0
iface vmbr0 inet6 static
        address 2a01:4f8:XXXX:XXXX::2/128
        gateway fe80::1
        bridge-ports enp0s31f6
        bridge-stp off
        bridge-fd 0
#Public Internet

auto vmbr1
iface vmbr1 inet6 static
        address 2a01:4f8:XXXX:XXXX:a::1/80
        bridge-ports none
        bridge-stp off
        bridge-fd 0
        post-up ip route add 2a01:4f8:XXXX:XXXX:a:a::/96 via 2a01:4f8:XXXX:XXXX:a::2
#Routed Subnet for OPNSense

Zur erklaerung:

Ein /128 spezifiziert nur eine einzige IP-Adresse. Daher reserviere ich für Proxmox selbst auf der Standard-Bridge vmbr0 diese IP zur Kommunikation via SSH, für Updates, etc., und verwende sie somit als Management-Interface. Die zweite Bridge ist das Routing-Interface. Hier setze ich ein a in den fünften Block, der Rest wird mit Nullen gefüllt. Als Präfix nutze ich die 80, wodurch alles in Block 6-8 unterhalb von a an die Bridge delegiert wird.

Das /64-Präfix ist der vollständige Präfix von Hetzner, der immer bis zum vierten Block reicht. Der Präfix entspricht der Maske wie bei IPv4 und teilt dem System mit, welcher Bereich unveränderlich zur Verbindung gehört und welche IPs das Netz nutzen kann.

Ich gehe also 16 Bits weiter, da ein Block 16 Bits entspricht—nur eben in hexadezimaler Darstellung. Ein Zeichen repräsentiert die Zahl eines binären Blocks von 0 bis f, was 16 Zeichen entspricht. F ist, wenn alle 4 Bits auf 1 stehen, in einem der 4 binären Bit-Blöcke, einfach die 4 in ihrer 16-Zeichen-Darstellung aufgeschrieben.

Und nach diesem exkurs gebe ich eine Route mit einem 96 Prefix an (64+16+16) und dort mit der gateway IP zu dem opnsense netz.

Schritt 3: OPNSense

Installiere nun eine opnsense VM in den proxmox und gebe ihm die vmbr1 als WAN und fuer LAN habe ich ein SDN vnet genommen.

in OPNSense konfigurierst du nun den routed 96 prefix und aber als Gateway die Bridge IP anstelle von fe80::1.

Wir schalten Router Advertisement ein!

Und konfigurieren den DHCPv6 und noch Unbound

Da ich nie mehr als 1000 VMs auf der kiste haben werde reicht es wenn ich einfach nur 4.096 ips auswaehle.

Unbound DNS hat auch eine kleine konfiguration

Ich habe neben den hetzner DNS servern von System fuer github einen sog. NAT64 DNS Server hinterlegt, weil github kann kein IPv6.