OpenVPN之高可用集群
前言
OpenVPN可以实现客户端服务器模式实现虚拟专用网,对于这种模式来说,一旦server端挂掉,那么整个网络都将收到影响,那么有没有可以保证服务端高可用的方案呢?答案似乎是肯定的。
OpenVPN内置了一些高可用性和/或负载分担function,而且设置起来非常简单。首先,你将同时运行多个OpenVPN服务器,每个服务器都监听自己的IP地址。 服务器不共享状态,彼此不知道任何事情。然后,您可以在命令行或OpenVPN客户端的configuration文件中指定多个“–remote”选项。 当客户端有多个可用的远程服务器选项时,它将随机select一个并build立连接。 如果该服务器失败,将重新尝试连接,如果连接失败,则随机select其他服务器。
1.安装
这里有三台CentOS虚拟机:node01,node02,node03,使用 {post_link OpenVPN之Linux端搭建 OpenVPN之Linux端搭建 } 文章中提到的linux端安装配置OpenVPN的方法,三台虚拟机上同时安装了客户端和服务端,生成的客户端和服务端密钥,以node01上使用 ./easyrsa 命令生成的文件一样,三台都一样,即ca.crt、dh.pem、server.crt、server.key和ta.key等文件完全相同。
这里有需要注意的地方
(1) 三台服务器所有的keys,ca证书要相同,密钥和用户的证书等都要相同,把一份服务端keys拷贝到所有vpn server的服务器上,即:ca.crt、dh.pem、server.crt、server.key和ta.key等文件
(2) 三台服务器服务端配置文件要相同,即 server.conf 配置相同
(3) 三台服务器客户端配置相同,除了以下几点:
1 | ;远程服务地址和端口,会依次尝试连接 |
1.openvpn服务高可用的三种方案 这里的三种方案,实现openvpn server的高可用性:1.在vpn客户端使用多个配置文件实现(由用户选择拨号);2.通过在客户端配置文件实现负载均衡;3.通过域名加DNS轮询的方式实现负载均衡(DNS自动分配VPN)。
2.OpenVPN异地机房互连以及负载均衡高可用解决方案
3.OpenVPN部署搭建及高可用
4.高可用性的OpenVPN服务 这里讲了如何使用自带的remote进行自动选择服务器的功能。
2.固定IP
当使用集群部署之后,其中的一台作为server端的服务挂掉之后,与之相连的客户端会重新生成虚拟网卡,并分配不同的ip地址,如何设置生成固定IP地址呢?
可以使用配置服务端的 client-config-dir 目录,并增加 ifconfig-push 配置实现。这里的 node01,node02,node03,就是在生成客户端密钥时使用的客户端名称,和客户端crt和key的文件名同名。
1 | ## 新建文件 |
1.OpenVPN设置客户端固定IP ifconfig-push ${IP} ${NETMASK};“ifconfig-push 后面是紧跟着两个连续的成组IP地扯,以第一个为客户端的IP地扯” 这个不一定对,后面跟着掩码其实也是可以的。
2.给openvpn客户分配固定ip地址
问题
目前存在疑惑的地方,就是假如三台服务器node01,node02,node03,都安装了服务端和客户端,并配置了固定ip,其中node03不能开启server端,否在就会导致,node01连不上node03,但是更让我奇怪的是,node03开启服务端,node01连不上,但是node02却能够连的上,其中node03是在内网中,node01和node02都在阿里云上。