Az OpenVPN virtuális magánhálózatok létrehozására szolgáló csomag fejlesztői bemutatták az ovpn-dco kernelmodult, amely jelentősen felgyorsítja a VPN teljesítményét. Annak ellenére, hogy a modul még csak a linux-next ágra figyelemmel fejlődik, és kísérleti státuszban van, már elérte azt a stabilitási szintet, amely lehetővé tette az OpenVPN Cloud szolgáltatás működésének biztosítását.
A tun interfészen alapuló konfigurációval összehasonlítva a modul alkalmazása az ügyfél és a szerver oldalán AES-256-GCM titkosítás használatával 8-szoros sávszélességnövekedést eredményezett (370 Mbit/s-ről 2950 Mbit/s-re). Ha csak az ügyfél oldalán alkalmazták a modult, akkor a sávszélesség háromszorosára nőtt a kimenő forgalom esetén, míg a bejövő forgalom esetén nem változott. a szerver A sávszélesség a bejövő forgalom esetében 4-szeresére, míg a kimenő forgalom esetében 35%-kal nőtt.

A gyorsulást az biztosítja, hogy minden titkosítási, csomagkezelési és kommunikációs csatorna-irányítási művelet a Linux kernel oldalára kerül, megszüntetve ezzel a kontextusváltásból adódó költségeket, lehetővé téve a munka optimalizálását a kernel belső API-jának közvetlen hívásával, és kizárva az adatok lassú átvitelét a kernel és a felhasználói tér között (a titkosítást, visszafejtést és routerezést a modul végzi anélkül, hogy a forgalmat a felhasználói tér kezelőjéhez küldené).
Megjegyzik, hogy a teljesítményre negatív hatást gyakorolnak VPN főként a nagy erőforrásigényű titkosítási műveletek és a kontextusváltásból adódó késleltetések. A titkosítás felgyorsítása érdekében processzor-specifikus kiterjesztéseket, mint például az Intel AES-NI-t használták, de a kontextusváltás az ovpn-dco megjelenéséig szűk keresztmetszetet jelentett. Az ovpn-dco modulban a processzor által biztosított utasítások felhasználása mellett a titkosítási műveletek külön szegmensekre történő felosztása és több szálon való feldolgozása is biztosítva van, lehetővé téve az összes rendelkezésre álló CPU mag kihasználását.
A jelenlegi megvalósítási korlátok közül, amelyek a jövőben orvoslásra kerülnek, kiemelendő a csak az AEAD és a ‘none’ (hitelesítés nélküli) módok, valamint az AES-GCM és a CHACHA20POLY1305 algoritmusok támogatása. A DCO támogatását az OpenVPN 2.6-os kiadásába tervezik beépíteni, amely az idei év 4. negyedévére van ütemezve. Jelenleg a modul a folyamatban lévő bétatesztelés alatt áll az OpenVPN3 Linux kliensében és az OpenVPN Linux szerverének kísérleti összeállításaiban. Hasonló ovpn-dco-win modult is fejlesztenek a Windows kernelhez.
Forrás: opennet.ru
