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