Tecnología

El nuevo WireGuardNT rompe el techo de Windows

Agrandar / Olvídese de los teléfonos móviles flexibles: estamos deseando que los softwares de teléfonos móviles funcionen.

Proyectos de WireGuard VPN Anunciado un hito importante para sus usuarios de Windows en la actualidad: un nuevo protocolo VPN llamado WireGuardNT implementado en modo kernel. La nueva implementación permite un rendimiento significativamente mejor para conexiones LAN de 10 Gbps, y también para muchas conexiones Wi-Fi.

WireGuard (Windows) y Wintun

La implementación original de WireGuard en Windows utiliza la implementación del modo de usuario Wireguard-Goa-WireGuard en el lenguaje de programación Google Go. Luego, Wireguard-go se vincula a un dispositivo de red virtual, la mayoría del cual también reside en modo de usuario. A Donenfeld no le gustó grifos y ventanas, La interfaz web virtual proporcionada por el proyecto OpenVPN, por lo que implementó su propio llamado Wintun.

Wintun es una clara mejora con respecto a las ventanas táctiles: el proyecto OpenVPN en sí ha introducido el soporte de Wintun y es impresionante resultados (414 Mbps en Windows frente a 737 Mbps en Wintun). Pero si bien el uso de Wintun es una mejora con respecto a las ventanas táctiles, no cambia la necesidad de cambios de contexto continuos sobre el modo kernel (donde reside la pila de red “real”) y el modo de usuario (donde funcionan OpenVPN y wireguard).

Para deshacerse de los cuellos de botella de rendimiento restantes, es necesario llevar toda la pila (adaptador virtual, cifrado y todo) al núcleo. En Linux, esto significa Módulo de núcleo cargable dinámicamente (DLKM). En Windows, significa que hay un controlador de dispositivo interno válido en el kernel.

READ  Google quiere mejorar el reconocimiento de palabras de Android de una manera que también proteja su privacidad

WireGuardNT y kernel NT

Rechazar partes del espacio de usuario de la pila WireGuard en Windows y mantener todo en el núcleo significa hacer que WireGuard funcione en Windows como ya funciona en Linux. De hecho, WireGuardNT comenzó como un puerto directo para la implementación WireGuard del kernel de Linux.

Según Jason Donenfeld, creador de WireGuard, cuando el puerto original tuvo éxito, “la base de datos de código NT rápidamente divergió para adaptarse bien a los NTismos nativos y NDIS API. El resultado es una implementación WireGuard profundamente integrada y altamente eficiente para el kernel NT que aprovecha la gama completa de características del kernel NT y NDIS. “

Por supuesto, esto también significa que nos deshacemos del terrible cambio de contexto. El resultado final es sólido: más de tres veces el rendimiento medido de primera clase Etr con un par de Equinix Metal (anteriormente packet.net) c3.pequeño casos.

Sin embargo, los beneficios de una menor conmutación de contexto se extienden más allá de los servidores Xeon con interfaces de 10 Gbps: Donenfeld mencionó que algunos de los primeros evaluadores informaron que WireGuardNT a veces resolvió los impactos masivos de rendimiento que se ven cuando se usa una conexión VPN a través de una conexión Wi-Fi.

Probamos la diferencia directamente usando un HP EliteBook y una tarjeta Intel AX201 Wi-Fi 6 conectada a un nodo de enrutador en el kit de prueba para Plume Wi-Fi 6 Superpods. Si bien nuestros resultados no fueron tan dramáticos como los de algunos de los primeros evaluadores, confirman una mejora significativa en el rendimiento. Con el mismo dispositivo y configuraciones, medimos WireGuardNT iperf3 para que funcione entre un 10 y un 25 por ciento más rápido que Wireguard-go y Wintun.

Estamos probando WireGuardNT hoy

WireGuardNT está disponible para pruebas en Windows general cargar Para WireGuard ahora, comenzando con la versión 0.4. Pero dado que todavía está clasificado como experimental, deberá agregar manualmente la clave de registro y DWORD para poder usarlo. Abierto regedit como administrador y luego vaya a HKLM-> Software. Luego cree una clave llamada WireGuard y dentro de ella un DWORD llamado ExperimentalKernelDriver.

Cuando ExperimentalKernelDriver se establece en 1, los túneles usan el nuevo código WireGuardNT; sin él (o cuando es 0) usan el comportamiento predeterminado, que es el antiguo código wireguard-go / wintun. Para que el cambio surta efecto, debe hacer clic con el botón derecho en el icono de WireGuard en el área de notificación y hacer clic en Salir. Cuando vuelve a abrir WireGuard, sigue la configuración de ExperimentalKernelDriver.

En el futuro, WireGuardNT estará habilitado de forma predeterminada y deberá establecer una marca de registro si desea el código anterior. Además de esto, el proyecto eventualmente calculará wireguard-go / wintun completamente en el binario general. Sin embargo, los proyectos en sí sobrevivirán porque tienen una amplia gama de usos fuera del cliente WireGuard.

Patricio Arocha

Especialista web. Evangelista de viajes. Alborotador. Fanático de la música amigable con los hipster. Experto en comida

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar
Cerrar