我正在规划一个新网络。来自此网络的所有流量都将被转发到 VPN,以便从远程服务器退出到 Internet。这将通过 OpenVPN 完成。将只有一个隧道。
我们正在寻找非常高速的互联网连接,下行速度为 100 Mbit/s,上行速度为 5 Mbit/s。
我需要什么样的硬件来支持这样的速度?OpenVPN 服务器硬件大小有什么经验法则吗?
一块 atom 主板够用吗?AMD Geode 800Mhz 怎么样?
预先感谢您的帮助,
答案1
我猜 Atom CPU 可以处理 100mbit 的 OpenVPN 流量。在负载下,您可能会发现 Atom 会比更快的 CPU 引入更多的延迟,但考虑到服务器和客户端之间任何长距离链接的延迟,这可能并不重要。
一些不科学的测试结果,在我的配备 Atom CPU 的上网本和本地 OpenVPN 服务器之间运行数据(通过 1000mbit 网络,但上网本只有 100Mbit NIC):
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 是通过本地网络看到的服务器,而 192.168.44.1 是通过该网络的 OpenVPN 链接看到的同一台机器。VPN 处于桥接模式,使用基于 UDP 的连接。
htop 显示在 VPN 测试期间 CPU 的负载比用户+系统计数的负载要高,time
因为time
它只计算dd
CPU 的活动,而不是 VPN 的。在整个测试过程中,它显示 cpu0 占 ~70%,cpu1 占 ~30%,这表明 CPU 已接近其在该测试中通过 OpenVPN 传输的极限(Atom 是单核但具有超线程)——尽管它仍设法以 9.5Mbyte/sec 的速度运行。
作为 VPN 增加的延迟的指示(它将是来自加密数据的 CPU 工作开销和来自隧道方法的开销的组合),使用小(默认,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 处理多个连接并显示真实世界的流量模式,结果会有所不同,因此您可能需要自己执行一些更详细的测试。通过一些调整,您可能能够获得更多结果 - 我的 OpenVPN 套件基本上是在开箱即用的默认设置下运行的。
答案2
除了少数人运行并发布到他们网站上的一些非正式测试外,我不知道有任何已发布的基准测试。据传,加密代码 (OpenSSL) 似乎不是世界上最优化的,但它似乎也不是猪。一个简单的基准测试是在 LAN 上的几台 PC 上设置 OpenVPN 服务器和客户端,并在观察两者的 CPU 负载的同时,对它们之间传输一些流量进行计时。
我可以告诉你,我能够用加密流量使 54Mbps 的 802.11g 链路饱和,而不会使我家 LAN 上的 OpenVPN 服务器(一台破烂的 Pentium II 400Mhz 机器)的 CPU 达到最大限度。这让我觉得 Geode 可能也能做到这一点。
OpenSSL(以及 OpenVPN)也支持一些硬件卸载解决方案。低端解决方案是 Via“挂锁”,包含在一些 Via 芯片组中。这也可能是降低 CPU 要求的一种方法。请参阅:
答案3
我已经设置了 2 个 OpenVPN 服务器并且都运行良好,我为每个服务器创建了 3 个客户端并且它们运行良好。
一个是基于 RasPi 3,配备 32Gb 超快 Micro SD 和额外的 32Gb USB 密钥,到目前为止一切顺利。
另一台是运行 UBUNTU 的配备 4GB Ram 和 500GB HD 的笔记本电脑,运行也正常。
我的结论是这样的;如果在我的案例 3 中你没有很多客户,那么你真的不需要很多数字运算工具,因此设置它的成本很少。
我的互联网下载速度为 60Mb/s,上传速度为 16 Mb/s,这就是为什么我有 3 个客户端,即每个客户端约 5Mb/s。
干杯
西亚马克
答案4
我推荐 VIA Nano。使用 via VIA Nano L2200 @ 1600MHz,我能够传输 330 Mbits。VIA 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