虚拟IP配置的核心是通过VRRP或Keepalived实现IP地址漂移,确保服务高可用,具体配置示例以Linux Keepalived最为常见,本文提供完整的配置步骤和场景解析。
虚拟IP配置示例:基于Keepalived的高可用实现
虚拟IP配置示例是运维人员必须掌握的技能之一,Keepalived通过VRRP协议实现主备节点间的IP漂移,广泛应用于服务高可用场景,下面直接进入配置核心。
虚拟IP配置前需理解的核心概念
在动手配置前,你要清楚虚拟IP(VIP)的作用,虚拟IP是一个逻辑IP,不绑定在特定物理网卡上,通过协议在主备节点间漂移,当主节点故障时,备节点自动接管VIP,保证服务不中断。
-
虚拟IP与物理IP
- 物理IP固定在一台服务器,虚拟IP可在多台间浮动。
- 虚拟IP通常用于高可用集群,对外提供统一访问入口。
-
VRRP协议
- 虚拟路由冗余协议,通过优先级决定谁持有VIP。
- 组播心跳检测,默认间隔1秒。
虚拟IP配置步骤详解
这里以两台CentOS 7服务器为例,演示虚拟IP配置的全过程,主节点ip为192.168.1.10,备节点为192.168.1.11,虚拟IP为192.168.1.100。
安装Keepalived
yum install -y keepalived
主节点配置
编辑/etc/keepalived/keepalived.conf:
global_defs {
router_id LVS_MASTER
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
192.168.1.100/24 dev eth0 label eth0:1
}
}
备节点配置
备节点除state改为BACKUP,priority设为90,其他相同:
global_defs {
router_id LVS_BACKUP
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
192.168.1.100/24 dev eth0 label eth0:1
}
}
启动服务
systemctl start keepalived systemctl enable keepalived
验证:在Master上执行ip addr show eth0,可以看到虚拟IP已经绑定,模拟故障,停止Master的keepalived,备节点会自动接管VIP。
虚拟IP配置常见问题与排查
虚拟IP配置过程中,可能遇到脑裂、VIP冲突等问题,行业共识认为,配置正确的优先级和认证密码是避免问题的关键。
-
脑裂问题
- 两个节点同时持有VIP,导致服务异常。
- 原因:心跳线故障或防火墙阻止VRRP通信。
- 解决:检查网络连通性,确保防火墙放行VRRP(协议号112)。
-
优先级设置不当
- 备节点优先级应低于主节点,否则可能抢占VIP。
- 据统计,多数配置错误源于优先级数值相同。
-
虚拟IP无法绑定
- 检查网卡名称和子网掩码是否正确。
- 尝试手动ifconfig临时绑定测试。
健康检查的配置示例
在生产环境中,Keepalived需要配合健康检查脚本,检测后端服务是否存活,在vrrp_instance中引用track_script,当服务异常时自动降权,触发VIP漂移。
vrrp_script chk_nginx {
script "/usr/bin/killall -0 nginx"
interval 2
weight 2
}
在vrrp_instance中添加:
track_script {
chk_nginx
}
这样,当Nginx进程挂掉,Keepalived会主动降权,备份节点接管VIP,实现服务级的高可用。
虚拟IP配置在不同场景下的应用
虚拟IP配置不仅限于Linux,在Windows、网络设备、云平台中也有广泛应用。
双机热备场景
最常见的应用,使用Keepalived或Heartbeat实现两台服务器的高可用,虚拟IP在三层以下切换,应用层无需改造。
负载均衡场景
LVS(Linux Virtual Server)中,虚拟IP作为负载均衡器入口,后端RS使用真实IP,配置时需注意虚拟IP必须配置在LVS调度器上,并开启ip_forward转发。
云平台虚拟IP配置
在简米云、酷番云等公有云中,虚拟IP通常通过控制台或API创建,简米云高可用虚拟IP需要与ECS实例绑定,并配置ARP表项。云环境下的虚拟IP配置与物理机略有不同,需要关注云平台的安全组策略。
不同配置方案的对比
| 配置方案 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| Keepalived | Linux高可用 | 配置简单,成熟稳定 | 需要后端服务健康检查脚本 |
| NLB | Windows | 图形化操作,集成度高 | 节点数限制 |
| 云平台VIP | 云环境 | 无需管理底层,自动迁移 | 依赖云平台 |
虚拟IP配置常见问题解答
虚拟IP配置后为什么无法ping通?
可能原因:虚拟IP未正确绑定到网卡,或者防火墙阻断了ICMP,检查步骤:在持有VIP的节点上执行ip addr show确认VIP存在,然后ping -c 3 VIP,如果本地通远程不通,检查对端路由和防火墙规则,确保虚拟IP与主IP在同一子网。
虚拟IP配置中如何实现跨网段漂移?
虚拟IP默认要求与物理IP在同一网段,否则需要配置静态ARP或使用Proxy ARP,跨网段场景下,可以考虑使用浮动IP与路由协议联动,或者在云平台中直接使用负载均衡器。多数情况下,跨网段虚拟IP配置复杂,需要网络设备支持。
虚拟IP配置与浮动IP有什么区别?
虚拟IP通常指通过VRRP/Heartbeat实现的IP漂移,而浮动IP多用于云平台,由SDN控制器分配,实例可在不同物理机间迁移,两者本质都是高可用IP,但实现机制不同,虚拟IP依赖二层协议,浮动IP依赖三层路由或SDN,据行业专家指出,在传统数据中心,虚拟IP仍是主流。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/551388.html




