web-dev-qa-db-ja.com

SSHと比較してVPN経由で70%の転送速度の低下を修正しましたか? (テスト済みのOpenVPN、IPSec / L2TP、OpenSSH、SoftEther)

現在、発信接続と着信接続の両方を必要とする2つのVPS間にサイト間VPNを構成しています。高帯域幅のアプリケーションで使用されるため、接続を介して取得できる最大速度が必要です。

Iperf3を使用すると、接続を介して約600Mbit/sを確実に取得し、最大30msのpingを実行します。

OpenSSH SCPを介して、約260Mbit/sを取得します。これは、追加の暗号化を考慮して満足しています。

私はVPNのさまざまな構成を、主にOpenVPNで試してきました。 sndbuf/rcvbufの変更、暗号化なし、圧縮なしを試しましたが、ポート443でUDPで20Mビット、TLSで40Mビットしか取得できません。

また、IPSec/L2TP、SoftEther(ただし、500Kbit/s程度しか得られませんでした)、およびOpenSSH組み込みのtunアダプターもセットアップしました。これらのどれも私に40Mbit/s以上のiperf速度を与えることができませんでした。

各ノードのHDDとCPUを注意深く見守っていますが、どちらも飽和状態ではありません。 1台のサーバーの性能は大幅に低下しますが、テスト中にCPU使用率が最大30%に達することはありません。

ちょっと途方に暮れています。 200Mbit/sを超える速度を達成できるものが必要であり(確かに可能であることがわかっています)、ある仮想インターフェイスから別の仮想インターフェイスにルーティングする必要があります。理論的には、これがSoftEtherの目的です。 SoftEtherを修正して、実際の速度を取得する必要がありますか?

堅固なトンネルインターフェースを稼働させるためにテスト/デバッグ/構成するためのその他の側面に関する提案はありますか?通常のプロキシのようなトンネルを使用できるように、着信接続をルーティングするのに役立つ別のソフトウェアはありますか?ありがとう!

1
Gbps

コメントに投稿されたリンクを考慮して、私はこのopenvpnの記事をもう一度見ることにしました: https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux

この記事のいくつかの設定を使用して、平均で約150Mbit/sを達成することができました。これを実現するためにOpenVPNを構成するために行った手順は次のとおりです。

これらは私が順番に試したステップです:

  • デフォルト設定(AES-128付き):14.7Mbit/s
  • Mssfix 0、tun-mtu 6000、フラグメント0を有効にする:16.3Mbit/s
  • '暗号なし'の設定:17.7Mbit/s
  • AES-128、tun-mtu 9000に戻る:22.0Mbit/s
  • tun-mtu 18000:27.2Mbit/s
  • tun-mtu 36000:37.2Mbit/s
  • tun-mtu 60000:44.9Mbit/s
  • '暗号BF-CBC'の設定(あまり違いはありません):44.0Mbit/s
  • サーバーおよびクライアント上のsndbuf393216、rcvbuf 393216:67.1Mbit/s
  • Linux UDP Recvバッファーのサイズの増加 :102Mbit/s
  • iperf3 [...] -P 10で10個の並列接続を有効にします:SUM:135Mbit/s-170Mbit/s

これが最終的なiperf3出力です。

64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=37.2 ms

$ iperf3 -c 10.8.0.1 -p 5201
Connecting to Host 10.8.0.1, port 5201
[  4] local 10.8.0.2 port 59230 connected to 10.8.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  10.3 MBytes  86.5 Mbits/sec    2    632 KBytes
[  4]   1.00-2.00   sec  12.0 MBytes   101 Mbits/sec    7    569 KBytes
[  4]   2.00-3.00   sec  11.4 MBytes  95.8 Mbits/sec    7    443 KBytes
[  4]   3.00-4.00   sec  10.9 MBytes  91.2 Mbits/sec    5    443 KBytes
[  4]   4.00-5.00   sec  11.7 MBytes  98.4 Mbits/sec    2    759 KBytes
[  4]   5.00-6.00   sec  13.0 MBytes   109 Mbits/sec    6    822 KBytes
[  4]   6.00-7.00   sec  13.5 MBytes   113 Mbits/sec    5    696 KBytes
[  4]   7.00-8.00   sec  13.9 MBytes   117 Mbits/sec    6    696 KBytes
[  4]   8.00-9.00   sec  11.8 MBytes  98.9 Mbits/sec    5    696 KBytes
[  4]   9.00-10.00  sec  12.5 MBytes   105 Mbits/sec    4    696 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   121 MBytes   102 Mbits/sec   49             sender
[  4]   0.00-10.00  sec   120 MBytes   101 Mbits/sec                  receiver

非VPN直接接続との比較:

$ iperf3 -c [...] -p 5201
Connecting to Host [...], port 5201
[  4] local [...] port 52172 connected to [...] port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  51.9 MBytes   435 Mbits/sec    0   3.03 MBytes
[  4]   1.00-2.00   sec  73.3 MBytes   615 Mbits/sec    0   3.03 MBytes
[  4]   2.00-3.00   sec  73.3 MBytes   615 Mbits/sec    0   3.03 MBytes
[  4]   3.00-4.00   sec  72.7 MBytes   610 Mbits/sec    0   3.03 MBytes
[  4]   4.00-5.00   sec  72.1 MBytes   605 Mbits/sec    0   3.03 MBytes
[  4]   5.00-6.00   sec  73.7 MBytes   619 Mbits/sec    0   3.03 MBytes
[  4]   6.00-7.00   sec  75.0 MBytes   629 Mbits/sec    0   3.03 MBytes
[  4]   7.00-8.00   sec  72.5 MBytes   608 Mbits/sec    0   3.03 MBytes
[  4]   8.00-9.00   sec  74.9 MBytes   628 Mbits/sec    0   3.03 MBytes
[  4]   9.00-10.00  sec  72.6 MBytes   609 Mbits/sec    0   3.03 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   712 MBytes   597 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   710 MBytes   596 Mbits/sec                  receiver

私が学んだこと

  • 私のネットワークは、tun-mtuの増加から大きな恩恵を受けました。
  • UDPの輻輳は大きな問題です。 Linux UDP recvbufを増やすと、UDPパフォーマンスが大幅に向上しました。 iperfで再送信されたパケットは、輻輳が依然として問題であることを示しています。 改善するための提案をいただければ幸いです。
  • 並列のiperf3接続は、速度をさらに上げるのに役立ちました。
  • CPUコアが100%未満である限り、暗号はパフォーマンスにそれほど影響しませんでした。
  • ギガビット速度を実現するオープンインターネット上でVPNを構成することは困難です。
  • これは、プレーンネットワークのパフォーマンスの1/6です。
3
Gbps