LVS-DR工作原理圖文詳解
原創(chuàng)【51CTO獨(dú)家特稿】LVS如今早已不再新鮮,在生產(chǎn)環(huán)境中的應(yīng)用非常廣泛。它的原理相信運(yùn)維的同行們多少都知道。但是你到底了解到什么程度呢?
我們都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三種模式,其中DR模式意為Direct Routing(直接路由),是調(diào)度器與實(shí)際服務(wù)器都有一塊網(wǎng)卡連在同一物理網(wǎng)段上的情況。本文主要對(duì)LVS/DR模式原理進(jìn)行了闡述,另外還有一篇FAQs,給有相關(guān)疑問(wèn)的朋友們做個(gè)參考。
LVS-DR工作原理詳解
為了闡述方便,我根據(jù)官方原理圖另外制作了一幅圖,如下圖所示:VS/DR的體系結(jié)構(gòu):
我將結(jié)合這幅原理圖及具體的實(shí)例來(lái)講解一下LVS-DR的原理,包括數(shù)據(jù)包、數(shù)據(jù)幀的走向和轉(zhuǎn)換過(guò)程。
官方的原理說(shuō)明:Director接收用戶(hù)的請(qǐng)求,然后根據(jù)負(fù)載均衡算法選取一臺(tái)realserver,將包轉(zhuǎn)發(fā)過(guò)去,***由realserver直接回復(fù)給用戶(hù)。
實(shí)例場(chǎng)景設(shè)備清單:
說(shuō)明:我這里為了方便,client是與vip同一網(wǎng)段的機(jī)器。如果是外部的用戶(hù)訪(fǎng)問(wèn),將client替換成gateway即可,因?yàn)镮P包頭是不變的,變的只是源mac地址。
① client向目標(biāo)vip發(fā)出請(qǐng)求,Director接收。此時(shí)IP包頭及數(shù)據(jù)幀頭信息如下:
② VS根據(jù)負(fù)載均衡算法選擇一臺(tái)active的realserver(假設(shè)是192.168.57.122),將此RIP所在網(wǎng)卡的mac地址作為目標(biāo)mac地址,發(fā)送到局域網(wǎng)里。此時(shí)IP包頭及數(shù)據(jù)幀頭信息如下:
③ realserver(192.168.57.122)在局域網(wǎng)中收到這個(gè)幀,拆開(kāi)后發(fā)現(xiàn)目標(biāo)IP(VIP)與本地匹配,于是處理這個(gè)報(bào)文。隨后重新封裝報(bào)文,發(fā)送到局域網(wǎng)。此時(shí)IP包頭及數(shù)據(jù)幀頭信息如下:
④ 如果client與VS同一網(wǎng)段,那么client(192.168.57.135)將收到這個(gè)回復(fù)報(bào)文。如果跨了網(wǎng)段,那么報(bào)文通過(guò)gateway/路由器經(jīng)由Internet返回給用戶(hù)。
以上就是對(duì)LVS/DR模式的原理介紹。如果還有其他問(wèn)題不明白的,可以參考作者另外一篇LVS/DR模式原理剖析的FAQs。
作者簡(jiǎn)介:戴海軍(daihaijun@gmail.com),現(xiàn)就職于51.com,應(yīng)用運(yùn)維工程師。目前關(guān)注LVS/Nginx/Keepalived負(fù)載均衡和高可用技術(shù)。
【編輯推薦】