LinuxのIPsecボトルネックは何ですか?


19

ギガビットイーサネットで接続された2つのホスト間で、いくつかのネットワークセキュリティプロトコルのパフォーマンスを比較しようとしています。

ここでの私の目標は、帯域幅を飽和させることができるかどうかを確認することであり、そうでない場合、制限要因は何ですか。

  • SSLを使用すると、981 MBit / sに到達できるため、イーサネットリンクが明らかに制限要因になります。
  • SSHを使用すると、750 MBit / sにしか到達できませんが、コアの1つが100%使用されています。SSHはシングルスレッドであるため、CPUが制限要因です。
  • IPsecでは、約500 MBit / sを読み取りますが、100%のコアはありません(50%未満です)。

だから私の質問は次のとおりです。なぜIPsecはより高い帯域幅に到達できないのですか?

2つのホストは、Debian WheezyとStrongswan for IPsecを実行しています。


3
あなたは、あなたのCPUのは、持っていることを確認する必要がありますaes両方のサイトでより良いdecriptパケットに命令をintel.co.jp/content/dam/www/public/us/en/documents/white-papers/...、そしてあなたがしていることもIPSecの並列を作り、トンネルモード+ ESPを使用して- strongswan.org/docs/Steffen_Klassert_Parallelizing_IPsec.pdfを。これが、このプロトコルでパフォーマンスを達成するための最良の方法です。

残念ながら、AES-NIサポートのないi3プロセッサーがあり、2つのホスト間でトンネルモードで作業しています。1つのCPUが100%使用されている場合に、両方のアドバイスが帯域幅をどのように増やすかを理解しています。AES-NIを使用すると、より多くのパケットを処理でき、帯域幅が増加します。しかし、ここではCPUは制限要因ではないようです。
user50228

3
うーん、それは面白いです。カーネル内の何かが速度を低下させているのではないかと疑っています。ipsec構成を共有してもらえますか?VMをインスツルメントし、異なる設定でどのような結果が得られるかを確認したいと思います。
Lmwangi

回答:


1

これには非常に多くの要因があります。NICは、想像以上にボードの多くの部分にヒットします。指示がワイヤに伝わり、ドライバーシステムの一部にぶつかり、ボトルネックになった場合のセット。シングルボード1200mhzシングルコアを使用し、ハードウェアを調整してドアを吹き飛ばし、クアッドコア3600mhzにすることができます。これは本当にハードウェア固有の質問です。

彼らはどうやってこれをしますか?このようなもので http://www.ixiacom.com/products/ixn2x それは$ 165kの「私はあなたを壊します」デバイスです。すなわち、2は1gigパイプに誤ったトラフィックをギグします。システムを破って物を壊し始めると、ボトルネックは「自己を明らかにします」。GDBのスキルを磨きましょう!

すべてのシステムには、問題を解決するための異なる方法があります。一部のボードには、技術的な制限があり、それを制限することができます。

解決策があいまいなので、答えはあいまいです。OSのバージョンによって異なるページングなど、私の頭の上の20の異なる可能性を考えることができます。



0

特定の時点で2つのコアのうち1つだけが飽和している可能性がありますが、平均して両方とも約50%になっているようです(カーネルがシングルスレッドのIPsecプロセスを両方のコアにランダムに割り当てるためです;ただし、 Linux(Windowsとは異なり)は通常、スレッドを同じコアに保持しようとすることに気付きました)。

いくつかの短期間では、IPSecはネットワークを待機することもありますが、これは低速の転送速度と相まって、バッファリングが不十分であることを示しています。

また、圧縮(存在する場合)およびプロトコルのオーバーヘッドがテストに影響する場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.