November 15

0 Kommentare

IPv6 über IPv4 mit dem ungleich.ch VPN

By Olaf Buwen

November 15, 2024

IPv6, Konfiguration, Routing, Subnetz, Ubuntu, ungleich.ch, VPN, WireGuard

Mit den knapp werdenden IPv4-Adressen wird der Umstieg auf IPv6 immer wichtiger. Doch nicht alle ISPs bieten bereits IPv6-Unterstützung an. Der Schweizer Dienstanbieter ungleich.ch stellt einen IPv6-VPN-Dienst bereit, mit dem man auch bei einem reinen IPv4-Internetanschluss IPv6 über IPv4 tunneln kann. In diesem Beitrag zeigen wir, wie wir diesen Dienst auf einem Ubuntu 22.04-System einrichten und ein /48-Subnetz auf weitere Geräte im lokalen Netz verteilen können.


Voraussetzungen

Um loszulegen, benötigen wir:

  1. Einen Ubuntu 22.04-Server oder -Rechner, der nur IPv4-Zugang hat.
  2. Einen VPN-Account bei ungleich.ch (https://ipv6.ungleich.ch/).
  3. Die WireGuard-Software, die für die VPN-Verbindung genutzt wird.

Schritt 1: WireGuard installieren

Zunächst installieren wir WireGuard, da das VPN von ungleich.ch darauf basiert:

sudo apt update 
sudo apt install wireguard

Schritt 2: Konfigurationsdatei von ungleich.ch beziehen

Nach der Registrierung bei ungleich.ch erhalten wir eine Konfigurationsdatei, z. B. ungleich-wg0.conf, die alle notwendigen Einstellungen enthält. Diese Datei laden wir herunter und speichern sie in /etc/wireguard.

Jetzt müssen wir unsere Keys für den Tunnel erstellen.

Zuerst den private key:

umask 077; wg genkey > privkey

Daraus erstellen wir dann den public key

wg pubkey < privkey

Dann muss der public key per Mail an ungleich.ch gesendet werden.

Schritt 3: WireGuard-Konfigurationsdatei einrichten

Die heruntergeladene Konfigurationsdatei sollte etwa so aussehen:

[Interface] 
PrivateKey = <Unser Private Key>
Address = 2a0a:e5c0:abcd::2/64
DNS = 2a0a:e5c0:aaaa:aaaa::1

[Peer]
PublicKey = <Public Key von ungleich.ch>
Endpoint = vpn.ungleich.ch:51820
AllowedIPs = ::/0
PersistentKeepalive = 25

Erklärung der Parameter:

  • PrivateKey: Der private Schlüssel unseres Geräts, der geheim bleiben muss.
  • Address: Die IPv6-Adresse, die dem Interface zugewiesen wird. Mit dem /48-Subnetz (z. B. 2a0a:e5c0:abcd::/48) können weitere Adressen innerhalb dieses Bereichs verwendet werden.
  • DNS: Die IPv6-Adresse des DNS-Servers von ungleich.ch.
  • PublicKey: Der öffentliche Schlüssel des VPN-Servers.
  • Endpoint: Die Adresse des VPN-Servers.
  • AllowedIPs: Gibt an, welche IPs über das VPN geroutet werden sollen (::/0 bedeutet „alles“).
  • PersistentKeepalive: Hält die Verbindung zum VPN-Server aufrecht.

Die Datei wird unter /etc/wireguard/wg0.conf gespeichert.

Schritt 4: WireGuard starten und aktivieren

Um die VPN-Verbindung zu starten, nutzen wir folgenden Befehl:

sudo wg-quick up wg0

Damit die Verbindung auch nach einem Neustart automatisch hergestellt wird, aktivieren wir den entsprechenden Dienst:

sudo systemctl enable wg-quick@wg0

Schritt 5: IPv6-Konnektivität prüfen

Mit einem einfachen Test prüfen wir, ob die IPv6-Verbindung funktioniert:

ping6 google.com

Erhalten wir eine Antwort, ist die IPv6-Konnektivität über das VPN erfolgreich hergestellt.

Schritt 6: /48-Subnetz im lokalen Netzwerk verteilen

Jetzt, da unser Ubuntu-Server IPv6-Konnektivität hat, können wir das /48-Subnetz auf weitere Geräte im lokalen Netzwerk verteilen.

Routing und Weiterleitung aktivieren

Damit unser Server als Router für das Netzwerk dient, aktivieren wir die IPv6-Weiterleitung:

echo "net.ipv6.conf.all.forwarding=1" | sudo tee -a /etc/sysctl.conf 
sudo sysctl -p

Routing-Regeln in der WireGuard-Konfiguration anpassen

Damit das /48-Subnetz vollständig genutzt werden kann, passen wir die Datei /etc/wireguard/wg0.conf an. Wir ergänzen das gesamte Subnetz in der AllowedIPs-Einstellung:

[Peer] 
PublicKey = <Public Key von ungleich.ch>
Endpoint = vpn.ungleich.ch:51820
AllowedIPs = 2a0a:e5c0:abcd::/48
PersistentKeepalive = 25

Weitere Geräte im Netzwerk konfigurieren

Jetzt können wir anderen Geräten im lokalen Netzwerk IPv6-Adressen aus dem zugewiesenen Subnetz (z. B. 2a0a:e5c0:abcd::/48) zuweisen. Beispielsweise könnte ein Rechner die Adresse 2a0a:e5c0:abcd:1::1/64 erhalten. Als Gateway wird die Adresse unseres Ubuntu-Servers (z. B. 2a0a:e5c0:abcd::1) verwendet.

Firewall-Einstellungen überprüfen

Falls ufw oder eine andere Firewall aktiv ist, stellen wir sicher, dass IPv6-Weiterleitung und -Routing erlaubt sind:

sudo ufw allow in on wg0 
sudo ufw allow out on wg0

Zusammenfassung

Mit diesen Schritten haben wir erfolgreich IPv6-Konnektivität über das ungleich.ch-VPN auf unserem Ubuntu 22.04-System hergestellt und ein /48-Subnetz im lokalen Netzwerk verteilt. Dadurch können alle Geräte im Netzwerk IPv6-Zugang nutzen, auch wenn der ISP dies nicht nativ unterstützt.


Hat Dir der Beitrag gefallen? Dann teile ihn doch mit Deinen Freunden!

Was hältst Du von dem Thema?
Schreib mir doch einfach Deine Meinung in einem Kommentar...

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>