Wireguard IPv6-Tunnel

Started by rowein, February 28, 2020, 10:08:06 AM

Previous topic - Next topic
February 28, 2020, 10:08:06 AM Last Edit: February 28, 2020, 11:28:28 AM by rowein
Hallo Zusammen,

ich habe bei mir Wireguard über Dyndns mit einer IPv4 eingerichtet.
Das funktioniert soweit prima.
Nun wollte ich testweise mal eine VPN-Verbindung über IPv6 only einrichten. Leider habe ich hierbei Probleme.
Eine Dyndns-Adresse für die IPv6 ist eingerichtet und erreichbar.
Ich habe daher unter lokal einen weiteren Wireguard-Server angelegt (Bild:Server).
Anschließend habe ich einen weiteren Endpoint angelegt, der nur über die IPv6-Adresse zugreifen darf (Bild: Endpoint).
Zusätzlich habe ich auf der Wan-Seite den Port 51280 für IPv6 UDP freigegeben (Bild:WAN).

Zum Test nutze ich ein Android-Client (sowohl über Mobilfunkt als auch fremdes WLAN - bei beiden eine öffentliche IPv6-Adresse). Dort habe ich wie bei IPv4 auch einen neuen Eintrag angelegt und die Public-Keys ausgetauscht.
Beim Starten der Verbindung sehe ich in der Firewall auf der WAN-Seite ein einkommendes UDP-Paket über IPv6 und Port 51280.
Allerdings kommt nie ein Handshake zustande.
Unter Wireguard - List configuration wird die IPv6 des Android-Clients mitsamt Port und allowed IPs dann auch angezeigt und es werden sowohl bei Client als auch beim Server Pakete gesendet, es kommen jedoch keine an und damit kommt es auch zu keinem Handshake.
Habe ich bei IPv6 etwas übersehen, was bei IPv4 anders oder nicht gemacht werden musste?
Der einzige Unterschied,den ich jetzt habe ist noch das aktive NAT bei Wireguard Net IPv4.
Da habe ich bei IPv6 nichts eingestellt.
Bei Wireguard Server und Endpoint hatte ich auch schon eine IPv6 /64 innerhalb meines /56 Prefix eingestellt, machte jedoch keinen Unterschied

Vielen Dank schonmal für die Unterstützung.

Edit:
ein tcpdump auf das Interface (wg1) sagt, dass hier nichts ankommt.
Wenn ich das auf wg0 laufen lasse (IPv4) sieht man direkt, dass über das Interface kommuniziert wird.

Moin,

Verwendest Du vielleicht für beide Instanzen den selben Listen-Port?

Grüße

Maurice
OPNsense virtual machine images
OPNsense aarch64 firmware repository

Commercial support & engineering available. PM for details (en / de).

Hallo Maurice,

nein, ich verwende für wg0 (IPv4) den Port 11946 und für wg1 (Ipv6) den Port 51280.
Außerdem noch für Openvpn UDP 11948 und TCP 443.

Grüße
Robin

Moin Robin,

Okay, bei mir läuft das einwandfrei über IPv6. Unterschiede zu deiner Konfiguration, die ich spontan erkennen kann:

- Nur eine WireGuard-Instanz,
- keine Endpoint-Adresse / -Port definiert (der mobile Client hat keine statische Adresse),
- im Tunnel GUAs statt link-local und kein IPv4.

Grüße

Maurice
OPNsense virtual machine images
OPNsense aarch64 firmware repository

Commercial support & engineering available. PM for details (en / de).

Hallo,

habe das mal soweit getestet.
Endpoint habe ich dyndns im Einsatz, daher sollte das keine Probleme machen (auch bei IPv6).
Die richtige Adresse bekomme ich per Ping zurück und ich sehe am WAN ja auch ein Paket ankommen.
Habe testweise das IPv4-VPN deaktiviert, aber keine Änderung.
Auch das Zuweisen von GUA statt local brachte keine Änderung.
Was jedoch funktioniert, dass wenn ich mit meinem WLAN verbunden bin, die Wireguard-Verbindung funktioniert?
Ich bekomme sowohl die richtige IPv4, als auch IPv6, die ich in Wireguard dem Endpoint zugewiesen habe.
Lediglich aus dem WAN scheint es Probleme zu geben.
Hilft euch das vllt bei meinem Problem? Prinzipiell scheint die Instanz ja dann schonmal zu funktionieren.

Gruß
Robin

Moin,

Dann tippe ich entweder auf ein DynDNS-Problem oder irgendwelche WAN-seitigen Filter.

Zur Fehlereingrenzung würde ich

- unter OPNsense die Endpoint-Adresse löschen und
- unter Android als Endpoint-Adresse direkt die IPv6-WAN-Adresse der OPNsense eintragen.

Damit wären DynDNS-Probleme als Ursache ausgeschlossen.

Grüße

Maurice
OPNsense virtual machine images
OPNsense aarch64 firmware repository

Commercial support & engineering available. PM for details (en / de).

Hallo,

Dyndns scheint es keine Probleme zu geben.
Bei direkter Eingabe der Ipv6 das gleiche Fehlerbild. Ein Paket kommt am WAN an und das war es. Kein Handshake.
Da es im WLAN mit dem VPN funktioniert vermute ich auch irgendetwas auf der WAN-Seite. Nur habe ich keine Ahnung, was es sein könnte.

Gruß Robin

Hallo,

noch eine kurze Rückmeldung meinerseits.
Scheinbar ist dies bei IPv4 von Extern nicht notwendig,
aber ich musste bei mir bei Wireguard über IPv6 eine Port-Weiterleitung an die IPv6 des Wireguard-Servers machen.
Jetzt funktioniert der Handshake und die Verbindung über IPv6.

Grüße
Robin

Quote from: rowein on March 05, 2020, 02:47:26 PM
Port-Weiterleitung an die IPv6 des Wireguard-Servers

Port-Weiterleitung bei IPv6? Da läuft irgend etwas grundsätzlich schief. Was meinst Du mit "IPv6 des Wireguard-Servers"? WG sollte doch an alle Interfaces binden? Von wo nach wo leitest Du denn da weiter?
OPNsense virtual machine images
OPNsense aarch64 firmware repository

Commercial support & engineering available. PM for details (en / de).

Hallo,

habe die Regel mal angehängt.
Interface ist keines zugewiesen und ich dachte auch, dass es so funktionieren sollte.
Nach etwas rumprobieren und testen war das dann aber schlussendlich die Lösung.
Wie gesagt, bei Verbindung über IPv4 musste ich dies auch nicht machen und es funktioniert da dann auch wie bei OpenVPN, dass einfach am WAN der Port freigegeben werden musste.
Bei Wireguard über IPv6 war dies aber (zumindest bei mir) nicht ausreichend.

Und welche Adresse ist die unkenntlich gemachte? Die WAN-Adresse? Oder eine LAN-Adresse?
OPNsense virtual machine images
OPNsense aarch64 firmware repository

Commercial support & engineering available. PM for details (en / de).

Es handelt sich hierbei um ein /64-Netz innerhalb meines zugewiesenen /56 Prefix. Also eine öffentliche IPv6.

Aber welchem Interface ist diese Adresse zugewiesen? WAN oder LAN?
OPNsense virtual machine images
OPNsense aarch64 firmware repository

Commercial support & engineering available. PM for details (en / de).

Keinem.
LAN hat eine andere IPv6/64-Adresse.
Und WAN erhält ja über DHCPv6 (Telekom) eine separate IPv6.
Mein Dyndns zeigt auf WAN und vermutlich brauche ich deshalb àuch diese Weiterleitung, da die Netze unterschiedlich sind?

?
Diese /128-Adresse in der Port-Weiterleitung muss doch irgendwo konfiguriert sein. Wenn das weder die WAN- noch die LAN-Adresse ist, was dann?
OPNsense virtual machine images
OPNsense aarch64 firmware repository

Commercial support & engineering available. PM for details (en / de).