Wireguard: IPv4 + IPv6 nicht möglich

floklo4

Lt. Commander
Registriert
Feb. 2012
Beiträge
1.390
Hallo Leute,

unter euch gibt es bestimmt jemanden, der mehr Ahnung von der Materie hat. Ich habe einen Server in der Hetzner Cloud. Dort läuft Windows Server 2022 (mit GUI) auf der WireGuard mittels WS4W (Link) realisiert wird. Nutze ich IPv4, dann funktioniert der Tunnel problemlos.

Ich würde nur jetzt dazu noch IPv6 konfigurieren, aber entweder WS4W zeigt einen parsing Fehler an oder aber die Konfiguration ist fehlerhaft, ich kann diese nicht einfügen (Windows 11) bzw. der QR-Code funktioniert nicht. Fehler in der WireGuard iOS App: Keine gültige Konfigurationsdatei. Ich habe jetzt schon mehrere Anleitungen im Internet (für Linux) probiert, komme aber nicht weiter. Alle Versuche enden in den Problemen, die ich oben beschrieben habe.

Vielleicht als Hintergrund: Weder NAT noch Internet Sharing machen einen Unterschied, wobei NAT bei IPv6 scheinbar nicht funktioniert. Ich hänge mal die Konfigurationen an. Es ist auch egal, ob ich das IPv6 Subnetz nutzen will oder die privaten v6-Adressen. Firewall deaktivieren macht keinen Unterschied.

Vielleicht kann mir jemand weiterhelfen...
 

Anhänge

  • Server.JPG
    Server.JPG
    62,5 KB · Aufrufe: 282
  • Client.JPG
    Client.JPG
    82,5 KB · Aufrufe: 282
Zuletzt bearbeitet:
IPv6 Adressen dürfen bei "normalen" Wireguard Applikationen nicht in eckige Klammern. Ist das hier sicher anders?

Generell: Du weißt, was du tust? Ein Windows Server ist enorm schwierig abzusichern. Gehackte und für Malware missbrauchte Server erzeugen massive Schäden, vor allem für den Betreiber, denn der wird dafür haftbar gemacht.
 
Nehme ich die Klammern raus, dann bleibt das Problem bestehen, keine gültige Konfigurationsdatei unter iOS.
 
Ich betreibe mehrere Wireguard Tunnel. Hier die config aus Server+Client sicht. Server ist dabei auf Linux Basis. Client ist die Android App aus dem Playstore. Die DynDNS löst zu einer IPv4+IPv6 aus. Je nachdem wie der Client angebunden ist kommt er über IPv4 oder IPv6 rein. Über den Tunnel selbst geht beides. Serverseitig wird IPv4 & IPv6 noch genattet.

client
Code:
[Interface]
Address = 10.10.7.4/32, fe00::4/64
DNS = 192.168.171.248, 192.168.171.249
MTU = 1412
PrivateKey = <key here>

[Peer]
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = v6mydns.ddnss.de:51823
PublicKey = <key here>

server
Code:
[Interface]
PrivateKey = <key here>
Address = 10.10.7.254/24,fe00::1/64
ListenPort = 51823
MTU = 1412

[Peer]
PublicKey = <key here>
AllowedIPs = 10.10.7.4/32,fe00::4/64

Die geringere MTU Size war für den Betrieb über PPPoE und die Server Erreichbarkeit via IPv6 nötig.
 
Dann zeige doch bitte mal die resultierende Konfigurationsdatei im klassischen Wireguard Format. Wenn möglich, auch vom Server.
 
"Klassisch" ist unter Windows immer so eine Sache. "xx" und "???" sind Platzhalter.

Server:
Code:
# WG-Server
[Interface]
Name=WG-Server
ListenPort=51820
AllowedIPs=0.0.0.0/0, ::0
Endpoint=49.xx.xx.xx:51820, 2A01:4F8:???:????::1:51820
Address=10.253.0.1/24,2A01:4F8:???:????::2/64
PersistentKeepalive=0
PrivateKey= key
PublicKey= key

Client:
Code:
# iPhone14
[Interface]
Address=10.253.0.4, 2A01:4F8:???:????::3/128
DNS=1.1.1.1,2606:4700:4700::1111
PrivateKey= key


# WG-Server
[Peer]
Endpoint=49.xx.xx.xx:51820, 2A01:4F8:???:????::1:51820
PresharedKey=key
AllowedIPs=0.0.0.0/0, ::0
PublicKey= key
 
Oha. Das wird ein weiter Weg.

Der Server darf natürlich niemals sich selber als Endpoint haben. Meines Wissens dürfen auch nicht 2 Adressen beim Endpoint stehen. Wenn du IPv4 und IPv6 unterstützen willst, dann arbeite mit Hostnamen, die A und AAAA auflösen. (Das könnte auch den Parserfehler auf dem IPhone auslösen)
Wenn es einen PersitentKeepAlive gibt, sollte der auch einen sinnvollen Wert beinhalten. In der Konstellation macht der aber nur im Client Sinn, nicht im Server. Dazu sind die Einträge, die in den [Peer] Bereich gehören, mit im Interface Bereich. Das ist eine Katastrophe.

Dazu ist in der Client Konfig ein Preshared Key, im Server nicht. Das wird nicht funktionieren. Ansonsten sieht die Client Konfig ok aus - bis auf die 2 Einträge beim Endpoint.
 
Und du zahlst 2€ im Monat für eine eigene ipv4?
 
Client:
Code:
# iPhone14
[Interface]
Name=iPhone14
Address=10.253.0.4, 2A01:4F8:???:????::3/128
AllowedRoutableIPs=0.0.0.0/0, ::0
DNS=1.1.1.1,2606:4700:4700::1111
Index=1
IsEnabled=True
DNSSearchDomains=
PersistentKeepalive=
PrivateKey=key
PublicKey=key
AllowedIPs=10.253.0.4, 2A01:4F8:???:????::3/128
PresharedKey=key

Und es gibt noch:
Code:
# WG-Server
[Interface]
ListenPort=51820
PrivateKey=key

# iPhone14
[Peer]
PersistentKeepalive=0
PublicKey=key
AllowedIPs=10.253.0.4, 2A01:???:????::3/128
PresharedKey=key

Wie gesagt: Ohne v6 funktioniert alles. Was genau WS4W im Hintergrund macht, kann ich nicht genau feststellen.

Pilatesjünger schrieb:
Und du zahlst 2€ im Monat für eine eigene ipv4?

Auf was möchtest du hinaus?
 
Du hast jetzt jeweils eine "gute" und eine "schlechte" Konfiguration für den Server und den Client gezeigt. Gut und Schlecht im Sinne des Syntax. Wo genau kommen die her, bzw. was genau ist das? Zumindest die "schlechten" sind keine gültigen Wireguard Konfigurationen. Die anderen gehen zumindest in die richtige Richtung, haben aber auch teilweise noch fehlende oder falsche Einträge.

floklo4 schrieb:
Wie gesagt: Ohne v6 funktioniert alles.
Damit kam der 2. Eintrag bei "Endpoint" rein?
 
riversource schrieb:
Damit kam der 2. Eintrag bei "Endpoint" rein?
Den zweiten Endpoint habe ich eingefügt. Macht aber hier auch keinen Unterschied. Entferne ich den Endpoint und lasse nur die v4-Adresse drin, funktioniert der Tunnel jedoch nur auf v4 Basis.

Wie gesagt: Ich weiß nicht, was genau das Programm macht und ob die Konfigs am Ende konform sind oder nicht. Ich kann nur sagen: v4 funktioniert ohne v6. So viel falsch habe ich erst einmal nicht gemacht. Vielleicht macht Windows auch hier Probleme, möchte ich nicht bestreiten... Unter Linux hätte ich mir das auch alles selber zusammensuchen können, aber den Windows Server gibt es halt.
 
floklo4 schrieb:
Entferne ich den Endpoint und lasse nur die v4-Adresse drin, funktioniert der Tunnel jedoch nur auf v4 Basis.
Wie gesagt, Hostname mit A und AAAA Record. Problem gelöst.
Und das ist ja auch unabhängig von IPv6 auf dem Tunnel. Du kannst IPv6 ja auch über den IPv4 Tunnel übertragen.

floklo4 schrieb:
Ich weiß nicht, was genau das Programm macht und ob die Konfigs am Ende konform sind oder nicht.
Warum gibt es überhaupt zwei unterschiedliche Konfigs von Server und Client?

floklo4 schrieb:
... aber den Windows Server gibt es halt.
Ich hoffe, darum kümmert sich jemand mit Ahnung von der Materie. Einen Windows Server abzusichern ist die Königsdisziplin der Administration.
 
@floklo4 Was willst Du eigentlich erreichen, nur auf den Server selbst zugreifen oder auch dessen Internet nutzen?
Ergänzung ()

riversource schrieb:
Einen Windows Server abzusichern ist die Königsdisziplin der Administration.
Vorteil bei Windows Server, man kann sein Wissen vom Client-OS übertragen, zumindest solange man kaum Dienste drauf laufen lässt...
 
Bob.Dig schrieb:
Vorteil bei Windows Server, man kann sein Wissen vom Client-OS übertragen, zumindest solange man kaum Dienste drauf laufen lässt...
Das ist allerdings ein vergleich von Apfel und Birnen. Ein Client der im Regelfall in einem "sicheren" LAN steht, hast du ganz andere Anforderungen als bei einem Windows Server der aus dem Internet erreichbar ist.
 
Ihr wisst meinen Background nicht, also bitte beim Thema bleiben und nicht wieder mit der Schiene anfangen, dass ich doch keine Ahnung von allem habe. Die habe ich, nur nicht von WireGuard. Der Server ist rein privat und es laufen keine externen Dienste. Es läuft nur eine RuskDesk Server Instanz und WireGuard.

Bob.Dig schrieb:
@floklo4 Was willst Du eigentlich erreichen, nur auf den Server selbst zugreifen oder auch dessen Internet nutzen?

Ich möchte meinen privaten Anschluss (FritzBox am Kabelanschluss) über WireGuard mit dem Server verbinden und darüber Internet beziehen. Über den Server also ins Internet. Rein zu Testzwecken erst einmal! Ich möchte aber direkt Dual Stack nutzen und nicht nur v4 only.
 
floklo4 schrieb:
Über den Server also ins Internet.
Ich meine, WinServer macht kein NAT für IPv6. Auch bei deinem Tool sehe ich nix von IPv6, würde/musst daher darauf verzichten. IPv6 kann für die Verbindung genutzt werden, im Tunnel solltest du aber weiter nur auf IPv4 setzen.

Ich hab ebenfalls einen WinServer, nutze aber nur den offiziellen WG-Client für Windows. Und ja, der macht gerne mal Probleme. 💩
 
Laut Beschreibung von dem Tool kann ich v6 als Endpoint eintragen, auch im Tunnel sollte das klappen, hab im Jahr 2022 ein Issue auf GitHub dazu, wo was nicht funktioniert hat…

NAT für v6 geht nicht, das hab ich schon mitbekommen, aber was ist bei Internet Sharing? Scheinbar muss ich mich näher damit beschäftigen, hab zum Glück bald Urlaub.
 
@floklo4 Mir wurde gesagt, und das glaube ich zu 100%, dass Windows ein denkbar schlechter "Router" ist. ICS wird ja selbst von dem Tool eher nicht empfohlen, würde mir das nicht ans Bein binden wollen.
Es spricht aber auch nix gegen IPv4 im Tunnel, warum willst Du da unbedingt IPv6? Ist einfach unnötig.
Ergänzung ()

@floklo4 Vielleicht kannst Du aber auch den /64 von Hetzner aufteilen und ins VPN geben, da müssen dann aber Profis ran wie @riversource etc. 😉
 
Zuletzt bearbeitet:
Ich würde gerne, wenn die VPN Verbindung steht, auf Seiten wie ipv64.net usw. IPv4 und IPv6 haben. Derzeit wird auf dem iPhone halt nur die öffentliche v4 Adresse vom Server angezeigt.

Wenn das halt so nicht realisierbar ist, dass ist das so…
 
Ich denke, das müssen wir trennen. Das eine Problem ist der Verbindungsaufbau über IPv6, das andere IPv6 im Tunnel.

IPv6 für den Verbindungsaufbau kann man ja testen, indem man nur die IPv6 Adresse einträgt. Komfortabel wäre es immer noch per Hostname.

Bezgl. IPv6 im Tunnel: Hast du nur ein /64 Netz für den Server? Weil die inkludierten IPv6 Netze sind nicht geroutet, sondern geswitcht. Heißt: wenn du das Netz auch intern fürs VPN nutzen willst, musst du auch noch einen NDP Proxy aufbauen. Bei einem zusätzlichen gerouteten Netz brauchst du das nicht.

Aber zunächst muss die Konfiguration in ein Format, dass sie überhaupt akzeptiert wird. Da steht immer noch die Antwort aus, warum es zwei unterscheidliche Konfigs gibt für Server und Client.
 
Zurück
Oben