天天看點

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

檢視

<a href="http://blog.51cto.com/attachment/201212/161608979.png" target="_blank"></a>

通過通路vip位址 192.168.2.1再次檢視

<a href="http://blog.51cto.com/attachment/201212/161620152.png" target="_blank"></a>

連接配接一直處在192.168.2.200的server上

PPC的例子

當通路80端口使定向到2.100,當通路22端口是定向到2.100和2.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

<a href="http://blog.51cto.com/attachment/201212/161634603.png" target="_blank"></a>

通路vip的80端口http://192.168.2.1/再次檢視如下

<a href="http://blog.51cto.com/attachment/201212/161645900.png" target="_blank"></a>

通路vip的22端口ssh://192.168.2.10:22 檢視如下:

<a href="http://blog.51cto.com/attachment/201212/161736449.png" target="_blank"></a>

Netfilter Mark 例子

對于電子商務網站來說,使用者在挑選商品的時候使用的是80端口來浏覽的,當付款的時候則是通過443的ssl加密的方式,當然當使用者挑選完商品付款的時候我們當然不希望https的443跳轉到另外一台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去的目标端口為80,443的打上标簽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  

<a href="http://blog.51cto.com/attachment/201212/161756629.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201212/161809779.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201212/161822360.png" target="_blank"></a>

如果後方的服務是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

通路我的VIP的FTP服務

<a href="http://blog.51cto.com/attachment/201212/161847971.png" target="_blank"></a>

在用另一台client通路一下就會定向到192.168.2.100這台ftp伺服器上。 

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

本文轉自 abc16810 51CTO部落格,原文連結:http://blog.51cto.com/abc16810/1104042

繼續閱讀