LVS持久连接

持久连接即是不考虑LVS的转发方法,确保所有来自同一个用户的连接转发到同一个RealServer上
使用的选项:
-p N  后面加上持就连接的时间
 
持久连接类型:
 1.PCC(persistent client connector,持久用户连接)同一个用户所有的请求在超时范围之内都被定位到同一个RealServer上,这个时候在指定端口的时候使用的是0端口,就是所有的请求都转发出去。
 2.PPC(persistent port connector)用户的所有请求在超时范围内按照端口定位到不同的RS上。
 3.防火墙标记:把相关联的端口在防火墙上打上同样的标记,用户在访问两个相关联的服务的时候,就会定位到同一个RealServer上。
 4.FTP connection:由于ftp使用的是两个端口号,所以需要单独列出来。
 
A.PCC实验:
 Directory-------RealServer1(192.168.1.172)
            |
            |____RealServer2(192.168.1.178)
VIP=192.168.1.80
Directory上的配置:
#ifconfig eth0 192.168.1.78/24
#ifconfig eth0:0 192.168.1.80 broadcast 192.168.1.80 netmask 255.255.255.255 up
#route add -host 192.168.1.80 dev eth0:0
#echo 1 >/proc/sys/net/ipv4/ip_forward
#ipvsadm -A -t 192.168.1.80:0 -s rr -p 600 
#ipvsadm -a -t 192.168.1.80:0 -r 192.168.1.172:0 -g
#ipvsadm -a -t 192.168.1.80:0 -r 192.168.1.178:0 -g
RealServer1上的配置:
#ifconfig eth0 192.168.1.172/24
#ifconfig lo:0 192.168.1.80 broadcast 192.168.1.80 netmask 255.255.255.255 up
#route add -host 192.168.1.80 dev lo:0
#echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
#echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
#echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
#echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
#yum install httpd
#echo "rs1" > /var/www/html/index.html
#service httpd start
RealServer2上的配置:
#ifconfig eth0 192.168.1.178/24
#ifconfig lo:0 192.168.1.80 broadcast 192.168.1.80 netmask 255.255.255.255 up
#route add -host 192.168.1.80 dev lo:0
#echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
#echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
#echo 2 >/proc/sys/net/ipv4/conf/lo/arp_announce
#echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce
#yum install httpd
#echo "rs2" > /var/www/html/index.html
#service httpd start
在浏览其中输入http://192.168.1.80然后刷新页面,可以看到页面一直不变,然后我们再使用ssh登录到192.168.1.80,使用ifconfig查看,和网页所在的RealServer同样,实验完成!
 
B.PPC就是根据服务的不同,定向到不同的RealServer上,在Directory上多写几个ipvsadm指向,注意端口要区分开来就行了
 
C.防火墙标记的持久连接
依然是上面的图
两个RealServer配置不变
在Directory上重新配置:
#ipvsadm -C //清空ipvs表
#iptables -t mangle -A PREROUTING -d 192.168.1.80 -p tcp --dport 80 -j MARK --set-mark 10  把目的地为1982.168.1.80:80标记为10
#ipvsadm -A -f 10 -s rr -p 60  //使用上面标记的10定义集群服务
#ipvsadm -a -f 10 -r 192.168.1.172 -g //为集群定义RealServer
#ipvsadm -a -f 10 -r 192.168.1.178 -g 
测试:
在浏览其中输入http://192.168.1.80可以访问到网页,但是如果使用ssh连接192.168.1.80的话,就只能呗定向到192.168.1.78上也就是Directory上,实验完成
 
D.使用防火墙标记实现http&&https姻亲关系:
依然使用上面的拓扑图:
1.首先在RS上做证书
#yum install mod_ssl
#cd /etc/pki/tls/certs
#make httpd.pem  //在设置的时候,Common Name设置和Directory的主机名一样就行了
#mkdir /etc/httpd/ssl
#cp httpd.pem /etc/httpd/ssl
#vim /etc/httpd/conf.d/ssl.conf
 SSLCertificateFile /etc/httpd/ssl/httpd.pem
 SSLCertificateKeyFile /etc/httpd/ssl/httpd.pem
 ServerName node1.a.org:443  //我的Directory的主机名是node1.a.org
#service httpd restart
2.其他的配置和上面一样,同样RealServer2上也采取同样的配置,我这里就不演示了
3.Directory上的配置如下:
只需要在iptables上多添加一条命令如下
#iptables -t mangle -A PREROUTING -d 192.168.1.80 -p tcp --dport 443 -j MARK --set-mark 10 //这里的标记和http的80端口的标记是一样的,这个时候在访问的时候,就会建立姻亲关系,其他的配置和C的配置一样,不多演示了
测试:在浏览器中输入http://192.168.1.80https://192.168.1.80发现访问的是同一个页面,测试成功,实验结束!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章