Er is een kernelmodule geïntroduceerd die OpenVPN aanzienlijk kan versnellen

De ontwikkelaars van het OpenVPN Virtual Private Networking-pakket hebben de ovpn-dco kernelmodule geïntroduceerd, die de VPN-prestaties aanzienlijk kan versnellen. Ondanks het feit dat de module nog steeds wordt ontwikkeld met alleen het oog op de linux-next branch en een experimentele status heeft, heeft deze al een niveau van stabiliteit bereikt waardoor deze kan worden gebruikt om de werking van de OpenVPN Cloud-service te garanderen.

Vergeleken met de configuratie op basis van de tun-interface maakte het gebruik van een module aan de client- en serverzijde met behulp van de AES-256-GCM-codering het mogelijk om een ​​achtvoudige toename van de doorvoersnelheid te bereiken (van 8 Mbit/s naar 370 Mbit /S). Wanneer de module alleen aan de clientzijde werd gebruikt, werd de doorvoer verdrievoudigd voor uitgaand verkeer en veranderde deze niet voor inkomend verkeer. Wanneer de module alleen aan de serverzijde werd gebruikt, nam de doorvoercapaciteit vier keer toe voor inkomend verkeer en met 2950% voor uitgaand verkeer.

Er is een kernelmodule geïntroduceerd die OpenVPN aanzienlijk kan versnellen

Versnelling wordt bereikt door alle encryptiebewerkingen, pakketverwerking en communicatiekanaalbeheer naar de Linux-kernelkant te verplaatsen, waardoor de overhead die gepaard gaat met contextwisseling wordt geëlimineerd, het mogelijk wordt gemaakt om het werk te optimaliseren door rechtstreeks toegang te krijgen tot de interne kernel-API's en een langzame gegevensoverdracht tussen de kernel te elimineren. en gebruikersruimte (codering, decodering en routering worden uitgevoerd door de module zonder verkeer naar een handler in de gebruikersruimte te sturen).

Opgemerkt wordt dat de negatieve impact op de VPN-prestaties voornamelijk wordt veroorzaakt door resource-intensieve encryptiebewerkingen en vertragingen veroorzaakt door contextwisseling. Processoruitbreidingen zoals Intel AES-NI werden gebruikt om de codering te versnellen, maar contextwisselingen bleven een knelpunt tot de komst van ovpn-dco. Naast het gebruik van instructies van de processor om de codering te versnellen, zorgt de ovpn-dco-module er bovendien voor dat coderingsbewerkingen in afzonderlijke segmenten worden verdeeld en in multi-threaded modus worden verwerkt, waardoor het gebruik van alle beschikbare CPU-kernen mogelijk is.

De huidige implementatiebeperkingen die in de toekomst zullen worden aangepakt, omvatten alleen ondersteuning voor AEAD- en 'none'-modi, en AES-GCM- en CHACHA20POLY1305-cijfers. Het is de bedoeling dat DCO-ondersteuning wordt opgenomen in de release van OpenVPN 2.6, gepland voor het 4e kwartaal van dit jaar. De module wordt momenteel ondersteund in de bètatestende OpenVPN3 Linux-client en experimentele builds van de OpenVPN-server voor Linux. Een soortgelijke module, ovpn-dco-win, wordt ook ontwikkeld voor de Windows-kernel.

Bron: opennet.ru

Voeg een reactie