我有两个openbsd NAT /防火墙与鲤鱼故障转移/高可用性的目的。 最好的做法是确保我打算在这些盒子上运行的OpenVPN能够优雅地失败。
OpenVPN不支持两种不同守护进程实例之间的任何forms的共享,所以不支持,无法进行无缝故障切换。
但是,您始终可以configuration您的客户端以优雅地处理服务器故障。 如果这种冗余满足您的需求,您可以通过结合OpenVPN实际上具有的两个function来实现它:
1)在与服务器断开连接后自动重新尝试,以及2)从每个尝试的预定义列表连接到随机select的服务器。
基本的想法是,你可以运行两个(或三个或更多)的OpenVPN服务器,并将所有的IP地址或主机名添加到你的VPN客户端configuration中。 此外,客户应该尽快重新尝试,以最大限度地减less用户遇到的停机时间。 当一台服务器发生故障时,客户端将转到下一个地址,连接重新build立。
该文档可从以下url获得:
特别是,你可能会想看看这些configuration选项:
您应该能够在客户端添加这些选项,而不是您可能已经使用的其他客户端/服务器选项的任意组合。 只要记住保持“连接重试”低,“连接重试最大”高(甚至可能无限),它应该工作得很好。
不失去目前的会议?
无论如何,你总是可以使用ifstate(8)来感知CARP降级,并启动OpenVPN服务器。
其实我不知道在同时运行OpenVPN服务器的MASTER和SLAVE是否会有问题。