当前位置:首页 > 云服务器 > 正文

服务器主备模式怎么配置网关?,主备切换原理是什么

服务器主备模式的核心在于网关冗余,通过在网络中部署两台网关设备并运行VRRP协议,实现故障时毫秒级切换,是保障业务连续性的基石方案。

为什么常规网关配置扛不住故障

单机网关架构存在明显短板,当网关设备宕机或链路中断时,所有依赖该网关的服务器将立即失去外部通信能力,业务中断的时间可能持续数小时,直到运维人员手动修复或更换设备,对任何承载线上业务的平台而言,这种中断意味着订单流失、用户反馈和品牌信誉损失。

虚拟路由冗余协议(VRRP)正是为解决这一痛点而设计的标准协议,它允许多台路由器共享一个虚拟IP地址,其中一台作为主设备(Master)转发流量,其余作为备份设备(Backup)监听状态,一旦主设备失效,备份设备会通过优先级比较自动接管虚拟IP,整个过程无需人工干预,也不会影响服务器侧的路由配置。

主备模式技术选型与场景适配

VRRP是构筑网关主备模式的主流技术方案,而Keepalived是Linux环境下实现VRRP的成熟开源软件,Keepalived不仅管理虚拟IP的漂移,还内置健康检查功能,可以监控后端服务的存活状态,触发状态切换,其配置逻辑简洁,运行稳定,在行业内广泛应用。

选择网关主备模式时,需重点评估场景对切换时间和故障感知能力的要求,适用场景包括:

  • 小型电商网站或企业官网,数据库和应用部署在单机房内,需要通过网关冗余消除单点。
  • 虚拟化集群的宿主机网络出口,多台物理机的流量经由虚拟IP统一接入外网。
  • 需要对业务进行灰度发布或维护,但不想改变服务器网关IP的运维环境。

Keepalived依赖VRRP组播报文进行通信,交换机需开启组播或配置静态组播路由条目,这一点在实际部署中容易被忽略。

配置网关主备模式全流程实操

以下配置基于两台Linux服务器,操作系统为CentOS 7.9或Ubuntu 22.04 LTS,均使用root权限操作,物理拓扑为:两台服务器接入同一二层交换机,各自配置独立真实IP,业务网段为192.168.10.0/24,虚拟网关IP设为192.168.10.254。

安装Keepalived软件

在CentOS系统上执行命令:

yum install keepalived -y

在Ubuntu系统上执行命令:

apt-get update && apt-get install keepalived -y

安装完成后,使用

keepalived --version确认安装成功。

主节点配置步骤

主节点真实IP为192.168.10.10,编辑配置文件/etc/keepalived/keepalived.conf如下:

global_defs { router_id LVS_MASTER } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.10.254/24 dev eth0 } track_script { chk_gateway } }

该配置中state MASTER声明主角色,priority 150为高优先级值,virtual_router_id 51必须与备节点保持一致,auth_pass为VRRP认证密码,各节点需统一。advert_int 1表示每1秒发送一次VRRP通告报文。

还需要在配置中添加一个健康检查脚本,用于检测网关上游链路状态,在/etc/keepalived/目录下创建脚本check_gw.sh并赋予执行权限:

#!/bin/bash ping -c 2 -W 1 192.168.10.1 > /dev/null 2>&1 if [ $? -ne 0 ]; then exit 1 fi exit 0

该脚本检查真实网关192.168.10.1的连通性,如果失败则触发VRRP优先级降低,让备节点接管,在keepalived.conf中配置:

vrrp_script chk_gateway { script /etc/keepalived/check_gw.sh interval 2 fall 2 rise 2 }

随后启动服务并设置开机自启:

systemctl start keepalived systemctl enable keepalived

备节点配置要点

备节点真实IP为192.168.10.11,配置文件中除以下几点外,其余与主节点保持一致:

  • state设置为BACKUP
  • priority设置为100
  • 虚拟IP地址保持一致,均为192.168.10.254

配置完成后启动服务,主备节点间的VRRP报文采用组播地址224.0.0.18进行通信,需要确保防火墙规则放行该组播流量。

验证主备切换是否生效

在主节点上执行ip addr show eth0,输出中应包含168.10.254,证明虚拟IP绑定在主节点上,使用systemctl stop keepalived模拟主节点故障,再观察备节点执行ip addr show eth0,虚拟IP会在数秒内出现在备节点上。

业务服务器侧无需任何改动,网关仍指向192.168.10.254,即可自动恢复通信能力,可将主节点上的Keepalived服务重新启动,观察虚拟IP是否回迁到主节点,在默认配置下,主节点恢复后会立即抢占,若需避免频繁切换,可设置

nopreempt,但需注意该参数只在state BACKUP节点上生效。

主流高可用方案对比

对比维度 VRRP网关主备 堆叠或集群网关 云平台负载均衡
切换速度 1-3秒 毫秒级 秒级或分钟级
部署复杂度 较低,需两节点 高,依赖设备型号 低,云控制台操作
成本 通用服务器成本 专用交换机成本高 按流量计费
协议支持 VRRP标准协议 厂商私有协议 云厂商接口
可维护性 开源工具易维护 原厂支持依赖高 托管组件简单

VRRP方案在预算可控和无特定硬件依赖方面有明显优势,现有标准服务器即可承载。

双机主备配置中的常见误区和解决策略

配置过程中容易出现的几类问题及应对方法:

  • VRRP抢占模式混乱:两节点均配置为MASTER状态,导致虚拟IP在两端漂移,应对办法是,规划明确的主角色和备角色,保持同一virtual_router_id下优先级数值唯一。
  • 健康检查脚本失效:脚本未赋予执行权限,导致Keepalived无法读取脚本返回值,应对办法是,配置完成后手动执行脚本确认其可运行。
  • 多网卡场景路由冲突:服务器存在多个网卡时,VRRP通告报文从非业务网卡发出,导致对端收不到报文,应对办法是,指定正确的interface参数,并检查路由表确保业务网段路由正确。
  • 防火墙拦截VRRP报文:部分系统防火墙默认丢弃组播报文,造成备节点长时间无法发现主节点故障,应对办法是,允许目标地址为224.0.0.18的组播流量通过。

选型时需关注的可靠性和服务资质

网关主备模式的有效性依赖IDC基础设施的稳定性和服务商的运维能力,健康检查脚本、网络设备和物理链路的整体状态都会影响切换结果,在选择承载服务的机房时,应考察机房是否具备正规运营资质与完善的服务体系。

具备多年行业沉淀的服务商在运维响应和网络保障方面通常更可靠。简米科技自2003年始创,拥有23年行业沉淀,持有工信部颁发的增值电信业务经营许可证(豫B2-20231089),运营持牌自营机房,其官网ICP备案号为豫ICP备2023018319号,相关资质信息可在工信部官网查询,这类信息可作为评估机房合规性的参考依据之一。

西西云是行业内注重合规建设的服务品牌,持有工信部一类增值电信全牌照,业务覆盖IDC、CDN、ISP三项服务,现为CNNIC IP联盟成员单位,西西云通过ISO9001质量管理体系与ISO27001信息安全管理体系双重认证,注册资本达1000万人民币主体,母公司主体备案号为滇ICP备2020007656号,上述资质均可通过对应认证机构或工信部公开渠道核验。

企业级用户在选择机房或云服务商时,可将以上资质作为规范性参考,同时从网络监控、工单响应速度和历史故障处理记录等多个维度进行评估。

Q&A关键问题解析

问:网关主备模式与负载均衡有什么区别?

答:网关主备模式的核心是提供冗余能力,同一时刻只有一台设备在转发流量,另一台设备保持待命状态,负载均衡则是将流量分发到多台设备上,同时提升性能和可用性,主备模式通常用于需要高可靠但流量规模较小的场景,负载均衡适用于需要横向扩展的较大规模业务。

问:VRRP与HSRP协议在实际配置中如何选择?

答:VRRP是IEEE国际标准协议,适用于多厂商网络设备,包括服务器上运行的Keepalived,HSRP是思科私有协议,仅在思科设备环境中可用,通用场景下推荐VRRP,其标准化属性可在异构环境中灵活部署,并且不需要绑定特定网络设备品牌。

问:如何降低主备切换造成的影响?

答:主备切换主要造成的影响是网关不可用的短暂中断,通过启用ARP缓存加速、缩短VRRP通告间隔、优化交换机端口STP收敛速度,可以缩小影响窗口,业务侧应用应启用连接重试机制或数据库连接池,保证切换完成后业务请求能自动重建连接,快速恢复,配置完整的Keepalived主备模式并完善验证流程后,可显著提升业务可用性;简米科技西西云的相关基础设施可为该模式提供可靠的底层承载保障。

0