使用OpenVPN服务器进行故障转移或复制?

是否有可能实现两个OpenVPN的故障转移和复制function? 如果其中一个发生故障,另一个可用于authentication,服务器/客户端configuration等。

故障转移? 是的,我一直这样做,使用心跳和CRM。 试图复制或保存国家是不值得的。 当故障转移发生时,所有连接的客户端都将重新进行authentication,这对于公路战士来说是很好的。 对于站点到站点的VPN来说这不是好事,但是对于这些VPN来说,(imho)OpenVPN是错误的工具。

我不明白为什么要从大炮射向苍蝇。 IHMO有一个更简单的方法:使用内置的OpenVPNfunction和linux iproute2来实现多path冗余。 我会更安全,更稳定,更省资源。

资料来源: https : //openvpn.net/index.php/open-source/documentation/howto.html

实施负载平衡/故障转移configuration客户端

OpenVPN客户端configuration可以引用多个服务器进行负载平衡和故障转移。 例如:

remote server1.mydomain remote server2.mydomain remote server3.mydomain 

将指示OpenVPN客户端尝试与服务器1,服务器2和服务器3的顺序连接。 如果现有的连接中断,OpenVPN客户端将重试最近连接的服务器,如果失败,将移动到列表中的下一个服务器。 您还可以指示OpenVPN客户端在启动时随机化其服务器列表,以便客户端负载将在服务器池中概率分布。

 remote-random 

如果您还想要DNSparsing失败导致OpenVPN客户端移动到列表中的下一个服务器,请添加以下内容:

 resolv-retry 60 

60参数告诉OpenVPN客户端尝试parsing每个远程DNS名称60秒,然后再转到列表中的下一个服务器。

服务器列表还可以指在同一台计算机上运行的多个OpenVPN服务器守护进程,每个守护进程监听不同端口上的连接,例如:

 remote smp-server1.mydomain 8000 remote smp-server1.mydomain 8001 remote smp-server2.mydomain 8000 remote smp-server2.mydomain 8001 

如果您的服务器是多处理器机器,从性能的angular度来看,在每台服务器上运行多个OpenVPN守护进程可能是有利的。

OpenVPN也支持引用DNS域名的远程指令,该域名在域的区域configuration中有多个Alogging。 在这种情况下,每次parsing域时,OpenVPN客户端都会随机select一个Alogging。 服务器

在服务器上进行负载平衡/故障转移configuration的最简单方法是在群集中的每个服务器上使用等效的configuration文件,但为每个服务器使用不同的虚拟IP地址池。 例如:

服务器1

 server 10.8.0.0 255.255.255.0 

服务器2

 server 10.8.1.0 255.255.255.0 

server(服务器)

 server 10.8.2.0 255.255.255.0