imaginative Asked: 2010-02-06 13:36:06 +0800 CST2010-02-06 13:36:06 +0800 CST 2010-02-06 13:36:06 +0800 CST 冗余的openvpn配置 772 我有两个用于故障转移/高可用性目的的带有 carp 的 openbsd nat/防火墙盒。确保我计划在这些机器上运行的 OpenVPN 也能正常故障转移的最佳做法是什么? openvpn high-availability openbsd carp 2 个回答 Voted Best Answer Ryan B. Lynch 2010-02-15T20:20:33+08:002010-02-15T20:20:33+08:00 OpenVPN 不支持两个不同守护程序实例之间的任何类型的状态共享,所以不,您不能进行无缝故障转移。 但是,您始终可以配置您的客户端以优雅地处理服务器故障。如果这种冗余满足您的需求,您可以通过结合 OpenVPN 实际具有的两个功能来实现它: 1) 与服务器断开连接后自动重试,并且 2) 每次尝试都从预定义的列表中连接到随机选择的服务器。 基本思想是您可以运行两个(或三个或更多)OpenVPN 服务器,并将它们的所有 IP 地址或主机名添加到您的 VPN 客户端配置中。此外,客户端应快速重试,以最大程度地减少用户所经历的停机时间。当一个服务器出现故障时,客户端会轮流到其连接列表中的下一个地址,并且连接会在很短的时间内重新建立。 文档位于: http://openvpn.net/index.php/open-source/documentation/manuals/69-openvpn-21.html 特别是,您可能希望查看这些配置选项: 偏僻的 连接重试 连接重试最大值 远程随机 ifconfig-pool-persist 您应该能够在您可能已经使用的其他客户端/服务器选项的任意组合之上添加这些客户端选项。只要记住保持'connect-retry'低,'connect-retry-max'高(甚至可能无限),它应该工作得很好。 Colin 2010-02-10T11:20:43+08:002010-02-10T11:20:43+08:00 不丢失当前会话? 无论如何,您总是可以使用 ifstated(8) 来感知 CARP 降级并启动 OpenVPN 服务器。 实际上我不知道在 OpenVPN 服务器上同时运行 MASTER 和 SLAVE 是否会有任何问题。
OpenVPN 不支持两个不同守护程序实例之间的任何类型的状态共享,所以不,您不能进行无缝故障转移。
但是,您始终可以配置您的客户端以优雅地处理服务器故障。如果这种冗余满足您的需求,您可以通过结合 OpenVPN 实际具有的两个功能来实现它:
1) 与服务器断开连接后自动重试,并且 2) 每次尝试都从预定义的列表中连接到随机选择的服务器。
基本思想是您可以运行两个(或三个或更多)OpenVPN 服务器,并将它们的所有 IP 地址或主机名添加到您的 VPN 客户端配置中。此外,客户端应快速重试,以最大程度地减少用户所经历的停机时间。当一个服务器出现故障时,客户端会轮流到其连接列表中的下一个地址,并且连接会在很短的时间内重新建立。
文档位于:
特别是,您可能希望查看这些配置选项:
您应该能够在您可能已经使用的其他客户端/服务器选项的任意组合之上添加这些客户端选项。只要记住保持'connect-retry'低,'connect-retry-max'高(甚至可能无限),它应该工作得很好。
不丢失当前会话?
无论如何,您总是可以使用 ifstated(8) 来感知 CARP 降级并启动 OpenVPN 服务器。
实际上我不知道在 OpenVPN 服务器上同时运行 MASTER 和 SLAVE 是否会有任何问题。