專利名稱:負(fù)載均衡方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及流量處理技術(shù)領(lǐng)域,具體涉及負(fù)載均衡方法及裝置。
背景技術(shù):
隨著因特網(wǎng)的快速發(fā)展和業(yè)務(wù)量的不斷提高,基于網(wǎng)絡(luò)的數(shù)據(jù)訪問流量迅速增 長,特別是對數(shù)據(jù)中心、大型企業(yè)以及門戶網(wǎng)站等的訪問,其訪問流量甚至達到了 lOGB/s 的級別,服務(wù)器逐漸被數(shù)據(jù)淹沒;但是,相對于網(wǎng)絡(luò)技術(shù)的發(fā)展,服務(wù)器處理速度和內(nèi)存訪 問速度的增長卻遠遠低于網(wǎng)絡(luò)帶寬和應(yīng)用服務(wù)的增長,因而服務(wù)器成為了網(wǎng)絡(luò)瓶頸,傳統(tǒng) 的單機模式也往往成為網(wǎng)絡(luò)故障點,如圖1所示,當(dāng)訪問流量快速增長、業(yè)務(wù)量不斷提高 時,服務(wù)器的響應(yīng)會變慢,若用戶希望獲得M小時的不間斷可用性及較快的系統(tǒng)反應(yīng)時 間,則無法得到滿足。由多臺服務(wù)器組成一個群組,它們通過網(wǎng)絡(luò)設(shè)備相連接,這些服務(wù)器提供相同或 相似的網(wǎng)絡(luò)服務(wù)。服務(wù)器群組前布局一個負(fù)載均衡設(shè)備,負(fù)責(zé)根據(jù)已配置的均衡策略將用 戶請求在服務(wù)器群組中分發(fā),為用戶提供服務(wù),并對服務(wù)器做可用性的維護?,F(xiàn)有的負(fù)載均衡技術(shù)分為四層負(fù)載均衡技術(shù)和七層負(fù)載均衡技術(shù),四層負(fù)載均衡 技術(shù)基于傳輸層特征進行業(yè)務(wù)負(fù)載分擔(dān),一般按流進行業(yè)務(wù)分發(fā),即同一條連接中的所有 業(yè)務(wù)報文發(fā)送給同一臺真實服務(wù)器。七層負(fù)載均衡技術(shù)一般指基于超文本傳輸協(xié)議(HTTP, Hypertext Transfer Protocol)業(yè)務(wù)的負(fù)載均衡,需要識別到傳輸內(nèi)容以決定負(fù)載分擔(dān)策 略。以IPv4為核心技術(shù)的因特網(wǎng)獲得巨大成功,但IPv4地址資源緊張直接限制了 IP技術(shù)應(yīng)用的進一步發(fā)展,到1996年已將80 %的A類網(wǎng)絡(luò)地址、50 %的B類地址、10 %的 C類地址全部分配了,移動和寬帶技術(shù)的發(fā)展要求更多的IP地址。無類域間路由(CIDR, Classless Inter-Domain Routing) > nj^-Ixii N Ι5 (VLSM, Variable Length Subnet Mask)、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT,Network Address Translation)混合地址等技術(shù)只能暫時緩解 IPv4地址緊張,但無法根本解決地址問題,IP地址短缺問題直接加速了 IPv4升級的需求?;ヂ?lián)網(wǎng)工程任務(wù)組(IETF,InternetEngineering Task Force)在 20 世紀(jì) 90 年 代提出下一代互聯(lián)網(wǎng)協(xié)議IPv6,目前IPv6成為公認(rèn)的IPv4未來的升級版本。最本質(zhì)的改 進-幾乎無限的地址空間地址長度由32位增加到1 位,提供340萬億萬億萬億個地址, 地球表面67萬億個地址/平方米。IPv6地址的表示方法如下用十六進制表示,如:FE08 …。4位一組,中間用“”隔開,共8組,即共32個字符,如2001:0410:0000:0001:000 0:0000:0000:45ff。以零開頭的組可以省略前面的0,全0的組可用“”表示,如 2001:410:0:1::45ffο地址前綴長度用“/xx”來表示,如1::1/64。
圖2給出了 IPv6報文的結(jié)構(gòu)示意圖,如圖2所示,一個IPv6報文包括版本(Version) :4bit版本號6,即二進制0110,表示IPv6信息包;流量級別(Traffic Class)用于源節(jié)點或路由器識別和區(qū)分不同級別的IPv6信 息包,相當(dāng)于IPv4的TOS字段;流標(biāo)簽(Flow Label)標(biāo)識一系列屬于同一流的信息包。一個流可以由源IPv6地 址和非空的流標(biāo)簽唯一地標(biāo)識。載荷長度(Payload Length)指IPv6信息包除去報頭之后的數(shù)據(jù)字段的長度,以 字節(jié)為單位,最大載荷長度為65535 ;下一個報頭(NH,Next Header) :8位的下一個報頭字段指出IPv6報頭之后的報頭 類型,相當(dāng)于IPv4的協(xié)議號。跳數(shù)限制(Hop Limit)信息包每向前經(jīng)過一個轉(zhuǎn)發(fā)節(jié)點路程段限制減1,當(dāng)跳數(shù) 限制減至0,則丟棄該信息包,相當(dāng)于IPv4的TTL。IPv4與IPv6報文結(jié)構(gòu)比較IPv4的TOS字段相當(dāng)于IPv6的流量類型字段;IPv4的TTL字段相當(dāng)于IPv6的跳段數(shù)限制字段;IPv4的協(xié)議字段相當(dāng)于IPv6的下一報頭字段。圖3給出了一個現(xiàn)有的實現(xiàn)IPv4負(fù)載均衡的組網(wǎng)圖,如圖3所示,在IPv4負(fù)載均 衡技術(shù)中,負(fù)載均衡設(shè)備對外提供一個前端IPv4虛服務(wù)地址作為業(yè)務(wù)訪問地址,客戶端通 過該地址進行業(yè)務(wù)訪問,感知不到后端的服務(wù)器群的存在。圖4為現(xiàn)有的實現(xiàn)IPv4負(fù)載均衡的流程圖,如圖4所示,其具體步驟如下步驟401 客戶端將業(yè)務(wù)訪問請求報文發(fā)送給負(fù)載均衡設(shè)備,報文的源IP地址為 客戶端的IPv4地址,目的IP地址為負(fù)載均衡設(shè)備的IPv4虛服務(wù)地址。步驟402:負(fù)載均衡設(shè)備接收該業(yè)務(wù)訪問請求報文,通過負(fù)載均衡算法,選擇 一個真實的服務(wù)器,再通過目的網(wǎng)絡(luò)地址轉(zhuǎn)換(DNAT,DestinationNetwork Address Translation),用選定的真實服務(wù)器的IPv4地址替換業(yè)務(wù)訪問請求報文的目的IP地址,將 報文發(fā)送給選定的真實服務(wù)器。本步驟中,業(yè)務(wù)訪問請求報文的源IP地址仍然為客戶端的IPv4地址。步驟403 真實服務(wù)器處理該業(yè)務(wù)訪問請求報文,處理完畢,返回業(yè)務(wù)訪問響應(yīng)報 文,該響應(yīng)報文的源IP地址為該真實服務(wù)器的IPv4地址,目的IP地址為客戶端的IPv4地址。步驟404 業(yè)務(wù)訪問響應(yīng)報文到達負(fù)載均衡設(shè)備,負(fù)載均衡設(shè)備以自身的IPv4虛 服務(wù)地址替換報文的源IP地址,將報文發(fā)送給客戶端。IPv6負(fù)載均衡技術(shù)的實現(xiàn)原理與IPv4負(fù)載均衡技術(shù)相同,只是交互的報文為 IPv6報文,具體交互不再贅述。IPv4負(fù)載均衡技術(shù)和IPv6負(fù)載均衡技術(shù)可以解決對應(yīng)地址協(xié)議的服務(wù)器壓力問 題,但從IPv4到IPv6的過渡期不會一蹴而就,IPv6會慢慢取代IPv4,兩種地址協(xié)議將會共 存較長一段時間。從具體的應(yīng)用環(huán)境來看,后端真實服務(wù)器所具有的服務(wù)能力(IPv4/IPv6) 也隨不同客戶能力水平而不同,真正從IPv4到IPv6的服務(wù)切換也需要一個過渡期?,F(xiàn)有 的IPv4或IPv6負(fù)載均衡技術(shù)無法解決過渡時期的負(fù)載均衡要求,如
當(dāng)負(fù)載均衡設(shè)備的前端,即客戶端使用IPv6地址,后端為IPv4服務(wù)器群或者為 IPv4與IPv6服務(wù)器混合群時;當(dāng)負(fù)載均衡設(shè)備的前端使用IPv4地址,后端為IPv6服務(wù)器群或者為IPv4與IPv6 服務(wù)器混合群時;當(dāng)負(fù)載均衡設(shè)備的前端存在同一服務(wù)的雙協(xié)議地址IPv4和IPv6地址,后端為 IPv4服務(wù)器群或者為IPv6服務(wù)器群或者為IPv4與IPv6服務(wù)器混合群時。
發(fā)明內(nèi)容
本發(fā)明提供負(fù)載均衡方法及裝置,以實現(xiàn)在負(fù)載均衡設(shè)備的前端和后端的IP地 址協(xié)議版本不完全相同情況下的負(fù)載均衡。本發(fā)明的技術(shù)方案是這樣實現(xiàn)的—種負(fù)載均衡方法,應(yīng)用于負(fù)載均衡設(shè)備上,所述負(fù)載均衡設(shè)備位于后端服務(wù)器 群前為后端服務(wù)器提供負(fù)載均衡服務(wù),所述負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上配 置有IP地址,且配置的IP地址的協(xié)議版本與后端服務(wù)器群支持的IP地址協(xié)議版本相對 應(yīng),該方法包括負(fù)載均衡設(shè)備接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算法確 定該報文應(yīng)發(fā)往的服務(wù)器;負(fù)載均衡設(shè)備判斷該服務(wù)器使用的IP地址協(xié)議版本與客戶端使用的IP地址協(xié)議 版本是否一致,若不一致,則在本設(shè)備與后端服務(wù)器群相連的接口上配置的IP地址中,選 擇一個與應(yīng)發(fā)往的服務(wù)器的IP地址協(xié)議版本相同的IP地址,對報文進行源網(wǎng)絡(luò)地址轉(zhuǎn)換 SNAT處理,其中,SNAT處理后的源IP地址為選定的IP地址,將報文發(fā)送給應(yīng)發(fā)往的服務(wù)
ο所述將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器之后進一步包括負(fù)載均衡設(shè)備接收該服務(wù)器返回的業(yè)務(wù)訪問響應(yīng)報文,以所述客戶端的IP地址 替換該響應(yīng)報文的目的IP地址,將響應(yīng)報文發(fā)送給客戶端。所述將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器之前進一步包括負(fù)載均衡設(shè)備對業(yè)務(wù)訪問請求報文進行目的網(wǎng)絡(luò)地址轉(zhuǎn)換DNAT處理,其中,DNAT 處理后的目的IP地址為應(yīng)發(fā)往的服務(wù)器的IP地址,并記錄SNAT、DNAT處理前業(yè)務(wù)訪問請 求報文的流特征信息與SNAT、DNAT處理后業(yè)務(wù)訪問請求報文的流特征信息的對應(yīng)關(guān)系,所 述流特征信息包括源IP地址、源端口號、目的IP地址,或者包括源IP地址、源端口號、目 的IP地址、目的端口號;且,所述負(fù)載均衡設(shè)備以所述客戶端的IP地址替換該響應(yīng)報文的目的IP地址 包括負(fù)載均衡設(shè)備根據(jù)該響應(yīng)報文的流特征信息,在記錄的對應(yīng)關(guān)系中查找到對應(yīng)的 SNAT、DNAT處理前的流特征信息,以SNAT、DNAT處理前的流特征信息替換該響應(yīng)報文的流 特征信息。所述負(fù)載均衡設(shè)備利用預(yù)設(shè)的負(fù)載均衡算法確定該報文應(yīng)發(fā)往的服務(wù)器包括負(fù)載均衡設(shè)備將該報文的特征與自身的各持續(xù)性表項一一匹配,若匹配上,直接 將持續(xù)性表項中的服務(wù)器標(biāo)識作為該報文應(yīng)發(fā)往的服務(wù)器標(biāo)識,若未匹配上,負(fù)載均衡設(shè) 備利用預(yù)設(shè)的負(fù)載均衡算法確定該報文應(yīng)發(fā)往的服務(wù)器,同時建立新的持續(xù)性表項,表項內(nèi)容包括報文的特征與確定的服務(wù)器標(biāo)識。所述負(fù)載均衡設(shè)備將該報文的特征與自身的各持續(xù)性表項一一匹配之前進一步 包括負(fù)載均衡設(shè)備判斷自身是否使能了持續(xù)性功能,若使能了,執(zhí)行所述將該報文的 特征與自身的各持續(xù)性表項一一匹配的動作;若未使能,利用預(yù)設(shè)的負(fù)載均衡算法確定該 報文應(yīng)發(fā)往的服務(wù)器。一種負(fù)載均衡裝置,該裝置包括服務(wù)器選擇模塊接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算 法確定該報文應(yīng)發(fā)往的服務(wù)器,將該報文和該服務(wù)器標(biāo)識發(fā)送給地址版本匹配處理模塊;地址版本匹配處理模塊接收服務(wù)器選擇模塊發(fā)來的業(yè)務(wù)訪問請求報文和服務(wù)器 標(biāo)識,判斷該服務(wù)器使用的IP地址協(xié)議版本與客戶端使用的IP地址協(xié)議版本是否一致,若 不一致,則在負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上配置的IP地址中,選擇一個與應(yīng) 發(fā)往的服務(wù)器的IP地址協(xié)議版本相同的IP地址,對該報文進行SNAT處理,其中,SNAT處 理后的源IP地址為選定的IP地址,以便負(fù)載均衡設(shè)備將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器,所述 負(fù)載均衡設(shè)備位于后端服務(wù)器群前為后端服務(wù)器提供負(fù)載均衡服務(wù),所述負(fù)載均衡設(shè)備與 后端服務(wù)器群相連的接口上配置有IP地址,且IP地址的協(xié)議版本與后端服務(wù)器群支持的 IP地址協(xié)議版本相對應(yīng)。所述地址版本匹配處理模塊進一步用于,當(dāng)接收到所述服務(wù)器返回的業(yè)務(wù)訪問響 應(yīng)報文后,以發(fā)來業(yè)務(wù)訪問請求報文的客戶端的IP地址替換該響應(yīng)報文的目的IP地址,將 該響應(yīng)報文發(fā)送給所述客戶端。所述地址版本匹配處理模塊進一步用于,在對報文進行SNAT處理時,對報文進行 DNAT處理,其中,DNAT處理后的目的IP地址為應(yīng)發(fā)往的服務(wù)器的IP地址,記錄SNAT、DNAT 處理前業(yè)務(wù)訪問請求報文的流特征信息與SNAT、DNAT處理后業(yè)務(wù)訪問請求報文的流特征 信息的對應(yīng)關(guān)系,其中,所述流特征信息包括源IP地址、源端口號、目的IP地址,或者包 括源IP地址、源端口號、目的IP地址、目的端口號,且,在接收服務(wù)器返回的業(yè)務(wù)訪問響應(yīng) 報文后,根據(jù)該響應(yīng)報文的流特征信息,在記錄的對應(yīng)關(guān)系中查找到SNAT、DNAT處理前的 流特征信息,以該SNAT、DNAT處理前的流特征信息替換響應(yīng)報文的流特征信息。所述服務(wù)器選擇模塊包括第一子模塊接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,判斷負(fù)載均衡設(shè)備是否使能 了持續(xù)性功能,若使能了,將該報文的特征與各持續(xù)性表項一一匹配,若匹配上,直接將持 續(xù)性表項中的服務(wù)器標(biāo)識作為該報文應(yīng)發(fā)往的服務(wù)器標(biāo)識,將該報文和該服務(wù)器標(biāo)識發(fā)送 給地址版本匹配處理模塊,若未匹配上,將該報文發(fā)送給第二子模塊;若未使能,將該報文 發(fā)送給第二子模塊;接收第二子模塊返回的服務(wù)器標(biāo)識,將該報文和該服務(wù)器標(biāo)識發(fā)送給 地址版本匹配處理模塊,同時,若使能了持續(xù)性功能,建立新的持續(xù)性表項,表項內(nèi)容包括 該報文的特征與該服務(wù)器標(biāo)識;第二子模塊接收第一子模塊發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算 法計算出該報文應(yīng)發(fā)往的服務(wù)器,將該服務(wù)器標(biāo)識返回給第一子模塊。所述裝置位于負(fù)載均衡設(shè)備上。與現(xiàn)有技術(shù)相比,本發(fā)明實現(xiàn)了在負(fù)載均衡設(shè)備的前端和后端的IP地址協(xié)議版本不完全相同情況下的負(fù)載均衡。
圖1為現(xiàn)有的單機模式組網(wǎng)圖;圖2為IPv6報文的結(jié)構(gòu)示意圖;圖3為現(xiàn)有的實現(xiàn)IPv4負(fù)載均衡的組網(wǎng)圖;圖4為現(xiàn)有的實現(xiàn)IPv4負(fù)載均衡的流程圖;圖5為本發(fā)明實施例提供的負(fù)載均衡方法流程圖;圖6為本發(fā)明實施例提供的負(fù)載均衡裝置的組成圖。
具體實施例方式下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細(xì)的說明。圖5為本發(fā)明實施例提供的負(fù)載均衡方法流程圖,如圖5所示,其具體步驟如下步驟501 對于每個負(fù)載均衡設(shè)備,預(yù)先在該負(fù)載均衡設(shè)備與后端服務(wù)器群相連 的接口上配置IPv4負(fù)載均衡地址和/或IPv6負(fù)載均衡地址,且配置的IPv4負(fù)載均衡地址 和/或IPv6負(fù)載均衡地址的協(xié)議版本與后端服務(wù)器群支持的IP地址協(xié)議版本完全一致。若后端服務(wù)器群全部使用IPv4地址,則在負(fù)載均衡設(shè)備與后端服務(wù)器群相連的 接口上只配置IPv4負(fù)載均衡地址;若后端服務(wù)器群全部使用IPv6地址,則在負(fù)載均衡設(shè) 備與后端服務(wù)器群相連的接口上只配置IPv6負(fù)載均衡地址;若后端服務(wù)器群一部分使用 IPv4地址,另一部分使用IPv6地址,則在負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上同時 配置IPv4負(fù)載均衡地址和IPv6負(fù)載均衡地址。步驟502 客戶端向負(fù)載均衡設(shè)備發(fā)送業(yè)務(wù)訪問請求報文,報文的源IP地址為客 戶端的IP地址,目的IP地址為負(fù)載均衡設(shè)備的IP虛服務(wù)地址。根據(jù)負(fù)載均衡設(shè)備對外提供的虛服務(wù)地址IPv4和/或IPv6虛服務(wù)地址,本步驟 中的業(yè)務(wù)訪問請求報文可能是IPv4報文,也可能是IPv6報文。當(dāng)為IPv4報文時,源IP地 址為客戶端的IPv4地址,目的IP地址為負(fù)載均衡設(shè)備的IPv4虛服務(wù)地址;當(dāng)為IPv6報文 時,源IP地址為客戶端的IPv6地址,目的IP地址為負(fù)載均衡設(shè)備的IPv6虛服務(wù)地址。需要說明的是,當(dāng)負(fù)載均衡設(shè)備對外提供IPv4虛服務(wù)地址時,此時,步驟501中, 在該負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上配置的IPv4負(fù)載均衡地址可以直接使用 該IPv4虛服務(wù)地址;同樣,當(dāng)負(fù)載均衡設(shè)備對外提供IPv6虛服務(wù)地址時,此時,步驟501 中,在該負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上配置的IPv6負(fù)載均衡地址可以直接 使用該IPv6虛服務(wù)地址。步驟503 負(fù)載均衡設(shè)備接收業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算法計算 出該報文應(yīng)發(fā)往的服務(wù)器序號。這里,負(fù)載均衡算法可以采用現(xiàn)有算法,例如輪轉(zhuǎn)算法、隨機算法、基于地址的 Hash算法、最小連接算法、服務(wù)器壓力算法、加權(quán)算法等。當(dāng)采用基于地址的Hash算法時, 可對IPv4、IPv6地址分別采用不同的Hash算法,也可采用相同的Hash算法。每個服務(wù)器具有一個唯一的序號。步驟504 負(fù)載均衡設(shè)備判斷應(yīng)發(fā)往的服務(wù)器使用的IP地址協(xié)議版本是否與客戶端使用的IP地址協(xié)議版本一致,若是,執(zhí)行步驟505 ;否則,執(zhí)行步驟506。步驟505 負(fù)載均衡設(shè)備采用現(xiàn)有技術(shù)對該報文進行轉(zhuǎn)發(fā)處理,本流程結(jié)束。步驟506 負(fù)載均衡設(shè)備在自身與后端服務(wù)器群相連接口上配置的IPv4負(fù)載均衡 地址和/或IPv6負(fù)載均衡地址中,選擇一個IP地址協(xié)議版本與應(yīng)發(fā)往的服務(wù)器的IP地址 協(xié)議版本相同的IP地址,對業(yè)務(wù)訪問請求報文進行源NAT (SNAT,Source NAT)處理和DNAT 處理,其中,SNAT處理后的源IP地址為選定的IP地址,DNAT處理后的目的IP地址為應(yīng)發(fā) 往的服務(wù)器的IP地址,將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器,同時記錄SNAT、DNAT處理前報文的 五元組與SNAT、DNAT處理后報文的五元組的對應(yīng)關(guān)系。這里,在進行SNAT處理時,還需對報文的源端口號進行替換,負(fù)載均衡設(shè)備會為 報文隨機分配一個源端口號,并將報文的源端口號替換為該分配的源端口號。在進行DNAT 處理時,若對于應(yīng)發(fā)往的服務(wù)器,負(fù)載均衡設(shè)備上不僅配置了該服務(wù)器的IP地址,同時也 配置了該服務(wù)器的端口號,則在對報文的目的IP地址進行替換時,同時對目的端口號進行 替換,替換后的目的端口號即配置的該服務(wù)器的端口號;若負(fù)載均衡設(shè)備上只配置了該服 務(wù)器的IP地址,則只對報文的目的IP地址進行替換。本步驟中,若未對目的端口號進行替換,則負(fù)載均衡設(shè)備可只記錄SNAT、DNAT處 理前報文的源IP地址、源端口號、目的IP地址與SNAT、DNAT處理后報文的源IP地址、源端 口號、目的IP地址的對應(yīng)關(guān)系。若應(yīng)發(fā)往的服務(wù)器使用IPv4地址,則以在負(fù)載均衡設(shè)備與后端服務(wù)器群相連接 口上配置的IPv4負(fù)載均衡地址替換業(yè)務(wù)訪問請求報文的源IP地址(此時,業(yè)務(wù)訪問請求 報文是IPv6客戶端發(fā)來的);若應(yīng)發(fā)往的服務(wù)器使用IPv6地址,則以在負(fù)載均衡設(shè)備與后 端服務(wù)器群相連接口上配置的IPv6負(fù)載均衡地址替換業(yè)務(wù)訪問請求報文的源IP地址(此 時,業(yè)務(wù)訪問請求報文是IPv4客戶端發(fā)來的)。步驟507 服務(wù)器接收并處理該報文,處理完畢,向負(fù)載均衡設(shè)備返回業(yè)務(wù)訪問響 應(yīng)報文,報文的源IP地址為服務(wù)器的IP地址,目的IP地址為業(yè)務(wù)訪問請求報文的源IP地址。步驟508 負(fù)載均衡設(shè)備接收該響應(yīng)報文,根據(jù)該報文的五元組,在步驟506記錄 的對應(yīng)關(guān)系中查找到對應(yīng)的SNAT、DNAT處理前的五元組,以SNAT、DNAT處理前的五元組替 換報文的五元組,將報文發(fā)送給客戶端。若對應(yīng)關(guān)系中只包含SNAT、DNAT處理前的源IP地址、源端口號、目的IP地址與 SNAT、DNAT處理后的源IP地址、源端口號、目的IP地址的對應(yīng)關(guān)系,則只需根據(jù)報文的目 的IP地址、目的端口號、源IP地址查找對應(yīng)關(guān)系,得到SNAT、DNAT處理前的目的IP地址、 目的端口號、源IP地址,以該SNAT、DNAT處理前的目的IP地址、目的端口號、源IP地址替 換報文的目的IP地址、目的端口號、源IP地址即可。在實際應(yīng)用中,對于存在特定關(guān)系的報文需要分發(fā)給同一服務(wù)器,例如對于同一 HTTP服務(wù)的多個連接,為了保證該服務(wù)的連續(xù)性、可靠性,應(yīng)該將屬于該服務(wù)的連接報文都 分發(fā)給同一服務(wù)器。為了適應(yīng)該需要,可對本發(fā)明實施例作出如下改進步驟503中,負(fù)載均衡設(shè)備接收到業(yè)務(wù)訪問請求報文后,要先判斷自身是否使能 了持續(xù)性功能,若使能了,則將該報文的特征與自身的各持續(xù)性表項一一匹配,若匹配上, 則直接將持續(xù)性表項中的服務(wù)器序號作為該報文應(yīng)發(fā)往的服務(wù)器序號,轉(zhuǎn)至步驟504 ;若未匹配上,則利用預(yù)設(shè)的負(fù)載均衡算法計算出該報文應(yīng)發(fā)往的服務(wù)器序號,同時建立新的 持續(xù)性表項,表項內(nèi)容包括報文的特征與計算出的服務(wù)器序號,轉(zhuǎn)至步驟504 ;若未使能, 則利用預(yù)設(shè)的負(fù)載均衡算法計算出該報文應(yīng)發(fā)往的服務(wù)器序號,轉(zhuǎn)至步驟504。其中,持續(xù)性表項中的報文特征是根據(jù)實際需要確定的,例如可為報文的源IP 地址、目的IP地址、源端口號、目的端口號等中的一項或任意組合。本發(fā)明實施例對于以下三種情況,都可以實現(xiàn)負(fù)載均衡一、當(dāng)負(fù)載均衡設(shè)備的前端,即客戶端使用IPv6地址,后端為IPv4服務(wù)器群或者 為IPv4與IPv6服務(wù)器混合群時;二、當(dāng)負(fù)載均衡設(shè)備的前端使用IPv4地址,后端為IPv6服務(wù)器群或者為IPv4與 IPv6服務(wù)器混合群時;三、當(dāng)負(fù)載均衡設(shè)備的前端存在同一服務(wù)的雙協(xié)議地址IPv4和IPv6地址,后端 為IPv4服務(wù)器群或者為IPv6服務(wù)器群或者為IPv4與IPv6服務(wù)器混合群時。對于情況一中的前端使用IPv6地址、后端為IPv4服務(wù)器群,以下給出應(yīng)用本發(fā) 明實施例進行負(fù)載均衡的具體過程步驟01 預(yù)先在負(fù)載均衡設(shè)備與后端IPv4服務(wù)器群相連的接口上配置一個IPv4 負(fù)載均衡地址。步驟02 客戶端向負(fù)載均衡設(shè)備發(fā)送業(yè)務(wù)訪問請求報文,報文的源IP地址為客戶 端的IPv6地址,目的IP地址為負(fù)載均衡設(shè)備的IPv6虛服務(wù)地址。步驟03 負(fù)載均衡設(shè)備接收業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算法計算出 該報文應(yīng)發(fā)往的服務(wù)器序號。步驟04 負(fù)載均衡設(shè)備以步驟01中配置的IPv4負(fù)載均衡地址替換業(yè)務(wù)訪問請 求報文的源IP地址,以服務(wù)器的IPv4地址替換報文的目的IP地址,將報文發(fā)送給應(yīng)發(fā)往 的服務(wù)器,同時記錄報文替換前的源IP地址即客戶端的IPv6地址、替換后的源IP地址即 IPv4負(fù)載均衡地址、替換前的目的IP地址即負(fù)載均衡設(shè)備的IPv6虛服務(wù)地址、替換后的目 的IP地址即服務(wù)器的IPv4地址、源端口號、目的端口號、協(xié)議號的對應(yīng)關(guān)系。步驟05 服務(wù)器接收并處理該報文,處理完畢,向負(fù)載均衡設(shè)備返回業(yè)務(wù)訪問響 應(yīng)報文,報文的源IP地址為服務(wù)器的IPv4地址,目的IP地址為業(yè)務(wù)訪問請求報文的源IP 地址即IPv4負(fù)載均衡地址。步驟06 負(fù)載均衡設(shè)備接收該響應(yīng)報文,根據(jù)該報文的源IP地址即服務(wù)器的IPv4 地址、源端口號、目的IP地址、目的端口號和協(xié)議號,在步驟04記錄的對應(yīng)關(guān)系中查找到對 應(yīng)的客戶端的IPv6地址,以客戶端的IPv6地址替換報文的目的IP地址,將報文發(fā)送給客戶端。對于情況一中的前端使用IPv6地址、后端為IPv4與IPv6服務(wù)器混合群,以下給 出應(yīng)用本發(fā)明實施例進行負(fù)載均衡的具體過程步驟01 預(yù)先在負(fù)載均衡設(shè)備與后端IPv4服務(wù)器群相連的接口上配置一個IPv4 負(fù)載均衡地址和一個IPv6負(fù)載均衡地址。步驟02 客戶端向負(fù)載均衡設(shè)備發(fā)送業(yè)務(wù)訪問請求報文,報文的源IP地址為客戶 端的IPv6地址,目的IP地址為負(fù)載均衡設(shè)備的IPv6虛服務(wù)地址。步驟03 負(fù)載均衡設(shè)備接收業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算法計算出該報文應(yīng)發(fā)往的服務(wù)器序號。步驟04 負(fù)載均衡設(shè)備判斷應(yīng)發(fā)往的服務(wù)器使用的IP地址協(xié)議版本是否與客戶 端使用的IP地址協(xié)議版本一致,若是,執(zhí)行步驟05 ;否則,執(zhí)行步驟06。步驟05 負(fù)載均衡設(shè)備采用現(xiàn)有技術(shù)對該報文進行轉(zhuǎn)發(fā)處理,本流程結(jié)束。步驟06 負(fù)載均衡設(shè)備在自身與后端服務(wù)器群相連接口上配置的IPv4負(fù)載均衡 地址和IPv6負(fù)載均衡地址中,選擇一個IPv4負(fù)載均衡地址,以選定的IPv4負(fù)載均衡地址 替換業(yè)務(wù)訪問請求報文的源IP地址,以服務(wù)器的IPv4地址替換報文的目的IP地址,將報 文發(fā)送給應(yīng)發(fā)往的服務(wù)器,同時記錄報文替換前的源IP地址即客戶端的IPv6地址、替換后 的源IP地址即選定的IPv4負(fù)載均衡地址、替換前的目的IP地址即負(fù)載均衡設(shè)備的IPv6 虛服務(wù)地址、替換后的目的IP地址即服務(wù)器的IPv4地址、源端口號、目的端口號、協(xié)議號的 對應(yīng)關(guān)系。這里,應(yīng)發(fā)往的服務(wù)器使用IPv4地址,則選擇IPv4負(fù)載均衡地址。步驟07 服務(wù)器接收并處理該報文,處理完畢,向負(fù)載均衡設(shè)備返回業(yè)務(wù)訪問響 應(yīng)報文,報文的源IP地址為服務(wù)器的IPv4地址,目的IP地址為業(yè)務(wù)訪問請求報文的源IP 地址。步驟08 負(fù)載均衡設(shè)備接收該響應(yīng)報文,根據(jù)該報文的源IP地址即服務(wù)器的IPv4 地址、源端口號、目的IP地址、目的端口號和協(xié)議號,在步驟04記錄的對應(yīng)關(guān)系中查找到對 應(yīng)的客戶端的IPv6地址,以客戶端的IPv6地址替換報文的目的IP地址,將報文發(fā)送給客戶端。對于情況二、三,其負(fù)載均衡過程可由圖5所示實施例,或者情況一的負(fù)載均衡過 程直接得到,不再贅述。圖6為本發(fā)明實施例提供的負(fù)載均衡裝置的組成圖,如圖6所示,該裝置包括服 務(wù)器選擇模塊61和地址版本匹配處理模塊62,其中服務(wù)器選擇模塊61 接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡 算法確定該報文應(yīng)發(fā)往的服務(wù)器,將該報文和該服務(wù)器標(biāo)識發(fā)送給地址版本匹配處理模塊 62。地址版本匹配處理模塊62 接收服務(wù)器選擇模塊61發(fā)來的業(yè)務(wù)訪問請求報文和 服務(wù)器標(biāo)識,判斷該服務(wù)器使用的IP地址協(xié)議版本與客戶端使用的IP地址協(xié)議版本是否 一致,若不一致,則在負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上配置的IPv4負(fù)載均衡地 址和/或IPv6負(fù)載均衡地址中,選擇一個與應(yīng)發(fā)往的服務(wù)器的IP地址協(xié)議版本相同的IP 地址,對報文進行SNAT處理,其中,SNAT處理后的源IP地址為選定的IP地址,以便負(fù)載均 衡設(shè)備將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器,其中,負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上 配置有IPv4負(fù)載均衡地址和/或IPv6負(fù)載均衡地址,且IPv4負(fù)載均衡地址和/或IPv6 負(fù)載均衡地址的協(xié)議版本與后端服務(wù)器群支持的IP地址協(xié)議版本完全一致。地址版本匹配處理模塊62還可用于,當(dāng)接收到所述服務(wù)器返回的業(yè)務(wù)訪問響應(yīng) 報文后,以發(fā)來業(yè)務(wù)訪問請求報文的客戶端的IP地址替換該響應(yīng)報文的目的IP地址,將該 響應(yīng)報文發(fā)送給所述客戶端。地址版本匹配處理模塊62還可用于,在對報文進行SNAT處理時,對報文進行DNAT 處理,其中,DNAT處理后的目的IP地址為應(yīng)發(fā)往的服務(wù)器的IP地址,記錄SNAT、DNAT處理前業(yè)務(wù)訪問請求報文的流特征信息與SNAT、DNAT處理后業(yè)務(wù)訪問請求報文的流特征信息 的對應(yīng)關(guān)系,其中,流特征信息包括源IP地址、源端口號、目的IP地址,或者包括源IP 地址、源端口號、目的IP地址、目的端口號,且,在接收服務(wù)器返回的業(yè)務(wù)訪問響應(yīng)報文后, 根據(jù)該響應(yīng)報文的流特征信息,在記錄的對應(yīng)關(guān)系中查找到SNAT、DNAT處理前的流特征信 息,以該SNAT、DNAT處理前的流特征信息替換響應(yīng)報文的流特征信息。服務(wù)器選擇模塊61可包括第一子模塊和第二子模塊,其中第一子模塊接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,判斷負(fù)載均衡設(shè)備是否使能 了持續(xù)性功能,若使能了,將該報文的特征與各持續(xù)性表項一一匹配,若匹配上,直接將持 續(xù)性表項中的服務(wù)器標(biāo)識作為該報文應(yīng)發(fā)往的服務(wù)器標(biāo)識,將該報文和該服務(wù)器標(biāo)識發(fā)送 給地址版本匹配處理模塊,若未匹配上,將該報文發(fā)送給第二子模塊;若未使能,將該報文 發(fā)送給第二子模塊;接收第二子模塊返回的服務(wù)器標(biāo)識,將該報文和該服務(wù)器標(biāo)識發(fā)送給 地址版本匹配處理模塊,同時,若使能了持續(xù)性功能,建立新的持續(xù)性表項,表項內(nèi)容包括 該報文的特征與該服務(wù)器標(biāo)識。第二子模塊接收第一子模塊發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算 法計算出該報文應(yīng)發(fā)往的服務(wù)器,將該服務(wù)器標(biāo)識返回給第一子模塊。本發(fā)明實施例提供的負(fù)載均衡裝置位于負(fù)載均衡設(shè)備上。本發(fā)明實施例對于四層負(fù)載均衡及七層負(fù)載均衡都有效。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
權(quán)利要求
1.一種負(fù)載均衡方法,應(yīng)用于負(fù)載均衡設(shè)備上,所述負(fù)載均衡設(shè)備位于后端服務(wù)器群 前為后端服務(wù)器提供負(fù)載均衡服務(wù),所述負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上配置 有IP地址,且配置的IP地址的協(xié)議版本與后端服務(wù)器群支持的IP地址協(xié)議版本相對應(yīng), 其特征在于,該方法包括負(fù)載均衡設(shè)備接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算法確定該 報文應(yīng)發(fā)往的服務(wù)器;負(fù)載均衡設(shè)備判斷該服務(wù)器使用的IP地址協(xié)議版本與客戶端使用的IP地址協(xié)議版本 是否一致,若不一致,則在本設(shè)備與后端服務(wù)器群相連的接口上配置的IP地址中,選擇一 個與應(yīng)發(fā)往的服務(wù)器的IP地址協(xié)議版本相同的IP地址,對報文進行源網(wǎng)絡(luò)地址轉(zhuǎn)換SNAT 處理,其中,SNAT處理后的源IP地址為選定的IP地址,將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器之后 進一步包括負(fù)載均衡設(shè)備接收該服務(wù)器返回的業(yè)務(wù)訪問響應(yīng)報文,以所述客戶端的IP地址替換 該響應(yīng)報文的目的IP地址,將響應(yīng)報文發(fā)送給客戶端。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器之前 進一步包括負(fù)載均衡設(shè)備對業(yè)務(wù)訪問請求報文進行目的網(wǎng)絡(luò)地址轉(zhuǎn)換DNAT處理,其中,DNAT處理 后的目的IP地址為應(yīng)發(fā)往的服務(wù)器的IP地址,并記錄SNAT、DNAT處理前業(yè)務(wù)訪問請求報 文的流特征信息與SNAT、DNAT處理后業(yè)務(wù)訪問請求報文的流特征信息的對應(yīng)關(guān)系,所述流 特征信息包括源IP地址、源端口號、目的IP地址,或者包括源IP地址、源端口號、目的 IP地址、目的端口號;且,所述負(fù)載均衡設(shè)備以所述客戶端的IP地址替換該響應(yīng)報文的目的IP地址包括負(fù) 載均衡設(shè)備根據(jù)該響應(yīng)報文的流特征信息,在記錄的對應(yīng)關(guān)系中查找到對應(yīng)的SNAT、DNAT 處理前的流特征信息,以SNAT、DNAT處理前的流特征信息替換該響應(yīng)報文的流特征信息。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述負(fù)載均衡設(shè)備利用預(yù)設(shè)的負(fù)載均衡 算法確定該報文應(yīng)發(fā)往的服務(wù)器包括負(fù)載均衡設(shè)備將該報文的特征與自身的各持續(xù)性表項一一匹配,若匹配上,直接將持 續(xù)性表項中的服務(wù)器標(biāo)識作為該報文應(yīng)發(fā)往的服務(wù)器標(biāo)識,若未匹配上,負(fù)載均衡設(shè)備利 用預(yù)設(shè)的負(fù)載均衡算法確定該報文應(yīng)發(fā)往的服務(wù)器,同時建立新的持續(xù)性表項,表項內(nèi)容 包括報文的特征與確定的服務(wù)器標(biāo)識。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述負(fù)載均衡設(shè)備將該報文的特征與自 身的各持續(xù)性表項一一匹配之前進一步包括負(fù)載均衡設(shè)備判斷自身是否使能了持續(xù)性功能,若使能了,執(zhí)行所述將該報文的特征 與自身的各持續(xù)性表項一一匹配的動作;若未使能,利用預(yù)設(shè)的負(fù)載均衡算法確定該報文 應(yīng)發(fā)往的服務(wù)器。
6.一種負(fù)載均衡裝置,其特征在于,該裝置包括服務(wù)器選擇模塊接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算法確 定該報文應(yīng)發(fā)往的服務(wù)器,將該報文和該服務(wù)器標(biāo)識發(fā)送給地址版本匹配處理模塊;地址版本匹配處理模塊接收服務(wù)器選擇模塊發(fā)來的業(yè)務(wù)訪問請求報文和服務(wù)器標(biāo)識,判斷該服務(wù)器使用的IP地址協(xié)議版本與客戶端使用的IP地址協(xié)議版本是否一致,若不 一致,則在負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上配置的IP地址中,選擇一個與應(yīng)發(fā) 往的服務(wù)器的IP地址協(xié)議版本相同的IP地址,對該報文進行SNAT處理,其中,SNAT處理 后的源IP地址為選定的IP地址,以便負(fù)載均衡設(shè)備將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器,所述負(fù) 載均衡設(shè)備位于后端服務(wù)器群前為后端服務(wù)器提供負(fù)載均衡服務(wù),所述負(fù)載均衡設(shè)備與后 端服務(wù)器群相連的接口上配置有IP地址,且IP地址的協(xié)議版本與后端服務(wù)器群支持的IP 地址協(xié)議版本相對應(yīng)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述地址版本匹配處理模塊進一步用于, 當(dāng)接收到所述服務(wù)器返回的業(yè)務(wù)訪問響應(yīng)報文后,以發(fā)來業(yè)務(wù)訪問請求報文的客戶端的IP 地址替換該響應(yīng)報文的目的IP地址,將該響應(yīng)報文發(fā)送給所述客戶端。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述地址版本匹配處理模塊進一步用于, 在對報文進行SNAT處理時,對報文進行DNAT處理,其中,DNAT處理后的目的IP地址為應(yīng) 發(fā)往的服務(wù)器的IP地址,記錄SNAT、DNAT處理前業(yè)務(wù)訪問請求報文的流特征信息與SNAT、 DNAT處理后業(yè)務(wù)訪問請求報文的流特征信息的對應(yīng)關(guān)系,其中,所述流特征信息包括源 IP地址、源端口號、目的IP地址,或者包括源IP地址、源端口號、目的IP地址、目的端口 號,且,在接收服務(wù)器返回的業(yè)務(wù)訪問響應(yīng)報文后,根據(jù)該響應(yīng)報文的流特征信息,在記錄 的對應(yīng)關(guān)系中查找到SNAT、DNAT處理前的流特征信息,以該SNAT、DNAT處理前的流特征信 息替換響應(yīng)報文的流特征信息。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述服務(wù)器選擇模塊包括第一子模塊接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,判斷負(fù)載均衡設(shè)備是否使能了持 續(xù)性功能,若使能了,將該報文的特征與各持續(xù)性表項一一匹配,若匹配上,直接將持續(xù)性 表項中的服務(wù)器標(biāo)識作為該報文應(yīng)發(fā)往的服務(wù)器標(biāo)識,將該報文和該服務(wù)器標(biāo)識發(fā)送給地 址版本匹配處理模塊,若未匹配上,將該報文發(fā)送給第二子模塊;若未使能,將該報文發(fā)送 給第二子模塊;接收第二子模塊返回的服務(wù)器標(biāo)識,將該報文和該服務(wù)器標(biāo)識發(fā)送給地址 版本匹配處理模塊,同時,若使能了持續(xù)性功能,建立新的持續(xù)性表項,表項內(nèi)容包括該報 文的特征與該服務(wù)器標(biāo)識;第二子模塊接收第一子模塊發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算法計 算出該報文應(yīng)發(fā)往的服務(wù)器,將該服務(wù)器標(biāo)識返回給第一子模塊。
10.根據(jù)權(quán)利要求6至9任一所述的裝置,其特征在于,所述裝置位于負(fù)載均衡設(shè)備上。
全文摘要
本發(fā)明公開了負(fù)載均衡方法及裝置。方法包括對于每個負(fù)載均衡設(shè)備,在該負(fù)載均衡設(shè)備與后端服務(wù)器群相連的接口上配置IP地址,IP地址的協(xié)議版本與后端服務(wù)器群支持的IP地址協(xié)議版本相對應(yīng);負(fù)載均衡設(shè)備接收客戶端發(fā)來的業(yè)務(wù)訪問請求報文,利用預(yù)設(shè)的負(fù)載均衡算法確定報文應(yīng)發(fā)往的服務(wù)器,判斷該服務(wù)器與該客戶端使用的IP地址協(xié)議版本是否一致,若否,在與后端服務(wù)器群相連接口上配置的IP地址中,選擇一個與應(yīng)發(fā)往的服務(wù)器的IP地址協(xié)議版本相同的IP地址,對報文進行SNAT處理,其中,SNAT處理后的源IP地址為選定的IP地址,將報文發(fā)送給應(yīng)發(fā)往的服務(wù)器。本發(fā)明實現(xiàn)了在負(fù)載均衡設(shè)備的前端和后端的IP地址協(xié)議版本不完全相同情況下的負(fù)載均衡。
文檔編號H04L29/12GK102075445SQ20111004772
公開日2011年5月25日 申請日期2011年2月28日 優(yōu)先權(quán)日2011年2月28日
發(fā)明者孫凱, 林濤 申請人:杭州華三通信技術(shù)有限公司