Problem
Nach wie vor gibt es viele Anbieter die für günstige KVM/Dedizierte Server kein IPv6 bereitstellen. Möchte man nun, aus welchen Gründen auch immer die VMs/Container native aus dem Netz erreichen kann man sich einen kostenlosten Tunnel von Hurricane Electric oder NetAssist zu nutze machen.
Ich gehe hier davon aus, dass euer Proxmox schon installiert ist. Es spielt keine Rolle ob dies native oder auf Debian installiert wurde.
Kernel Flags
Folgende Kernel Flags sind notwendig:
# /etc/sysctl.conf auf dem Proxmox Host
# IPv4 Traffic forwarden/routen
net.ipv4.ip_forward=1
# IPv6 Traffic forwarden/routen
net.ipv6.conf.all.forwarding=1
# IPv6 NDP weiterleiten
net.ipv6.conf.all.proxy_ndp=1
Ohne Systemneustart könnt ihr die settings wie folgt anwenden.
# In dem Shell des Proxmox Hosts als root ausführen
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.conf.all.proxy_ndp=1
Um einen /64 Tunnel zu registrieren folgt diesen Schritten. Zuerst müsst Ihr auch registrieren und dann den Tunnel erzeugen:


Nachdem Ihr den Tunnel erzeugt habt, bekommt ihr automatisch alle Details, inklusiv des IPv6 Subnetzes.

Auf dem „Example Configurations“ Tab, könnt Ihr nun eine Grundkonfiguration für Debian herunterladen.

Leider funktioniert die Konfiguration nicht direkt, diese muss für Proxmox7/Debian11 noch angepasst werden und dann in die Datei /etc/network/interfaces eingefügt werden:
auto he-ipv6
iface he-ipv6 inet6 tunnel
mode sit
# IPv6 Tunnel Endpoints --> Client IPv6 Address
address 2001:470:XXX:1c5::2
netmask 64
endpoint 216.66.84.46
local 185.183.XXX.XXX
ttl 255
# IPv6 Tunnel Endpoints --> Server IPv6 Address
gateway 2001:470:XXX:1c5::1
Im Anschluss muss noch eine neue Bridge angelegt werden. Diese Bridge wird eine IPv6 Only Bridge werden. Das bedeutet, wenn ihr eine VM/Container anlegt, müsste ihr 1x IPv4 und 1x IPv6 Netzwerk hinzufügen. Fügt bitte auch in /etc/network/interfaces die neue Bridge ein. Aktuell muss ich jede IPv6 Adresse als Proxy Neighbour händisch konfigurieren. Deshalb erzeuge ich immer eine ganze Liste. Im Beispiel sind es 6 Adressen.
auto vmbr2
iface vmbr2 inet6 static
# Routed IPv6 Prefixes --> First routed ipv6 adress
address 2001:470:XXY:1cb::1/80
bridge-ports none
bridge-stp off
bridge-fd 0
comments6 ipv6 nat
pre-up brctl addbr vmbr2
post-down brctl delbr vmbr2
post-up ip -6 neigh add proxy 2001:470:XXY:1cb::100 dev he-ipv6
post-up ip -6 neigh add proxy 2001:470:XXY:1cb::101 dev he-ipv6
post-up ip -6 neigh add proxy 2001:470:XXY:1cb::102 dev he-ipv6
post-up ip -6 neigh add proxy 2001:470:XXY:1cb::103 dev he-ipv6
post-up ip -6 neigh add proxy 2001:470:XXY:1cb::104 dev he-ipv6
post-up ip -6 neigh add proxy 2001:470:XXY:1cb::105 dev he-ipv6
Nach einem Neustart des Servers können Ihr nun Container aufsetzten und ein Netzwerk konfigurieren. Auf dem Host sollte euer Netzwerk Tab ähnlich aussehen:



