LVS/DR模式原理剖析(FAQs)
之前一篇LVS-DR模式原理圖文詳解介紹了該模式的工作原理,以下的FAQs解答了有關LVS/DR模式工作原理的常見問題。
1. LVS/DR如何處理請求報文的,會修改IP包內(nèi)容嗎?
1.1 vs/dr本身不會關心IP層以上的信息,即使是端口號也是tcp/ip協(xié)議棧去判斷是否正確,vs/dr本身主要做這么幾個事:
1)接收client的請求,根據(jù)你設定的負載均衡算法選取一臺realserver的ip;
2)以選取的這個ip對應的mac地址作為目標mac,然后重新將IP包封裝成幀轉發(fā)給這臺RS;
3)在hash table中記錄連接信息。
vs/dr做的事情很少,也很簡單,所以它的效率很高,不比硬件負載均衡設備差多少。
數(shù)據(jù)包、數(shù)據(jù)幀的大致流向是這樣的:client --> VS --> RS --> client
1.2 前面已作了回答,vs/dr不會修改IP包的內(nèi)容.
2. RealServer為什么要在lo接口上配置VIP?在出口網(wǎng)卡上配置VIP可以嗎?
2.1 既然要讓RS能夠處理目標地址為vip的IP包,首先必須要讓RS能接收到這個包。
在lo上配置vip能夠完成接收包并將結果返回client。
2.2 答案是不可以將VIP設置在出口網(wǎng)卡上,否則會響應客戶端的arp request,造成client/gateway arp table紊亂,以至于整個load balance都不能正常工作。
3. RealServer為什么要抑制arp幀?
這個問題在上一問題中已經(jīng)作了說明,這里結合實施命令進一步闡述。我們在具體實施部署的時候都會作如下調(diào)整:
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
我相信很多人都不會弄懂它們的作用是什么,只知道一定得有。我這里也不打算拿出來詳細討論,只是作幾點說明,就當是補充吧。
3.1
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
這兩條是可以不用的,因為arp對邏輯接口沒有意義。
3.2 如果你的RS的外部網(wǎng)絡接口是eth0,那么
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
其實真正要執(zhí)行的是:
echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/eth0/arp_announce
所以我個人建議把上面兩條也加到你的腳本里去,因為萬一系統(tǒng)里上面兩條默認的值不是0,那有可能是會出問題滴。
4. LVS/DR load balancer(director)與RS為什么要在同一網(wǎng)段中?
從第一個問題中大家應該明白vs/dr是如何將請求轉發(fā)給RS的了吧?它是在數(shù)據(jù)鏈路層來實現(xiàn)的,所以director必須和RS在同一網(wǎng)段里面。
5. 為什么director上eth0接口除了VIP另外還要配一個ip(即DIP)?
5.1 如果是用了keepalived等工具做HA或者Load Balance,則在健康檢查時需要用到DIP。
5.2 沒有健康檢查機制的HA或者Load Balance則沒有存在的實際意義。
6. LVS/DR ip_forward需要開啟嗎?
不需要。因為director跟realserver是同一個網(wǎng)段,無需開啟轉發(fā)。
7. director的vip的netmask一定要是255.255.255.255嗎?
lvs/dr里,director的vip的netmask 沒必要設置為255.255.255.255,也不需要再去
route add -host $VIP dev eth0:0
director的vip本來就是要像正常的ip地址一樣對外通告的,不要搞得這么特殊.
8. LVS/DR如何進行tcp的三次握手?
應該不用再多說的,有興趣單獨交流吧。
【編輯推薦】