通过不停的查找问题,我发现,只需要关闭备用负载均衡器的防火墙,那么主备服务器都有VIP的情况就会得以解决。由此可以肯定,问题就是出现在了防火墙这里。
首先用tcpdump查看一下vrrp的组播情况,这个随便在同网络的任意一台服务器抓包即可:
tcpdump vrrp -n # -n:不把主机的网络地址转换成名字
查看下抓包的结果:
tcpdump抓包
由上图可以看到,192.168.2.79和192.168.2.53两个IP在轮流发送组播信号。而正常的应该是由MASTER服务器发送组播,如果BACKUP收不到MASTER的组播信号了,那么判定MASTER宕机了,BACKUP就会接手VIP。
首先,先确定服务器的SElinux是否设置为关闭。一般都是将其关闭的,在CentOS先森尝试了启用,但是也没有firewall-cmd这个命令,无法添加端口,所以还是将其关闭吧。
查看SElinux的状态:getenforce
可能的结果有三个:
Enforcing #强制开启
Permissive #宽容模式
Disabled #关闭
如果是Enforcing强制模式,就需要关闭:
setenforce 0 #设置为宽容模式
但这样只在本次生效,重启服务器后将失效。如果要永久关闭,还需要修改配置文件:
sed -i 's/=enforcing/=disabled/g' /etc/sysconfig/selinux
iptables防火墙
如果将SElinux关闭问题依旧存在,则可能是防火墙将MASTER的VRRP组播给挡住了。首先将防火墙关闭,确定防火墙是否为罪魁祸首。
service iptables stop
如果关闭防火墙,keepalived问题解决了,那么问题就简单了,我们只需要让VRRP组播其通过防火墙即可。
我们只需要在防火墙中增加一条规则即可:
Iptables防火墙配置
-A INPUT -p vrrp -j ACCEPT
但是这里有个坑,默认的防火墙中基本是如下配置:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
添加规则一定不要在
-A INPUT -j REJECT --reject-with icmp-host-prohibited
之后,一定要加在其前面。
防火墙配置
这时候重启防火墙后查看BACKUP的ip,就会发现VIP已经不在了。
再关闭一下MASTER的keepalived,并打开BACKUP的日志,就可以看到正确的内容:
Firewalld防火墙配置
centos 防火墙有两种管理方式firewall, iptables两者不能同时开启
centos7 默认防火墙firewall
开启vrrp 协议
主备都运行下面的命令
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --protocol vrrp -j ACCEPT
firewall-cmd --reload
tail -f /var/log/messages
Keepalived切换VIP
相关推荐
LVS+Keepalived实现高可用负载均衡,很详细的从头到尾的介绍,按照这可以搭建起来。 LVS+Keepalived实现高可用负载均衡,很详细的从头到尾的介绍,按照这可以搭建起来。
Nginx+keepalived主备负载塔建
随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。
nginx+keepalived实现高可用负载均衡方案.pdf
压缩包中有几个安装包,和几个配置文件示例, 文档中非常详细,写了差不多将近30页
Web负载均衡解决方案-HAproxy+keepalived实现高可用负载均衡.docx
Nginx+keepalived+tomcat实现性负载均衡
利用LVS+Keepalived 实现高性能高可用负载均衡服务器 - 负载均衡
运用nginx的负载均衡功能实现后端web服务器之间的负载均衡,运用keepalived的功能实现nginx服务器的高可用,比较了nginx和lvs的负载均衡的优缺点。
Keepalived + Nginx 实现高可用 Web 负载均衡配置文件,具体详情参见博文:http://blog.csdn.net/l1028386804/article/details/72801492
Lvs+keepalived 高可用性负载均衡配置
Keepalived+Nginx实现高可用Web负载均衡
本文档详细介绍了如何利用keepalived实现Nginx的高可用和负载均衡的步骤,且已经在生产环境中部署验证通过
keepalived+haproxy负载均衡配置 1、 操作系统:RedHat linux6.5 64bit 2、 keepalive: keepalived-1.2.19.tar.gz 地址:http://www.keepalived.org/download.html 3、 Haproxy: haproxy-1.5.8.tar.gz 地址(不能...
自己试验的 haproxy 和 keepalived 实现高可用性的负载均衡,详细描述
nginx+keepalived实现高可用负载均衡方案.rar
安装配置LINUX集群,keepalived+lvs图文并茂详细讲解
Keepalived+HAProxy配置高可用负载均衡,解决keepalived无法安装问题,公司项目总结,经过压力测试。
Nginx+keepalived+tomcat实现性负载均衡