Przedstawiono moduł jądra, który może znacznie przyspieszyć OpenVPN

Twórcy pakietu do tworzenia wirtualnych sieci prywatnych OpenVPN zaprezentowali moduł jądra ovpn-dco, który znacząco poprawia wydajność VPN. Mimo że moduł jest wciąż w fazie rozwoju z myślą wyłącznie o gałęzi linux-next i ma status eksperymentalny, osiągnął poziom stabilności, który pozwala na jego zastosowanie w usłudze OpenVPN Cloud.

W porównaniu do konfiguracji opartej na interfejsie tun, zastosowanie modułu po stronie klienta i serwera przy użyciu szyfrowania AES-256-GCM pozwoliło uzyskać wzrost przepustowości o 8 razy (z 370 Mbit/s do 2950 Mbit/s). W przypadku zastosowania modułu tylko po stronie klienta przepustowość wzrosła trzykrotnie dla ruchu wychodzącego i nie zmieniła się dla ruchu przychodzącego. Przy użyciu modułu tylko po stronie serwera przepustowość wzrosła 4 razy dla ruchu przychodzącego i o 35% dla ruchu wychodzącego.

Przedstawiono moduł jądra, który może znacznie przyspieszyć OpenVPN

Przyspieszenie osiągane jest dzięki przeniesieniu wszystkich operacji szyfrowania, przetwarzania pakietów i zarządzania kanałem komunikacyjnym do jądra Linux, co pozwala na wyeliminowanie narzutów związanych z przełączaniem kontekstu, umożliwia optymalizację działania dzięki bezpośredniemu dostępowi do wewnętrznych API jądra i eliminuje wolne przesyłanie danych między jądrem a przestrzenią użytkownika (szyfrowanie, deszyfrowanie i routowanie odbywa się w module bez wysyłania ruchu do przetwarzania w przestrzeni użytkownika).

Zauważono, że negatywny wpływ na wydajność VPN mają przede wszystkim operacje szyfrowania wymagające dużej ilości zasobów oraz opóźnienia spowodowane przełączaniem kontekstu. Dla przyspieszenia szyfrowania wykorzystano rozszerzenia procesora, takie jak Intel AES-NI, jednak do pojawienia się ovpn-dco przełączanie kontekstu pozostawało wąskim gardłem. Oprócz zastosowania instrukcji dostarczanych przez procesor w celu przyspieszenia szyfrowania, w module ovpn-dco dodatkowo zapewniono podział operacji szyfrowania na oddzielne segmenty i ich przetwarzanie w trybie wielowątkowym, co pozwala na wykorzystanie wszystkich dostępnych rdzeni CPU.

Z bieżących ograniczeń realizacji, które w przyszłości zostaną usunięte, wyróżnia się wsparcie tylko dla trybów AEAD i ‚none’ (bez uwierzytelnienia) oraz szyfrów AES-GCM i CHACHA20POLY1305. Wsparcie DCO planowane jest do włączenia w wersji OpenVPN 2.6, zaplanowanej na czwarty kwartał bieżącego roku. Obecnie moduł jest wspierany w trwającym beta teście klienta OpenVPN3 na Linux oraz w eksperymentalnych wersjach serwera OpenVPN dla Linux. Podobny moduł ovpn-dco-win rozwija się również dla systemu Windows.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster