OpenVPN硬件要求

我正在计划一个新的networking。 所有从这个networking出来的stream量都会被放到一个VPN中,以便在一个远程服务器上退出到Internet上。 这将通过OpenVPN完成。 将只有一个隧道。

我们正在考虑一个非常高速的互联网连接,下行速度为100 Mbit / s,上行速度为5 Mbit / s。

我需要什么types的硬件来支持这样的速度? 是否有任何拇指规则的OpenVPN服务器的硬件大小?

primefaces板会足够吗? 那么AMD Geode 800Mhz呢?

预先感谢您的帮助,

我猜想一个Atom CPU会处理100mb的OpenVPNstream量。 在负载下,你可能会发现一个Atom将会比一个更快的CPU引入更多的延迟,但是当考虑到服务器和客户端之间的任何长距离链接的延迟时,这可能不是显着的。

一些不科学的testing结果,在我的上网本与Atom CPU之间运行数据到本地OpenVPN服务器(超过1000mbitnetworking,但上网本只有100Mbit网卡):

dspillett@minirant:~$ time dd if=/dev/zero bs=1024 count=1048576 | nc -q 0 192.168.43.1 3333 1048576+0 records in 1048576+0 records out 1073741824 bytes (1.1 GB) copied, 91.2072 s, 11.8 MB/s real 1m31.227s user 0m1.792s sys 0m25.874s dspillett@minirant:~$ dspillett@minirant:~$ time dd if=/dev/zero bs=1024 count=1048576 | nc -q 0 192.168.44.1 3333 1048576+0 records in 1048576+0 records out 1073741824 bytes (1.1 GB) copied, 113.082 s, 9.5 MB/s real 1m53.107s user 0m1.468s sys 0m15.337s dspillett@minirant:~$ 

其中192.168.43.1是刚在本地networking上看到的服务器,而192.168.44.1是通过该networking上的OpenVPN链接看到的同一台机器。 VPN处于桥接模式,使用基于UDP的连接。

htop显示了在VPNtesting期间,CPU被征税的次数比用户+系统从time计数表明,因为time只是计算dd的CPU活动而不是VPN的。 它显示cpu0约为70%,cpu1约为30%,通过testing表明CPU接近于在该testing中可以通过OpenVPN传输的极限(即Atom是单核但是具有超线程) – 虽然它仍然处理以9.5Mbyte /秒的速度洗牌。

作为VPN增加的延迟的指示(这将是来自CPU工作的encryption数据的开销和来自隧道方法的开销的组合),使用小的(默认的,56字节的有效载荷)分组进行ping:

 --- 192.168.43.1 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 8997ms rtt min/avg/max/mdev = 0.138/0.166/0.183/0.015 ms --- 192.168.44.1 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 8998ms rtt min/avg/max/mdev = 0.544/0.614/0.860/0.091 ms 

和更大的(2048字节有效载荷):

 --- 192.168.43.1 ping statistics --- 10 packets transmitted, 10 received, 0% packet los rtt min/avg/max/mdev = 0.514/0.521/0.531/0.021 ms --- 192.168.44.1 ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9011ms rtt min/avg/max/mdev = 0.710/0.997/1.437/0.173 ms 

显然你会得到不同的结果,VPN处理多个连接展现真实的stream量模式,所以你可能想要自己执行一些更详细的testing。 你可能可以通过一些调整来挤压更多的东西 – 我的OpenVPN设置基本上是在默认情况下运行的。

除了一些非正式的testing外,我还没有发现任何已发布的基准testing,有些人已经运行并发布到他们的网站上。 有趣的是,密码(OpenSSL)似乎并不是世界上最优化的,但它似乎也不是猪。 一个简单的基准就是在局域网上的几台电脑上安装一个OpenVPN服务器和客户端,并在一边监视CPU负载情况下移动一些stream量。

我可以告诉你,我能够使用encryption的stream量,以54Mbps的速度运行802.11g链路,而无需在我的家庭局域网上的Pentium II 400Mhz机器(即OpenVPN服务器)上最大化CPU。 这让我觉得Geode也可能做到这一点。

OpenSSL(以及OpenVPN)也支持一些硬件卸载解决scheme。 一个低端解决scheme是Via“挂锁”,包含在一些Via芯片组中。 这也可能是一种保持低CPU要求的方法。 看到:

我已经build立了2个OpenVPN服务器,并且都能正常工作,我为每个服务器都创build了3个客户端,并协调好。

一个是基于RasPi 3与32Gb非常快速的Micro SD和额外的32Gb USB钥匙,到目前为止好。

另一个是4Gb Ram和500GB高清运行UBUNTU的笔记本电脑,这个工作还不错。

我的结论是这样的; 如果你在我的情况3中没有很多客户,那么你真的不需要大量的数字处理,因此build立它的成本非常低。

我的互联网下载速度是60Mb / s,上传速度是16Mb / s,这就是为什么我有3个客户端,即每个〜5Mb / s。

干杯

Siamak

我会推荐一个威盛纳米。 通过威盛Nano L2200 @ 1600MHz,我可以推330 Mbits。 威盛nano与Atom具有相同的价格范围,并具有硬件AES支持。 为了获得这样的性能,您需要从AES的blowfish中更改,并将以下内容添加到openssl.conf中:

 openssl_conf = openssl_def [openssl_def] engines = openssl_engines [openssl_engines] padlock = padlock_engine [padlock_engine] default_algorithms = ALL 

这是一个链接到一个主板/ CPU组合的例子: http : //www.via-itx.com/via-vb8001.html