Keepalived两节点出现双VIP的情况 一.现象 安装有keepalived的两节点服务器10.11.4.186/187,主要做高可用,设定VIP10.11.4.185。 首先启动10.1
2017-12-28 12:10
441 查看
https://www.cnblogs.com/netonline/archive/2017/10/09/7642595.html
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 }
相关文章推荐
- 服务器中安装版tomcat出现start和stop都被禁掉的情况导致无法启动tomcat解决方法
- 戴尔C1100的服务器安装CenOS5.2 64位出现没有网卡驱动的情况
- xp系统运行asp.net时候出现“服务器应用程序不可用”,vs2005无法启动调试
- 安装和启动tftp-server服务器及可能出现Redirecting to /bin/systemctl restart xinetd.service问题的解决方式
- nginx+keepalived负载均衡可用框架(补一 keepalived安装配置-热备-(服务器层和应用层))
- SQLServer\framework启动报异常:Module的类型初始值设定项引发异常 [转]QQ空间、新浪微博、腾讯微博等一键分享API链接代码 window下 mongodb快速安装 数据表查询所有子/父节点 C#学习笔记1
- nginx+keepalived负载均衡可用框架(补一 keepalived安装配置-热备-(服务器层和应用层))
- 用oralce连接.net客户端出现问题:“数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,”的解决办法
- 很久没有启动datanode服务的节点,重新启动,出现的Block更新情况
- keepalived 安装配置(高可用VIP),双主模式
- 安装了vs 2008 sp1 后,调试提示“无法在web服务器上启动调试。与web服务器通信时出现身份验证错误”
- wampserver2.5安装在服务器时出现应用程序无法正常启动0xc000007b,wampserver2.5一直打不开的解决方法
- 运行asp.net程序的时候老师出现“服务器应用程序不可用”,vs2005无法启动调试
- CentOS6.5_x64安装MySQL-5.6.17,在已经启动MySQL服务的情况下,出现密码报错ERROR 2002 (HY000)
- 出现namenode不能启动的情况,就把hadoop安装目录下的hadoop目录下的data和name文件夹清空,
- 安装SQL2005出现服务器启动失败或者安装后启动服务器失败的原因及解决方法
- 打开rational rose时出现: 无法启动此程序,因为计算机中丢失suite objects.dll。尝试重新安装该程序解决此问题现象
- 安装和启动tftp-server服务器及可能出现Redirecting to /bin/systemctl restart xinetd.service问题的解决方式
- tomcat启动时出现异常Exception loading sessions from persistent storage分析: session未超时的情况下,服务器关闭的时候会被序列化为工程名\
- 帮你解决iis安装后无法启动和出现http 500内部服务器问题(xp_sp2 iis5.1)