上星期五摸鱼没什么事做研究了一下 softether 的集群模式,网络上面搜索看了看也没有找到使用 softether 的集群教程。翻阅了官方的文档和手动配置看看做了如下实验本想当天发的奈何懒癌发作拖到今天摸鱼才想写一下,由于实验环境已经删掉了就直接写了。
拓扑图如下
softether1-4 为集群,softerher1 为集群控制器不承担提供会话服务,如图所示
softether2-4 为成员服务器,右边的 softether 为客户端,左边的 VPC7 和右边的 VPC8 为同一网段的主机手动设置 IP 为 192.168.1.100 和 192.168.1.200 。Softether2-4 的 eth7 端口和交换机连接,eth7 均和内置的 VPNhub 进行直接桥接,右边的 softether 相同。最终实现的效果可以达到 VPC7 和 VPC8 同一网段互访不间断,不管哪一个成员服务器挂掉都会自动连接到其余的正常成员服务器上。
配置就不在做了,全部是图形界面配置。简单说一下结论。
1 、全部 softether1-4 接口均配置为公网的情况下,客户端连接目的地址为集群控制器的地址,连接开始后客户端发送数据给集群控制器,集群控制器会从成员服务器中挑选一个成员地址返回给客户端侧去链接,该地址和端口为成员服务器手动配置的如图
由成员服务器主动上报。此时就实现了集群容灾和冗余,当客户端已连接的成员服务器挂掉时,此时客户端会重新和集群服务器建立请求拿到新的成员服务器地址后再和新的成员地址建立链接保证 vpn 的高可用
2 、在只有一个公网 IP 模式下时想做集群高可用需要路由器做端口映射
例如 softer1 集群控制器地址 110.110.110.1 端口 5555 ,需要再路由器上面做端口映射。此时由于 softether1 并不承担 vpn 会话功能所以此端口可以随意映射。但是成员服务器必须一对一端口映射且成员端口不能重复,如 softether2 110.110.110.2 2222 就要映射成 公网 x.x.x.x 端口 2222 ,softether3 110.110.110.3 3333 就要映射成 公网 x.x.x.x 端口 3333 保证客户端在拿到链接地址和端口后能正常链接。
此时 softether2-4 在集群设置中的公网 IP 地址均需要配置成一样的就是你的公网 IP ,端口列表需要配置不同的,保证成员使用的不同的端口来做区分。这时客户端连接的就是你的公网 IP+2222 端口或者公网 IP+3333 端口这种。
3 、在做了集群后 hub 的创建和管理均需要在集群服务器上面进行操作,成员服务器模式下是无法进行操作的。做了集群后 hub 的创建会有 2 种模式如下图
一个是静态 hub 一个是动态 hub ,区别是静态 hub 创建后会在所有成员服务器上面存在,此时进行桥接操作是没有问题的。而动态 hub 是只有当客户端进行连接后此时才会在链接的成员服务器上面进行自动创建,由于是动态创建所以桥接的设置是无法进行的。还有一个区别是当采用动态 hub 的时候使用 securtnat 服务是无法进行 nat 的使用的只能使用 dhcp 功能而无法使用 nat 功能。
最后重要的一点就是集群功能配置的控制器只能有一个,也就是当集群控制器挂掉时就无法容灾和负载均衡了。成员服务器有冗余但是集群控制器是没有冗余的。
还有些没有写清楚的可以提出来讨论