Cronica

Mundo completo de noticias

Tecnología

El nuevo WireGuardNT rompe los límites de rendimiento en Windows

Olvídese de los teléfonos móviles plegables: estamos esperando a los lujosos dispositivos para teléfonos móviles.
Ampliar / Olvídese de los teléfonos móviles plegables: estamos esperando a los lujosos dispositivos para teléfonos móviles.

El proyecto de VPN WireGuard Anunciado un hito importante para sus usuarios de Windows en la actualidad: una implementación en modo kernel completamente nueva del protocolo VPN llamado WireGuardNT. La nueva implementación permite un rendimiento enormemente mejorado en conexiones LAN de 10 Gbps, así como muchas conexiones Wi-Fi.

WireGuard (en Windows) y Wintun

La implementación original de WireGuard en Windows usa wireguard-go, una implementación de WireGuard en el espacio de usuario escrita en el lenguaje de programación Go de Google. Luego, Wireguard-go se conecta a un dispositivo de red virtual, la mayoría de los cuales también viven en el espacio del usuario. A Donenfeld no le gustó toque ventanas, la interfaz de red virtual proporcionada por el proyecto OpenVPN, por lo que implementó su propio reemplazo desde cero, llamado Wintun.

Wintun es una mejora definitiva con respecto a las ventanas táctiles: el proyecto OpenVPN en sí ha implementado el soporte de Wintun de manera impresionante resultados (414 Mbps en ventanas táctiles frente a 737 Mbps en Wintun). Pero aunque el uso de Wintun es una mejora con respecto a las ventanas táctiles, no cambia la necesidad de cambios de contexto constantes desde el espacio del kernel (donde reside la pila de red «real») y el espacio del usuario (donde OpenVPN es wireguard-go live).

Para deshacerse de los cuellos de botella de rendimiento restantes, toda la pila (adaptador virtual, cifrado y todo) debe incorporarse al kernel. En Linux, esto significa ser un DLKM (módulo de núcleo cargable dinámicamente). En Windows, esto significa ser un controlador de dispositivo interno adecuado.

WireGuardNT y el kernel de NT

Deshacerse de los componentes del espacio de usuario de la pila WireGuard en Windows y mantener todo en el kernel significa cambiar WireGuard para que funcione en Windows tal como lo hace en Linux. De hecho, WireGuardNT comenzó como un puerto directo de la implementación de WireGuard en el kernel de Linux.

Según el creador de WireGuard Jason Donenfeld, una vez que el lanzamiento inicial fue exitoso, «la base de código NT rápidamente divergió para encajar bien con los NTismos nativos y NDIS API El resultado final es una implementación WireGuard de alto rendimiento y profundamente integrada para el kernel de NT, que hace uso de la gama completa de capacidades de NDIS y kernel de NT. «

Esto también, por supuesto, significa deshacerse de muchos cambios de contexto. Los resultados finales son sólidos: más de tres veces el rendimiento superior, medido con Ethr en un par de Equinix Metal (anteriormente packet.net) c3.pequeño instancias.

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 grandes impactos de rendimiento que observaron al usar su conexión VPN Wi-Fi.

Probamos la diferencia directamente, utilizando un HP EliteBook con una tarjeta Intel AX201 Wi-Fi 6, conectada al nodo del enrutador de un kit de prueba Plume Wi-Fi 6 Superpods. Si bien nuestros resultados no son tan dramáticos como los de algunos de los primeros evaluadores, confirman un aumento significativo del rendimiento. En el mismo equipo y con la misma configuración, medimos WireGuardNT iperf3 funcionando entre un 10 y un 25 por ciento más rápido que wireguard-go y Wintun.

Probando WireGuardNT hoy

WireGuardNT está disponible para pruebas en Windows general descargar para WireGuard ahora, a partir de la versión 0.4. Pero dado que todavía está clasificado como experimental, deberá agregar manualmente una clave de registro y un DWORD para usarlo. Abrelo regedit como administrador y luego navegue hasta HKLM -> Software. A continuación, cree una clave llamada WireGuard y, dentro de esa clave, un DWORD llamado ExperimentalKernelDriver.

Con ExperimentalKernelDriver configurado en 1, sus túneles usarán el nuevo código WireGuardNT; sin él (o con él configurado en 0), usarán el comportamiento predeterminado, que es el antiguo código wireguard-go / wintun. Para que su cambio surta efecto, deberá hacer clic con el botón derecho en el icono de WireGuard en la bandeja del sistema y hacer clic en «Salir». Cuando vuelva a abrir la aplicación WireGuard, respetará su configuración de ExperimentalKernelDriver.

En el futuro, WireGuardNT estará habilitado de forma predeterminada y, en su lugar, deberá establecer una marca de registro si desea el código anterior. Además, el proyecto planea terminar por completo wireguard-go / wintun en el binario general. Los diseños en sí mismos, por otro lado, se mantendrán ya que tienen una amplia utilidad más allá del cliente de acciones de WireGuard.

DEJA UNA RESPUESTA

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

"Introvertido. Solucionador de problemas. Aficionado total a la cultura pop. Estudiante independiente. Creador".