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-Konnektivität herstellen 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.

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