WireGuard VPN-project aankondigen Een belangrijke mijlpaal voor Windows-gebruikers vandaag – een geheel nieuwe kernelmodus-implementatie van het VPN-protocol genaamd WireGuardNT. De nieuwe app zorgt voor een aanzienlijke doorvoerverbetering op 10 Gbps LAN-verbindingen – en ook op veel wifi-verbindingen.
WireGuard (op Windows) en Wintun
De native WireGuard-implementatie op Windows maakt gebruik van Wireguard-go – een gebruikersruimte-implementatie van WireGuard, geschreven in de programmeertaal Google Go. Wireguard-go wordt vervolgens gekoppeld aan een virtuele netwerkmachine, waarvan de meeste ook in de ruimte van de gebruikers wonen. Donenfeld vond het niet leuk kraan ramen, de virtuele netwerkinterface die wordt geboden door het OpenVPN-project – dus implementeerde het zijn variant helemaal opnieuw, genaamd Winton.
Wintun is een duidelijke verbetering ten opzichte van tap-vensters – hetzelfde OpenVPN-project implementeerde Wintun-ondersteuning, indrukwekkend Resultaten (414Mbps via Windows Tap vs 737Mbps via Wintun). Maar hoewel het gebruik van Wintun een verbetering is ten opzichte van clickwindows, verandert het niets aan de noodzaak van een statische contextwisseling van kernelruimte (waar de “echte” netwerkstack leeft) en gebruikersruimte (waar zowel OpenVPN als wireguard-go draaien).
Om de resterende prestatieknelpunten te elimineren, moet de hele stapel – de virtuele switch, de encoder, alles – in de kernel worden getrokken. Op Linux betekent dit DLKM (Dynamic Loadable Kernel Module). In Windows betekent dit dat een apparaatstuurprogramma in de kernel geschikt is.
WireGuardNT en NT-kernel
Het verlaten van de gebruikersruimtecomponenten van de WireGuard-stack op Windows en het behouden van alles in de kernel betekent dat WireGuard moet worden gewijzigd om op Windows te werken zoals het al werkt op Linux. In feite begon WireGuardNT als een directe poort van de Linux in-kernel WireGuard-applicatie.
Volgens de maker van WireGuard, Jason Dunnfield, “dwaalde de NT-database snel af om mooi aan te sluiten bij NTisms en origineel NTism”, toen de eerste port eenmaal succesvol was. NDIS Interfaces voor applicatieprogrammering. Het eindresultaat is een sterk geïntegreerde, krachtige implementatie van WireGuard voor de NT-kernel, die profiteert van het volledige scala aan NT-kernel en NDIS-mogelijkheden.”
Dit betekent natuurlijk ook het wegwerken van veel contextwisselingen. De eindresultaten zijn solide: meer dan drie keer de uitstekende prestaties, gemeten met behulp van Ether Op een paar Equinix Metal (voorheen packet.net) c3. klein gevallen.
De voordelen van contextloos schakelen reiken echter veel verder dan Xeon-servers met 10 Gbps-interfaces – Donenfeld zei dat sommige vroege testers meldden dat WireGuardNT soms de enorme prestatieresultaten oploste die werden waargenomen bij het gebruik van hun VPN-verbinding via wifi.
We hebben het verschil live getest met een HP EliteBook met een Intel AX201 Wi-Fi 6-kaart, verbonden met het routerknooppunt van onze Plume Wi-Fi 6 Superpods-testsuite. Hoewel onze resultaten niet zo opwindend waren als die van sommige van onze vroege testers, bevestigen ze een significante prestatieverbetering. Op dezelfde machine en met dezelfde configuraties hebben we WireGuardNT iperf3 gemeten, dat 10 tot 25 procent sneller is dan Wireguard-go en Wintun.
WireGuardNT-test vandaag
WireGuardNT is beschikbaar voor testen in openbare Windows downloaden Voor WireGuard nu, vanaf versie 0.4. Maar aangezien het nog steeds als experimenteel is geclassificeerd, moet u handmatig een registersleutel en DWORD toevoegen om het te gebruiken. Open regedit
Blader als beheerder naar HKLM -> Programma’s. Maak vervolgens een sleutel met de naam WireGuard en binnen die sleutel een DWORD met de naam ExperimentalKernelDriver.
Met ExperimentalKernelDriver ingesteld op 1, gebruiken uw tunnels de nieuwe WireGuardNT-code – zonder deze (of met ExperimentalKernelDriver ingesteld op 0), gebruiken ze het standaardgedrag, namelijk de oude wireguard-go/wintun-code. Om uw wijziging door te voeren, moet u met de rechtermuisknop op het WireGuard-pictogram in het systeemvak klikken en op Voltooien klikken. Wanneer u de WireGuard-app opnieuw opent, zal deze uw ExperimentalKernelDriver-instelling respecteren.
In de toekomst zal WireGuardNT standaard worden ingeschakeld en in plaats daarvan moet u een registervlag instellen als u de oude code wilt. Verder is het project van plan om uiteindelijk Wireguard-go / wintun in het generieke duo helemaal te beëindigen. Aan de andere kant zullen de projecten zelf blijven bestaan, omdat ze een breed nut hebben buiten de WireGuard-client.
‘Reader. Furious humble travel enthusiast. Extreme food scientist. Writer. Communicator.’