Linux中的IPsec瓶颈是什么?


19

我正在尝试比较千兆以太网中连接的两个主机之间的几种网络安全协议的性能。

我的目标是查看是否可以饱和带宽,如果不能,则限制因素是什么。

  • 使用SSL,我可以达到981 MBit / s,因此以太网链路显然是限制因素;
  • 使用SSH,我只能达到750 MBit / s,但是我的核心之一是使用率达到100%。由于SSH是单线程的,因此CPU是限制因素。
  • 使用IPsec,我的读取速度约为500 MBit / s,但是我的内核都不是100%(低于50%)。

所以我的问题是:为什么IPsec无法达到更高的带宽?

这两个主机正在运行用于IPsec的Debian Wheezy和Strongswan。


3
您将需要确保您的CPU具有aes在两个站点上更好地对数据包进行解密的指令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处理器,并且我在两台主机之间以隧道模式工作。我了解在一个CPU使用率达到100%的情况下,您的两条建议都会增加带宽。使用AES-NI将允许处理更多的数据包并增加带宽。但是在这里,CPU似乎不是限制因素。
2015年

3
嗯,这很有趣。我怀疑内核中的某些东西正在减慢速度。您介意共享您的ipsec配置吗?我想对虚拟机进行检测,看看用不同的设置会得到什么结果。
Lmwangi 2015年

Answers:


1

有很多因素会影响这一点。NIC击中了电路板的更多部分,超出了您的想象。如果有任何说明,说明可能会碰到导线并撞到驱动器系统的一部分,并使您陷入困境。您可以采用1200mhz单板单核并调整硬件,以破坏3600mhz和四核。这确实是一个特定于硬件的问题。

他们如何做到这一点?像这样的东西 http://www.ixiacom.com/products/ixn2x 这就是价值16.5万美元的“我会打扰你”的设备。即2 gigs错误的流量进入1gig管道。一旦您开始殴打系统并破坏系统,瓶颈将“揭示其自我”。复习您的GDB技能!

每个系统都有解决此问题的不同方法。某些主板的技术限制可能会限制您的工作。

答案是模棱两可的,因为解决方案是模棱两可的。我可以想到20种不同的可能性,包括分页,分页可能因操作系统版本而异。



0

可能是在任何特定时间,两个内核中只有一个处于饱和状态,但平均看来它们都处于大约50%的状态(因为内核为两个内核随机分配了一个单线程IPsec进程;但据我所知)已经注意到Linux(不同于Windows)通常会尝试将线程保持在同一内核上)。

在某些短时间内,IPSec可能还会等待网络,这与缓慢的传输速率一起可能是缓冲不良的迹象。

压缩(如果有)和协议开销也可能会影响您的测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.