OpenVPN を大幅に高速化できるカーネル モジュールが導入されました

OpenVPN 仮想プライベート ネットワーク パッケージの開発者は、VPN パフォーマンスを大幅に高速化できる ovpn-dco カーネル モジュールを導入しました。 このモジュールはまだ linux-next ブランチのみを念頭に置いて開発中であり、実験段階にありますが、OpenVPN クラウド サービスの動作を保証するために使用できる安定性のレベルにすでに達しています。

tunインターフェースによる構成と比較して、クライアント側とサーバー側にAES-256-GCM暗号を使用したモジュールを使用することで、スループットが8倍(370Mbit/sから2950Mbitへ)向上しました。 /s)。 クライアント側のみでモジュールを使用した場合、送信トラフィックのスループットは 4 倍増加しましたが、受信トラフィックでは変化しませんでした。 サーバー側のみでモジュールを使用した場合、スループットは受信トラフィックで 35 倍、送信トラフィックで XNUMX% 増加しました。

OpenVPN を大幅に高速化できるカーネル モジュールが導入されました

すべての暗号化操作、パケット処理、および通信チャネル管理を Linux カーネル側に移動することで高速化が実現されます。これにより、コンテキスト切り替えに関連するオーバーヘッドが排除され、内部カーネル API に直接アクセスすることで作業を最適化できるようになり、カーネル間の遅いデータ転送が排除されます。およびユーザー空間 (暗号化、復号化、およびルーティングは、ユーザー空間のハンドラーにトラフィックを送信せずにモジュールによって実行されます)。

VPN パフォーマンスへの悪影響は、主にリソースを大量に消費する暗号化操作とコンテキストの切り替えによって引き起こされる遅延によって引き起こされることに注意してください。 Intel AES-NI などのプロセッサ拡張機能は暗号化を高速化するために使用されましたが、ovpn-dco が登場するまではコンテキスト スイッチがボトルネックのままでした。 ovpn-dco モジュールは、暗号化を高速化するためにプロセッサーによって提供される命令を使用することに加えて、暗号化操作が個別のセグメントに分割され、マルチスレッド モードで処理されることを保証します。これにより、利用可能なすべての CPU コアの使用が可能になります。

将来的に対処される予定の現在の実装制限には、AEAD および「なし」モードのみのサポート、AES-GCM および CHACHA20POLY1305 暗号のサポートが含まれます。 DCO サポートは、今年の第 2.6 四半期に予定されている OpenVPN 4 のリリースに含まれる予定です。 このモジュールは現在、ベータ テスト中の OpenVPN3 Linux クライアントと Linux 用 OpenVPN サーバーの実験ビルドでサポートされています。 同様のモジュール ovpn-dco-win も Windows カーネル用に開発されています。

出所: オープンネット.ru

コメントを追加します