OpenVPN 多台服务器在同一子网,高可用

and*_*dre 6 networking vpn openvpn high-availability

嘿大家。首先让我说我的 Linux 体验不是特别棒,但我通常可以轻松找到解决问题的方法。

在工作中,我们有一个 OpenVPN 设置,现在应该进行一些改进。主服务器(tap 模式)在我们的办公室运行,在一个相当慢的 DSL 连接后面。主要问题是,由于我通常不在办公室,每次我想访问虚拟网络上的某些内容时,我都必须通过该服务器才能到达其他任何地方。

我们有两台 100 Mbit 连接的服务器,用于开发和生产目的,办公室还有大约 3 台服务器(其中一台在不同的 VOIP T1 线路后面)和大约两打每天使用网络的客户端来自不同的地方。

我们遇到过网络路由(在我们的控制范围之外)不允许人们访问我们的主要 OpenVPN 服务器而其他位置可以连接的情况。此外,任何时候办公室外的人想要从任何服务器(例如,一个 500 MB 的代码存储库)获取一些东西,如今高达 20 KB/s 的下载速度是不可接受的(我提到过慢速 DSL 吗?好吧)。我们不得不在这台服务器上实现流量整形,因为最大化这个连接是相当微不足道的。

我曾想过在网络中运行两个(或更多)OpenVPN 服务器。但是,它们必须具有相同的子网,因为我们的应用程序的某些核心功能依赖于虚拟网络的 IP 地址。客户端也最好保留相同的 IP 地址,但这并不重要。

为简单起见,我们将当前的服务器办公室和我正在设置的第二台服务器称为cloud。在 T1电话上呼叫服务器。

这被证明是相当复杂的,因为一旦我连接到,我就看不到办公室。当我连接到(没有 ping,什么都没有)时,通过办公室到服务器的任何路由也不起作用,反之亦然。iptables 也没有阻止流量的规则。

最近我在 linuxjournal 上看到这篇文章,但他们提供的解决方案似乎只涵盖了两台服务器的使用,而且有些过时(甚至找不到太多文档,他们的 wiki 已离线)。他们还指出,添加更多服务器将是一项复杂的任务。

理想情况下,我想让现有的服务器办公室运行虚拟网络,并在电话服务器(分别为 100 Mbit 和非常可靠的连接)上运行 OpenVPN 守护程序,以便我们在硬件故障的情况下处于安全状态, DSL 故障等。

因此,从本质上讲,我正在寻找一种高度可用的 OpenVPN 解决方案(修复、补丁、破解、调整,无论您想怎么称呼它),它可以接受多个主机(2 个或更多)上的连接,同时保持相同的 IP 地址子网无论您连接到哪个服务器。

感谢您阅读并为这篇长篇文章感到抱歉,我希望它能够说明问题:P

编辑:

我忘记提及的另一个重要部分是 3 个服务器需要在虚拟网络上具有一致的 IP 地址,因为我们的应用程序逻辑直接依赖于这些。客户端无关紧要,它们可以有任何地址,但服务器需要在它们之间进行通信。如果您知道不同的解决方案(可能是 10.8.0.* 内条目的某种 dns),请包含它。再次感谢。

编辑2:

添加了网络地图,这不是很好,但应该明白这一点。请注意,任何服务器要与任何其他服务器通信,它必须始终通过Office服务器。这是有意的,尽管我想将该功能更改为Cloud

网络地图

小智 5

我经常使用网络和 openvpn(在 ISP 中担任 10 多年的系统管理员)那么这个简单的解决方案怎么样。

在 dns 中创建条目,该条目将为一台主机提供 n 个 ip 地址(循环方式)

在 Openvpn 客户端中输入主机的远程名称,从而实现循环

vpn服务器上有两张网卡,一张连接公网ip(循环地址1),一张连接私有类。第二个服务器,不同的公共地址(循环地址2),相同的私有类。

创建将地址桥接到私有接口的 tap0 接口,使用单个 dhcp 来管理对您的客户端的寻址。

这样我认为你可以实现你想要的冗余..