Se ha introducido un módulo del kernel que puede acelerar significativamente OpenVPN

Los desarrolladores del paquete de redes privadas virtuales OpenVPN han introducido el módulo del kernel ovpn-dco, que puede acelerar significativamente el rendimiento de la VPN. A pesar de que el módulo todavía se está desarrollando con miras únicamente a la rama Linux-next y tiene un estado experimental, ya ha alcanzado un nivel de estabilidad que permite utilizarlo para garantizar el funcionamiento del servicio OpenVPN Cloud.

En comparación con la configuración basada en la interfaz tun, el uso de un módulo en el lado del cliente y del servidor que utiliza el cifrado AES-256-GCM permitió lograr un aumento de 8 veces en el rendimiento (de 370 Mbit/s a 2950 Mbit /s). Cuando se usa el módulo solo en el lado del cliente, el rendimiento se triplicó para el tráfico saliente y no cambió para el tráfico entrante. Cuando se usa el módulo solo en el lado del servidor, el rendimiento aumentó 4 veces para el tráfico entrante y un 35% para el tráfico saliente.

Se ha introducido un módulo del kernel que puede acelerar significativamente OpenVPN

La aceleración se logra moviendo todas las operaciones de cifrado, procesamiento de paquetes y administración de canales de comunicación al lado del kernel de Linux, lo que elimina la sobrecarga asociada con el cambio de contexto, permite optimizar el trabajo accediendo directamente a las API internas del kernel y elimina la transferencia lenta de datos entre el kernel. y espacio de usuario (el módulo realiza el cifrado, descifrado y enrutamiento sin enviar tráfico a un controlador en el espacio de usuario).

Cabe señalar que el impacto negativo en el rendimiento de la VPN se debe principalmente a las operaciones de cifrado que consumen muchos recursos y a los retrasos causados ​​por el cambio de contexto. Se utilizaron extensiones de procesador como Intel AES-NI para acelerar el cifrado, pero los cambios de contexto siguieron siendo un cuello de botella hasta la llegada de ovpn-dco. Además de utilizar las instrucciones proporcionadas por el procesador para acelerar el cifrado, el módulo ovpn-dco garantiza adicionalmente que las operaciones de cifrado se divida en segmentos separados y se procesen en modo multiproceso, lo que permite el uso de todos los núcleos de CPU disponibles.

Las limitaciones de implementación actuales que se abordarán en el futuro incluyen soporte para modos AEAD y "ninguno" únicamente, y cifrados AES-GCM y CHACHA20POLY1305. Está previsto incluir el soporte DCO en el lanzamiento de OpenVPN 2.6, previsto para el cuarto trimestre de este año. Actualmente, el módulo es compatible con el cliente Linux OpenVPN4 de prueba beta y con las versiones experimentales del servidor OpenVPN para Linux. También se está desarrollando un módulo similar, ovpn-dco-win, para el kernel de Windows.

Fuente: opennet.ru

Añadir un comentario