Keepalived VIP ping 不通

在使用 Keepalived 实现虚拟 IP(VIP)高可用的过程中,有时会遇到这样一个问题:

Master 节点成功绑定了 VIP,状态正常

但从外部主机无法 ping 通 VIP,也无法访问服务

本文将分析问题根源,并给出 3 种实际有效的解决办法。


💡 环境信息

  • 系统环境:CentOS / RHEL / Ubuntu 等
  • Keepalived 版本:v2.2.4

❗问题表现

在 Keepalived 配置完成、Master 节点绑定 VIP 后,从本机可以看到 VIP 存在:

css 复制代码
ip a | grep <VIP>

但从其他主机 ping VIP 不通,服务如 kube-apiserver(端口 6443)也无法访问。

抓包发现:VIP 收到了请求(ICMP/TCP SYN),但没有回应。


🔍 问题根源:vrrp_strict 模式导致 VIP 不响应

从 Keepalived v2.0 开始,默认启用了一个参数:

复制代码
vrrp_strict

该参数的作用是 严格遵守 VRRP 协议规范。但在 Linux 下,它反而可能导致:

  • VIP 无法响应外部请求(ICMP/TCP/UDP)
  • 影响服务可用性

⚠️ 开启 vrrp_strict 会导致以下行为:

  1. 禁止配置 VIP 为 0 个

  2. 禁止单播邻居

  3. 禁止 vrrp_version 2 使用 IPv6

  4. 禁止使用认证(配置无效)

  5. VIP 不会响应流量,除非满足以下条件:

    • 优先级为 255
    • 使用 vrrp_version 3 且开启 accept 模式

✅ 解决方法

我们根据不同场景,提供 3 种实用解决方案:


方案一:禁用 vrrp_strict(推荐 ✅)

在配置文件中显式关闭此参数:

arduino 复制代码
vrrp_strict false 

或直接注释

添加位置:global_defs 段或 vrrp_instance 前均可

示例配置:

kotlin 复制代码
global_defs {
   router_id LVS_DEVEL
   vrrp_strict false
}

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
    }
}

效果:

  • VIP 能正常响应外部请求(包括 ping、服务端口等)
  • 配置简单,行为直观

方案二:使用 vrrp_version 3 + accept 模式

kotlin 复制代码
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    version 3
    accept
    virtual_ipaddress {
        192.168.1.100
    }
}

注意事项:

  • accept 是 vrrp3 特有的选项
  • 要确保所有节点的 keepalived 都支持 v3
  • 兼容性略差于方案一

方案三:设置优先级为 255(不推荐 ⚠️)

kotlin 复制代码
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 255
    ...
}

问题:

  • 所有节点设置 255 会导致无法明确主备切换
  • VRRP 会频繁抢占,主备不稳定

适用于 VIP 绑定固定主机的场景 ,但 不适合高可用生产环境


🛠️ 补充建议

1. 确认 VIP 是否绑定成功:

css 复制代码
ip a | grep 192.168.197.61

2. 启动 Keepalived 后观察日志:

复制代码
journalctl -u keepalived -f

3. 绑定后主动发送 ARP 广播(可选):

css 复制代码
arping -U -I eth0 -c 3 192.168.197.61
相关推荐
mCell9 小时前
你以为短链接只是 Hash + 301/302?
后端·算法·架构
记忆停留w10 小时前
从单体到微服务:Redis 协同 MySQL、Milvus、MinIO 搭建企业级RAG/AI Agent脚手架架构
大数据·人工智能·redis·微服务·ai·架构·milvus
财财源源10 小时前
.NET 程序保护实战系列01-流水线架构与保护引擎总览
架构·.net
KaMeidebaby10 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
深圳恒讯11 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
龙亘川12 小时前
开源本地 AI 智能体网关 OpenClaw 深度实践:架构解析、全场景部署与自动化落地指南
人工智能·架构·开源·openclaw
Sirius Wu14 小时前
OpenClaw(UpClaw)三层Tool全链路治理深度详解
网络·人工智能·架构·aigc
QN1幻化引擎15 小时前
给 AI 做一次「意识体检」——基于 QN1 幻化引擎的灵鉴意识识别框架与 DalinX V5 实测
大数据·数据结构·人工智能·算法·架构
heimeiyingwang16 小时前
【架构实战】分库分表实战:ShardingSphere与中间件选型
中间件·架构
柒和远方16 小时前
从审计日志到可下载证据包:事务型 Outbox、租约 fencing 与保留水位
前端·后端·架构