Es wurde ein Kernel-Modul eingeführt, das OpenVPN deutlich beschleunigen kann

Die Entwickler des Virtual Private Networking-Pakets OpenVPN haben das Kernelmodul ovpn-dco eingeführt, das die VPN-Leistung erheblich beschleunigen kann. Obwohl das Modul noch ausschließlich mit Blick auf den Linux-Next-Zweig entwickelt wird und sich im experimentellen Status befindet, hat es bereits ein Stabilitätsniveau erreicht, das es ermöglicht, den Betrieb des OpenVPN-Cloud-Dienstes sicherzustellen.

Im Vergleich zur Konfiguration auf Basis der tun-Schnittstelle konnte durch den Einsatz eines Moduls auf Client- und Serverseite mit der AES-256-GCM-Verschlüsselung eine 8-fache Steigerung des Durchsatzes (von 370 Mbit/s auf 2950 Mbit) erreicht werden /S). Bei Verwendung des Moduls nur auf der Clientseite erhöhte sich der Durchsatz für ausgehenden Datenverkehr um das Dreifache und änderte sich für eingehenden Datenverkehr nicht. Wenn das Modul nur auf der Serverseite verwendet wird, erhöht sich der Durchsatz beim eingehenden Datenverkehr um das Vierfache und beim ausgehenden Datenverkehr um 4 %.

Es wurde ein Kernel-Modul eingeführt, das OpenVPN deutlich beschleunigen kann

Die Beschleunigung wird durch die Verlagerung aller Verschlüsselungsvorgänge, Paketverarbeitung und Kommunikationskanalverwaltung auf die Linux-Kernel-Seite erreicht, wodurch der mit der Kontextumschaltung verbundene Overhead entfällt, die Arbeit durch direkten Zugriff auf die internen Kernel-APIs optimiert werden kann und eine langsame Datenübertragung zwischen Kerneln vermieden wird und Benutzerbereich (Verschlüsselung, Entschlüsselung und Routing werden vom Modul durchgeführt, ohne Datenverkehr an einen Handler im Benutzerbereich zu senden).

Es wird darauf hingewiesen, dass die negativen Auswirkungen auf die VPN-Leistung hauptsächlich durch ressourcenintensive Verschlüsselungsvorgänge und Verzögerungen durch Kontextwechsel verursacht werden. Prozessorerweiterungen wie Intel AES-NI wurden verwendet, um die Verschlüsselung zu beschleunigen, aber Kontextwechsel blieben bis zum Aufkommen von ovpn-dco ein Engpass. Das ovpn-dco-Modul nutzt nicht nur Anweisungen des Prozessors zur Beschleunigung der Verschlüsselung, sondern sorgt auch dafür, dass Verschlüsselungsvorgänge in separate Segmente aufgeteilt und im Multithread-Modus verarbeitet werden, was die Nutzung aller verfügbaren CPU-Kerne ermöglicht.

Zu den aktuellen Implementierungseinschränkungen, die in Zukunft behoben werden, gehören die Unterstützung nur der AEAD- und „Keine“-Modi sowie der AES-GCM- und CHACHA20POLY1305-Verschlüsselungen. Die DCO-Unterstützung soll in der Veröffentlichung von OpenVPN 2.6 enthalten sein, die für das 4. Quartal dieses Jahres geplant ist. Das Modul wird derzeit im Betatest des OpenVPN3-Linux-Clients und in experimentellen Builds des OpenVPN-Servers für Linux unterstützt. Ein ähnliches Modul, ovpn-dco-win, wird auch für den Windows-Kernel entwickelt.

Source: opennet.ru

Kommentar hinzufügen