VS/TUN方式的FTP无法正常连接

前几次提问都没有得到很满意的答复,这次的问题持续太久,希望能得到章博士的帮助。

LVS的分布:
VIP:192.168.170.250
DIRECTOR:192.168.170.252
RS1:192.168.170.253
RS2:192.168.171.253
(说明:由于唯一的一台RS的性能不好,而且带宽限制,所以用了4块网卡,作了2个bond。目的是负载均衡、加倍带宽)

Director 的配置:
echo "3" > /proc/sys/net/ipv4/tcp_syn_retries
echo "1" >/proc/sys/net/ipv4/ip_forward

-A -t 192.168.170.250:21 -s wlc -p 1000
-a -t 192.168.170.250:21 -r 127.0.0.1:21 -g -w 1
-a -t 192.168.170.250:21 -r 192.168.170.253:21 -i -w 0
-a -t 192.168.170.250:21 -r 192.168.171.253:21 -i -w 0

Realserver的配置:
insmod /usr/local/lib/modules/2.4.29/local/noarp.o
echo '1' > /proc/sys/net/ipv4/ip_forward
echo '0' > /proc/sys/net/ipv4/conf/all/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/default/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/lo/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/eth1/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/eth2/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/eth3/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/tunl0/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/bond0/rp_filter
echo '0' > /proc/sys/net/ipv4/conf/bond1/rp_filter

noarpctl add 192.168.170.250 192.168.170.253

在DIRECTOR上tcpdump抓包的结果:
14:13:43.244749 IP (tos 0x0, ttl 125, id 11235, offset 0, flags [DF], proto: TCP (6), length: 48) 192.168.168.201.2029 > FTP_Server.ftp: S, cksum 0xc64e (correct), 2203525498:2203525498(0) win 65535

在RS上tcpdump抓包的结果:
16:04:04.004716 IP (tos 0x0, ttl 125, id 11851, offset 0, flags [DF], proto: TCP (6), length: 48) 192.168.168.201.2044 > FTP-SERVER.ftp: S, cksum 0xfee0 (correct), 1511002656:1511002656(0) win 65535

Forums:

似乎你的集群是使用LVS/TUN。不知道你在真实服务器上是否设置了IP Tunnel设备,并设置VIP地址?

另外,192.168.170.253和192.168.171.253的权值不能是0,否则没有新连接可以连接到真实服务器。

另外,192.168.170.253和192.168.171.253的权值不能是0,否则没有新连接可以连接到真实服务器。

中的权值指什么呢?谢谢了