Keepalived两节点出现双VIP的情况
一.现象
安装有keepalived的两节点服务器10.11.4.186/187,主要做高可用,设定VIP10.11.4.185。
- 首先启动10.11.4.186的keepalived服务,服务启动正常,VIP生成正常;
- 但在启动10.11.4.187的keepalived服务后,也能获得VIP;
- 外部访问VIP正常,从arp的效果看,对外提供服务仍是10.11.4.186节点。



二.问题原因
1. 查看日志
查看10.11.4.187的日志发现,其上keepalived服务刚启动后不久就进入master模式,获得VIP;同时查看10.11.4.186的日志,并没有任何异常。
初步判断是两边的协商机制出问题(vrrp),10.11.4.187 backup节点与10.11.4.186 主节点协商不成功,认为主节点故障,切换升主。

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

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

分析
- 10.11.4.186/187 主/备节点轮流在对外发布vrrp通告(vrrp通告地址224.0.0.18),理论上备节点如果收到主节点的通告,通告中优先级高于自己,就不会主动对外发送通告;
- 查看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通告。

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两节点出现双VIP的情况的更多相关文章
- Keepalived两节点出现双VIP情况及解决方法【原创】
1.故障现象 俩台服务器keepalived的vip在俩台服务器同时出现 A:10.70.12.72 B:10.70.12.73 2.问题分析 1).先分析那台服务器在提供服务 A:10.70.12. ...
- nginx+keepalived+tomcat+memcache实现双VIP高可用及Session会话保持
Nginx+Keepalived+Tomcat+Memcached 实现双VIP负载均衡及Session会话保持 IP 信息列表: 名称 IP ...
- keepalived主备节点都配置vip,vip切换异常案例分析
原文地址:http://blog.51cto.com/13599730/2161622 参考地址:https://blog.csdn.net/qq_14940627/article/details/7 ...
- keepalived两台机器同时出现vip问题
配置文件: 主:192.168.1.14 ! Configuration File for keepalived global_defs { script_user root enable_scrip ...
- veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况
veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况 续接前几篇文章: 1.GoldenGate配置(一)之单向复制配置 地址:点击打开链接 2.GoldenGate配置( ...
- keepalived + haproxy 实现web 双主模型的高可用负载均衡--转
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...
- MySQL5.7 利用keepalived来实现mysql双主高可用方案的详细过程
Reference: http://blog.csdn.net/mchdba/article/details/51377989 服务器准备 Keepalived:192.168.13.15 Keep ...
- 二叉树系列 - 求两节点的最低公共祖先,例 剑指Offer 50
前言 本篇是对二叉树系列中求最低公共祖先类题目的讨论. 题目 对于给定二叉树,输入两个树节点,求它们的最低公共祖先. 思考:这其实并不单单是一道题目,解题的过程中,要先弄清楚这棵二叉树有没有一些特殊的 ...
- 二叉树中两节点的最近公共父节点(360的c++一面问题)
面试官的问题:写一个函数 TreeNode* Find(TreeNode* root, TreeNode* p, TreeNode* q) ,返回二叉树中p和q的最近公共父节点. 本人反应:当时有点 ...
随机推荐
- Facade(外观)模式
1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性.例子1:一个电源总开关可以控制四盏灯.一个风扇 ...
- linux系统安装redis服务器与php redis扩展
一 安装redis服务 1更新yum源 CentOS/RHEL 7.x: rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-lat ...
- 【CSS-移动端响应式布局详解】
背景 移动端响应式布局开发主要方案有: 基于rem开发 基于媒体查询 基于弹性盒 基础概念 在讨论响应式布局知识前,先了解下移动端常用基础概念. 逻辑像素(CSS pixels) 浏览器使用的抽象单位 ...
- 小程序发微信红包后端Nodejs实现
前提条件 1.有一个微信开放平台 https://open.weixin.qq.com/ 2.有一个微信公众平台 https://mp.weixin.qq.com 并且开通微信支付 3.有一个微信小 ...
- Ubuntu下VsCode+CMake 交叉编译
在安装配置好VsCode后,下载相关插件.如图: 其中CMake Tools是为了方便使用CMake的扩展工具. 在创建工程前,先在VSCode打开一个空的目录(你的Project目录),再对CMak ...
- 两种方法实现Linux不活动用户登录超时后自动登出
在平常的工作中,windows系统使用的比较多一些,身边的很多同事都会对自己的电脑进行一些个性化设置,比如离开一段时间后自动锁屏.自动关闭屏幕.自动注销当前登录等.在windows下可以这样操作,那么 ...
- swiper 仿淘宝详情页面 视频图片切换
1.好兄弟,看一下是否是你需要的 2.废话不多说 直接上代码,复制粘贴一下 自己引用一下swiper.js和css 然后就可以开始玩儿了 <!DOCTYPE html> <html& ...
- 使用cmd时cd命令失效
使用cmd时cd命令失效 近日使用cmd时总是出现无法cd到指定目录的情况 如下图所示 输入cd命令后依旧停留在原始路径 解决方法: 输入 cd D:\CE-5\Training_Sanple\n ...
- express函数参数之next
关于next主要从三点来进行说明: next的作用是什么? 我们应该在何时使用next? next的内部实现机制是什么? 1.Next的作用 我们在定义express中间件函数的时候都 ...
- Docker CPU Usage
背景 当一台机器上跑有多个 Docker Container 的时候,我们需要知道,哪些容器占用了多少资源.采集这些指标,来让我们可以更加好的分配资源给每个 Container. 获取容器CPU使用率 ...