Voraussetzungen
Um loszulegen, benötigen wir:
- Einen Ubuntu 22.04-Server oder -Rechner, der nur IPv4-Zugang hat.
- Einen VPN-Account bei ungleich.ch (https://ipv6.ungleich.ch/).
- 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.