De ontwikkelaars van het OpenVPN-pakket voor het creƫren van virtuele particuliere netwerken hebben de ovpn-dco kernelmodule gepresenteerd, waarmee de VPN-prestaties aanzienlijk kunnen worden versneld. Hoewel de module momenteel wordt ontwikkeld met de focus op de linux-next tak en de status van experimenteel heeft, heeft het al een stabiliteitsniveau bereikt dat het mogelijk maakt om deze in te zetten voor het OpenVPN Cloud-dienst.
In vergelijking met een configuratie op basis van de tun-interface heeft het gebruik van de module aan zowel de client- als de serverzijde met de AES-256-GCM-codering geleid tot een toename van de doorvoersnelheid met 8 keer (van 370 Mbit/s naar 2950 Mbit/s). Wanneer de module alleen aan de clientzijde wordt toegepast, is de doorvoersnelheid voor outgoing verkeer met het drievoudige toegenomen, terwijl deze voor incoming verkeer onveranderd is gebleven. de server De doorvoersnelheid is vier keer toegenomen voor incoming verkeer en met 35% voor outgoing verkeer.

De versnelling wordt bereikt doordat alle versleutelingsoperaties, pakketverwerking en beheer van de communicatieverbinding naar de Linux-kern worden verplaatst, wat de overheadkosten die met contextwisselingen gepaard gaan, elimineert. Dit biedt de mogelijkheid om de werking te optimaliseren door directe toegang tot de interne API van de kernel te krijgen en voorkomt vertraging van gegevensoverdracht tussen de kernel en de gebruikersruimte (versleuteling, ontsleuteling en routering worden uitgevoerd door de module zonder verkeer naar de handler in de gebruikersruimte te sturen).
Het wordt opgemerkt dat met name middelenintensievere versleutelingsoperaties en vertragingen veroorzaakt door contextwisselingen een negatieve invloed op de prestaties hebben. VPN Voor de versnelling van de versleuteling werden processorextensies zoals Intel AES-NI gebruikt, maar de contextwisselingen bleven een knelpunt tot de komst van ovpn-dco. Naast het gebruik van de door de processor aangeboden instructies om de versleuteling te versnellen, zorgt de ovpn-dco-module ook voor de splitsing van versleutelingsoperaties in afzonderlijke segmenten en hun verwerking in multi-threaded modus, wat de inzet van alle beschikbare CPU-kernen mogelijk maakt.
Door de huidige beperkingen van de implementatie, die in de toekomst zullen worden weggenomen, is alleen ondersteuning voor AEAD- en 'none' (zonder authenticatie) modi en de encrypties AES-GCM en CHACHA20POLY1305 beschikbaar. Ondersteuning voor DCO wordt verwacht in de release van OpenVPN 2.6, gepland voor het vierde kwartaal van dit jaar. Momenteel is de module ondersteund in de lopende bĆØtatest van de Linux-client OpenVPN3 en in experimentele builds van de OpenVPN-server voor Linux. Een vergelijkbare module ovpn-dco-win wordt ook ontwikkeld voor de Windows-kernel.
Bron: opennet.ru
