一、简介
1.1. lvs的持久连接简介
先说说lvs的持久连接能干什么:无论你选择lvs的何种转发策略,如果你想确定来自某一个客户端的所有连接均返回到同一台Real Server,就需要LVS的持久连接了。经常用于SSL,建立一个SSL连接,需要交换SSL密钥,当启用持久性连接时,只需要做一次验证即可。
显然LVS持久连接的定义也就知道了:某一个周期(时间段)之内,来自于同一个用户的请求,都转向同一个RS。
1.2. 持久连接模板:
当使用LVS持久连接时,分发器使用一个连接跟踪(持久连接模板)使所有来自同一客户端的连接被标记为相同的real server;而当客户端向集群服务器请求连接时,分发器(director)会查看持久连接模板,是否real server已经被标记为这种类型的连接,若没有,director重新为每次连接创建一个正常连接的跟踪记录表(持久连接模板)。
1.3. 持久连接超时:
我们可以在director使用ipvsadm为持久连接模板规定一个具体的时间段,如果记数器归零,而且是激活状态(客户端一直在和real server通信),不管你设置的持久连接时长是多少,记录器将会重置一个默认值2分钟,并开始计数,下降为零后,再开始再一下重置。
1.4. 持久连接类型:
PCC(persistent client connections):持久的客户端连接,也叫做零端口的持久连接;
#ipvsadm -A 192.168.0.10:0 -s rr -p [6000](只需将VIP的端口设为0接口表示所有端口都持久)
PPC(persistent port connections):持久的端口连接;
一个持久端口连接到同一个real server强制所有从客户端计算机的连接为一个特定的目的端口号
# ipvsadm -A 192.168.0.10:80 -s rr -p [6000]
PNMPP(Persistent Netfilter Marked Packet persistence):基于防火墙标记的持久性连接;
这种防火墙标记仅在数据包在分发器上时有影响,数据包一旦离开director,就不再被标记。
把多个目标端口标记为同一个标记mark(1~99),持久后保证可以cookie、session可用。
# ipvsadm -A -f mark -s rr -p [600]
# ipvsadm -a -f mark -r 192.168.10.12 -g
# ipvsadm -a -f mark -r 192.168.10.13 -g
案例示意拓扑:
二、手动配制示例
2.1. 实验环境:
案例1. 持久的端口连接ppc
director配置:
ipvsadm -A -t 192.168.2.254:0 -s rr -p
ipvsadm -a -t 192.168.2.254:0 -t 192.168.2.10 -g //-g:使用网关直接路由
ipvsadm -a -t 192.168.2.254:0 -t 192.168.2.10 -g
service ipvsadm save //保存配置
service ipvsadm start //启动服务
server1与server2同:
[[email protected] html]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] html]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[[email protected] html]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] html]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# ifconfig lo:0 192.168.2.254 netmask 255.255.255.255 配置回环接口
# route add -host 192.168.2.254 dev lo:0 添加默认路由
案例2:持久的客户端连接ppc
#ipvsadm -C //清除ipvsadm规则表
#ipvsadm -At 192.168.2.254:80 -s rr -p 1800 //80端口
# ipvsadm -at 192.168.2.254:80 -r 192.168.2.20 -g
# ipvsadm -At 192.168.2.254:3306 -s rr -p 1800
# ipvsadm -at 192.168.2.254:3306 -r 192.168.2.10 -g
# ipvsadm -At 192.168.2.254:22 -s rr -p //22端口,使用默认时间300秒
# ipvsadm -at 192.168.2.254:22 -r 192.168.2.10 -g //-g:使用网关直接路由
# ipvsadm -At 192.168.2.254:80 -s rr -p
# ipvsadm -at 192.168.2.254:80 -r 192.168.2.20 -g
#service ipvsadm save //保存配置
#service ipvsadm start //启动服务
可通过ipvsadm -Ln来查看策略匹配情况,
案例3: ftp持久连接,防火墙标记
#ipvsadm -C //清除ipvsadm规则表
#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 21 -j MARK --set-mark 10
#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 10000:20000 -j MARK --set-mark 10
#ipvsadm -A -f 10 -s rr -p 1800
#ipvsadm -a -f 10 -r 192.168.2.10 -g //-g:使用网关直接路由
#ipvsadm -a -f 10 -r 192.168.2.20 -g
#service ipvsadm save //保存配置
#service ipvsadm start //启动服务
案例4:http与https
#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 80 -j MARK --set-mark 80
#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 443 -j MARK --set-mark 80
#ipvsadm -C
# ipvsadm -A -f 80 -s rr -p 300 //修改时间为300秒
# ipvsadm -a -f 80 -r 192.168.2.10 -g //-g:使用网关直接路由
# ipvsadm -a -f 80 -r 192.168.2.20 -g
#service ipvsadm save //保存配置
#service ipvsadm start //启动服务
对于ca的配置略,
---end---