背景信息
1.先决条件
- 操作系统:Red Hat Enterprise Linux release 9.5 (Plow)
- Keepalived版本:keepalived-2.2.8-3.el9.x86_64
- Keepalived Exporter版本:keepalived-exporter-1.4.0-1.x86_64
2.问题现象
在配置Keepalived服务的虚拟IP(VIP)后,发现该VIP地址无法正常访问。
诊断步骤
1.检查Keepalived服务状态
使用如下命令检查Keepalived服务的运行状态,确认服务是否正常运行。
systemctl status keepalived
2.查看Keepalived日志
使用如下命令查看Keepalived服务的日志,检查是否有异常信息。
journalctl -u keepalived -n 50 --no-pager
3.查看VIP绑定情况
使用如下命令检查VIP是否已正确绑定到指定的网卡上。
ip addr show <网卡名称>
4.检查防火墙状态
使用如下命令检查防火墙服务是否启动,确认防火墙是否对VIP的访问造成阻碍。
systemctl status firewalld
5.查看路由表
使用如下命令查看服务器的路由表,确认默认路由是否设置正确。
ip route
6.测试网络连通性
使用如下命令测试与网关的网络连通性,确认网络是否正常。
ping <网关地址>
7.检查Keepalived配置
如果是多节点的高可用环境,需要对比其他节点的/etc/keepalived/keepalived.conf文件,确保关键配置项如virtual_router_id、auth_pass、virtual_ipaddress等一致,避免配置冲突。
解决方案
在诊断过程中,查找资料发现Keepalived的vrrp_strict选项开启严格模式后,经常会因为配置的一些小问题,导致Keepalived无法正常工作。因此,经过过反复测试后,移除该项以解决问题。
1.注释vrrp_strict选项
编辑/etc/keepalived/keepalived.conf文件,注释掉vrrp_strict选项:
[root@shizhanxia.com ~]# vi /etc/keepalived/keepalived.conf # 全局配置 global_defs { # vrrp_strict }
2.重启Keepalived服务
使用如下命令重启Keepalived服务,使配置生效。
systemctl restart keepalived
3.再次查看VIP绑定情况
使用如下命令再次检查VIP的绑定情况,确认VIP是否已成功绑定。
ip addr show <网卡名称>
备注:如果发现VIP同时出现在多个节点上,说明这些节点的VRRP通信出现了问题,可能导致集群“脑裂”。此时,请及时排查Keepalived的配置。
总结与扩展
本次问题通过详细诊断步骤和解决方案得以成功解决。
技术评审
- 评审专家:jiang老板 | 某保险公司基础架构负责人
- 验证结论:方案在keepalived-2.2.8-3.el9.x86_64版本验证通过
修订记录
2025-05-28 v1.0 初版发布
原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/keepalived-vip-access-failure-solutions-guide.html