Представлен модуль ядра, способный в разы ускорить OpenVPN

21 сентября 2021 года

Разработчики пакета для создания виртуальных частных сетей OpenVPN представили модуль ядра ovpn-dco, позволяющий существенно ускорить производительность VPN. Несмотря на то, что модуль пока развивается с оглядкой только на ветку linux-next и имеет статус экспериментального, он уже достиг уровня стабильности, позволившего задействовать его для обеспечения работы сервиса OpenVPN Cloud.

По сравнению с конфигурацией на основе интерфейса tun применение модуля на стороне клиента и сервера при использовании шифра AES-256-GCM позволило добиться прироста пропускной способности в 8 раз (с 370 Mbit/s до 2950 Mbit/s). При применении модуля только на стороне клиента пропускная способность возросла в три раза для исходящего трафика и не изменилась для входящего. При применении модуля только на стороне сервера пропускная способность возросла в 4 раза для входящего трафика и на 35% для исходящего.

Ускорение достигается за счёт выноса всех операций шифрования, обработки пакетов и управления каналом связи на сторону ядра Linux, что позволяет избавиться от накладных расходов, связанных с переключением контекста, даёт возможность оптимизировать работу за счёт прямого обращения к внутренним API ядра и исключает медленную передачу данных между ядром и пространством пользователя (шифрование, расшифровка и маршрутизация выполняется модулем без отправки трафика в обработчик в пространстве пользователя).

Отмечается, что негативное влияние на производительность VPN оказывают главным образом ресурсоёмкие операции шифрования и задержки, вызванные переключением контекста. Для ускорения шифрования привлекались процессорные расширения, такие как Intel AES-NI, но переключения контекста до появления ovpn-dco оставались узким местом. Помимо применения предоставляемых процессором инструкций для ускорения шифрования в модуле ovpn-dco дополнительно обеспечено разделение операций шифрования на отдельные сегменты и их обработка в многопоточном режиме, что позволяет задействовать все имеющиеся ядра CPU.

Из текущих ограничений реализации, которые в будущем будут устранены, выделяется поддержка только режимов AEAD и 'none' (без аутентификации) и шифров AES-GCM и CHACHA20POLY1305. Поддержку DCO планируют включить в состав выпуска OpenVPN 2.6, запланированного на 4 квартал нынешнего года. В настоящее время модуль поддерживается в проходящем бета-тестирование Linux-клиенте OpenVPN3 и в экспериментальных сборках сервера OpenVPN для Linux.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Представлен модуль ядра, способный в разы ускорить OpenVPN», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.