VPN 可扩展性测试客户端设置的问题

Problem with VPN Scalability testing client setup

提前为我的第一个 post 问题道歉!到目前为止,我大约一周前在 OpenVPN 论坛上问过这个问题,但没有成功。所以祈祷我会在这里有更多的运气!

总结: 我目前正在开展一个项目,我们希望部署单个 VPN 服务器并允许最多 500 个客户端连接,同时通过少数客户端推送大约 80-120 Mbps 的数据。 有没有人使用 OpenVPN 做过可扩展性或性能测试?我不需要推送高数字,但我正在寻找稳定的空闲客户端连接。

测试台: 为了获得这些数字,我构建了以下测试平台: • 5 台客户端 PC • 1 台 8 核服务器 + 64GB 内存 o 服务器已配置为在超过 1k 地址的子网上动态提供 IP • 1 台PC 模拟多个客户端连接。 o 客户端将在每个新连接之间延迟 10 秒启动。 o 客户端将使用相同的用户名密码进行身份验证 o 客户端将从 OpenVPN 服务器动态获取 IP

问题: 现在我遇到的问题是如何使用最好的单个物理设备可靠地模拟 500 个客户端连接并保持它们稳定。到目前为止,物理客户端 PC 在周末一直处于闲置状态。而无论我使用 5 还是 500,模拟的客户端连接都会失败。

到目前为止我尝试过的东西:

  1. 单客户端 PC(遵循本指南): 一种。在一台客户端 PC 上,我创建了 5/10/15/50/100 个 TAP 适配器 b.在客户端 PC 上,我创建了 5/10/15/50/100 个配置文件。 C。现在我已经开始客户端连接并让它们闲置。
  2. 问题: 一种。当我开始大量连接 25/50+ 时,有时新连接的客户端会消耗已经分配的 IP b.几乎总是在闲置时,一旦我将 RDP 连接到机器或开始通过 VPN 执行 ping 扫描,设备就会失去与服务器的连接。

  3. 我尝试过使用基于 Hyper-V 的虚拟机进行类似设置

  4. 我已经尝试使用具有静态 IP 的客户端特定配置文件与客户端连接的 VM。
  5. 我已经尝试过使用具有静态 IP 的客户端特定配置文件和每个客户端唯一用户名的客户端连接虚拟机。

可能的解决方案: 我想知道使用 Docker OpenVPN 容器是否可以用来模拟此测试?

预先感谢您对我的设置提出的任何建议和反馈!很抱歉冗长 post 但我不想遗漏任何细节。

我花了一些时间解决这个问题并浏览 OpenVPN 论坛,我得出以下结论:

  1. 运行 单个主机设备上的多个 OpenVPN 客户端根本无法工作,并且会导致一些问题。 现在好消息是,如果您希望根据开放 VPN 社区对 OpenVPN 服务器进行压力测试,这仍然是有效负载,请参阅下面的 OpenVPN wiki 摘录:

“对于超过 100 个并发连接,在同一客户端实例上使用多个并行 OpenVPN 进程;尽管客户端无法正确初始化,但它们仍应以相对现实的方式对服务器施加压力。”

  1. 用于过去性能测试的 OpenVPN wiki 中的 Amazon EC2 脚本看起来工作量很大,并且在 2012 年进行了编辑,因此我们放弃了让它们为我们工作。

  2. 最后,docker 方法似乎工作得很好。目前我们有一个主机有 250 docker 个实例。我将在下周开始测试,如果有人对结果和方法感兴趣,请给我留言,我会分享所有信息,否则,我不会再向该线程发送垃圾邮件。

虽然这是去年的事,但我很想知道您是如何使用 Docker 方法来扩展 OpenVPN 客户端的。我尝试了几个 Docker 回购协议,但发现它在主机上与 运行 一样有效——我可以获得一个 tun0 接口,但它在主机上,而不是在容器上。如果您能分享您实现规模化所采用的方法,我将不胜感激。