歸根究底,探討數(shù)據(jù)流負(fù)載均衡
負(fù)載均衡歸根究底就是對(duì)數(shù)據(jù)進(jìn)行合理的分配,讓固定數(shù)量的數(shù)據(jù)流分配到每一個(gè)處理設(shè)備中,進(jìn)行處理。在負(fù)載均衡技術(shù)應(yīng)用中,數(shù)據(jù)流可以被引導(dǎo)在兩個(gè)鏈路或者多個(gè)鏈路中進(jìn)行傳遞,也就是前面我們提及過(guò)的多鏈路負(fù)載均衡的問(wèn)題。現(xiàn)在我們以數(shù)據(jù)流為重點(diǎn),談一下負(fù)載均衡問(wèn)題。
在網(wǎng)內(nèi)實(shí)際存在著3種不同的數(shù)據(jù)連接請(qǐng)求,因此通過(guò)對(duì)這3種請(qǐng)求進(jìn)行必要的引導(dǎo),數(shù)據(jù)流便可以有效地在兩條鏈路上進(jìn)行傳遞。這三種數(shù)據(jù)連接包括:
DNS解析請(qǐng)求
Inbound數(shù)據(jù)流
Outbound數(shù)據(jù)流
Load Balance Controller承擔(dān)起了對(duì)兩條ISP連接的負(fù)載均衡工作。它作為數(shù)據(jù)傳遞的中間樞紐將所有設(shè)備連接在了一起。
DNS解析請(qǐng)求當(dāng)外部用戶(hù)需要對(duì)WWW、FTP和e-mail服務(wù)器進(jìn)行訪問(wèn)時(shí),首先進(jìn)行的便是必要的DNS解析。接下來(lái),我們以WWW域名為例來(lái)描述用戶(hù)如何通過(guò)Load Balance Controller得到恰當(dāng)?shù)腎P地址。假設(shè)WWW域名為www.xxx.com:
1. Client向其本地DNS(LDNS)發(fā)出域名解析請(qǐng)求,探求域名www.xxx.com的IP地址。
2. LDNS向ROOT服務(wù)器查詢(xún)xxx.com的地址,得到211.152.31.1和159.226.50.1,它們分別對(duì)應(yīng)與兩個(gè)ISP,A和B。
3. LDNS將以第一個(gè)得到的IP地址為目的,向它發(fā)出對(duì)www.xxx.com的查詢(xún)。如果這第一個(gè)地址在允許的連接條件下,無(wú)法連接到或得到解析結(jié)果,則LDNS將啟用第二個(gè)地址進(jìn)行查詢(xún)連接。
4. 這時(shí),請(qǐng)求由LDNS到達(dá)Load Balance Controller。在Load Balance Controller 上,對(duì)于后面的兩臺(tái)DNS服務(wù)器事先已設(shè)置好虛擬服務(wù)器VDNS,且對(duì)應(yīng)與兩個(gè)不同的ISP 連接,172.17.1.168和172.17.2.168。172.17.1.168與211.152.31.1通過(guò)防火墻1的NAT對(duì)應(yīng),172.17.2.168與159.226.50.1通過(guò)防火墻1的NAT對(duì)應(yīng)。這樣,通過(guò)任何一個(gè)ISP連接到達(dá)的域名解析請(qǐng)求都可轉(zhuǎn)發(fā)至后面的兩個(gè)DNS服務(wù)器,并在它們之間完成負(fù)載均衡。
5. 在后面的兩個(gè)DNS服務(wù)器上,需是先進(jìn)行"匿名"的配置。
www.xxx.com. IN CNAME www.wip.xxx.com
在Load Balance Controller上,對(duì)應(yīng)這個(gè)匿名,事先已配置好wide IP,www.wip.xxx.com與之對(duì)應(yīng):并且包括事先配置的兩個(gè)虛擬服務(wù)器地址,211.152.31.3和159.225.50.3。這兩個(gè)地址都指向后面的WWW服務(wù)器,并與兩個(gè)ISP連接對(duì)應(yīng)。
6. 這時(shí),Load Balance Controller會(huì)依據(jù)已經(jīng)設(shè)置好的wide IP均衡規(guī)則,向LDNS提供www.xxx.com所對(duì)應(yīng)的IP地址。即依據(jù)兩個(gè)不同的ISP連接情況,選擇與ISP連接向?qū)?yīng)的地址。
7. LDNS得到這個(gè)地址后,將它返回到Client端。
8. Client利用這個(gè)地址進(jìn)行與www.xxx.com的連接。
Inbound數(shù)據(jù)流
部分?jǐn)?shù)據(jù)流主要流向經(jīng)DNS解析請(qǐng)求后得到的地址。我們以對(duì)www.xxx.com為例。假設(shè)Client得到的地址是211.152.31.3,那么當(dāng)它的數(shù)據(jù)連接到達(dá)防火墻后會(huì)被翻譯成內(nèi)部地址,172.17.1.3。這個(gè)地址也是Load Balance Controller上設(shè)置的虛擬服務(wù)器地址,對(duì)應(yīng)于后臺(tái)的WWW服務(wù)器。當(dāng)Load Balance Controller 收到對(duì)這個(gè)地址的訪問(wèn)后,它會(huì)根據(jù)對(duì)服務(wù)器設(shè)置的負(fù)載均衡算法,將用戶(hù)數(shù)據(jù)轉(zhuǎn)發(fā)到相應(yīng)的服務(wù)器。
Outbound數(shù)據(jù)流
這部分?jǐn)?shù)據(jù)主要從內(nèi)網(wǎng)端口流向與防火墻/路由器相連的外網(wǎng)端口,我們需要將來(lái)自Intranet的數(shù)據(jù)連接全部接受,這樣,當(dāng)Load Balance Controller 收到由Intranet發(fā)來(lái)的數(shù)據(jù)連接后,就會(huì)依據(jù)相應(yīng)的負(fù)載均衡算法,將數(shù)據(jù)流轉(zhuǎn)發(fā)到恰當(dāng)?shù)姆阑饓?#65377;并且在數(shù)據(jù)出入防火墻/路由器的外網(wǎng)端口時(shí),Load Balance Controller 會(huì)對(duì)數(shù)據(jù)流的源IP地址進(jìn)行翻譯。翻譯工作依據(jù)于SNAT設(shè)置。