阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Keepalived两节点出现双VIP情况及解决方法

605次阅读
没有评论

共计 2011 个字符,预计需要花费 6 分钟才能阅读完成。

一.现象

安装有 keepalived 的两节点服务器 10.11.4.186/187,主要做高可用,设定 VIP10.11.4.185。

  1. 首先启动 10.11.4.186 的 keepalived 服务,服务启动正常,VIP 生成正常;
  2. 但在启动 10.11.4.187 的 keepalived 服务后,也能获得 VIP;
  3. 外部访问 VIP 正常,从 arp 的效果看,对外提供服务仍是 10.11.4.186 节点。

Keepalived 两节点出现双 VIP 情况及解决方法

Keepalived 两节点出现双 VIP 情况及解决方法

Keepalived 两节点出现双 VIP 情况及解决方法

二.问题原因 

1. 查看日志 

查看 10.11.4.187 的日志发现,其上 keepalived 服务刚启动后不久就进入 master 模式,获得 VIP;同时查看 10.11.4.186 的日志,并没有任何异常。

初步判断是两边的协商机制出问题(vrrp),10.11.4.187 backup 节点与 10.11.4.186 主节点协商不成功,认为主节点故障,切换升主。

Keepalived 两节点出现双 VIP 情况及解决方法

2. 验证分析

验证

# 采用 tcpdump 抓包定位问题,以下是在 10.11.4.186 主节点的抓包结果
[root@psql_master ~]# tcpdump -i eth0 vrrp -n

Keepalived 两节点出现双 VIP 情况及解决方法

# 以下是在 10.11.4.187 备节点的抓包结果
[root@psql_standby ~]# tcpdump -i eth0 vrrp -n

Keepalived 两节点出现双 VIP 情况及解决方法

分析

  1. 10.11.4.186/187 主 / 备节点轮流在对外发布 vrrp 通告(vrrp 通告地址 224.0.0.18),理论上备节点如果收到主节点的通告,通告中优先级高于自己,就不会主动对外发送通告;
  2. 查看 iptables,默认没有允许 vrrp 或者组播流量,导致备节点收不到主节点的通告,认为主节点故障,切换状态,发布 VIP。 

三.解决方案

1. 配置 iptables 

# 配置 iptables,允许 vrrp 流量,或者允许组播流量
[root@psql_standby ~]# vim /etc/sysconfig/iptables
-A INPUT -p vrrp -j ACCEPT
# 或者:-A INPUT -m pkttype --pkt-type multicast -j ACCEPT

# 重启 iptables:
[root@psql_standby ~]# service iptables restart

放开 iptables 策略后,tcpdump 抓包发现:备节点 10.11.4.187 收到更高级的通告,已不再主动向外发 vrrp 通告。

Keepalived 两节点出现双 VIP 情况及解决方法

2. 设置 vrrp 单播通告(未验证)

# 如果两节点的上联交换机禁用了组播,则只能采用 vrrp 单播通告的方式
[root@psql_master ~]# vim /etc/keepalived/keepalived.conf

   priority 100
    unicast_src_ip  10.11.4.186         ##source ip
    unicast_peer {10.11.4.187               ##dest ip
    }

[root@psql_standby ~]# vim /etc/keepalived/keepalived.conf

   priority 90
    unicast_src_ip  10.11.4.187         ##source ip
    unicast_peer {10.11.4.186               ##dest ip
    }

一些关于 Keepalived 相关教程集合

CentOS 7 下 Keepalived + HAProxy 搭建配置详解  http://www.linuxidc.com/Linux/2017-03/141593.htm

Keepalived 高可用集群应用场景与配置 http://www.linuxidc.com/Linux/2017-03/141866.htm

Nginx+Keepalived 实现站点高可用  http://www.linuxidc.com/Linux/2016-12/137883.htm

Nginx+Keepalived 实现站点高可用(负载均衡)  http://www.linuxidc.com/Linux/2016-12/138221.htm

构建高可用集群 Keepalived+Haproxy 负载均衡 http://www.linuxidc.com/Linux/2016-12/138917.htm

CentOS6.5 下 Keepalived 高可用服务单实例配置 http://www.linuxidc.com/Linux/2016-12/138110.htm

Keepalived 安装与配置 http://www.linuxidc.com/Linux/2017-02/140421.htm

Nginx 之 Keepalived 高可用  http://www.linuxidc.com/Linux/2017-05/143708.htm

Linux 下 Keepalived 服务安装文档  http://www.linuxidc.com/Linux/2017-03/141441.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147537.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2011字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中