KategorieVirtualisierung

KVM/Dedi Proxmox und Hurricane Electric Free IPv6 Tunnel Broker in Gast @Home, FritzBox oder VPS

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:

VMWare – Shrink/Compact Disk eines Linux Gastes

Im Zeitalter von SSDs ist man wieder mehr darauf bedacht, Speicherplatz zu sparen. Im Normalfall hat man seine VMs ja heutzutage auf eher kleineren SSD liegen, so dass man sicher stellen muss, dass diese Files von Zeit zu Zeit „ge-shrinked“ werden.

Ein einfaches schrinken des Diskfiles unter VMWare führt in den meisten fällen nicht zu gewünschten Ergebnis.

So sind beispielsweise nur ~13GB im Gast belegt, das Diskfile ist jedoch ganze 100GB groß. Um für VMWare den freien Speicherplatz zu markieren, muss dieser mit NULL/Zero vollgeschrieben werden. Dies mach aber auch nur sinn, wenn vorher alle Daten an den Anfang des Files verschoben wurden. Somit besteht die Prozedur aus 1. dem Defragmentieren und 2. dem Wipen der Disk, wo sich keine Daten befinden.

# 1. Defragmentieren (no need to un/remount anything)
sudo e4defrag /

#Fehler können ignoriert werden. Symlinks & Devices können nicht defragmentiert werden.

#2. Wipe the unused disk.
dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

#3. Starte den VMWare Shrink Prozess
sudo vmware-toolbox-cmd disk shrinkonly

Danach wurden knapp 87GB wieder freigegeben, da diese nicht benutzt wurden.