引入了一个可以显着加速 OpenVPN 的内核模块

OpenVPN虚拟专用网络包的开发人员引入了ovpn-dco内核模块,可以显着提高VPN性能。 尽管该模块仍在开发中,仅着眼于 linux-next 分支并处于实验状态,但它已经达到了一定程度的稳定性,可以用来确保 OpenVPN 云服务的运行。

与基于 tun 接口的配置相比,在客户端和服务器端使用采用 AES-256-GCM 密码的模块,可以实现吞吐量增加 8 倍(从 370 Mbit/s 到 2950 Mbit) /秒)。 仅在客户端使用该模块时,传出流量的吞吐量增加了三倍,而传入流量的吞吐量没有变化。 仅在服务器端使用该模块时,传入流量的吞吐量增加了 4 倍,传出流量的吞吐量增加了 35%。

引入了一个可以显着加速 OpenVPN 的内核模块

通过将所有加密操作、数据包处理和通信通道管理移至 Linux 内核端来实现加速,从而消除了与上下文切换相关的开销,使得可以通过直接访问内部内核 API 来优化工作,并消除内核之间的缓慢数据传输和用户空间(加密、解密和路由由模块执行,而不将流量发送到用户空间中的处理程序)。

值得注意的是,对VPN性能的负面影响主要是由资源密集型加密操作和上下文切换引起的延迟造成的。 Intel AES-NI 等处理器扩展用于加速加密速度,但上下文切换仍然是一个瓶颈,直到 ovpn-dco 出现。 除了使用处理器提供的指令来加速加密之外,ovpn-dco 模块还确保加密操作被划分为单独的段并以多线程模式处理,从而允许使用所有可用的 CPU 内核。

目前的实施限制将在未来解决,包括仅支持 AEAD 和“无”模式,以及 AES-GCM 和 CHACHA20POLY1305 密码。 计划在今年第四季度发布的 OpenVPN 2.6 中包含 DCO 支持。 该模块目前在 Beta 测试版 OpenVPN4 Linux 客户端和 Linux 版 OpenVPN 服务器的实验版本中受支持。 类似的模块 ovpn-dco-win 也正在为 Windows 内核开发。

来源: opennet.ru

添加评论