Представлен модуль ядра, способный в разы ускорить 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.
Источники
[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем ��е менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её об��уждении на сторонних ресурсах.