本發(fā)明實施例涉及網(wǎng)絡(luò)通信技術(shù),尤其涉及一種數(shù)據(jù)轉(zhuǎn)發(fā)方法及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)站互聯(lián)網(wǎng)數(shù)據(jù)的增加,單臺服務(wù)器無法處理大量客戶端的訪問。這時就需要用負(fù)載均衡讓多臺服務(wù)器提供服務(wù)。一般防火墻使用一個外網(wǎng)IP地址(Internet Protocol,網(wǎng)絡(luò)之間互連的協(xié)議)對應(yīng)一個內(nèi)網(wǎng)IP地址的映射,負(fù)載均衡使用一個外網(wǎng)IP地址對應(yīng)多個內(nèi)網(wǎng)IP地址的映射,每個內(nèi)網(wǎng)IP地址對應(yīng)一臺內(nèi)網(wǎng)服務(wù)器。由均衡算法選出一組映射,把訪問請求傳給內(nèi)網(wǎng)服務(wù)器。負(fù)載均衡設(shè)備對外提供統(tǒng)一的IP地址和端口,對用戶來說訪問是透明的,用戶不能感知網(wǎng)站內(nèi)的負(fù)載均衡。
負(fù)載均衡實現(xiàn)裝置目前有很多種,如嵌入式系統(tǒng)的著名的F5負(fù)載均衡設(shè)備BIG-IP,對于所有的對外提供服務(wù)的服務(wù)器,均可以在BIG-IP上配置虛擬服務(wù)器實現(xiàn)負(fù)載均衡,同時BIG-IP可持續(xù)檢查服務(wù)器的健康狀態(tài),一旦發(fā)現(xiàn)故障服務(wù)器,則將其從負(fù)載均衡組中摘除。BIG-IP利用虛擬IP地址來為用戶的一個或多個目標(biāo)服務(wù)器提供服務(wù)。但是這個設(shè)備成本比較高。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種數(shù)據(jù)轉(zhuǎn)發(fā)方法及系統(tǒng),通過安裝有Linux操作系統(tǒng)的負(fù)載均衡設(shè)備,以較為低廉的成本實現(xiàn)負(fù)載均衡,擴展網(wǎng)站網(wǎng)絡(luò)吞吐量。
第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)轉(zhuǎn)發(fā)方法,應(yīng)用于安裝有Linux操作系統(tǒng)的負(fù)載均衡設(shè)備中,包括:
啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文;
根據(jù)設(shè)定的負(fù)載均衡策略,將所述IP報文轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器,并將所述應(yīng)用服務(wù)器返回的回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端。
進一步地,所述負(fù)載均衡設(shè)備向各客戶端提供統(tǒng)一的標(biāo)準(zhǔn)IP地址以及標(biāo)準(zhǔn)端口號;
所述根據(jù)設(shè)定的負(fù)載均衡策略,將所述IP報文轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器,并將所述應(yīng)用服務(wù)器返回的回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端包括:
提取所述IP報文中的客戶端標(biāo)識;
根據(jù)所述客戶端標(biāo)識,確定與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)IP地址以及轉(zhuǎn)發(fā)端口號;
在將所述IP報文中的所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號替換為所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號后,將所述IP報文轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器;
接收所述應(yīng)用服務(wù)器返回的與所述IP報文對應(yīng)的回復(fù)報文,并在將所述回復(fù)報文中的所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號修改為所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號后,將所述回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端。
進一步地,根據(jù)所述客戶端標(biāo)識,確定與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)IP地址以及轉(zhuǎn)發(fā)端口號包括:
根據(jù)所述客戶端標(biāo)識,以及設(shè)定的均衡算法,計算與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)索引;
根據(jù)所述轉(zhuǎn)發(fā)索引,以及預(yù)存的負(fù)載均衡表,確定與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)IP地址以及轉(zhuǎn)發(fā)端口號;
其中,所述負(fù)載均衡表中存儲有至少兩個轉(zhuǎn)發(fā)索引,以及與各轉(zhuǎn)發(fā)索引分別對應(yīng)的標(biāo)準(zhǔn)IP地址、標(biāo)準(zhǔn)端口號與轉(zhuǎn)發(fā)IP地址、轉(zhuǎn)發(fā)端口號之間的映射關(guān)系。
進一步地,所述均衡算法包括:哈希算法、動態(tài)輪詢算法或者最小連接數(shù)算法。
進一步地,在將所述IP報文中的所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號替換為所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號之后,還包括:
查詢預(yù)存的轉(zhuǎn)發(fā)規(guī)則集,確定與所述IP報文對應(yīng)的物理轉(zhuǎn)發(fā)端口;
相應(yīng)的,將所述IP報文轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器包括:
將所述IP報文通過所述物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器。
進一步地,所述轉(zhuǎn)發(fā)規(guī)則集包括:規(guī)則字段部分,以及由所述規(guī)則字段部分確定的物理轉(zhuǎn)發(fā)端口;
其中,所述規(guī)則字段部分包括下述至少一項:協(xié)議類型、標(biāo)準(zhǔn)IP地址、與標(biāo)準(zhǔn)IP地址對應(yīng)的掩碼、轉(zhuǎn)發(fā)IP地址、與轉(zhuǎn)發(fā)IP地址對應(yīng)的掩碼以及轉(zhuǎn)發(fā)端口。
進一步地,所述將所述IP報文通過所述物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器進一步包括:
將所述IP報文通過所述物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)至數(shù)據(jù)交換機,以使所述IP報文通過所述數(shù)據(jù)交換機轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器;
其中,所述負(fù)載均衡設(shè)備與所述數(shù)據(jù)交換機相連,所述數(shù)據(jù)交換機與至少兩臺應(yīng)用服務(wù)器相連。
進一步地,所述將所述IP報文中的所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號替換為所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號后,還包括:
重新計算并修改所述IP報文中的IP地址校驗和以及協(xié)議校驗和;
相應(yīng)的,所述在將所述回復(fù)報文中的所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號修改為所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號后,還包括:
重新計算并修改所述回復(fù)報文中的IP地址校驗和以及協(xié)議校驗和。
進一步地,所述數(shù)據(jù)轉(zhuǎn)發(fā)方法由所述負(fù)載均衡設(shè)備的內(nèi)核驅(qū)動執(zhí)行,其中,所述負(fù)載均衡表與所述轉(zhuǎn)發(fā)規(guī)則集預(yù)先下發(fā)于所述內(nèi)核驅(qū)動中。
第二方面,本發(fā)明實施例還提供了一種數(shù)據(jù)轉(zhuǎn)發(fā)系統(tǒng),該系統(tǒng)包括:
負(fù)載均衡設(shè)備,數(shù)據(jù)交換機,應(yīng)用服務(wù)器;
所述負(fù)載均衡設(shè)備安裝有Linux操作系統(tǒng),用于啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文,根據(jù)設(shè)定的負(fù)載均衡策略,將所述IP報文轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器,并將所述應(yīng)用服務(wù)器返回的回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端;
所述數(shù)據(jù)交換機,用于接收物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)的IP報文,并轉(zhuǎn)發(fā)給與轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器;
所述應(yīng)用服務(wù)器,用于接收負(fù)載均衡設(shè)備轉(zhuǎn)發(fā)的IP報文,并返回回復(fù)報文給負(fù)載均衡設(shè)備;
所述負(fù)載均衡設(shè)備與所述數(shù)據(jù)交換機相連,所述數(shù)據(jù)交換機與至少兩臺應(yīng)用服務(wù)器相連
本發(fā)明實施例通過安裝有Linux操作系統(tǒng)的負(fù)載均衡設(shè)備,以較為低廉的成本實現(xiàn)負(fù)載均衡,擴展網(wǎng)站網(wǎng)絡(luò)吞吐量。
附圖說明
圖1為本發(fā)明實施例一中的一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程圖;
圖2是本發(fā)明實施例二中的一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程圖;
圖3是本發(fā)明實施例三中的一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程圖;
圖4是本發(fā)明實施例四中的一種數(shù)據(jù)轉(zhuǎn)發(fā)系統(tǒng)的結(jié)構(gòu)圖;
圖5是本發(fā)明實施例五中的一種驅(qū)動實現(xiàn)架構(gòu)圖;
圖6是本發(fā)明實施例五中的一種過濾驅(qū)動模塊圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實施例一
圖1為本發(fā)明實施例一提供的一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程圖,本發(fā)明實施例可用于實現(xiàn)負(fù)載均衡,擴展網(wǎng)站網(wǎng)絡(luò)吞吐量。該方法可以由本發(fā)明實施例提供的一種數(shù)據(jù)轉(zhuǎn)發(fā)系統(tǒng)來執(zhí)行,該系統(tǒng)可以由軟件和或硬件的方式來實現(xiàn),該系統(tǒng)可以包括負(fù)載均衡設(shè)備、數(shù)據(jù)交換機和應(yīng)用服務(wù)器,其中負(fù)載均衡設(shè)備可以是安裝有Linux操作系統(tǒng)的負(fù)載均衡設(shè)備,負(fù)載均衡設(shè)備可以是任意一臺服務(wù)器,數(shù)據(jù)交換機是市面上常用的交換機,應(yīng)用服務(wù)器是內(nèi)網(wǎng)服務(wù)器。該方法應(yīng)用于安裝有Linux操作系統(tǒng)的負(fù)載均衡設(shè)備中,包括:
S110、啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文;
現(xiàn)有的各種版本的Linux操作系統(tǒng)均在內(nèi)核中內(nèi)置有IP報文過濾功能,在本實施例中,通過使用一臺配置有Linux操作系統(tǒng)的普通服務(wù)器,在Linux操作系統(tǒng)提供的IP報文過濾功能的基礎(chǔ)上擴展相應(yīng)功能,即可使得該普通服務(wù)器具有負(fù)載均衡功能。
Linux操作系統(tǒng)提供了IP報文過濾機制,啟動并注冊IP過濾驅(qū)動,即可獲取客戶端發(fā)送的IP報文,其中,客戶端可以是任意一臺電腦、筆記本、平板電腦或者手機,只要具有上網(wǎng)功能的設(shè)備都可以,而且不限定所述客戶端的數(shù)量。
S120、根據(jù)設(shè)定的負(fù)載均衡策略,將所述IP報文轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器,并將所述應(yīng)用服務(wù)器返回的回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端。
所述應(yīng)用服務(wù)器是需要進行負(fù)載均衡的內(nèi)網(wǎng)服務(wù)器,會根據(jù)接收的IP報文,生成回復(fù)報文,返回給負(fù)載均衡設(shè)備,該負(fù)載均衡設(shè)備收到回復(fù)報文后,會進而將該回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端。
本實施例的技術(shù)方案,通過啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文,根據(jù)設(shè)定的負(fù)載均衡策略,將所述IP報文轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器,并將所述應(yīng)用服務(wù)器返回的回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端,實現(xiàn)了以較為低廉的成本進行負(fù)載均衡,擴展了網(wǎng)站網(wǎng)絡(luò)吞吐量。
實施例二
圖2為本發(fā)明實施例二提供的一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程圖。本實施例在上述實施例的基礎(chǔ)上,對所述啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文進行了解釋,并且對所述根據(jù)設(shè)定的負(fù)載均衡策略,將所述IP報文轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器,并將所述應(yīng)用服務(wù)器返回的回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端,進行了具體優(yōu)化。
相應(yīng)的,本實施例的方法包括:
S210、啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文;
其中,所述負(fù)載均衡設(shè)備向各客戶端提供統(tǒng)一的標(biāo)準(zhǔn)IP地址以及標(biāo)準(zhǔn)端口號,并接收客戶端發(fā)送的IP報文。
S220、提取所述IP報文中的客戶端標(biāo)識;
所述客戶端標(biāo)識包括客戶端IP以及客戶端的端口號。
S230、根據(jù)所述客戶端標(biāo)識,確定與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)IP地址以及轉(zhuǎn)發(fā)端口號;
具體地,根據(jù)所述客戶端標(biāo)識,確定與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)IP地址以及轉(zhuǎn)發(fā)端口號可以包括:
根據(jù)所述客戶端標(biāo)識,以及設(shè)定的均衡算法,計算與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)索引;根據(jù)所述轉(zhuǎn)發(fā)索引,以及預(yù)存的負(fù)載均衡表,確定與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)IP地址以及轉(zhuǎn)發(fā)端口號;其中,所述負(fù)載均衡表中存儲有至少兩個轉(zhuǎn)發(fā)索引,以及與各轉(zhuǎn)發(fā)索引分別對應(yīng)的標(biāo)準(zhǔn)IP地址、標(biāo)準(zhǔn)端口號與轉(zhuǎn)發(fā)IP地址、轉(zhuǎn)發(fā)端口號之間的映射關(guān)系。
其中,負(fù)載均衡表由實際網(wǎng)絡(luò)拓?fù)鋭?chuàng)建,由多組映射組成,其中一組映射例如可以是:VIP:VPORT<->IP:PORT,VIP是負(fù)載均衡設(shè)備的標(biāo)準(zhǔn)IP,VPORT是負(fù)載均衡設(shè)備對外提供服務(wù)的標(biāo)準(zhǔn)端口號,IP是應(yīng)用服務(wù)器的轉(zhuǎn)發(fā)IP地址,PORT是應(yīng)用服務(wù)器的轉(zhuǎn)發(fā)端口號。VIP:VPORT與IP:PORT是一對多的關(guān)系。
具體地,所述均衡算法包括:哈希算法、動態(tài)輪詢算法或者最小連接數(shù)算法。具體地,所述均衡算法可以是哈希算法,負(fù)載均衡表對應(yīng)的哈希計算屬性可以是0,也可以是1,0是根據(jù)客戶端的IP計算哈希值,1是由客戶端的IP與端口號一起計算哈希值。
S240、在將所述IP報文中的所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號替換為所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號后,將所述IP報文轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器;
S250、接收所述應(yīng)用服務(wù)器返回的與所述IP報文對應(yīng)的回復(fù)報文,并在將所述回復(fù)報文中的所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號修改為所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號后,將所述回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端;
具體地,在將所述IP報文中的所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號替換為所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號后,還包括:重新計算并修改所述IP報文中的IP地址校驗和以及協(xié)議校驗和;在將所述回復(fù)報文中的所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號修改為所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號后,還包括:重新計算并修改所述回復(fù)報文中的IP地址校驗和以及協(xié)議校驗和。
本實施例在上述實施例的基礎(chǔ)上,進行改進,通過對所述啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文,進一步解釋,確定所述負(fù)載均衡設(shè)備向各客戶端提供統(tǒng)一的標(biāo)準(zhǔn)IP地址以及標(biāo)準(zhǔn)端口號,并且對所述根據(jù)設(shè)定的負(fù)載均衡策略,將所述IP報文轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器,并將所述應(yīng)用服務(wù)器返回的回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端,進行具體優(yōu)化,實現(xiàn)了根據(jù)設(shè)定的負(fù)載均衡策略,客戶端與應(yīng)用服務(wù)器之間的數(shù)據(jù)傳送,從而實現(xiàn)了利用使用一臺配置有Linux操作系統(tǒng)的普通服務(wù)器達到負(fù)載均衡的效果。
實施例三
圖3為本發(fā)明實施例三提供的一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程圖。本實施例在上述實施例的基礎(chǔ)上,在本實施例中,在所述在將所述IP報文中的所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號替換為所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號之后,還包括:查詢預(yù)存的轉(zhuǎn)發(fā)規(guī)則集,確定與所述IP報文對應(yīng)的物理轉(zhuǎn)發(fā)端口;相應(yīng)的,將所述IP報文轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器包括:將所述IP報文通過所述物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器。
相應(yīng)的,本實施例的方法包括:
S310、啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文;
S320、提取所述IP報文中的客戶端標(biāo)識;
S330、根據(jù)所述客戶端標(biāo)識,以及設(shè)定的均衡算法,計算與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)索引;
S340、根據(jù)所述轉(zhuǎn)發(fā)索引,以及預(yù)存的負(fù)載均衡表,確定與所述IP報文對應(yīng)的轉(zhuǎn)發(fā)IP地址以及轉(zhuǎn)發(fā)端口號;
S350、將所述IP報文中的所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號替換為所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號;
S360、查詢預(yù)存的轉(zhuǎn)發(fā)規(guī)則集,確定與所述IP報文對應(yīng)的物理轉(zhuǎn)發(fā)端口;
具體地,所述轉(zhuǎn)發(fā)規(guī)則集包括:規(guī)則字段部分,以及由所述規(guī)則字段部分確定的物理轉(zhuǎn)發(fā)端口,其中,所述規(guī)則字段部分包括下述至少一項:協(xié)議類型、標(biāo)準(zhǔn)IP地址、與標(biāo)準(zhǔn)IP地址對應(yīng)的掩碼、轉(zhuǎn)發(fā)IP地址、與轉(zhuǎn)發(fā)IP地址對應(yīng)的掩碼以及轉(zhuǎn)發(fā)端口。
其中,協(xié)議類型指TCP(Transmission Control Protocol,傳輸控制協(xié)議)、UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)以及ICMP(Internet Control Message Protocol,Internet,控制報文協(xié)議)等。
S370、將所述IP報文通過所述物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器;
進一步包括:將所述IP報文通過所述物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)至數(shù)據(jù)交換機,以使所述IP報文通過所述數(shù)據(jù)交換機轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器,其中,所述負(fù)載均衡設(shè)備與所述數(shù)據(jù)交換機相連,所述數(shù)據(jù)交換機與至少兩臺應(yīng)用服務(wù)器相連。
S380、接收所述應(yīng)用服務(wù)器返回的與所述IP報文對應(yīng)的回復(fù)報文,并在將所述回復(fù)報文中的所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號修改為所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號后,將所述回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端;
具體地,本實施例中所述數(shù)據(jù)轉(zhuǎn)發(fā)方法由所述負(fù)載均衡設(shè)備的內(nèi)核驅(qū)動執(zhí)行,其中,所述負(fù)載均衡表與所述轉(zhuǎn)發(fā)規(guī)則集預(yù)先下發(fā)于所述內(nèi)核驅(qū)動中,轉(zhuǎn)發(fā)通過內(nèi)核驅(qū)動實現(xiàn),提高了轉(zhuǎn)發(fā)性能。
本實施例在上述實施例的基礎(chǔ)上,進行了改進,通過增加在所述在將所述IP報文中的所述標(biāo)準(zhǔn)IP地址以及所述標(biāo)準(zhǔn)端口號替換為所述轉(zhuǎn)發(fā)IP地址以及所述轉(zhuǎn)發(fā)端口號之后,還包括:查詢預(yù)存的轉(zhuǎn)發(fā)規(guī)則集,確定與所述IP報文對應(yīng)的物理轉(zhuǎn)發(fā)端口,能夠保證物理端口轉(zhuǎn)發(fā)的正確性;相應(yīng)地,將所述IP報文轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器包括:將所述IP報文通過所述物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)至與所述轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器,能夠保證與交換機連接的物理端口轉(zhuǎn)發(fā)的正確性,確保數(shù)據(jù)的正確傳送。
實施例四
圖4為本發(fā)明實施例四提供的一種數(shù)據(jù)轉(zhuǎn)發(fā)系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)包括:
負(fù)載均衡設(shè)備410,數(shù)據(jù)交換機420,應(yīng)用服務(wù)器430;
所述負(fù)載均衡設(shè)備安裝有Linux操作系統(tǒng),用于啟用Linux操作系統(tǒng)內(nèi)置的IP報文過濾機制,在Linux操作系統(tǒng)的過濾驅(qū)動層獲取客戶端發(fā)送的IP報文,根據(jù)設(shè)定的負(fù)載均衡策略,將所述IP報文轉(zhuǎn)發(fā)至應(yīng)用服務(wù)器,并將所述應(yīng)用服務(wù)器返回的回復(fù)報文轉(zhuǎn)發(fā)至所述客戶端;
所述數(shù)據(jù)交換機,用于接收物理轉(zhuǎn)發(fā)端口轉(zhuǎn)發(fā)的IP報文,并轉(zhuǎn)發(fā)給與轉(zhuǎn)發(fā)IP地址對應(yīng)的應(yīng)用服務(wù)器;
所述應(yīng)用服務(wù)器,用于接收負(fù)載均衡設(shè)備轉(zhuǎn)發(fā)的IP報文,并返回回復(fù)報文給負(fù)載均衡設(shè)備;
其中,負(fù)載均衡設(shè)備本身沒有最大連接數(shù)的限制,其最大連接數(shù)主要由應(yīng)用服務(wù)器的最大連接數(shù)之和決定的,應(yīng)用服務(wù)器越多最大連接數(shù)就越大。
所述負(fù)載均衡設(shè)備與所述數(shù)據(jù)交換機相連,所述數(shù)據(jù)交換機與至少兩臺應(yīng)用服務(wù)器相連。
通過本發(fā)明實施例四的一種數(shù)據(jù)轉(zhuǎn)發(fā)系統(tǒng),以較為低廉的成本實現(xiàn)負(fù)載均衡,擴展網(wǎng)站網(wǎng)絡(luò)吞吐量。
實施例五
本實施例在上述實施例的基礎(chǔ)上,提供一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的優(yōu)選實施例。
假設(shè)負(fù)載均衡設(shè)備的標(biāo)準(zhǔn)端口號為eth0,標(biāo)準(zhǔn)IP地址為123.84.77.122,該IP只為舉例,不代表實際網(wǎng)絡(luò)擁有該IP地址。負(fù)載均衡設(shè)備轉(zhuǎn)發(fā)端口號為eth1,轉(zhuǎn)發(fā)IP地址為192.168.5.1,通過交換機與多臺應(yīng)用服務(wù)器相連接。
在表1中示出了一種負(fù)載均衡表的示例。
表1
負(fù)載均衡表哈希計算屬性0,即根據(jù)客戶端的IP地址計算哈希值。計算得到哈希值就是映射表的索引值,根據(jù)索引值獲取表中的一組映射。如果根據(jù)客戶端的IP地址計算哈希值為0,就選擇表中索引值為0的一組映射,即123.84.77.122:8443<->192.168.5.2:443。
客戶端向負(fù)載均衡設(shè)備123.84.77.122:8443發(fā)送的請求報文,報文的轉(zhuǎn)發(fā)IP地址和轉(zhuǎn)發(fā)端口號替換成192.168.5.2:443,發(fā)往相應(yīng)的應(yīng)用服務(wù)器。負(fù)載均衡設(shè)備收到應(yīng)用服務(wù)器的回復(fù)報文,將報文的轉(zhuǎn)發(fā)IP地址和轉(zhuǎn)發(fā)端口(192.168.5.2:443)再次替換成123.84.77.122:8443發(fā)給客戶端。
在表2中示出了一種轉(zhuǎn)發(fā)規(guī)則集的示例。
表2
如表2所示,有三條規(guī)則,關(guān)鍵字protocol指協(xié)議類型(TCP、UDP、ICMP),關(guān)鍵字sip指客戶端IP地址,關(guān)鍵字smask指客戶端IP地址對應(yīng)的掩碼,sport指客戶端端口,關(guān)鍵字dip指轉(zhuǎn)發(fā)IP地址,關(guān)鍵字dmask指轉(zhuǎn)發(fā)IP地址對應(yīng)的掩碼,dport指轉(zhuǎn)發(fā)端口,transmit指從哪個物理端口轉(zhuǎn)發(fā)。0號規(guī)則說明:TCP協(xié)議的,客戶端IP地址任意,客戶端端口任意,轉(zhuǎn)發(fā)IP地址為192.168.5.2,轉(zhuǎn)發(fā)端口為443的報文從eth1轉(zhuǎn)發(fā)出去。1、2號規(guī)則類似。
圖5為一種驅(qū)動實現(xiàn)架構(gòu)圖。
Linux內(nèi)核中啟動并注冊IP過濾驅(qū)動,配置程序把負(fù)載均衡表和轉(zhuǎn)發(fā)規(guī)則集下發(fā)給IP過濾驅(qū)動。
圖6是一種過濾驅(qū)動模塊圖。
過濾驅(qū)動由配置模塊、外網(wǎng)轉(zhuǎn)內(nèi)網(wǎng)模塊、內(nèi)網(wǎng)轉(zhuǎn)外網(wǎng)模塊、負(fù)載均衡表和轉(zhuǎn)發(fā)規(guī)則集組成。配置模塊負(fù)責(zé)接收配置應(yīng)用程序下發(fā)的負(fù)載均衡表和轉(zhuǎn)發(fā)規(guī)則集,并更新驅(qū)動自身的負(fù)載均衡表和轉(zhuǎn)發(fā)規(guī)則集。
外網(wǎng)轉(zhuǎn)內(nèi)網(wǎng)模塊,實現(xiàn)客戶端訪問負(fù)載均衡設(shè)備123.84.77.122:8443的報文轉(zhuǎn)向應(yīng)用服務(wù)器。假如客戶端IP地址123.88.56.92,端口62586向負(fù)載均衡設(shè)備123.84.77.122:8443通信,外網(wǎng)轉(zhuǎn)內(nèi)網(wǎng)模塊收到此報文,根據(jù)客戶端的IP地址(123.88.56.92轉(zhuǎn)16進制數(shù)為7b58385c)計算哈希值為2,就選擇負(fù)載均衡表中索引值為2的一組映射,即123.84.77.122:8443<->192.168.5.4:443,報文的轉(zhuǎn)發(fā)IP地址和轉(zhuǎn)發(fā)端口替換成192.168.5.4:443,替換后需對IP地址校驗和與TCP協(xié)議校驗和的重新計算。再查轉(zhuǎn)發(fā)規(guī)則,得到轉(zhuǎn)發(fā)的物理端口eth1,從該物理端口發(fā)出。
內(nèi)網(wǎng)轉(zhuǎn)外網(wǎng)模塊,內(nèi)網(wǎng)轉(zhuǎn)外網(wǎng)模塊收到回應(yīng)報文,此時源IP 192.168.5.4,源端口443,目的IP 123.88.56.92,目的端口62586,查負(fù)載均衡表用123.84.77.122:8443對源IP和源端口(192.168.5.4:443)進行替換。替換后需對IP 地址校驗和與TCP協(xié)議校驗和的重新計算。報文再次發(fā)給客戶端。
從客戶端角度,客戶端123.88.56.92:62586與負(fù)載均衡設(shè)備123.84.77.122:8443通信。負(fù)載均衡設(shè)備采用的負(fù)載均衡的策略對客戶端是透明的。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。