Et kernemodul er blevet introduceret, der kan fremskynde OpenVPN betydeligt

Udviklerne af den virtuelle private netværkspakke OpenVPN har introduceret ovpn-dco-kernemodulet, som kan fremskynde VPN-ydeevnen betydeligt. På trods af at modulet stadig udvikles med kun øje for linux-next-grenen og har eksperimentel status, har det allerede nået et stabilitetsniveau, der gør det muligt at bruge det til at sikre driften af ​​OpenVPN Cloud-tjenesten.

Sammenlignet med konfigurationen baseret på tun-grænsefladen, gjorde brugen af ​​et modul på klient- og serversiden ved hjælp af AES-256-GCM-chifferen det muligt at opnå en 8-dobling af gennemstrømningen (fra 370 Mbit/s til 2950 Mbit) /s). Når modulet kun blev brugt på klientsiden, steg gennemløbet tre gange for udgående trafik og ændrede sig ikke for indgående trafik. Ved kun at bruge modulet på serversiden steg gennemløbet med 4 gange for indgående trafik og med 35% for udgående trafik.

Et kernemodul er blevet introduceret, der kan fremskynde OpenVPN betydeligt

Acceleration opnås ved at flytte alle krypteringsoperationer, pakkebehandling og kommunikationskanalstyring til Linux-kernesiden, hvilket eliminerer overhead forbundet med kontekstskifte, gør det muligt at optimere arbejdet ved direkte adgang til de interne kerne-API'er og eliminerer langsom dataoverførsel mellem kerne og brugerrum (kryptering, dekryptering og routing udføres af modulet uden at sende trafik til en handler i brugerrummet).

Det bemærkes, at den negative indvirkning på VPN-ydelsen hovedsageligt er forårsaget af ressourcekrævende krypteringsoperationer og forsinkelser forårsaget af kontekstskift. Processorudvidelser såsom Intel AES-NI blev brugt til at fremskynde kryptering, men kontekstskifte forblev en flaskehals indtil fremkomsten af ​​ovpn-dco. Ud over at bruge instruktioner fra processoren for at fremskynde kryptering, sikrer ovpn-dco-modulet desuden, at krypteringsoperationer er opdelt i separate segmenter og behandlet i multi-threaded-tilstand, hvilket tillader brugen af ​​alle tilgængelige CPU-kerner.

Aktuelle implementeringsbegrænsninger, der vil blive behandlet i fremtiden, omfatter kun understøttelse af AEAD- og 'ingen'-tilstande og AES-GCM- og CHACHA20POLY1305-cifre. DCO-support er planlagt til at blive inkluderet i udgivelsen af ​​OpenVPN 2.6, der er planlagt til 4. kvartal i år. Modulet understøttes i øjeblikket i beta-testen OpenVPN3 Linux-klient og eksperimentelle builds af OpenVPN-serveren til Linux. Et lignende modul, ovpn-dco-win, er også ved at blive udviklet til Windows-kernen.

Kilde: opennet.ru

Tilføj en kommentar