Projet VPN WireGuard annoncer Une étape majeure pour les utilisateurs de Windows aujourd’hui – une toute nouvelle implémentation en mode noyau du protocole VPN appelé WireGuardNT. La nouvelle application permet une amélioration significative du débit sur les connexions LAN 10 Gbit/s – et sur de nombreuses connexions WI-Fi également.
WireGuard (sous Windows) et Wintun
L’implémentation native de WireGuard sur Windows utilise Wireguard-go – une implémentation de WireGuard dans l’espace utilisateur écrite dans le langage de programmation Google Go. Wireguard-go est ensuite attaché à une machine réseau virtuelle, dont la plupart vivent également dans l’espace des utilisateurs. Donenfeld n’a pas aimé fenêtres de robinet, l’interface réseau virtuelle fournie par le projet OpenVPN – il a donc implémenté sa variante à partir de zéro, appelée Winton.
Wintun est une nette amélioration par rapport aux tap-windows – le même projet OpenVPN a implémenté la prise en charge de Wintun, de manière impressionnante Résultats (414 Mbps sur Windows Tap vs 737 Mbps sur Wintun). Mais bien que l’utilisation de Wintun soit une amélioration par rapport à clickwindows, cela ne change pas le besoin d’un changement de contexte statique entre l’espace noyau (où réside la « vraie » pile réseau) et l’espace utilisateur (où s’exécutent à la fois OpenVPN et wireguard-go).
Afin d’éliminer les goulots d’étranglement de performances restants, l’ensemble de la pile (le commutateur virtuel, l’encodeur, tout) doit être intégré au noyau. Sous Linux, cela signifie DLKM (Dynamic Loadable Kernel Module). Sous Windows, cela signifie qu’un pilote de périphérique intégré au noyau est approprié.
Noyau WireGuardNT et NT
Abandonner les composants de l’espace utilisateur de la pile WireGuard sur Windows et conserver tout dans le noyau signifie changer WireGuard pour qu’il fonctionne sous Windows comme il fonctionne déjà sous Linux. En fait, WireGuardNT a commencé comme un port direct de l’application WireGuard Linux intégrée au noyau.
Selon le créateur de WireGuard Jason Dunnfield, une fois le port initial réussi, « la base de données NT a rapidement divergé pour s’adapter parfaitement aux NTismes et au NTisme d’origine ». NDIS Interfaces de programmation d’applications. Le résultat final est une implémentation hautement intégrée et hautes performances de WireGuard pour le noyau NT, qui tire parti de la gamme complète du noyau NT et des capacités NDIS.
Cela signifie aussi, bien sûr, se débarrasser de beaucoup de changements de contexte. Les résultats finaux sont solides : plus de trois fois les performances exceptionnelles, mesurées à l’aide de Éther Sur une paire d’Equinix Metal (anciennement packet.net) c3. petit cas.
Cependant, les avantages de la commutation sans contexte s’étendent bien au-delà des serveurs Xeon avec des interfaces 10 Gbit/s — Donenfeld a mentionné que certains des premiers testeurs ont signalé que WireGuardNT résolvait parfois les résultats de performances énormes observés lors de l’utilisation de leur connexion VPN via Wi-Fi.
Nous avons testé la différence en direct, en utilisant un HP EliteBook avec une carte Intel AX201 Wi-Fi 6, connecté au nœud de routeur de notre suite de tests Plume Wi-Fi 6 Superpods. Bien que nos résultats ne soient pas aussi excitants que ceux obtenus par certains de nos premiers testeurs, ils confirment une augmentation significative des performances. Sur la même machine et avec les mêmes configurations, nous avons mesuré WireGuardNT iperf3 qui s’exécute de 10 à 25 % plus rapidement que Wireguard-go et Wintun.
Testez WireGuardNT aujourd’hui
WireGuardNT est disponible pour les tests dans Windows public Télécharger Pour WireGuard maintenant, à partir de la version 0.4. Mais comme il est toujours classé comme expérimental, vous devrez ajouter manuellement une clé de registre et DWORD pour l’utiliser. Ouvert regedit
En tant qu’administrateur, accédez à HKLM -> Programmes. Ensuite, créez une clé nommée WireGuard, et à l’intérieur de cette clé, un DWORD nommé ExperimentalKernelDriver.
Avec ExperimentalKernelDriver défini sur 1, vos tunnels utiliseront le nouveau code WireGuardNT – sans lui (ou avec ExperimentalKernelDriver défini sur 0), ils utiliseront le comportement par défaut, qui est l’ancien code wireguard-go/wintun. Pour que votre modification prenne effet, vous devrez cliquer avec le bouton droit sur l’icône WireGuard dans la barre d’état système et cliquer sur Terminer. Lorsque vous ouvrez à nouveau l’application WireGuard, elle respectera votre paramètre ExperimentalKernelDriver.
À l’avenir, WireGuardNT sera activé par défaut, et à la place, vous devrez définir un indicateur de registre si vous voulez le code hérité. Au-delà de cela, le projet prévoit finalement de mettre fin à Wireguard-go/wintun dans le duo générique. D’un autre côté, les projets eux-mêmes resteront, car ils ont une large utilité au-delà du client WireGuard.
More Stories
Apple annonce l’expansion de Vision Pro dans deux pays supplémentaires
Nintendo lance une application musicale avec des thèmes de Mario et Zelda et, plus important encore, une chaîne Wii Shop
C’est le journal que personne n’a lu avant d’annoncer la disparition de la cryptographie moderne.