You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KeepAlived与HAProxy主备架构中VIP重复出现问题求助

KeepAlived与HAProxy主备架构中VIP重复出现问题求助

各位大佬好,最近遇到个挺闹心的问题,想请大家帮忙分析下:

环境信息

  • Linux发行版:CentOS 9 Stream
  • HAProxy版本:HAProxy version 2.4.22-f8e3218
  • KeepAlived版本:Keepalived v2.2.8 (04/04,2023)

我用KeepAlived做主备模式来保护两台HAProxy负载均衡器,按照我的理解,VIP应该只会出现在一台机器上——主节点在线时在主节点,主节点故障时切换到备节点,主节点恢复后再切回去。但现在的情况是主备两台机器上同时存在VIP 192.168.1.20,虽然主节点故障时切换能正常工作,主节点恢复后业务也没受影响,但这个状态肯定不对,总觉得配置哪里有问题,心里不踏实。

当前节点IP状态

  • 主节点执行sudo ip a | grep ens192的输出:
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.1.17/24 brd 192.168.1.255 scope global noprefixroute ens192
**inet 192.168.1.20/32** scope global ens192
  • 备节点执行sudo ip a | grep ens192的输出:
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.1.19/24 brd 192.168.1.255 scope global noprefixroute ens192
**inet 192.168.1.20/32** scope global ens192

主节点KeepAlived配置

global_defs {
    router_id LB-01
}

vrrp_script haproxy {
    script "killall -0 haproxy"
    interval 2
    weight 2
}

vrrp_instance 50 {
    virtual_router_id 50
    advert_int 1
    priority 150
    state MASTER
    interface ens192
    virtual_ipaddress {
        192.168.1.20
    }
    track_script {
        haproxy
    }
}

备节点KeepAlived配置

global_defs {
    router_id LB-02
}

vrrp_script haproxy {
    script "killall -0 haproxy"
    interval 2
    weight 2
}

vrrp_instance 50 {
    virtual_router_id 50
    advert_int 1
    priority 50
    state BACKUP
    interface ens192
    virtual_ipaddress {
        192.168.1.20
    }
    track_script {
        haproxy
    }
}

我之前看到过有说法说主备的priority值得相差50以上,现在我设的主节点150、备节点50,差了100,应该满足要求;而且两边的virtual_router_id都是50,是一致的。实在搞不懂为啥会出现双VIP的情况,有没有大佬能给分析下可能的原因,或者提供下排查方向?

备注:内容来源于stack exchange,提问作者Chelle-Belle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 12:43:28