專利名稱:Ip報(bào)文分發(fā)方法、集群系統(tǒng)和負(fù)載均衡器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)技術(shù),特別涉及一種IP報(bào)文分發(fā)方法、集群系統(tǒng)和負(fù)栽 均衡器。
背景技術(shù):
由于客戶/服務(wù)器模型的簡(jiǎn)單性、易管理性和易維護(hù)性,客戶/服務(wù)器 計(jì)算模式在網(wǎng)上被大量采用。隨著用戶量和流量的大幅增長,單一的服務(wù) 器已不能滿足需求。同時(shí),為了滿足電信業(yè)新的需求,基礎(chǔ)平臺(tái)開始由嵌
入式操作系統(tǒng)向Linux操作系統(tǒng)遷移。為此,針對(duì)高可伸縮、高可用網(wǎng)絡(luò) 服務(wù)的需求及操作系統(tǒng)向Linux操作系統(tǒng)的遷移,出現(xiàn)了 Linux虛擬服務(wù) 器(Linux Virtual Server, LVS ) 。 LVS是一種集群系統(tǒng),其將一組真實(shí)服 務(wù)器構(gòu)成一個(gè)實(shí)現(xiàn)可伸縮的、高可用網(wǎng)絡(luò)服務(wù)的虛擬服務(wù)器。 一組真實(shí)服 務(wù)器通過高速的局域網(wǎng)或者地理分布的廣域網(wǎng)相互連接,在它們的前端有 一個(gè)負(fù)載均衡器。負(fù)載均衡器能無縫地將網(wǎng)絡(luò)請(qǐng)求調(diào)度到真實(shí)服務(wù)器上, 從而使得服務(wù)器集群的結(jié)構(gòu)對(duì)客戶是透明的,客戶訪問集群系統(tǒng)提供的網(wǎng) 絡(luò)服務(wù)就像訪問一臺(tái)高性能、高可用的服務(wù)器一樣。LVS包括基于網(wǎng)絡(luò)地 址轉(zhuǎn)才灸的虛擬月良務(wù)器(Virtual Server via Network Address Translation, VS-NAT )、基于直4矣路由的虛擬服務(wù)器(Virtual Server via Direct Routing, VS-DR)和基于IP隧道的虛擬服務(wù)器(Virtual Server via IP Tunneling, VS-TUN)。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題 VS-NAT需要進(jìn)行IP地址轉(zhuǎn)換,VS-TUN需要進(jìn)行IP地址封裝,造成這 兩種方式的吞吐量不夠大;VS-DR的每個(gè)真實(shí)服務(wù)器的出口直接通過網(wǎng)絡(luò)與客戶端連接,組網(wǎng)較復(fù)雜。
發(fā)明內(nèi)容
本發(fā)明提供一種IP報(bào)文分發(fā)方法、集群系統(tǒng)和負(fù)載均衡器,解決現(xiàn)有吞 吐量較小及組網(wǎng)較復(fù)雜的問題。
本發(fā)明實(shí)施例提供了 一種IP報(bào)文分發(fā)方法,包括 接收外部客戶設(shè)備發(fā)送的IP報(bào)文;
根據(jù)所述IP報(bào)文確定所述IP報(bào)文目的介質(zhì)接入控制地址; 將所述IP報(bào)文發(fā)送給所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器; 接收所述服務(wù)器發(fā)送的所述IP報(bào)文的響應(yīng)報(bào)文,將所述響應(yīng)報(bào)文發(fā) 送給所述客戶設(shè)備。
本發(fā)明實(shí)施例提供了一種集群系統(tǒng),包括
一負(fù)載均衡器,與外部的客戶設(shè)備連接,用于接收客戶設(shè)備發(fā)送的IP報(bào) 文,根據(jù)所述IP報(bào)文獲取目的介質(zhì)接入控制地址,將所述IP報(bào)文發(fā)送給所 述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器;
至少一服務(wù)器,分別與負(fù)載均衡器連接,用于處理負(fù)載均衡器發(fā)送的IP 報(bào)文得到該IP報(bào)文的響應(yīng)報(bào)文,并將所述IP報(bào)文的響應(yīng)報(bào)文通過所述負(fù)載 均衡器發(fā)送給所述客戶設(shè)備。
本發(fā)明實(shí)施例提供了一種負(fù)載均衡器,包括
第一模塊,用于接收外部客戶設(shè)備發(fā)送的IP報(bào)文;
第二模塊,用于根據(jù)第一模塊得到的所述IP報(bào)文確定所述IP報(bào)文的 目的介質(zhì)接入控制地址;
第三模塊,用于將所述IP報(bào)文直接通過鏈路層發(fā)送給第二模塊得到 的所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器;
第四模塊,用于接收所述服務(wù)器發(fā)送的所述IP報(bào)文的響應(yīng)報(bào)文,將 所述響應(yīng)報(bào)文發(fā)送給所述客戶設(shè)備。由上述技術(shù)方案可知,本發(fā)明實(shí)施例通過目的MAC轉(zhuǎn)發(fā)IP報(bào)文,無需 對(duì)IP報(bào)文進(jìn)行IP地址轉(zhuǎn)換或IP封裝,可以提高吞吐量;并且,本發(fā)明實(shí)施
個(gè)服務(wù)器單獨(dú)設(shè)置一個(gè)出口與客戶設(shè)備連接,可以簡(jiǎn)化組網(wǎng)結(jié)構(gòu)。
圖1為本發(fā)明第一實(shí)施例的方法流程示意圖2為本發(fā)明第二實(shí)施例的方法流程示意圖3為本發(fā)明第三實(shí)施例的轉(zhuǎn)發(fā)表的示意圖4為本發(fā)明第四實(shí)施例的特征值與服務(wù)器的對(duì)應(yīng)關(guān)系的示意圖;
圖5為本發(fā)明第五實(shí)施例的集群系統(tǒng)的結(jié)構(gòu)示意圖6為本發(fā)明第六實(shí)施例的負(fù)載均衡器的結(jié)構(gòu)示意圖7為本發(fā)明第七實(shí)施例的負(fù)載均衡器的結(jié)構(gòu)示意圖8為本發(fā)明第八實(shí)施例的集群系統(tǒng)的結(jié)構(gòu)示意圖9為本發(fā)明第九實(shí)施例的負(fù)載均衡器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明第一實(shí)施例的方法流程示意圖,包括
步驟101:負(fù)載均衡器接收外部客戶設(shè)備發(fā)送的IP報(bào)文。其中,該IP 報(bào)文中包含五元組及上層協(xié)議,五元組包括源IP地址、目的IP地址、源 端口號(hào)、目的端口號(hào)和協(xié)議。
步驟102:負(fù)載均衡器根據(jù)該IP報(bào)文確定該IP報(bào)文的目的介質(zhì)接入 控制(Media Access Control, MAC)地址。其中,采用固定轉(zhuǎn)發(fā)模式時(shí), 可以直接根據(jù)五元組確定目的MAC地址,采用特征轉(zhuǎn)發(fā)模式時(shí),可以根 據(jù)上層協(xié)議得到IP報(bào)文的特征值,根據(jù)特征值確定目的MAC地址。步驟103:負(fù)載均衡器將所述IP報(bào)文直接通過鏈路層(二層)發(fā)送給 所述目的MAC地址對(duì)應(yīng)的服務(wù)器。相比于現(xiàn)有的IP地址轉(zhuǎn)換或IP地址 封裝方法由于MAC地址的處理位于網(wǎng)絡(luò)架構(gòu)的第二層,IP地址的處理 位于第三層,因此,通過獲取MAC地址,并根據(jù)MAC地址直接在二層 轉(zhuǎn)發(fā)IP報(bào)文,可以提高轉(zhuǎn)發(fā)速度,提高吞吐量。
步驟104:負(fù)載均衡器接收所述服務(wù)器發(fā)送的所述IP報(bào)文的響應(yīng)報(bào)文, 將所述響應(yīng)報(bào)文轉(zhuǎn)發(fā)給所述客戶設(shè)備。具體可以為,服務(wù)器內(nèi)部的轉(zhuǎn)發(fā)模 塊將響應(yīng)報(bào)文轉(zhuǎn)發(fā)給負(fù)載均衡器內(nèi)的轉(zhuǎn)發(fā)模塊,再由負(fù)載均衡器內(nèi)部的轉(zhuǎn)
發(fā)模塊轉(zhuǎn)發(fā)給客戶設(shè)備。相比于現(xiàn)有的服務(wù)器從入口側(cè)接收IP報(bào)文,從 出口側(cè)返回響應(yīng)報(bào)文由于從出口側(cè)返回響應(yīng)報(bào)文,需要在每個(gè)服務(wù)器設(shè) 置出口,并且需要布置連線連接該出口與客戶設(shè)備,而本實(shí)施例無需另外 設(shè)備出口,復(fù)用入口線路,可以簡(jiǎn)化組網(wǎng)結(jié)構(gòu),降低成本。
本實(shí)施例通過目的MAC直接在二層轉(zhuǎn)發(fā)IP報(bào)文,無需對(duì)IP報(bào)文進(jìn)行IP 地址轉(zhuǎn)換或IP封裝,可以提高吞吐量;并且,本發(fā)明實(shí)施例通過將服務(wù)器發(fā) 送的響應(yīng)報(bào)文再通過負(fù)載均衡器轉(zhuǎn)發(fā)給客戶設(shè)備,無需每個(gè)服務(wù)器單獨(dú)設(shè)置 一個(gè)出口與客戶設(shè)備連接,可以筒化組網(wǎng)結(jié)構(gòu),降低成本。
圖1的實(shí)施例描述了 IP報(bào)文的總體流程,即采用MAC地址轉(zhuǎn)發(fā)負(fù)載均 衡器接收的IP報(bào)文,響應(yīng)報(bào)文同樣從負(fù)載均衡器返回給客戶設(shè)備。圖2描述 了 Linux系統(tǒng)的IP才艮文轉(zhuǎn)發(fā)流程的一個(gè)實(shí)施例。
圖2為本發(fā)明第二實(shí)施例的方法流程示意圖,包括
步驟201:負(fù)載均衡器的Linux內(nèi)核空間接收外部客戶設(shè)備發(fā)送的IP報(bào) 文,獲取所述IP報(bào)文的五元組及應(yīng)用層協(xié)議。出于安全方面的考慮,Lini : 系統(tǒng)中包括內(nèi)核空間和用戶空間,運(yùn)行于內(nèi)核空間的程序可以直接訪問任 意硬件出口 ,運(yùn)行于用戶空間的程序需要一些特定的機(jī)制才能訪問 一定的 硬件出口。外部客戶端向負(fù)栽均衡器發(fā)送IP包,該IP包會(huì)到達(dá)該負(fù)栽均 衡器的內(nèi)核的Netfilter鉤子(PREROUTING )處??梢栽谠揘etfilter鉤子處設(shè)置一個(gè)模塊用于獲取該IP報(bào)文。之后執(zhí)行步驟202。
步驟202:負(fù)載均衡器的Linux內(nèi)核空間根據(jù)該五元組判斷是采用固 定轉(zhuǎn)發(fā)模式還是特征轉(zhuǎn)發(fā)模式,若是固定轉(zhuǎn)發(fā)模式,執(zhí)行步驟203,否則, 執(zhí)行步驟205。其中,五元組中的端口號(hào)可以作為判斷是固定轉(zhuǎn)發(fā)模式還 是特征轉(zhuǎn)發(fā)模式的依據(jù),例如,當(dāng)端口號(hào)對(duì)于系統(tǒng)來講是足夠安全的可以 釆用固定轉(zhuǎn)發(fā)模式,再例如,當(dāng)端口號(hào)為上網(wǎng)端口號(hào)(如80)時(shí),可以采 用特征轉(zhuǎn)發(fā)模式。在集群系統(tǒng)中可以包括固定轉(zhuǎn)發(fā)模式和特征轉(zhuǎn)發(fā)模式。 固定轉(zhuǎn)發(fā)模式是指在負(fù)載均衡器內(nèi)預(yù)先配置轉(zhuǎn)發(fā)表,該轉(zhuǎn)發(fā)表中固定設(shè)置 五元組與目的服務(wù)器的對(duì)應(yīng)關(guān)系,五元組相同的IP凈艮文被同一個(gè)服務(wù)器 處理;特征轉(zhuǎn)發(fā)模式是指同一個(gè)特征值的IP報(bào)文被同一個(gè)服務(wù)器處理, 例如,同一個(gè)呼叫流程的IP報(bào)文被同一個(gè)服務(wù)器處理。
步驟203:負(fù)載均衡器的Linux內(nèi)核空間根據(jù)預(yù)先配置的轉(zhuǎn)發(fā)表確定 與所述五元組對(duì)應(yīng)的目的MAC地址。圖3為本發(fā)明第三實(shí)施例的轉(zhuǎn)發(fā)表 的示意圖,參見圖3,例如,得到的五元組為第三IP五元組,根據(jù)該轉(zhuǎn)發(fā) 表可以得到與第三IP五元組對(duì)應(yīng)的為第三服務(wù)器。其中,在轉(zhuǎn)發(fā)表中可 以配置五元組與服務(wù)器的序號(hào)之間的關(guān)系,即上述得到服務(wù)器的序號(hào)為3, 進(jìn)而根據(jù)該序號(hào)可以得到目的服務(wù)器的MAC地址,或者直接配置五元組 與MAC地址的對(duì)應(yīng)關(guān)系。之后執(zhí)行步驟204。
步驟204:負(fù)載均衡器的Linux內(nèi)核空間直接在二層將該IP報(bào)文發(fā)送 給該目的MAC地址對(duì)應(yīng)的服務(wù)器。由于IP報(bào)文是在負(fù)載均衡器的內(nèi)核空 間被獲取的,運(yùn)行于內(nèi)核空間的程序可以直接訪問任意硬件出口 ,并且, 固定轉(zhuǎn)發(fā)模式下負(fù)載均衡器無需對(duì)該IP報(bào)文進(jìn)行進(jìn)一步地處理,因此負(fù) 栽均衡器在獲取目的服務(wù)器的MAC地址后,可以在負(fù)載均衡器的內(nèi)核空 間中,直接使用網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)接口將該IP報(bào)文發(fā)送給所述目的服務(wù)器, 由所述目的服務(wù)器進(jìn)行處理。結(jié)束固定轉(zhuǎn)發(fā)模式的上行流程。之后執(zhí)行步 驟211。步驟205:負(fù)載均衡器的Linux內(nèi)核空間將該IP報(bào)文通過內(nèi)核態(tài)到用 戶態(tài)的通信機(jī)制(如Netlink)發(fā)送給Linux用戶空間。Netlink是Linux 系統(tǒng)中實(shí)現(xiàn)內(nèi)核空間與用戶空間通信的一種機(jī)制。之后執(zhí)行步驟206。
步驟206:負(fù)載均衡器的Linux用戶空間通過與該應(yīng)用層協(xié)議對(duì)應(yīng)的 特征值提取函數(shù),對(duì)該IP報(bào)文進(jìn)行特征值提取處理,得到該IP報(bào)文的特 征值。本實(shí)施例中對(duì)于特征值相同的IP報(bào)文可以認(rèn)為是同一事務(wù),例如, 屬于同一次呼叫流程,這些具有相同CALL-ID值的IP才艮文將由同一個(gè)服 務(wù)器進(jìn)行處理。之后執(zhí)行步驟207。
步驟207:負(fù)載均衡器的Linux用戶空間判斷是否存在所述特征值與 服務(wù)器之間的對(duì)應(yīng)關(guān)系,若是,執(zhí)行步驟208,否則,執(zhí)行步驟209。
步驟208:負(fù)載均衡器的Linux用戶空間根據(jù)已經(jīng)存在的所述特征值 和對(duì)應(yīng)關(guān)系確定目的服務(wù)器的MAC地址。圖4為本發(fā)明第四實(shí)施例的特 征值與服務(wù)器的對(duì)應(yīng)關(guān)系的示意圖,參見圖4,例如,得到的特征值為第 三特征值,根據(jù)對(duì)應(yīng)關(guān)系可以得到與第三特征值對(duì)應(yīng)的為第三服務(wù)器。之 后執(zhí)行步驟210。
步驟209:負(fù)載均衡器的Linux用戶空間動(dòng)態(tài)選擇(例如順序輪選和 根據(jù)CPU占用率輪選) 一個(gè)可用的服務(wù)器,將所述可用的服務(wù)器的MAC 地址作為目的MAC地址,并新建所述特征值與所述可用的服務(wù)器之間的 對(duì)應(yīng)關(guān)系,以便下次分類使用。之后,再接收到該特征值后便可以根據(jù)該 對(duì)應(yīng)關(guān)系查找到目的服務(wù)器的MAC地址。之后執(zhí)行步驟210。
步驟210:負(fù)載均衡器的Linux用戶空間通過用戶態(tài)二層報(bào)文發(fā)送接 口 ,如PACKET socket,直接在二層將所述IP報(bào)文發(fā)送給所述目的MAC 地址對(duì)應(yīng)的服務(wù)器。PACKET socket是Linux系統(tǒng)中的一種機(jī)制,實(shí)現(xiàn)用 戶空間到內(nèi)核空間的通信。結(jié)束分類轉(zhuǎn)發(fā)模式的上行流程。之后執(zhí)行步驟 211。
步驟211:負(fù)載均衡器接收該目的MAC地址對(duì)應(yīng)的服務(wù)器的響應(yīng)報(bào)文。具體地,負(fù)載均衡器接收到IP報(bào)文后,將該IP報(bào)文發(fā)送給目的MAC 地址對(duì)應(yīng)的服務(wù)器,該服務(wù)器對(duì)該IP報(bào)文進(jìn)行處理,得到該IP報(bào)文的響 應(yīng)報(bào)文,之后,將該響應(yīng)報(bào)文發(fā)送客戶設(shè)備,在該服務(wù)器上的Linux內(nèi)核 空間的轉(zhuǎn)發(fā)模塊將截獲這個(gè)報(bào)文,它通過報(bào)文中的源IP地址,得到負(fù)載 均衡器中的轉(zhuǎn)發(fā)模塊的MAC地址,例如,由于IP報(bào)文的源IP地址是負(fù) 栽均衡器中的轉(zhuǎn)發(fā)模塊的IP地址,服務(wù)器根據(jù)IP地址和MAC地址的關(guān) 系可以獲取轉(zhuǎn)發(fā)模塊的MAC地址。再將該報(bào)文直接通過二層轉(zhuǎn)發(fā)給負(fù)載 均衡器中的轉(zhuǎn)發(fā)模塊,負(fù)載均衡器中的轉(zhuǎn)發(fā)模塊再將報(bào)文轉(zhuǎn)發(fā)給客戶設(shè) 備。在上述下行傳輸過程中,與上行相同,是根據(jù)各模塊的MAC地址進(jìn) 行響應(yīng)報(bào)文的傳輸?shù)?,?shí)現(xiàn)在二層傳輸報(bào)文,加快傳輸速度。本實(shí)施例的 IP報(bào)文及響應(yīng)報(bào)文均通過負(fù)栽均衡器實(shí)現(xiàn)客戶設(shè)備與服務(wù)器之間的通信, 無需服務(wù)器單獨(dú)配置出口與客戶設(shè)備連接,因此可以簡(jiǎn)化組網(wǎng)結(jié)構(gòu)。
本實(shí)施例描述了 IP報(bào)文上下行的流程,在上行、下行時(shí)均是根據(jù)MAC 地址直接在二層進(jìn)行IP報(bào)文的傳輸,因此可以加快傳輸速度,提高吞吐 量;在下行時(shí)服務(wù)器通過負(fù)載均衡器向客戶設(shè)備響應(yīng)報(bào)文,無需在服務(wù)器 單獨(dú)設(shè)置與客戶設(shè)備的出口,實(shí)現(xiàn)簡(jiǎn)化組網(wǎng)結(jié)構(gòu),降低成本。
上述實(shí)施例示出了 一個(gè)負(fù)栽均衡器的處理流程,為了保證系統(tǒng)的可靠 性,可以在系統(tǒng)中采用冗余的方案,即在系統(tǒng)中設(shè)置主用負(fù)載均衡器和備 用負(fù)載均衡器,當(dāng)主用負(fù)載均衡器發(fā)生故障后,備用負(fù)載均衡器切換為主 用負(fù)載均衡器實(shí)現(xiàn)上述流程。因此,在負(fù)載均衡器存在切換時(shí),本發(fā)明實(shí) 施例還可以進(jìn)一步包括當(dāng)負(fù)載均衡器需要切換時(shí),切換后備升主的負(fù)載 均衡器將自身的MAC地址廣播給所述外部客戶設(shè)備,例如,通過無需應(yīng) 答的地址解析協(xié)議(Address Resolution Protocol, ARP )將MAC地址廣播 給外部客戶設(shè)備,所述外部客戶設(shè)備根據(jù)切換后的負(fù)載均衡器的MAC地
址,將所述IP報(bào)文發(fā)送給切換后的負(fù)載均衡器。通過負(fù)載均衡器的切換 可以保證系統(tǒng)的可靠性。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步 驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī) 可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟; 而前述的存儲(chǔ)介質(zhì)包括rom、 ram、石茲碟或者光盤等各種可以存儲(chǔ)程 序代碼的介質(zhì)。
圖5為本發(fā)明第五實(shí)施例的集群系統(tǒng)的結(jié)構(gòu)示意圖,該實(shí)施例的集群 系統(tǒng)包括一個(gè)主用負(fù)栽均衡器51和至少一個(gè)的服務(wù)器52。主用負(fù)載均衡 器51與外部的客戶設(shè)備及各服務(wù)器52連接,接收客戶設(shè)備發(fā)送的ip報(bào)文, 根據(jù)所述ip報(bào)文獲取目的mac地址,將所述ip報(bào)文發(fā)送給所述目的mac 地址對(duì)應(yīng)的服務(wù)器;服務(wù)器52接收主用負(fù)載均衡器發(fā)送的ip報(bào)文,處理該 ip報(bào)文后得到響應(yīng)報(bào)文,并將響應(yīng)報(bào)文發(fā)送給主用負(fù)栽均衡器51,之后,主 用負(fù)載均衡器51將該響應(yīng)報(bào)文發(fā)送給外部的客戶設(shè)備。進(jìn)一步地,為了保證 系統(tǒng)的可靠性,可以在系統(tǒng)中再設(shè)置備用負(fù)栽均衡器,當(dāng)備用負(fù)載均衡器發(fā) 現(xiàn)主用負(fù)載均衡器發(fā)生故障后,可以將自身的mac地址廣播給外部客戶設(shè) 備,使外部客戶設(shè)備更新自身的目的mac地址,使外部客戶設(shè)備將ip報(bào)文 發(fā)送給備用負(fù)載均衡器,實(shí)現(xiàn)主備切換,保證系統(tǒng)可靠性。
本實(shí)施例通過負(fù)載均衡器實(shí)現(xiàn)外部客戶設(shè)備與內(nèi)部服務(wù)器之間的上 下行報(bào)文轉(zhuǎn)發(fā),可以簡(jiǎn)化組網(wǎng)結(jié)構(gòu);并且,負(fù)載均衡器根據(jù)mac地址直 接在二層轉(zhuǎn)發(fā)報(bào)文,可以加快轉(zhuǎn)發(fā)速度,提高吞吐量。
圖6為本發(fā)明第六實(shí)施例的負(fù)載均衡器的結(jié)構(gòu)示意圖,該實(shí)施例的負(fù) 載均衡器包括接收模塊61、確定模塊62和發(fā)送模塊63。接收模塊61接 收外部客戶端發(fā)送的ip報(bào)文;確定模塊62根據(jù)接收模塊61得到的所述 ip報(bào)文確定目的mac地址;發(fā)送模塊63將所述ip報(bào)文發(fā)送給確定模塊 62得到的所述目的mac地址對(duì)應(yīng)的服務(wù)器。
本實(shí)施例通過負(fù)載均衡器實(shí)現(xiàn)外部客戶設(shè)備與內(nèi)部服務(wù)器之間的上 行報(bào)文轉(zhuǎn)發(fā),負(fù)載均衡器根據(jù)mac地址直接在二層轉(zhuǎn)發(fā)報(bào)文,可以加快
14轉(zhuǎn)發(fā)速度,提高吞吐量。
圖7為本發(fā)明第七實(shí)施例的負(fù)載均衡器的結(jié)構(gòu)示意圖,本實(shí)施例作為
實(shí)施例六的一種具體實(shí)現(xiàn),本實(shí)施例的確定模塊62具體包括獲取單元71、 判斷單元72、第一確定單元73、第二確定單元74。獲取單元71用于獲取 接收模塊61接收的IP報(bào)文的五元組,判斷單元72根據(jù)獲取單元71得到 的所述五元組判斷是固定轉(zhuǎn)發(fā)模式還是特征轉(zhuǎn)發(fā),若是固定轉(zhuǎn)發(fā)模式,則 激活第一確定單元73,否則激活第二確定單元74;第一確定單元73根據(jù) 預(yù)先配置的轉(zhuǎn)發(fā)表確定與所述五元組對(duì)應(yīng)的目的MAC地址;第二確定單 元74根據(jù)所述IP報(bào)文得到所迷IP報(bào)文的特征值,確定與所述特征值對(duì)應(yīng) 的目的MAC地址。
其中,獲取單元71、判斷單元72和第一確定單元73位于負(fù)載均衡器 的Linux內(nèi)核空間中,所述第二確定單元74位于所述負(fù)載均衡器的Linux 用戶空間中。
進(jìn)一步地,判斷單元72還用于根據(jù)所述五元組確定是特征轉(zhuǎn)發(fā),就 通過內(nèi)核態(tài)到用戶態(tài)的通信機(jī)制(Netlink)將報(bào)文發(fā)送給所述第二確定單 元74;所述第二確定單元74具體用于通過特征值提取函數(shù),對(duì)所述IP報(bào) 文包進(jìn)行處理,得到所述IP報(bào)文包的特征值。
本實(shí)施例的確定模塊62還可以進(jìn)一步包括匹配數(shù)據(jù)單元75。匹配數(shù) 據(jù)單元75保存IP報(bào)文的特征值與服務(wù)器之間的對(duì)應(yīng)關(guān)系;第二確定單元 74具體用于判斷所述匹配數(shù)據(jù)單元75中是否存在得到的IP報(bào)文的特征值 的對(duì)應(yīng)關(guān)系,若存在,則根據(jù)所述匹配數(shù)據(jù)單元75中的對(duì)應(yīng)關(guān)系確定所 述目的MAC地址;若不存在,則動(dòng)態(tài)選擇一個(gè)可用的服務(wù)器,將所述可 用的服務(wù)器的MAC地址作為目的MAC地址,并在所述匹配數(shù)據(jù)單元7#5 中新建所述特征值與所述可用的服務(wù)器之間的對(duì)應(yīng)關(guān)系。
本實(shí)施例的發(fā)送模塊63包括第一發(fā)送單元76和第二發(fā)送單元77。第 一發(fā)送單元76位于用戶空間,用于當(dāng)特征轉(zhuǎn)發(fā)模式時(shí),通過用戶態(tài)二層報(bào)文發(fā)送接口 (PACKET socket),將所述IP報(bào)文發(fā)送給所述目的MAC 地址對(duì)應(yīng)的服務(wù)器;第二發(fā)送單元77位于內(nèi)核空間,用于當(dāng)采用固定轉(zhuǎn) 發(fā)模式時(shí),在內(nèi)核空間中使用網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)接口直接將所述IP報(bào)文發(fā)送 給所述目的MAC地址對(duì)應(yīng)的力良務(wù)器。
本實(shí)施例是針對(duì)客戶設(shè)備發(fā)送的上行報(bào)文的情形,負(fù)載均衡器在接收到 上行報(bào)文后解析出該報(bào)文的目的MAC地址,根據(jù)MAC地址實(shí)現(xiàn)報(bào)文在第二 層的直接的轉(zhuǎn)發(fā),由于是在MAC層(第二層)實(shí)現(xiàn)的轉(zhuǎn)發(fā),無需進(jìn)行第三 層的處理(第三層的處理包括IP地址轉(zhuǎn)換和IP地址封裝),可以提高轉(zhuǎn)發(fā) 速度,提高吞吐量。
圖8為本發(fā)明第八實(shí)施例的集群系統(tǒng)的結(jié)構(gòu)示意圖,本實(shí)施例的負(fù)載 均衡器51中包括第二轉(zhuǎn)發(fā)模塊82,服務(wù)器52 (為了簡(jiǎn)便本實(shí)施例只示出 了一個(gè)服務(wù)器)中包括第一轉(zhuǎn)發(fā)模塊81。第一轉(zhuǎn)發(fā)模塊81位于服務(wù)器52 的內(nèi)核空間,用于將所述響應(yīng)報(bào)文發(fā)送給第二轉(zhuǎn)發(fā)模塊;第二轉(zhuǎn)發(fā)模塊82 位于負(fù)載均衡器51的內(nèi)核空間,用于將第一轉(zhuǎn)發(fā)模塊81轉(zhuǎn)發(fā)的所述響應(yīng) 報(bào)文發(fā)送給所述客戶設(shè)備。
本實(shí)施例是針對(duì)服務(wù)器發(fā)送的下行報(bào)文的情形,服務(wù)器將下行報(bào)文通過 負(fù)載均衡器轉(zhuǎn)發(fā)給客戶設(shè)備,無需在服務(wù)器上設(shè)置與客戶設(shè)備的出口側(cè),可 以簡(jiǎn)化組網(wǎng)結(jié)構(gòu)。
圖9為本發(fā)明第九實(shí)施例的負(fù)載均衡器的結(jié)構(gòu)示意圖,該負(fù)載均衡器9 包括第一模塊91、第二模塊92、第三模塊93和第四模塊94。并且為了描述 各模塊與系統(tǒng)的連接關(guān)系,圖中還示出了服務(wù)器IO。第一模塊91用于接收 外部客戶設(shè)備發(fā)送的ip報(bào)文;第二模塊92用于根據(jù)第一模塊91得到的 所述IP報(bào)文確定所述IP報(bào)文的目的介質(zhì)接入控制地址;第三模塊93用 于將所述IP報(bào)文直接通過鏈路層發(fā)送給第二模塊92得到的所述目的介質(zhì) 接入控制地址對(duì)應(yīng)的服務(wù)器10;第四模塊94用于接收所述服務(wù)器10發(fā)送 的所述IP報(bào)文的響應(yīng)報(bào)文,將所述響應(yīng)報(bào)文發(fā)送給所述客戶設(shè)備。具體的,本實(shí)施例的負(fù)栽均衡器可以為上述的圖6或圖7所示的負(fù)栽 均衡器。
本實(shí)施例通過負(fù)載均衡器實(shí)現(xiàn)外部客戶設(shè)備與內(nèi)部服務(wù)器之間的上 下行報(bào)文轉(zhuǎn)發(fā),可以簡(jiǎn)化組網(wǎng)結(jié)構(gòu);并且,負(fù)栽均衡器根據(jù)MAC地址直 接轉(zhuǎn)發(fā)報(bào)文,可以加快轉(zhuǎn)發(fā)速度,提高吞吐量。
最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn) 行限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技 術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換, 而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的 精神和范圍。
權(quán)利要求
1、一種IP報(bào)文分發(fā)方法,其特征在于,包括接收外部客戶設(shè)備發(fā)送的IP報(bào)文;根據(jù)所述IP報(bào)文確定所述IP報(bào)文的目的介質(zhì)接入控制地址;將所述IP報(bào)文直接通過鏈路層發(fā)送給所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器;接收所述服務(wù)器發(fā)送的所述IP報(bào)文的響應(yīng)報(bào)文,將所述響應(yīng)報(bào)文發(fā)送給所述客戶設(shè)備。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所迷IP報(bào)文 確定目的介質(zhì)接入控制地址包括獲取所述IP報(bào)文的五元組;根據(jù)所述五元組判斷是采用固定轉(zhuǎn)發(fā)模式還是采用特征轉(zhuǎn)發(fā)模式; 在采用固定轉(zhuǎn)發(fā)模式時(shí),根據(jù)預(yù)先配置的轉(zhuǎn)發(fā)表確定與所述五元組對(duì)應(yīng)的目的介質(zhì)接入控制地址;在采用特征轉(zhuǎn)發(fā)模式時(shí),根據(jù)所述IP報(bào)文得到所述IP報(bào)文的特征值,確定與所述特征值對(duì)應(yīng)的目的介質(zhì)接入控制地址。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述IP報(bào)文 得到所述IP報(bào)文的特征值包括Linux內(nèi)核空間的進(jìn)程將所述IP報(bào)文通過內(nèi)核態(tài)到用戶態(tài)通信機(jī)制發(fā) 送給Linux用戶空間;Linux用戶空間的進(jìn)程通過特征值提取函數(shù),得到所述IP報(bào)文的特征 值。 、,
4、 根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述確定與所述 特征值對(duì)應(yīng)的目的介質(zhì)接入控制地址包括判斷是否存在所述特征值與服務(wù)器之間的對(duì)應(yīng)關(guān)系; 當(dāng)存在所述對(duì)應(yīng)關(guān)系時(shí),根據(jù)所述特征值和對(duì)應(yīng)關(guān)系確定所述目的介質(zhì)接入控制地址;當(dāng)不存在所述對(duì)應(yīng)關(guān)系時(shí),動(dòng)態(tài)選擇一個(gè)可用的服務(wù)器,將所述可用 的服務(wù)器的介質(zhì)接入控制地址作為目的介質(zhì)接入控制地址,并新建所述特 征值與所述可用的服務(wù)器之間的對(duì)應(yīng)關(guān)系。
5、根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述IP報(bào)文直接 通過鏈路層發(fā)送給所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器包括當(dāng)采用特征轉(zhuǎn)發(fā)模式時(shí),通過Linux用戶空間的二層報(bào)文發(fā)送接口 ,當(dāng)采用固定轉(zhuǎn)發(fā)模式時(shí),在Linux內(nèi)核空間中直接使用網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng) 接口將所述IP報(bào)文發(fā)送給所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器。
6、 根據(jù)權(quán)利要求1所迷的方法,其特征在于,還包括當(dāng)負(fù)栽均衡 器需要切換時(shí),切換后備升主的主負(fù)栽均衡器將自身的MAC地址廣播給 所述外部客戶設(shè)備,用于所述外部客戶設(shè)備根據(jù)切換后的負(fù)載均衡器的 MAC地址,將所述IP報(bào)文發(fā)送給切換后的負(fù)載均衡器。
7、 一種集群系統(tǒng),其特征在于,包括主用負(fù)栽均衡器,與外部的客戶設(shè)備連接,用于接收客戶設(shè)備發(fā)送的IP 報(bào)文,根據(jù)所述IP報(bào)文獲取目的介質(zhì)接入控制地址,將所述IP報(bào)文直接通 過鏈路層發(fā)送給所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器;至少一服務(wù)器,分別與所述主用負(fù)載均衡器連接,用于接收所述主用負(fù) 栽均衡器發(fā)送的IP報(bào)文,并將所述IP報(bào)文的響應(yīng)報(bào)文通過所述主用負(fù)載均 衡器發(fā)送給所述客戶設(shè)備。
8、 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述主用負(fù)載均衡器 包括接收模塊,用于接收外部客戶端發(fā)送的IP報(bào)文; 確定模塊,用于根據(jù)所述IP報(bào)文確定所述IP報(bào)文的目的介質(zhì)接入控 制地址;發(fā)送模塊,用于將所述IP報(bào)文直接通過鏈路層發(fā)送給所述目的介質(zhì) 接入控制地址對(duì)應(yīng)的服務(wù)器。
9、 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述確定模塊包括 獲取單元,用于獲取所述IP報(bào)文的五元組;判斷單元,用于根據(jù)所述五元組判斷是采用固定轉(zhuǎn)發(fā)模式還是采用特 征轉(zhuǎn)發(fā)模式;第一確定單元,用于在采用固定轉(zhuǎn)發(fā)模式時(shí),根據(jù)預(yù)先配置的轉(zhuǎn)發(fā)表 確定與所述五元組對(duì)應(yīng)的目的介質(zhì)接入控制地址;第二確定單元,用于在采用特征轉(zhuǎn)發(fā)模式時(shí),根據(jù)所述IP報(bào)文得到 所述IP報(bào)文的特征值,確定與所述特征值對(duì)應(yīng)的目的介質(zhì)接入控制地址。
10、 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于所述獲取單元、判斷 單元和第一確定單元位于所述負(fù)載均衡器的內(nèi)核空間中,所述第二確定單 元位于所述負(fù)載均衡器的用戶空間中。
11、 根據(jù)權(quán)利要求IO所述的系統(tǒng),其特征在于 所述判斷單元還用于將所述IP報(bào)文通過內(nèi)核態(tài)到用戶態(tài)通信機(jī)制發(fā)送給所述第二確定單元;所述第二確定單元具體用于通過特征值提取函數(shù),得到所述IP報(bào)文的特征值。
12、 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述確定模塊還包括 匹配數(shù)據(jù)單元,用于保存IP報(bào)文的特征值與服務(wù)器之間的對(duì)應(yīng)關(guān)系; 所述第二確定單元具體用于判斷所述匹配數(shù)據(jù)單元中是否存在得到的IP報(bào)文的特征值的對(duì)應(yīng)關(guān)系,若存在,則根據(jù)所述匹配數(shù)據(jù)單元中的 對(duì)應(yīng)關(guān)系確定所述目的介質(zhì)接入控制地址;若不存在,則動(dòng)態(tài)選擇一個(gè)可 用的服務(wù)器,將所述可用的服務(wù)器的介質(zhì)接入控制地址作為目的介質(zhì)接入 控制地址,并在所述匹配數(shù)據(jù)單元中新建所述特征值與所述可用的服務(wù)器 之間的對(duì)應(yīng)關(guān)系。
13、 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述發(fā)送模塊包括 第一發(fā)送單元,位于Linux用戶空間,用于當(dāng)采用特征轉(zhuǎn)發(fā)模式時(shí),通過用戶空間的二層報(bào)文發(fā)送接口,將所述IP報(bào)文發(fā)送給所述目的介質(zhì) 接入控制地址對(duì)應(yīng)的服務(wù)器;第二發(fā)送單元,位于Linux內(nèi)核空間,用于當(dāng)采用固定轉(zhuǎn)發(fā)模式時(shí), 在內(nèi)核空間中直接使用網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)接口將所述IP報(bào)文發(fā)送給所述目的 介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器。
14、 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于 所述服務(wù)器包括第一轉(zhuǎn)發(fā)模塊,位于所述服務(wù)器的Linux內(nèi)核空間,用于將所述響應(yīng)報(bào)文發(fā)送給第二分發(fā)模塊;所述負(fù)載均衡器還包括第二轉(zhuǎn)發(fā)模塊,位于所述負(fù)載均衡器的Linux 內(nèi)核空間,用于將所述響應(yīng)報(bào)文發(fā)送給所述客戶設(shè)備。
15、 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,還包括 備用負(fù)載均衡器,用于在主用負(fù)載均衡器發(fā)生故障后,將自身的MAC地址廣播給外部客戶設(shè)備,切換為主用負(fù)載均衡器。
16、 一種負(fù)載均衡器,其特征在于,包括 第一模塊,用于接收外部客戶設(shè)備發(fā)送的IP報(bào)文;第二模塊,用于根據(jù)第一模塊得到的所述IP報(bào)文確定所述IP報(bào)文的 目的介質(zhì)接入控制地址;第三模塊,用于將所述IP報(bào)文直接通過鏈路層發(fā)送給第二模塊得到 的所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器;第四模塊,用于接收所述服務(wù)器發(fā)送的所述IP報(bào)文的響應(yīng)報(bào)文,將 所述響應(yīng)報(bào)文發(fā)送給所述客戶設(shè)備。
17、 根據(jù)權(quán)利要求16所述的負(fù)載均衡器,其特征在于,所述第二模 塊具體用于獲取所述IP報(bào)文的五元組;根據(jù)所述五元組判斷是采用固定 轉(zhuǎn)發(fā)模式還是采用特征轉(zhuǎn)發(fā)模式;在采用固定轉(zhuǎn)發(fā)模式時(shí),根據(jù)預(yù)先配置的轉(zhuǎn)發(fā)表確定與所述五元組對(duì)應(yīng)的目的介質(zhì)接入控制地址;在采用特征轉(zhuǎn) 發(fā)模式時(shí),根據(jù)所述IP報(bào)文得到所述IP報(bào)文的特征值,確定與所述特征 值對(duì)應(yīng)的目的介質(zhì)接入控制地址。
18、根據(jù)權(quán)利要求16所述的負(fù)栽均衡器,其特征在于,所述發(fā)送模 塊具體用于當(dāng)采用特征轉(zhuǎn)發(fā)模式時(shí),通過用戶空間的二層報(bào)文發(fā)送接口 , 將所述IP報(bào)文發(fā)送給所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器;當(dāng)采用 固定轉(zhuǎn)發(fā)模式時(shí),在內(nèi)核空間中直接使用網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)接口將所述IP報(bào) 文發(fā)送給所述目的介質(zhì)接入控制地址對(duì)應(yīng)的服務(wù)器。
全文摘要
本發(fā)明公開了一種IP報(bào)文分發(fā)方法、集群系統(tǒng)和負(fù)載均衡器。該方法包括接收外部客戶設(shè)備發(fā)送的IP報(bào)文;根據(jù)所述IP報(bào)文確定所述IP報(bào)文目的MAC地址;將所述IP報(bào)文直接通過鏈路層發(fā)送給所述目的MAC地址對(duì)應(yīng)的服務(wù)器;接收所述服務(wù)器發(fā)送的所述IP報(bào)文的響應(yīng)報(bào)文,將所述響應(yīng)報(bào)文發(fā)送給所述客戶設(shè)備。通過本發(fā)明實(shí)施例可以實(shí)現(xiàn)具有較高吞吐量且組網(wǎng)較簡(jiǎn)單的集群系統(tǒng)。
文檔編號(hào)H04L12/56GK101442493SQ20081024119
公開日2009年5月27日 申請(qǐng)日期2008年12月26日 優(yōu)先權(quán)日2008年12月26日
發(fā)明者袁學(xué)文 申請(qǐng)人:華為技術(shù)有限公司