我在配置LVS+Keepalived遇到几个比较棘手的问题,因而乎记录总结一波。linux
###What did you do todaynginx
1.在防火墙添加VRRP通信支持引用,命令:iptables -A INPUT -d 224.0.0.18 -j ACCEPT 服务器
![]()
![]()
2.好像防火墙加了这个策略,也不能解决问题,那么咱们安装tcpdump,分析一下vrrp的组播状况。安装命令: yum install -y tcpdump ![]()
3.查看vrrp的组播状况,tcpdump vrrp -n,很明显的能够看到192.168.12.4和192.168.12.8这2个ip在轮流发送组播信号。而正常的应该是MASTER服务器发送组播,若是BACKUP收不到MASTER的组播信号,那么就断定MASTER宕机了,BACKUP就接收vip。 ![]()
4.先肯定服务器的SElinux是否设置为关闭,查看SElinux的状态,命令:getenforce,Enforcing#强制开启,Permissive#宽容模式,Disabled#关闭。若是是Enforcing强制模式,我就须要关闭。命令:setenforce 0#设置宽容模式,可是这样只在本次生效,重启服务器后将失效。若是须要永久关闭,还须要修改配置文件。sed -i 's/=enforcing/=disabled/g' /etc/sysconfig/selinux ![]()
5.进入/etc/sysconfig/目录下的selinux,注释掉SELINUX=targeted ![]()
6.咱们查看防火墙,看到蛋疼的一幕。 -A INPUT -d 224.0.0.18/32 -j ACCEPT写在-A INPUT -j REJECT --reject-with icmp-host-prohibited后面了,正确的写法应该是写在-A INPUT -j REJECT --reject-with icmp-host-prohibited的前面。咱们须要修改过来! ![]()
7.如今咱们在主lvs和备lvs查看vrrp的组播状况,发现只有192.168.12.4发给192.168.12.8的状况,这就很爽了嘛! ![]()
![]()
8. 经过ip a 查看各个节点ip状况。发现只有主lvs的eth0节点有vip,备lvs没有。完美解决! ![]()
![]()
![]()
1.经过/var/log/keepalived.log,发现主lvs链接192.168.12.3:80失败了! tcp
2. 咱们来查看nginx1(192.168.12.2)和nginx2(192.168.12.3)的lo:0节点,显示是虚拟ip192.168.12.100,这是没问题的! ![]()
![]()
3.那咱们只能拿出杀手锏了,重启虚拟机。 ![]()
4.重启后,咱们再来看ipvsadm -ln,发现RealServer有192.168.12.2:80和192.168.12.3:80了,美滋滋。 ![]()
![]()
###Summary3d
路漫漫其修远兮,吾将上下而求索。下一篇LVS+Keepalived双主模式。rest