我们有许多在 Debian 上运行 MongoDB 的数据库服务器,以及许多也在 Debian 上运行的应用程序服务器。数据库服务器保存复制的数据库集群,因此它们需要相互通信。应用程序服务器需要与所有数据库服务器通信(出于容错的原因)。服务器可能分布在多个托管中心,因此我们需要所有服务器之间的安全通道。服务器数量必然会增加,因此我们需要一个易于维护和扩展的 VPN 解决方案。这就是为什么我觉得我们用于测试的 SSH 可能无法胜任这项任务,而 OpenVPN 似乎是最佳选择。
我已经排除了 TAP,因为我知道这意味着所有流量都会流向所有服务器 - 也许这是一个误解,TAP 更像是一个交换机?
对于 TUN 设备,我设想所有 DB 服务器都将位于各自独立的子网中,它们还需要配置一个客户端,以便能够连接到每个对等服务器。应用服务器可以位于一个公共子网范围内,并且仅需配置一个客户端。
这听起来像是一个合理的设置吗?奇怪的是,我在网上没有找到任何有关使用 OpenVPN 的多服务器的信息。
感谢所有的见解和想法!
答案1
您似乎有一些不一定有道理的假设,而且您把事情弄得太复杂了。
Tap 不会将所有流量路由到 VPN,除非您使用路由语句将其配置为这样做。其网站上的 OpenVPN 文档介绍了这一点。
如果您的数据中心使用 VPN 技术进行连接,那么您需要多个 VPN 服务器的唯一原因就是为了连接到每个数据中心的子网。OpenVPN 在子网之间路由流量方面非常有效,并且几乎是无处不在的用例。
如果您尝试在所有服务器之间建立点对点连接的网状 VPN 网络,那么您将面临管理开销方面的极大困扰。
答案2
tap 接口位于第 2 层 - 看起来所有机器都位于同一网段。tun 接口位于第 3 层(正如您所说 - 它们位于不同的子网中)。
如果您使用 TUN iface,则无需在每个对等点上安装 vpn 客户端。每个站点有一个 vpn 客户端并在它们之间配置路由就足够了。这样,VPN 客户端将充当路由器。对我来说这是最简单的,因为您只需要在每台机器上为新网络添加路由(或设置您的默认 gw)。