紧急求助lvs+keepalived 路由器做标记 无法指定realserver

thomaswang 发布于 2016/05/12 09:17
阅读 189
收藏 0
紧急求助各位大神,lvs+keepalived 在路由器做标记,却无法绑定到指定的real server:
目前部署情况是这样的:
1)系统应用是C/S架构的,客户端到服务端的应用系统,从客户端向服务端进行传输文件,类似FTP的过程;LVS采用DR模式;操作系统是centos6.4
2)客户端与服务端有两个连接端口:a)登录端口2001,是客户端与服务端登录用的,并在数据传输过程中保持握手来判断客户端与服务端是否一直保持连 接;b)传输端口2002,客户端通过2002端口向服务器传输数据,并可以实现断点续传,其中也有保持握手通讯正常判断的任务
3)目前LVS的IP地址是11和12,应用服务器(接收数据传输的)的IP地址是13和14;虚拟IP(VIP)是254;
4)如果在Lvs上配置持久连接,则应用服务器无法正常切换,也就是当13断开时,应用数据传输无法自动切换到14,反之亦然;
5)将lvs的长连接去掉,并且在防火墙做标记,则13和14能实现自动切换;
6)最大的问题是——当采用上述LVS去掉持久连接时,在客户端和服务端通过2002端口传输数据时,能看到客户端与服务端传输数据中的五个线程,分别在 应用服务器13和14上进行传输,也就是说keepalived的设置的防火墙标记没有起到作用——这个问题一直没搞清楚:首先客户端和应用服务器之间的 传输允许是多线程的;其次,防火墙做标记,也就是通过防火墙标记的方式,将来自同一个客户端的传输应该访问到同一个应用服务器,例如13或者是14,但目 前来看,防火墙标记没有起到作用?
附件lvs的配置文件,以及keepalived的配置文件,请各位大神帮忙给看看,到底出了什么问题,或者配置到底对不对?

以下是问题补充:

@thomaswang:LVS配置 #!/bin/bash VIP=192.168.1.254 RIP1=192.168.1.13 RIP2=192.168.1.14 #Clear IPVS table ipvsadm -C #set LVS #iptables -t mangle -A PREROUTING -d $VIP -i eth1 -p tcp --dport 8080 -j MARK --set-mark 10 iptables -t mangle -A PREROUTING -d $VIP -i eth1 -p tcp --dport 2001 -j MARK --set-mark 10 iptables -t mangle -A PREROUTING -d $VIP -i eth1 -p tcp --dport 2002 -j MARK --set-mark 10 /sbin/ipvsadm -A -f 10 -s wrr -p 300 /sbin/ipvsadm -a -f 10 -r $RIP1 -g -w 3 /sbin/ipvsadm -a -f 10 -r $RIP2 -g -w 3 #/sbin/ipvsadm -A -f 8 -s wrr -p 600 #/sbin/ipvsadm -a -f 8 -r $RIP1 -g -w 3 #/sbin/ipvsadm -a -f 8 -r $RIP2 -g -w 3 #/sbin/ipvsadm -A -t $VIP:8080 -s wrr -p 300 #/sbin/ipvsadm -a -t $VIP:8080 -r $RIP1:8080 -g -w 3 #/sbin/ipvsadm -a -t $VIP:8080 -r $RIP2:8080 -g -w 3 #/sbin/ipvsadm -A -t $VIP:0 -s rr -p 60 #/sbin/ipvsadm -a -t $VIP:0 -r $RIP1 -g -w 3 #/sbin/ipvsadm -a -t $VIP:0 -r $RIP2 -g -w 3 #/sbin/ipvsadm -A -t $VIP:13001 -s rr -p 60 #/sbin/ipvsadm -a -t $VIP:13001 -r $RIP1:2001 -g #/sbin/ipvsadm -a -t $VIP:13001 -r $RIP2:2001 -g #/sbin/ipvsadm -A -t $VIP:13002 -s rr -p 60 #/sbin/ipvsadm -a -t $VIP:13002 -r $RIP1:2002 -g #/sbin/ipvsadm -a -t $VIP:13002 -r $RIP2:2002 -g #Run LVS service ipvsadm save service ipvsadm restart sysctl -p >/dev/null 2>&1 /sbin/ipvsadm --set 300 120 300 (2016/05/12 09:18)
加载中
返回顶部
顶部