Vývojári balíka pre vytváranie virtuálnych privátnych sietí OpenVPN predstavili modul jadra ovpn-dco, ktorý umožňuje výrazne zvýšiť výkon VPN. Napriek tomu, že modul sa zatiaľ vyvíja s ohľadom iba na vetvu linux-next a má status experimentálneho, už dosiahol úroveň stability, ktorá umožnila jeho nasadenie na zabezpečenie služby OpenVPN Cloud.
V porovnaní s konfiguráciou založenou na rozhraní tun použitie modulu na strane klienta a servera pri použití šifry AES-256-GCM umožnilo dosiahnuť nárast priepustnosti až 8-krát (zo 370 Mbit/s na 2950 Mbit/s). Pri použití modulu iba na strane klienta sa priepustnosť zvýšila trikrát pre odchádzajúcu prevádzku a nezmenila sa pre prichádzajúcu. Pri použití modulu iba na strane servera priepustnosť vzrástla 4-krát pre prichádzajúcu prevádzku a o 35 % pre odchádzajúcu.

Zrýchlenie sa dosahuje presunutím všetkých operácií šifrovania, spracovania paketov a riadenia komunikačného kanála na stranu jadra Linux, čo umožňuje zbaviť sa režijných nákladov súvisiacich s prepínaním kontextov, dáva možnosť optimalizovať prácu priamym prístupom k interným API jadra a vylučuje pomalý prenos údajov medzi jadrom a používateľským priestorom (šifrovanie, dešifrovanie a smerovanie vykonáva modul bez odosielania prevádzky do spracovateľa v používateľskom priestore).
Upozorňuje sa, že negatívny vplyv na výkon VPN majú predovšetkým náročné operácie šifrovania a oneskorenia spôsobené prepínaním kontextov. Na zrýchlenie šifrovania sa využívali procesorové rozšírenia ako Intel AES-NI, avšak prepínania kontextov pred vznikom ovpn-dco zostávali úzkym miestom. Okrem použitia procesorom poskytovaných inštrukcií na zrýchlenie šifrovania modul ovpn-dco navyše zabezpečuje rozdelenie operácií šifrovania na samostatné segmenty a ich spracovanie v multithreadingovom režime, čo umožňuje využiť všetky dostupné jadrá CPU.
Z aktuálnych obmedzení implementácie, ktoré budú v budúcnosti odstránené, sa vyzdvihuje podpora len režimov AEAD a 'none' (bez autentifikácie) a šifrov AES-GCM a CHACHA20POLY1305. Podporu DCO plánujú zahrnúť do vydania OpenVPN 2.6, ktoré je naplánované na 4. kvartál tohto roku. V súčasnosti je modul podporovaný v prebiehajúcej beta testovacej verzii Linux klienta OpenVPN3 a v experimentálnych zostavách servera OpenVPN pre Linux. Podobný modul ovpn-dco-win sa tiež vyvíja pre Windows jadro.
Zdroj: opennet.ru
