Chinaunix首页 | 论坛 | 博客
  • 博客访问: 630834
  • 博文数量: 244
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-27 09:53
个人简介

记录学习,记录成长

文章分类

全部博文(244)

我的朋友

分类: LINUX

2015-10-22 21:18:15

LVS的持久连接

一.持久连接说明
1.持久连接的实现机制:
无论使用什么算法,LVS持久连接都能实现在一点时间内,将来自于同一个客户端请求派发至此前选定的realserver。
持久连接依赖于持久连接模板(内存缓冲区:记录每一个客户端及分配的realserver的映射关系),每个新的连接请求,无论客户端的连接状态无论是否断开,只要客户端曾经访问过,LVS就会在持久连接模板中记录信息.经常用于SSL,建立一个SSL连接,需要交换SSL密钥,当启用持久性连接时,只需要做一次验证即可。

2.持久连接模板:
当使用LVS持久连接时,director使用一个连接跟踪(持久连接模板)使所有来自同一客户端的连接被标记为相同的realserver;而当客户端向集群服务器请求连接时,director会查看持久连接模板,是否realserver已经被标记为这种类型的连接,若没有,director重新为每次连接创建一个正常连接的跟踪记录表(持久连接模板)。

3.持久连接类型:
3.1  PCC(persistent client connections):持久的客户端连接(零端口的持久连接),使来自于同一个客户端对所有服务的请求,始终定向至此前选定的realserver;

3.2  PPC(persistent port connections):持久的端口连接,使来自于同一个客户端对同一个服务的请求,始终定向至此前选定的realserver。

3.3  Persistent Netfilter Marked Packet persistence:基于防火墙标记的持久性连接,使来自于同一客户端对指定服务的请求,始终定向至此算定的realserver基于指定的端口,它可以将两个毫不相干的端口定义为一个集群服务,例如:合并http telnet为同一个集群服务。

二.实现持久连接
1.PPC持久端口连接:来自于同一个客户端只对web服务的请求,会始终定向至此前选定的realserver(单一的服务才进行持久连接)
1.1不加-p选项
[root@www ~]# ipvsadm -A -t 192.168.85.130:80 -s rr
[root@www ~]# ipvsadm -a -t 192.168.85.130:80 -r 192.168.85.140 -g 
[root@www ~]# ipvsadm -a -t 192.168.85.130:80 -r 192.168.85.143 -g 
测试:此时通过本机浏览器连接,先显示RS2页面,立即刷新后再显示RS1页面;

1.2.加上-p选项
[root@www ~]# ipvsadm -A -t 192.168.85.130:80 -s rr -p 600
[root@www ~]# ipvsadm -a -t 192.168.85.130:80 -r 192.168.85.140 -g 
[root@www ~]# ipvsadm -a -t 192.168.85.130:80 -r 192.168.85.143 -g 
测试:此时通过本机浏览器连接,先显示RS2页面,立即刷新后也是RS2页面而不是RS1页面;

1.3.查看持久连接信息
[root@www ~]# ipvsadm -L -n --persistent-conn

2.  pcc持久客户端连接:来自于同一个客户端对所有服务的请求,会始终定向至此前选定的real(所有服务进行持久连接)
2.1
[root@www ~]# ipvsadm -A -t 192.168.85.130:80 -s rr -p 800
[root@www ~]# ipvsadm -a -t 192.168.85.130:80 -r 192.168.85.140 -g 
[root@www ~]# ipvsadm -a -t 192.168.85.130:80 -r 192.168.85.143 -g 
此时通过web,ssh,ftp等服务测试会发生持久连接;

3.  PNMPP 持久防火墙标记连接
通过pcc可以将所有服务进行持久连接,那么能否对有限个服务(如只对web和ssh)进行持续连接呢?这个就可以用PNMPP了;
3.1
######192.168.85.130是VIP;

[root@www ~]# iptables -t mangle -A PREROUTING -d 192.168.85.130 -i eth0 -p tcp --dport 80 -j MARK --set-mark 3
[root@www ~]# iptables -t mangle -A PREROUTING -d 192.168.85.130 -i eth0 -p tcp --dport 23 -j MARK --set-mark 3
[root@www ~]# ipvsadm -A -f 3 -s rr -p 600
[root@www ~]# ipvsadm -a -f 3 -r 192.168.85.140 -g
[root@www ~]# ipvsadm -a -f 3 -r 192.168.85.143 -g
[root@www ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
FWM  3 rr persistent 600
  -> 192.168.85.140:0             Route   1      0          0         
  -> 192.168.85.143:0             Route   1      0          0         
此时测试会发现只有web和SSH服务会发生持久连接,而其他服务依旧是轮询;

阅读(832) | 评论(0) | 转发(0) |
0

上一篇:LVS-DR配置

下一篇:集群的session共享

给主人留下些什么吧!~~