环境:
director:192.168.232.18:80(centos7)
realserver1:192.168.232.30:80(centos7)
realserver2:192.168.232.31:80(centos7)
realserver3:192.168.232.6:80(centos6.7)
client:192.168.232.101
VIP:192.168.232.20:80
问题现象:
1、在client上刷新访问http://192.168.232.20/ ,只能看到 realserver3的首页,负载均衡算法rr。
2、client分别访问http://192.168.232.30/ ,http://192.168.232.31/ ,正常。
3、三台realserver的Iptables,firewalld,selinux服务都关闭了。
4、三台realserver的ARP抑制配置如下
#!/usr/bin/bash
ifconfig lo:0 192.168.232.20 netmask 255.255.255.255 up
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
5、在director上watch -n 1 ipvsadm -L -n -c,结果如下:
Every 1.0s: ipvsadm -L -n -c Wed Apr 20 11:59:55 2016
IPVS connection entries
pro expire state source virtual destination
TCP 00:52 SYN_RECV 192.168.232.101:36962 192.168.232.20:80 192.168.232.31:80
TCP 00:46 SYN_RECV 192.168.232.101:36945 192.168.232.20:80 192.168.232.30:80
TCP 00:41 SYN_RECV 192.168.232.101:36930 192.168.232.20:80 192.168.232.30:80
TCP 00:37 SYN_RECV 192.168.232.101:36920 192.168.232.20:80 192.168.232.31:80
TCP 01:43 FIN_WAIT 192.168.232.101:36937 192.168.232.20:80 192.168.232.6:80
TCP 01:42 FIN_WAIT 192.168.232.101:36934 192.168.232.20:80 192.168.232.6:80
TCP 01:40 FIN_WAIT 192.168.232.101:36928 192.168.232.20:80 192.168.232.6:80
TCP 01:49 FIN_WAIT 192.168.232.101:36955 192.168.232.20:80 192.168.232.6:80
TCP 00:59 SYN_RECV 192.168.232.101:36980 192.168.232.20:80 192.168.232.31:80
TCP 00:40 SYN_RECV 192.168.232.101:36926 192.168.232.20:80 192.168.232.31:80
TCP 00:35 SYN_RECV 192.168.232.101:36913 192.168.232.20:80 192.168.232.31:80
TCP 00:50 SYN_RECV 192.168.232.101:36957 192.168.232.20:80 192.168.232.30:80
TCP 00:49 SYN_RECV 192.168.232.101:36953 192.168.232.20:80 192.168.232.31:80
TCP 00:47 SYN_RECV 192.168.232.101:36947 192.168.232.20:80 192.168.232.31:80
TCP 01:41 FIN_WAIT 192.168.232.101:36931 192.168.232.20:80 192.168.232.6:80
原因:
centos6中apache默认监听所有IP的80端口, centos7中apache默认监听 “接口ip:80”。由于director做负载调度时是给realserver vip的80端口,而centos7中apache默认只开放了接口ip的80端口。所以导致以上问题。
另外需要注意:director的virtual server ip不能用本机物理接口IP。