高吞吐量网状VPN,可连接数据中心主机


16

我们正在公共数据中心内租用许多主机。数据中心不提供专用VLAN。所有主机都接收一个(或多个)公共IPv4 / IPv6地址。主机配备了非常现代的CPU(Haswell四核,3.4GHz),并具有Gbit上行链路。数据中心的不同区域(房间,楼层或建筑物?)通过Gbit或500Mbit链接相互连接。我们的房东正在运行debian wheezy。目前,我们正在运行10台以上的主机,并希望在不久的将来实现增长。

我正在寻找一种方法,以使所有主机之间可以安全保密地进行通信。第3层很好,第2层还可以(但不是必需的)。由于我无权访问VLAN,因此它必须是某种类型的VPN。

对我来说重要的是:

  1. 高产量,理想情况下接近线速
  2. 分散的,网格化的体系结构-这是为了确保吞吐量不会因中央元素(例如VPN集中器)而减慢
  3. CPU占用空间不会过多(考虑到AESNI和GCM密码套件,我希望这不是一个荒谬的要求)
  4. 操作的易用性;设置不太复杂;网络可以增长而不会失去已建立的连接

我们目前正在使用tinc。它会打勾[2]和[4],但是我只能达到960Mbit / s线速的大约600Mbit / s(单工),并且我完全松开了一个内核。另外,tinc 1.1(目前正在开发中)尚未使用多线程,因此我只能使用单核性能。

传统的IPSec是不可能的,因为它需要一个中央元素或要配置的隧道的一小部分(以实现[2])。带有机会主义加密的IPsec将是一个解决方案,但是我不确定它是否能使其成为稳定的生产代码。

我今天偶然发现了tcpcrypt。除了缺少身份验证,它看起来像我想要的。用户空间的实现闻起来很慢,但其他所有VPN也是如此。他们谈到了内核实现。我还没有尝试过,并且对它在[1]和[3]中的表现感兴趣。

还有什么其他选择?人们在做什么,谁不在 AWS上?

附加信息

我对GCM感兴趣,希望它可以减少CPU占用空间。请参阅有关该主题的英特尔论文。当与一位小型开发人员交谈时,他解释说,即使使用AESNI进行加密,HMAC(例如SHA-1)在Gbit速度下仍然非常昂贵。

最终更新

传输模式下的IPsec可以完美工作,并且完全符合我的要求。经过大量评估之后,我选择了Openswan而不是ipsec-tools,这仅仅是因为它支持AES-GCM。在Haswell CPU上,我测量约910-920Mbit / sec的单工吞吐量,其中CPU负载约为8-9%kworkerd


所以,低端股票?进行千兆位级加密后,您希望保持什么性能?没办法-我建议您寻找更专业的主机或取消加密部分。
TomTom 2014年

2
根据英特尔的加密性能文件,@ tomtom AES-128-CBC加密性能为每字节4.52个周期,这意味着100 MB / s会消耗约450 MHz的单核。解密的成本大大降低。所以,除非具体实现的问题拖下来的表现,就应该制定出不需要最大的CPU性能和最佳的网络性能负载在同一时间
the-wabbit 2014年

为什么要GCM?IPSEC不受TLS攻击的影响,因此考虑使用GCM解决CBC模式下TLS的弱点是有争议的。
the-wabbit 2014年

Answers:


15

不需要的是VPN。您确实想要的实际上是IPsec,但不是在隧道模式下。相反,您希望IPsec处于传输模式。

在此配置中,每个主机都直接与其对等方通信,并且仅对数据包有效载荷进行加密,而保留IP标头。这样,您无需进行任何路由体操就可以使工作正常进行。

是的,每个主机都需要一个IPsec连接节(除非您的主机被分组在一个子网中,在这种情况下,您可以通过CIDR块来完成此操作),但是这些可以由您的配置管理系统轻松地以编程方式生成。

您没有询问配置详细信息,但是如果您需要一些指示信息(关于传输模式并没有那么多可靠的信息),您可以参考我最近撰写的这篇博客文章


我第二个想法是为此使用IPSEC传输模式。但是,将PSK与OpenSWAN结合使用可能不是所有设置中的最佳选择。Linux已经带有本机IPSEC实现和键控守护进程(浣熊),除非有KAME / racoon所没有的特定要求,否则我会坚持使用。
the-wabbit 2014年

1
非常感谢!结合您的建议,我将本机IPsec实现与racoon结合使用。我首先在小型单核计算机上进行了测试,吞吐量已经提高了50%,延迟降低到了约60%。我下周将在Haswell节点上进行确认,然后接受答案。我需要弄清楚内核中是否支持AES-GCM,以及如何将其发送给IPsec。
Hank

@ syneticon-dj-很好奇...为什么不openswan?它仍将内核的ip xfrm位用于IPsec,但将pluto用作其用户空间IKE守护程序,而不是racoon。我并不是在主张openswan是目前最好的-这只是我用过的所有东西,如果有更好的选择,我想朝这个方向发展。
EEAA 2014年

1
它可能归结为个人喜好,但是我总是遇到Free- / OpenSWAN配置文件的笨拙和完全丑陋的路由实现的麻烦。我非常喜欢其中的动态部分,racoonctl它非常类似于商用路由器在其IPSEC控制中所允许的内容。KAME的工程设计更加全面,而OpenSWAN则感觉像是拼凑在一起。
the-wabbit

@ syneticon-dj,您是否愿意对此进行详细说明?您是说可以像现在Openswan一样通过IPSec链路路由多个网络而无需进行几个SA配置吗?
rsuarez 2014年
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.