先說說lvs的持久連接能幹什麼:無論你選擇lvs的何種轉發策略,如果你想確定來自某一個客戶端的所有連接均返回到同一臺real server,就需要LVS的持久連接了。經常用於SSL,建立一個SSL連接,需要交換SSL密鑰,當啓用持久性連接時,只需要做一次驗證即可。
顯然LVS持久連接的定義也就知道了:某一個週期(時間段)之內,來自於同一個用戶的請求,都轉向同一個real-server
持久連接模板:
當使用LVS持久連接時,分發器使用一個連接跟蹤(持久連接模板)使所有來自同一客戶端的連接被標記爲相同的real server;而當客戶端向集羣服務器請求連接時,分發器(director)會查看持久連接模板,是否real server已經被標記爲這種類型的連接,若沒有,director重新爲每次連接創建一個正常連接的跟蹤記錄表(持久連接模板)。
持久連接超時:
我們可以在director使用ipvsadm爲持久連接模板規定一個具體的時間段,如果記數器歸零,而且是激活狀態(客戶端一直在和real server通信),不管你設置的持久連接時長是多少,記錄器將會重置一個默認值2分鐘,並開始計數,下降爲零後,再開始再一下重置。
持久連接類型:
PCC(persistent client connections):持久的客戶端連接,也叫做零端口的持久連接;
PPC(persistent port connections):持久的端口連接,一個持久端口連接到同一個real server強制所有從客戶端計算機的連接爲一個特定的目的端口號
Persistent Netfilter Marked Packet persistence:基於防火牆標記的持久性連接,這種防火牆標記僅在數據包在分發器上時有影響,數據包一旦離開director,就不再被標記。
案例示意拓撲:
案例1 ppc
director配置:
ipvsadm -At 192.168.2.254:0 -s rr -p
ipvsadm -at 192.168.2.254:0 -t 192.168.2.10 -g
ipvsadm -at 192.168.2.254:0 -t 192.168.2.10 -g
service ipvsadm save //保存配置
service ipvsadm start //啓動服務
server1與server2同:
[root@smb html]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@smb html]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@smb html]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@smb html]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# ifconfig lo:0 192.168.2.254 netmask 255.255.255.255 配置迴環接口
# route add -host 192.168.2.254 dev lo:0 添加默認路由
案例2:ppc
#ipvsadm -C //清除ipvsadm規則表
#ipvsadm -At 192.168.2.254:80 -s rr -p 1800 //80端口
# ipvsadm -at 192.168.2.254:80 -r 192.168.2.20 -g
# ipvsadm -At 192.168.2.254:3306 -s rr -p 1800
# ipvsadm -at 192.168.2.254:3306 -r 192.168.2.10 -g
# ipvsadm -At 192.168.2.254:22 -s rr -p //22端口,使用默認時間360秒
# ipvsadm -at 192.168.2.254:22 -r 192.168.2.10 -g
# ipvsadm -At 192.168.2.254:80 -s rr -p
# ipvsadm -at 192.168.2.254:80 -r 192.168.2.20 -g
#service ipvsadm save //保存配置
#service ipvsadm start //啓動服務
可通過ipvsadm -Ln來查看策略匹配情況,
案例3: ftp持久連接,防火牆標記
#ipvsadm -C //清除ipvsadm規則表
# iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 21 -j MARK --set-mark 10
# iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 10000:20000 -j MARK --set-mark 10
# ipvsadm -A -f 10 -s rr -p 1800
# ipvsadm -a -f 10 -r 192.168.2.10 -g
# ipvsadm -a -f 10 -r 192.168.2.20 -g
#service ipvsadm save //保存配置
#service ipvsadm start //啓動服務
案例4:http與https
#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 80 -j MARK --set-mark 80
#iptables -t mangle -A PREROUTING -d 192.168.2.254 -p tcp --dport 443 -j MARK --set-mark 80
#ipvsadm -C
# ipvsadm -A -f 80 -s rr -p 300 //修改時間爲300秒
# ipvsadm -a -f 80 -r 192.168.2.10 -g
# ipvsadm -a -f 80 -r 192.168.2.20 -g
#service ipvsadm save //保存配置
#service ipvsadm start //啓動服務
對於ca的配置略,
實驗結束。