LVS的持久连接

2022-06-30 20:46:36 浏览数 (1)

不论你用的什么调度算法,在一定时间内来之同一个客户的请求都会发给同一个服务器,默认连接超时是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服务器上。

上述的访问或登录都没截图,给人感觉贴上有点乱,但是都是验证过的!!!

0 人点赞