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