lvs-nat&lvs-dr&FWM&持久連接

lvs-nat

wKioL1aJBhjjnBMMAACDObLYT14983.png

1.按照上圖拓撲配置好網絡;

2.開啓director的轉發功能(# echo 1 > /proc/sys/net/ipv4/ip_forward ),並將test1test2網關指向DIP 192.168.1.1

3.進入test1test2,開啓httpd服務;並分別給予創建主頁index.html讓其可以區分開test1 test2

    讓我們直觀的感受到調度器在工作;

wKiom1aJBh-R5ShDAAAC3qggPgU553.png

wKiom1aJBiChWqibAAAC_VgZnhk985.png 

4.進入director配置

安裝ipvsadm

# yum intall -y ipvsadm

配置:

定義本機192.168.191.11180端口爲集羣服務,調度算法爲輪詢rr

# ipvsadm -A -t 192.168.191.111:80 -s rr

定義192.168.1.100realserverlvs類型爲lvs-nat

# ipvsadm -a -t 192.168.191.111:80 -r 192.168.1.100:80 -m

定義192.168.1.200realserverlvs類型爲lvs-nat

# ipvsadm -a -t 192.168.191.111:80 -r 192.168.1.200:80 -m

5.到此爲止lvs-nat集羣服務就算定義好了;

測試:

回到物理機,打開瀏覽器,訪問http://192.168.191.111

    wKioL1aJBl2RL8MAAABq-5OauzI298.png

    刷新瀏覽器

    wKioL1aJBnSjxmkrAABgRqj8wr4594.png

6.測試成功,若要查看詳細調度過程,可抓包或查看realserverweb服務日誌;

wKiom1aJBnTyqZcgAABUjCnzl10378.png

抓包director可發現,客戶機192.168.191.6請求192.168.191.11180服務,

也是director 192.168.191.11180端口響應的客戶機192.168.191.6

 

wKiom1aJBn7TvQtVAAAjy3LDhUo481.png

抓包RS,test2可發現,客戶機192.168.191.6請求的RS 192.168.1.200http服務,

也是RS,test2http服務響應的客戶機192.168.191.6,可以看出在響應數據包經過director的時候,被director修改了地址;

 

--------------

lvs-dr

wKioL1aJBrSClLGaAACGRRCNisk299.png

1.首先在各主機eth0上配置IP地址;

2.RS上設置內核參數,使得RS上的VIP不予響應arp廣播請求;

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

3.RS上的lo:0接口上配置VIP地址;(固定廣播域和廣播地址只是自己IP)

# ifconfig lo:0 192.168.191.100 netmask 255.255.255.255 broadcast 192.168.191.100

4.指定RS主機上對VIP192.168.191.100的請求,都通過lo:0接口響應出去;

# route add -host 192.168.191.100 dev lo:0

5.director上配置VIP以及集羣服務;

# ifconfig eth0:0 192.168.191.100 netmask 255.255.255.255 broadcast 192.168.191.100

# ipvsadm -A -t 192.168.191.100:80 -s rr

# ipvsadm -a -t 192.168.191.100:80 -r 192.168.191.112 -g

# ipvsadm -a -t 192.168.191.100:80 -r 192.168.191.113 -g

6.配置完成,客戶機測試(瀏覽器可能有緩存,建議再開一臺虛擬機使用curl命令測試)

wKiom1aJBrDgIprKAABuHQhwzxU423.png

 

wKioL1aJBtuTuDajAABl5JL6SZI246.png

FWMfirewall mark

大意:FWM就是根據防火牆標記做調度;依賴mangle鏈做防火牆標記;

方法:在ipvs生效之前的netfilter的某hook function上定義iptables規則,實現給報文打上防火牆標記;

 

還是使用上面的lvs-dr模型;現在將ipvsadm -A -t 改爲ipvsadm -A -f

步驟:

1.清空上面已經定義的ipvsadm條目;

# ipvsadm -C

2.在防火牆mangle鏈上打標(可以將多種服務打標爲一個標記,實現集羣捆綁調度)

# iptables -t mangle -A PREROUTING -d 192.168.191.100 -p tcp --dport 80 -j MARK --set-mark 10

3.定義ipvsadm規則;

# ipvsadm -A -f 10 -s rr

# ipvsadm -a -f 10 -r 192.168.191.112 -g

# ipvsadm -a -f 10 -r 192.168.191.113 -g

4.測試(另外開啓了一臺虛擬機,配置好IP,使用curl測試,結果如下);

            wKioL1aJBvCyrW-DAAAPowcpO4E243.png

lvspersistence: lvs持久連接

 

大意:無論使用哪一種調度方法,都能保證在指定時間範圍之內,來自於同一個IP的請求將始終被定向至同個RS

方法:ipvsadm -A -t|-u|-f service-address -s SCHEDULER [-p [#]] (增加-p選項,代表開啓持久連接;默認時長360秒)持久連接模板:

PPC:每端口持久;持久連接生效範圍僅爲單個集羣服務;如果有多個集羣服務,每服務被單獨持久調度;

PCC:每客戶端持久;持久連接生效範圍爲所有服務;定義集羣服務時,其TCPUDP協議的目標端口要使用0

PFWM:每FWM持久:持久連接生效範圍爲定義爲同一個FWM下的所有服務;

 

PPC例子:

ipvsadm -A -t 192.168.191.100:80  -s rr -p 600  

代表將192.168.191.10080服務做持久連接600秒,來自同一個IP的客戶端在600秒內訪問80服務,都被調度到同一個後端RS

PCC例子:

ipvsadm -A -t 192.168.191.100:0  -s rr -p 

ipvsadm -a -t 192.168.191.100:0 -r 192.168.191.112 -g

ipvsadm -a -t 192.168.191.100:0 -r 192.168.191.112 -g

代表來自同一個IP的客戶端在訪問,192.168.191.100的所有服務(ssh telnet www等)的時候,都在360秒內被調度到同一個後端RS

PFWM例子:

代表來自同一個IP的客戶端在訪問,同一個防火牆標記的服務時候,被調度到同一個後端RS

 


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