LVS的持久连接
不论你用的什么调度算法,在一定时间内来之同一个客户的请求都会发给同一个服务器,默认连接超时是360秒,但这个值你可以自己定义,如果超时后,客户的连接依然存在,则默认以2分钟的方式依次增加。
持久连接的类型
(1)PCC 将某个客户的所用访问请求在超时时间内都定向到同一台server上 基于客户端的持久连接
(2)PPC 将某个客户的某个服务访问请求在超时时间内都定向到同一台server上 基于会话的持久连接
(3)Netfilter Mark 基于防火墙标志的持久连接
PCC例子
在director上配置
Ipvsadm -A -t 192.168.2.1:0 -s rr -p 360
Ipvsadm -a -t 192.168.2.1:0 -r 192.168.2.100 -g
Ipvsadm -a -t 192.168.2.1:0 -r 192.168.2.200 -g
查看
通过访问vip地址 192.168.2.1再次查看
连接一直处在192.168.2.200的server上
PPC的例子
当访问80端口使定向到2.100,当访问22端口是定向到2.100和2.200
ipvsadm -C --清空上述的配置
ipvsadm -A -t 192.168.2.1:22 -s rr -p
ipvsadm -A -t 192.168.2.1:80 -s rr -p
ipvsadm -a -t 192.168.2.1:22 -r 192.168.2.100 -g
ipvsadm -a -t 192.168.2.1:22 -r 192.168.2.200 -g
ipvsadm -a -t 192.168.2.1:80 -r 192.168.2.100 -g
查看
访问vip的80端口http://192.168.2.1/再次查看如下
访问vip的22端口ssh://192.168.2.10:22 查看如下:
Netfilter Mark 例子
对于电子商务网站来说,用户在挑选商品的时候使用的是80端口来浏览的,当付款的时候则是通过443的ssl加密的方式,当然当用户挑选完商品付款的时候我们当然不希望https的443跳转到另外一台REALSERVER,很显然应该是同一REALSERVER才对。通过基于防火墙标记的持久连接来实现
首先在两台server上搭建CA认证中心,并为web站点颁发证书,以实现https,关于这部分内容请参考前期的博文,这里就不写了。
1、在iptables添加规则,给客户的请求打上标签
iptables -t mangle -A PREROUTING -d 192.168.2.1 -i eth0 -p tcp -m multiport --dport 80,443 -j MARK --set-mark 10 --把从eth0进来的到192.168.2.1去的目标端口为80,443的打上标签10
2、虚拟规则
ipvsadm -C
ipvsadm -A -f 10 -s rr -p --f (firewallMark)
ipvsadm -a -f 10 -r 192.168.2.100 -g
ipvsadm -a -f 10 -r 192.168.2.200 -g
通过访问vip的端口80和443 http://192.168.2.1/、https://192.168.2.1/ 再看如下
如果后方的服务是FTP服务,怎么才能持久连接呢
这里的FTP服务是PSAV模式,其中21端口是控制端口,20端口是数据传输端口。
被动连接是FTP服务器从大于1024端口中选取一个作为回应端口号,因此我们要限制一下
这个回应端口号的范围。
vim /etc/vsftpd/vsftpd.conf
pasv_min_port=2000
pasv_max_port=2100
[root@localhost ~]# iptables -t mangle -A PREROUTING -i eth0 -d 192.168.2.1 -p tcp --dport 21 -j MARK --set-mark 10
[root@localhost ~]# iptables -t mangle -A PREROUTING -i eth0 -d 192.168.2.1 -p tcp --dport 2000:2100 -j MARK --set-mark 10
[root@localhost ~]# ipvsadm -A -f 10 -s rr -p
[root@localhost ~]# ipvsadm -a -f 10 -r 192.168.2.100 -g
[root@localhost ~]# ipvsadm -a -f 10 -r 192.168.2.200 -g
访问我的VIP的FTP服务
在用另一台client访问一下就会定向到192.168.2.100这台ftp服务器上。
上述的访问或登录都没截图,给人感觉贴上有点乱,但是都是验证过的!!!
本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1104042