Neues WireGuardNT durchbricht Durchsatzobergrenzen unter Windows

Neues WireGuardNT durchbricht Durchsatzobergrenzen unter Windows

Vergrößern / Vergessen Sie faltbare Handys, wir warten auf Handy-Stofftiere, die funktionieren.

Das WireGuard VPN-Projekt Bekanntmachung heute ein wichtiger Meilenstein für seine Windows-Benutzer: eine brandneue Kernel-Modus-Implementierung des VPN-Protokolls namens WireGuardNT. Die neue Implementierung ermöglicht einen deutlich verbesserten Durchsatz über 10 Gbit/s LAN-Verbindungen sowie viele WLAN-Verbindungen.

WireGuard (unter Windows) und Wintun

Die ursprüngliche Implementierung von WireGuard unter Windows verwendet wireguard-go, eine User-Space-Implementierung von WireGuard, die in Googles Programmiersprache Go geschrieben wurde. Wireguard-go wird dann an ein virtuelles Netzwerkgerät gebunden, von dem sich der Großteil ebenfalls im Benutzerbereich befindet. Donenfeld hat nicht gefallen Wasserhahn Fenster, die vom OpenVPN-Projekt bereitgestellte virtuelle Netzwerkschnittstelle. Also implementierte er seinen eigenen Ersatz von Grund auf neu, genannt Wintun.

Wintun ist eine große Verbesserung gegenüber Tap-Windows: Das OpenVPN-Projekt selbst implementierte Unterstützung für Wintun mit beeindruckender Leistung. Ergebnisse (414 Mbit/s bei Tap-Windows vs 737 Mbit/s bei Wintun). Die Verwendung von Wintun ist zwar eine Verbesserung gegenüber Anmeldefenstern, ändert jedoch nichts an der Notwendigkeit eines ständigen Kontextwechsels zwischen Kernel-Space (wo sich der “echte” Netzwerk-Stack befindet) und User-Space (wo OpenVPN und Wireguard beide live sind).

Um die verbleibenden Leistungsengpässe zu beseitigen, muss der gesamte Stack (virtueller Adapter, Krypto und alles dazwischen) in den Kernel eingebaut werden. Unter Linux bedeutet dies, ein DLKM (dynamisch ladendes Kernelmodul) zu sein. Unter Windows bedeutet dies, dass es sich um einen guten Gerätetreiber handelt, der in den Kernel integriert ist.

WireGuardNT und der NT-Kernel

Wenn Sie die User-Space-Komponenten des WireGuard-Stacks unter Windows aufgeben und alles im Kernel behalten, müssen Sie WireGuard so ändern, dass es unter Windows genauso läuft, wie es bereits unter Linux läuft. Tatsächlich begann WireGuardNT als direkter Port der WireGuard-Implementierung im Linux-Kernel.

READ  Systemanforderungen: Assassin's Creed Valhalla bietet detaillierte Informationen

Laut WireGuard-Erfinder Jason Donenfeld divergierte die NT-Codebasis nach der erfolgreichen Erstportierung schnell, um native NTismen zu berücksichtigen und NDIS Apis. Das Endergebnis ist eine tief integrierte Hochleistungsimplementierung von WireGuard für den NT-Kernel, die den vollen Umfang der NT-Kernel- und NDIS-Fähigkeiten nutzt. “

Es bedeutet natürlich auch, viele Kontextwechsel loszuwerden. Das Endergebnis ist solide: mehr als das Dreifache der Premium-Leistung, gemessen an Ethr auf einem Paar Equinix Metal (ehemals packet.net) c3.klein Instanzen.

Die Vorteile von weniger Kontextwechsel gehen jedoch weiter als bei Xeon-Servern mit 10 Gbit/s-Schnittstellen. Donenfeld erwähnte, dass einige der frühen Tester berichteten, dass WireGuardNT die manchmal enormen Leistungsprobleme behoben hat, die bei der Verwendung ihrer VPN-Verbindung über Wi-Fi auftreten.

Wir haben den Unterschied direkt mit einem HP EliteBook mit einem Intel AX201 Wi-Fi 6 Board getestet, das mit dem Routerknoten eines Plume Wi-Fi 6 Superpods Testkits verbunden war.Obwohl unsere Ergebnisse nicht so spektakulär waren wie die einiger der frühen Testern bestätigen sie eine deutliche Leistungssteigerung. Auf dem gleichen Gerät und mit den gleichen Konfigurationen haben wir gemessen, dass WireGuardNT iperf3 10 bis 25 % schneller läuft als Wireguard-go und Wintun.

WireGuardNT-Test heute

WireGuardNT steht zum Testen in General Windows zur Verfügung Herunterladen für WireGuard jetzt ab Version 0.4. Da es jedoch immer noch als experimentell eingestuft wird, müssen Sie manuell einen Registrierungsschlüssel und ein DWORD hinzufügen, um es verwenden zu können. Aufmachen regedit als Administrator, dann navigieren Sie zu HKLM -> Software. Als nächstes erstellen Sie einen Schlüssel namens WireGuard und in diesem Schlüssel ein DWORD namens ExperimentalKernelDriver.

Wenn ExperimentalKernelDriver auf 1 gesetzt ist, verwenden Ihre Tunnel den neuen WireGuardNT-Code – ohne ihn (oder wenn er auf 0 gesetzt ist), verwenden sie das Standardverhalten, den alten Wireguard-go / wintun-Code. Damit Ihre Änderung wirksam wird, müssen Sie mit der rechten Maustaste auf das WireGuard-Symbol in der Taskleiste klicken und auf „Beenden“ klicken. Wenn Sie die WireGuard-App erneut öffnen, wird Ihre ExperimentalKernelDriver-Einstellung berücksichtigt.

In Zukunft wird WireGuardNT standardmäßig aktiviert und Sie müssen stattdessen ein Registrierungsflag setzen, wenn Sie den alten Code verwenden möchten. Darüber hinaus plant das Projekt, wireguard-go / wintun vollständig aus der allgemeinen Binärdatei zu entfernen. Die Projekte selbst bleiben hingegen bestehen, da sie über den ursprünglichen WireGuard-Client hinaus einen breiten Nutzen haben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.