我正在为一份合同做初步研究,该合同旨在在大约 600 台运行 Linux CentOS 6 的远程服务器(+ 它们的 600 个私有 LAN)之间构建 VPN 网络。该网络应该是星型的,这样每台远程服务器都会连接到一个或多个中央服务器以进入 VPN(我知道这是一个 SPOF,但没关系,因为构建此 VPN 的主要应用程序无论如何都会在中央服务器上运行)。
我想使用 OpenVPN(它非常灵活,可以根据我们需要的配置进行调整),但我想知道在如此大的网络上运行它的最佳做法是什么。例如,如果在 tun 模式下使用,它会在中央服务器上创建 600 个 tun 接口,我甚至不知道它是否受支持和/或会产生任何问题。
我没有处理过如此大型的网络,因此我愿意接受任何建议和指点。谢谢!
答案1
查看 tinc。它是一个更简单的守护进程,可以自动协商路由。因此,一开始的连接看起来像一个星形,但如果两台服务器距离较近,可以直接连接,它们就会这样做。此外,由于每个盒子只需配置一次即可连接到主节点,因此添加新服务器意味着您不必更新所有现有服务器上的配置。如果有大约 600 台服务器,这很快就会变得很痛苦。
答案2
据我所知,使用 OpenVPN 时,您只需在中央服务器上创建一个 tun 接口,然后所有连接节点都位于此接口的子网中。因此,您不会遇到这方面的任何限制。
我设置了类似的 VPN,尽管规模不如您提到的那么大。我们有 80 台服务器,服务器背后有 80/24 个 LAN。我们使用 OpenVPN,效果很好。我们遇到的主要问题是由于监管不力和规划不周导致带宽过载。许多服务器很容易达到 100Mbit/s,因此您必须仔细规划。这确实取决于您的用途,但这是我们遇到的主要问题。
配置方面,您必须使用客户端特定配置将 VPN 证书绑定到特定路由。这可以通过 ccd 目录完成。保持配置整洁,因为服务器太多,很快就会变得一团糟。为自己创建一个小脚本来快速生成密钥,因为密钥太多需要一段时间。您只需修改 OpenVPN 实用程序以静默执行即可。如果安全性不是大问题,请设置较长的证书到期时间,重新颁发 600 个证书一定很麻烦。