lvs+keepalived配置tcp集群的时候不成功

服务器部分

Master 192.168.1.11 //lvs主服务器
BACKUP 192.168.1.12 //lvs从服务器
VIP 192.168.1.8 //虚拟IP
tcp1l 192.168.1.16 //tcp服务器
tcp2 192.168.1.17 //tcp服务器

在lvs的master和slave上安装ipvsadm和keepalived
global_defs {
router_id LVS_DEVEL //负载均衡器标识,同一网段内,可以相同
}

vrrp_sync_group VGM { //定义一个vrrp组
group {
VI_1
}
}

vrrp_instance VI_1 { //定义vrrp实例
state MASTER //主LVS是MASTER,从的BACKUP
interface eth0 //LVS监控的网络接口
virtual_router_id 51 //同一实例下virtual_router_id必须相同
priority 100 //定义优先级,数字越大,优先级越高
advert_int 5 //MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { //验证类型和密码
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { //虚拟IP
192.168.1.8
}
}

virtual_server 192.168.1.8 8888 { //定义虚拟服务器
delay_loop 6 //健康检查时间,单位是秒
lb_algo rr //负载调度算法,这里设置为rr,即轮询算法
lb_kind DR //LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选
persistence_timeout 5 //会话保持时间,单位是秒
protocol TCP //转发协议类型,有tcp和udp两种

real_server 192.168.1.16 8888{ //定义WEB服务器
weight 1 //权重
TCP_CHECK { //通过tcpcheck判断RealServer的健康状态
connect_timeout 5 //连接超时时间
nb_get_retry 3 //重连次数
delay_before_retry 3 //重连间隔时间
}
}

real_server 192.168.1.17 8888 {
weight 1
TCP_CHECK {
connect_timeout 5
nb_get_retry 3
delay_before_retry 3
}
}
}

下面配置real server的配置脚本
#!/bin/bash

VIP=192.168.1.8

case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac

exit 0

在最后,rs上分别跑一个tcp的测试服务器,这个测试服务器抄袭的网上golang的代码,作为echo server本地测试没问题,放到lvs的环境中,就提示错误;错误信息如下:read tcp 192.168.1.11:46738: connection reset by peer
通过黑盒测试,发现是keepalived的TCP_CHECK导致的问题,但是关闭以后,就不能做健康检查了,求指点需求修改配置,socket程序测试过,没错误的。

Forums:

Wow, your post makes mine look feeebl. More power to you!

So that's the case? Quite a revotalien that is.

bunoxph payday loans 8]]] payday loans 0001 payday loans SykQVq payday loans 2154 payday loans 1969

请问一下.你的配置是否已经搞定了? 请指教.. 我也遇到这样的问题.不知道是否有解决方案了呢?