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發現訪問的是同一個頁面,測試成功,實驗結束!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章