LVS的持久連接

LVS的持久連接

   不論你用的什麼調度算法,在一定時間內來之同一個客戶的請求都會發給同一個服務器,默認連接超時是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.200server

  

PPC的例子

當訪問80端口使定向到2.100,當訪問22端口是定向到2.1002.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

查看

訪問vip80端口http://192.168.2.1/再次查看如下

訪問vip22端口ssh://192.168.2.10:22 查看如下:

Netfilter Mark 例子

對於電子商務網站來說,用戶在挑選商品的時候使用的是80端口來瀏覽的,當付款的時候則是通過443ssl加密的方式,當然當用戶挑選完商品付款的時候我們當然不希望https443跳轉到另外一臺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去的目標端口爲80443的打上標籤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的端口80443  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

訪問我的VIPFTP服務

在用另一臺client訪問一下就會定向到192.168.2.100這臺ftp服務器上。 

上述的訪問或登錄都沒截圖,給人感覺貼上有點亂,但是都是驗證過的!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章