標籤:lvs
DR:用戶端請求,director接收用戶端響應,通過交換器進行調度分發其中某個伺服器,然後該伺服器直接響應使用者請求
不需要再通過director響應用戶端(director只處理進站請求)
ARP協議解析得到mac地址:廣播
1、各叢集節點必須和director在同一物理網路中(進行的是MAC地址通訊)
2、RIP可以使用公網地址,實現便捷的遠端管理和監控
3、director僅負責處理入站請求,響應報文則由RIP直接發往用戶端
4、real sever不能將網關指向DIP,director直接只有一個網卡,都在同一網段
5、RIP必須隱藏VIP(VIP就是RIP上ip別名),director上也有VIP別名(也是隱藏VIP)
6、不支援連接埠映射
director
|
DR模型: |
用戶端----》路由-------》交換器----》RS1
|
|
RS2
當用戶端發起ip請求時,到達INPUT鏈進入PREROUTING鏈時,
監聽在INPUT鏈上的director發現請求的是叢集服務上的web服務的80連接埠時,根據規則修改報文的傳輸
(不會動報文的ip首部,tcp首部),director在原有的報文外面封裝了一個MAC地址(源地址為director的MAC地址)
根據演算法進行挑選RS,進行RS中ip地址所對應的MAC地址為目標地址
在每一個real server都配上一個VIP地址,RS響應完報文之後,直接通過交換器
路由將響應的報文傳輸給用戶端
路由判斷VIP:根據mac地址
arptables:定義規則哪些VIP給予響應,哪些不響應
核心參數:
arp_ignore:定義接收到ARP請求時的響應層級
0:預設層級(只要本地配置的有相應地址,就給予響應)
1:僅僅在請求的目標地址配置在請求到達的介面上的時候,才給予響應
arp_announce:定義將自己地址向外通告的通告層級
0:將本機任何介面上的任何地址向外通告(預設)
1:試圖僅向目標網路通過與其網路匹配的地址
2:僅向與本地介面上地址匹配的網路進行通告
ip分配:
director:
DIP(eth0):只需要一塊網卡
ip:192.168.31.100 gateway 192.168.31.1 netmask 255.255.255.0
VIP:
eth0:0
ifconfig eth0:0 192.168.31.111 broadcast 192.168.31.111 netmask 255.255.255.255 up
route add -host 192.168.31.111 dev eth0:0
route add -host VIP dev eth0:0(相當於就是當訪問的是VIP的時候,從裝置eth0:0進出)
RS1:
ip:192.168.31.112 gateway 192.168.31.1 netmask 255.255.255.0
配置完RIP之後再配置arp_announce,arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce全域配置為2
/proc/sys/net/ipv4/conf/all/arp_ignore全域配置為1
/proc/sys/net/ipv4/conf/eth0/arp_announce局部也需要配置為2
/proc/sys/net/ipv4/conf/eth0/arp_ignore局部也需要配置為1
然後最後配置VIP:
ifconfig lo:0 192.168.31.111 broadcast 192.168.31.111 netmask 255.255.255.255 up
route add -host 192.168.31.111 dev lo:0
RS2:
ip:192.168.31.113 gateway 192.168.31.1 netmask 255.255.255.0
配置完RIP之後再配置arp_announce,arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce全域配置為2
/proc/sys/net/ipv4/conf/all/arp_ignore全域配置為1
/proc/sys/net/ipv4/conf/eth0/arp_announce局部也需要配置為2
/proc/sys/net/ipv4/conf/eth0/arp_ignore局部也需要配置為1
然後最後配置VIP:
ifconfig lo:0 192.168.31.111 broadcast 192.168.31.111 netmask 255.255.255.255 up
route add -host 192.168.31.111 dev lo:0
接下來建立叢集服務:
ipvsadm -A -t 192.168.31.111:80 -s wlc
ipvsadm -a -t 192.168.31.111:80 -r 192.168.31.112 -g -w 2
ipvsadm -a -t 192.168.31.111:80 -r 192.168.31.113 -g -w 1
於是訪問瀏覽器:
http://192.168.31.111(訪問的是VIP的IP地址)
director的DIP也可以作為RS的ip進行負載平衡,操作如下:
ipvsadm -a -t 192.168.31.111:80 -r 127.0.0.1 -g:添加本地ip到ipvsadm即可
curl:
--connect-timeout n:定義串連的逾時時間
curl --connect-timeout 1 http://192.168.31.111
-I:擷取頁面的響應首部
-s:輸出靜音
記錄:
當建立完成DR模型之後,本人開始使用的是RR演算法進行輪詢,但是在瀏覽器中輸入ip之後,開始顯示的RS1的web訪問,中間間隔了幾分鐘都重新整理不懂DR,幾分鐘之後再次重新整理之後就不變成了RS2,不知道是怎麼一回事,先mark一下:
LVS類型之DR