Centos 7 – Keepalived Linux虚拟服务器不工作

环境:

Centos 7

KEEPALIVED

机器一

enp0s3 – > 192.168.1.38(连接到外部世界)en0s8 – > 192.168.100.101(连接到内部networking)

机器二

enp0s3 – > 192.168.100.102默认gw – > 192.168.100.101

机器二

enp0s3 – > 192.168.100.103默认gw – > 192.168.100.101

我一步一步地按照教程。 尽pipe评论中的每个人都说他们的作品非常漂亮,但是我不能让keepalived恶魔收听它的configuration文件。 这是一个非常简单的设置。 我想要做的是:

  1. 机器作为外部世界的虚拟服务器,连接到两个真正的Web服务器(机器II和机器III)。
  2. 机器我会先尝试为机器II服务,如果机器II没有任何事情发生,客户不应该注意,机器我应该立即开始服务机器III的服务。

点2)应该用Keepalived来完成,但它不能工作。 这是来自/etc/keepalived/keepalived.conf的configuration文件

 global_defs{ notification_email{ [email protected] } notification_email_from [email protected] smtp_server 193.145.147.51 smtp_connect_timeout 30 lvs_id LVS_MAIN } vrrp_instance VI_1 { interface enp0s3 state MASTER virtual_router_id 51 priority 150 advert_int 1 virtual_ipaddress { 192.168.100.105/24 dev enp0s8 } } virtual_server 192.168.100.105 80 { !This would hosted in Machine I enp0s8 delay_loop 3 lb_algo wrr lb_kind NAT nat_mask 255.255.255.0 protocol TCP real_server 192.168.100.102 8000 { !Machine II weight 1 TCP_CHECK { connect_timeout 3 connect_port 8000 } } real_server 192.168.100.103 8000 { !Machine III weight 1 TCP_CHECK { connect_timeout 3 connect_port 8000 } } } 

当我运行keepalived,做sudo ip addr show enp0s8我可以看到,keepalived已经给虚拟IP地址192.168.100.105接口,但是当我去机器我的浏览器,并把URL作为URL的IP地址192.168.100.105没有给出回来,只是超时连接。 但是如果我把192.168.100.102:8000192.168.100.103:8000放在我的networking服务上。

Keepalived有什么问题?

我感谢任何帮助。

在我的情况下,我使用LVS-DR。 如果你正在使用LVS-DR

基于http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.ipvsadm.html

 LVS-DR, LVS-Tun: the default gw cannot be the director - use some local router. 

将虚拟地址更改为

 virtual_ipaddress { 192.168.100.105 dev enp0s8 } 

将真实服务器上的默认网关更改为路由器NOT Director。

更改

 lb_kind NAT 

 lb_kind DR 

你也需要在真实服务器上添加iptables规则。

http://www.centos.org/docs/5/html/Virtual_Server_Administration/s2-lvs-direct-iptables-VSA.html

在Real Server 192.168.100.102和192.168.100.103上

 iptables -t nat -A PREROUTING -p <tcp|udp> -d <vip> --dport <port> -j REDIRECT 

在这种情况下变成:

 iptables -t nat -A PREROUTING -p tcp -d 192.168.100.105 --dport 8000 -j REDIRECT