Прадстаўлены модуль ядра, здольны ў разы паскорыць OpenVPN.

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

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

Прадстаўлены модуль ядра, здольны ў разы паскорыць OpenVPN.

Паскарэнне дасягаецца за кошт вынасу ўсіх аперацый шыфравання, апрацоўкі пакетаў і кіраванні каналам сувязі на бок ядра 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. Падобны модуль ovpn-dco-win таксама развіваецца для ядра Windows.

Крыніца: opennet.ru

Дадаць каментар