V2EX 07月30日 08:08
[宽带症候群] 复杂组网软件 Softether VPN 集群方法
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入研究了SoftEther的集群模式,并进行了实际实验。文章详细阐述了集群模式下的拓扑结构、配置要点以及实现效果,重点在于如何通过集群提供不间断的VPN服务和自动故障转移。实验表明,集群控制器作为核心,成员服务器提供服务冗余。文章还探讨了在单一公网IP环境下实现集群高可用的配置方法,包括路由器端口映射的细节,并对比了静态Hub与动态Hub的差异及其对桥接和SecureNAT功能的影响。最后,文章强调了集群控制器单点故障的局限性,为读者提供了宝贵的实践经验。

✨ **集群架构与高可用实现**:SoftEther集群模式下,一个控制器(如SoftEther1)负责管理,多个成员服务器(如SoftEther2-4)提供服务。客户端连接控制器,控制器将请求转发给成员服务器。当某个成员服务器宕机时,客户端会自动连接到其他正常工作的成员服务器,从而实现VPN服务的不间断和高可用性。

🌐 **单一公网IP下的集群配置**:在仅有一个公网IP的场景下,需要通过路由器进行端口映射来构建集群。集群控制器(SoftEther1)的端口可随意映射,但成员服务器(SoftEther2-4)的VPN端口必须一对一映射且端口号不能重复。在集群设置中,成员服务器的公网IP应配置为相同的公网IP,但端口列表需填写各自的映射端口,以确保客户端能够正确连接。

🛠️ **Hub创建模式的差异**:集群模式下Hub的创建与管理需在控制器上进行。静态Hub会在所有成员服务器上创建并保持存在,支持桥接操作。动态Hub则在客户端连接时才在目标成员服务器上动态创建,不支持桥接,且使用SecureNAT时仅支持DHCP功能,无法进行NAT转换。

⚠️ **集群控制器的单点故障**:虽然集群模式可以实现成员服务器的冗余和负载均衡,但集群控制器本身没有冗余机制。一旦集群控制器发生故障,整个集群将无法提供容灾和负载均衡服务,这是集群模式的一个重要局限性。

上星期五摸鱼没什么事做研究了一下 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 功能。
最后重要的一点就是集群功能配置的控制器只能有一个,也就是当集群控制器挂掉时就无法容灾和负载均衡了。成员服务器有冗余但是集群控制器是没有冗余的。
还有些没有写清楚的可以提出来讨论

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

SoftEther VPN 集群模式 高可用 容灾
相关文章