專利名稱:負載均衡方法及路由服務器的制作方法
技術領域:
本發(fā)明涉及一種通信技術,尤其涉及一種負載均衡方法及能夠實現(xiàn)負載均衡的路由服務器。
背景技術:
如圖1所示為一種能夠實現(xiàn)負載分擔的組網(wǎng)結構,常用于網(wǎng)吧等應用中。當終端31等多個終端通過鏈路1、2等多條鏈路經(jīng)由廣域網(wǎng)(Wide AreaNetwork,簡稱WAN)訪問網(wǎng)絡服務器10時,由于多條鏈路連接相同的網(wǎng)絡服務器10,從網(wǎng)關服務器20到達網(wǎng)絡服務器10將生成多條等價鏈路,即多條代價(cost)相同的路由,使得來自于各終端的業(yè)務流在網(wǎng)關服務器20上將形成負載分擔,即一部分業(yè)務流走鏈路1、一部分業(yè)務流走鏈路2,一部分業(yè)務流走其他鏈路等。在現(xiàn)有技術中,來自于同一個終端的業(yè)務流應該走同一鏈路,否則網(wǎng)絡服務器10可能會由于判斷出來源不同而拒絕這類業(yè)務流的訪問。
現(xiàn)有技術中基于上述組網(wǎng)結構實現(xiàn)負載分擔主要是通過在網(wǎng)關路由器20上配置策略路由,對終端出接口進行設置。具體地,根據(jù)業(yè)務流的源IP地址唯一確定一個終端,并通過訪問控制列表(Access Control List,簡稱ACL)規(guī)則進行局域網(wǎng)(Local Area Network,簡稱LAN)內(nèi)的終端分流,使得每個終端的所有業(yè)務流都走相同的鏈路,到達網(wǎng)絡服務器10后都從相同的接口進入,以避免被網(wǎng)絡服務器10拒絕。
現(xiàn)有技術的缺陷在于上述配置策略路由的方法無法動態(tài)適應網(wǎng)絡結構變化,即一旦網(wǎng)絡結構發(fā)生變化就需要重新對策略路由進行配置,因此非常不方便且缺乏靈活性;另外,上述方法僅僅是基于終端對鏈路進行分配,但并不是所有的終端在同一時間都要進行業(yè)務流的傳輸,如果在某一時刻,使用鏈路1的終端數(shù)量很少,而使用鏈路2的終端數(shù)量很多,從而會造成兩條鏈路的負載不均衡,使一條鏈路無法得到充分利用。
發(fā)明內(nèi)容
本發(fā)明的目的在于在保證同一終端的報文通過同一鏈路進行傳輸?shù)那疤嵯?,提高配置的靈活性和每條鏈路的使用效率。
為了實現(xiàn)上述目的,本發(fā)明的一個實施例提供一種負載均衡方法,包括路由服務器接收到來自于終端的報文后,在預先根據(jù)多條等價鏈路的負載狀態(tài)動態(tài)生成的出接口分配表中查找相應的出接口信息;根據(jù)查找到的出接口信息將該報文轉發(fā)到多條等價鏈路中的一條鏈路上;其中,所述出接口分配表的表項中包括相互關聯(lián)保存的能夠唯一區(qū)分發(fā)送報文終端的終端特征信息和該路由服務器的多條等價鏈路的出接口信息。
為了實現(xiàn)上述目的,本發(fā)明的另一個實施例提供一種路由服務器,包括分配表模塊,用于保存出接口分配表,當需要添加表項時,根據(jù)多條等價鏈路的負載狀態(tài)為所述服務器接收到的報文分配出接口,生成相應的表項保存在出接口分配表中。
轉發(fā)模塊,用于根據(jù)來自于分配表模塊的出接口信息,將所述報文轉發(fā)到多條等價鏈路中的一條鏈路上。
因此,通過本發(fā)明,由于出接口分配表中的表項信息根據(jù)多條等價鏈路上的負載狀態(tài)進行了動態(tài)配置,從而不受網(wǎng)絡結構的限制,因此配置過程更加靈活方便,負載分擔的效果更好,各條等價鏈路的利用率更高。
下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
圖1為現(xiàn)有的一種能夠實現(xiàn)負載分擔的組網(wǎng)結構;圖2為本發(fā)明實施例1所述負載均衡方法流程圖;圖3為本發(fā)明實施例2所述路由服務器結構示意圖;圖4為本發(fā)明實施例2所述另一種路由服務器結構示意圖。
具體實施例方式
實施例1本實施例提供了一種負載均衡方法,如圖2所示,步驟101,路由服務器接收到來自于終端的報文后,根據(jù)該報文中的目的地址,具體地可以為網(wǎng)際協(xié)議(Internet Protocol,簡稱IP)地址,在轉發(fā)信息庫(Forwarding Information Base,以下簡稱FIB)中查找是否存在至少兩條等價鏈路,是則執(zhí)行步驟102。
其中,等價鏈路是指能夠達到目的地址并且代價近似相同的路由。如果不存在多條等價鏈路,也就無法實現(xiàn)負載分擔。但此處需要說明的是,如果根據(jù)具體的網(wǎng)絡拓撲結構便可以確定來自于不同終端的所有報文都只發(fā)送給一個目的地址,且必然存在多條等價鏈路,則本步驟是可以被省略的。
步驟102,根據(jù)接收到的該報文中的終端特征信息在出接口分配表中查找相應的出接口信息,如果查找成功則執(zhí)行步驟110,否則執(zhí)行步驟120。
其中,出接口分配表的表項中包括相互關聯(lián)保存的終端特征信息和對應于路由服務器的多條等價鏈路的出接口信息。其中終端特征信息是指能夠唯一標識發(fā)送該報文的終端的信息,用于對各個終端加以區(qū)分。例如報文中攜帶的源IP地址等;出接口信息為用于轉發(fā)該報文的出接口標識,或者為出接口標識及下一跳路由地址。對于某些邏輯接口,如虛擬模板接口(簡稱VT接口),單憑接口標識無法決定實際要轉發(fā)報文的物理接口,因此需要將出接口標識及一下跳路由地址相結合以確定物理接口。
步驟110,根據(jù)查找到的出接口信息將該報文轉發(fā)到多條等價鏈路中的一條鏈路上,使得來自于同一終端的報文能夠通過路由服務器的同一條鏈路進行傳輸。這里的多條等價鏈路包括兩條及兩條以上的等價鏈路。
步驟120,如果查找失敗,說明在當前的出接口分配表中沒與該終端相對應的表項信息,則可以根據(jù)多條等價鏈路的負載狀態(tài),生成相應的表項保存在出接口分配表中。
在生成相應的表項時,為了實現(xiàn)多條等價鏈路上的負載均衡,具體可以根據(jù)出接口分配表中已有的表項信息和多條所述鏈路的負載能力的比例為接收到的該報文分配出接口,生成相應的表項,使分配于各個等價鏈路上的終端個數(shù)比與鏈路的負載能力比相適應。當再次收到來自于該終端的報文時,根據(jù)該新生成的表項即可以完成報文轉發(fā)。其中,鏈路的負載能力的比例可以是鏈路的帶寬比或容量比或速度比。
例如,假設在圖1所示的網(wǎng)絡中,等價鏈路包括鏈路1和鏈路2,如果鏈路1、2的帶寬比為3∶5,而鏈路1上已經(jīng)分配了3個終端的報文;鏈路2上已經(jīng)分配了4個終端的報文,則當接收到來自于一個新終端的報文時將該報文分配到鏈路2上,此時兩條鏈路上分配的終端個數(shù)比為3∶5,與鏈路帶寬比相適應。如果終端個數(shù)比鏈路帶寬比已經(jīng)相同,則當接收到來自于一個新終端的報文時隨機選擇一條鏈路發(fā)送即可。
此處需要說明的是,在現(xiàn)有的某些網(wǎng)絡系統(tǒng)中,創(chuàng)建出接口分配表的表項需要得到相應路由表項的支持,如果路由項不支持基于用戶的負載分擔,無法進行添加。但路由表項是否支持該功能是可以進行配置的。
另外,對出接口分配表還可以采用表項老化機制,即對出接口分配表的表項進行定時循環(huán)查詢,當查詢到表項所對應的終端在老化周期內(nèi)未進行報文傳輸,則將該表項刪除。當路由服務器再次接收到來自該終端的報文時,可以根據(jù)上述步驟120為該終端重新分配出接口,并生成相應的表項保存在出接口分配表中。
具體地,可以為出接口分配表中的每個表項設置一個時間戳標記和兩個新舊報文記數(shù)器,當該表項所對應的終端有報文傳輸時,增加新報文計數(shù)器的計數(shù)。每次定時循環(huán)查詢到該表項時,比較新舊報文計數(shù)器是否相同,若不同說明有新報文傳輸,則根據(jù)最近接收報文的時間更新時間戳標記,并用新報文計數(shù)器更新舊報文計數(shù)器;若新舊報文計數(shù)器的值相同,說明沒有新報文傳輸,則保持時間戳標記不變。當該表項到達老化時間時將其刪除,其中,老化時間是指該表項的時間戳標記的當前值與老化周期的和。
通過本實施例所述方法,通過出接口分配表分配出接口,使得來自于同一個終端的報文通過同一條鏈路到達目的地址,因此能夠保證信息傳輸?shù)捻樌M行;并且由于出接口分配表中的表項信息可以根據(jù)報文傳輸?shù)那闆r進行動態(tài)添加或刪除而不受網(wǎng)絡結構的限制,因此配置過程更加靈活方便。另外,由于每次添加表項信息時,考慮到了已有表項的分配情況和各條鏈路的帶寬比,因此負載分擔的效果更好,各條等價鏈路的利用率更高。
實施例2本實施例提供了一種能夠實現(xiàn)負載分擔的路由服務器,如圖3所示,路由服務器10包括轉發(fā)模塊11,信息庫查找模塊12和分配表模塊13。其中,信息庫查找模塊12中保存有FIB,分配表模塊13中保存有出接口分配表。工作過程如下路由服務器10接收到來自于終端的報文后,信息庫查找模塊12根據(jù)該報文中的目的地址,具體可以是IP地址,在FIB中查找是否存在至少兩條等價鏈路,當存在時向分配表模塊13發(fā)送查找結果,使分配表模塊13開始工作。
分配表模塊13接收到來自于信息庫查找模塊12的查找結果后,根據(jù)路由服務器10接收到的報文中的終端特征信息在出接口分配表中查找相應的出接口信息,并將查找到的出接口信息發(fā)送給轉發(fā)模塊11。其中,出接口分配表的表項中包括相互關聯(lián)保存的終端特征信息和對應于多條等價鏈路的出接口信息。其中終端特征信息是指能夠唯一標識發(fā)送該報文的終端的信息,用于對各個終端加以區(qū)分。例如報文中攜帶的源IP地址等;出接口信息為用于轉發(fā)該報文的出接口標識,或者為出接口標識及下一跳路由地址。
此處需要說明的是,如果通過已有網(wǎng)絡拓撲結構能夠確定來自于終端的所有報文都只發(fā)送給一個目的地址,并且必然存在至少兩條等價鏈路,則信息庫查找模塊12也可以取消。分配表模塊13不需要等待來自于信息庫查找模塊12的查找結果即可以開始工作。
轉發(fā)模塊11根據(jù)來自于分配表模塊13的出接口信息對該報文進行轉發(fā),使得來自于同一終端的報文能夠通過路由服務器的同一條鏈路進行傳輸。
如果分配表模塊13在出接口分配表中未能查找相應的出接口信息,說明在當前的出接口分配表中沒與該終端相對應的表項信息,則可以根據(jù)多條等價鏈路的負載狀態(tài),生成相應的表項保存在分配表模塊13的出接口分配表中。
在生成相應的表項時,為了實現(xiàn)多條等價鏈路上的負載均衡,具體可以根據(jù)出接口分配表中已有的表項信息和多條所述鏈路的負載能力的比例為接收到的該報文分配出接口,生成相應的表項,使分配于各個等價鏈路上的終端個數(shù)比與鏈路的負載能力比相適應。當再次收到來自于該終端的報文時,根據(jù)該新生成的表項即可以完成報文轉發(fā)。其中,鏈路的負載能力的比例可以是鏈路的帶寬比或容量比或速度比。具體舉例請參見實施例1。
另外,本實施例所述的路由服務器10中還可以設置循環(huán)查詢模塊20,以實現(xiàn)對出接口分配表表項的老化機制。如圖4所示,循環(huán)查詢模塊20對分配表模塊13中的出接口分配表的表項進行定時循環(huán)查詢,當查詢到表項所對應的終端在老化周期內(nèi)未進行報文傳輸,則將該表項刪除。具體的表項老化過程可參見實施例1。
通過本實施例所述裝置,通過出接口分配表分配出接口,使得來自于同一個終端的報文通過同一條鏈路到達目的地址,因此能夠保證信息傳輸?shù)捻樌M行;并且由于出接口分配表中的表項信息可以根據(jù)報文傳輸?shù)那闆r進行動態(tài)添加或刪除而不受網(wǎng)絡結構的限制,因此配置過程更加靈活方便。另外,由于每次添加表項信息時,考慮到了已有表項的分配情況和各條鏈路的帶寬比,因此負載分擔的效果更好,各條等價鏈路的利用率更高。
最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制,盡管參照較佳實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發(fā)明的技術方案進行修改或者等同替換,而不脫離本發(fā)明技術方案的精神和范圍。
權利要求
1.一種負載均衡方法,其特征在于包括路由服務器接收到來自于終端的報文后,在預先根據(jù)多條等價鏈路的負載狀態(tài)動態(tài)生成的出接口分配表中查找相應的出接口信息;根據(jù)查找到的出接口信息將該報文轉發(fā)到多條等價鏈路中的一條鏈路上;其中,所述出接口分配表的表項中包括相互關聯(lián)保存的能夠唯一區(qū)分發(fā)送報文終端的終端特征信息和該路由服務器的多條等價鏈路的出接口信息。
2.根據(jù)權利要求1所述的負載均衡方法,其特征在于如果未找到相應的出接口信息,則根據(jù)多條等價鏈路的負載狀態(tài),生成相應的表項保存在出接口分配表中。
3.根據(jù)權利要求2所述的負載均衡方法,其特征在于根據(jù)所述鏈路的負載狀態(tài)生成相應的表項具體為根據(jù)出接口分配表中已有的表項信息和多條所述鏈路的負載能力的比例為該報文分配出接口,生成相應的表項。
4.根據(jù)權利要求3所述的負載均衡方法,其特征在于所述鏈路的負載能力的比例具體為所述鏈路的帶寬比或容量比或速度比。
5.根據(jù)權利要求1所述的負載均衡方法,其特征在于還包括對出接口分配表的表項進行定時循環(huán)查詢,當查詢到達到老化時間的表項時,將該表項刪除。
6.根據(jù)權利要求5所述的負載均衡方法,其特征在于將所述達到老化時間的表項刪除具體為為出接口分配表中的每個表項設置一個時間戳標記;將表項的時間戳標記的當前值與老化周期的和設置為老化時間;當表項到達老化時間時將該表項刪除。
7.根據(jù)權利要求6所述的負載均衡方法,其特征在于設置所述時間戳標記還包括當檢測到表項所對應的終端有報文傳輸時,根據(jù)最近接收到報文的時間更新該表項的時間戳標記。
8.根據(jù)權利要求7所述的負載均衡方法,其特征在于檢測到所述表項對應的終端有報文傳輸具體為為出接口分配表中的每個表項設置新舊兩個報文記數(shù)器;當表項所對應的終端有報文傳輸時,增加新報文計數(shù)器的計數(shù)值,并用新報文計數(shù)器更新舊報文計數(shù)器;在定時循環(huán)查詢過程中,當比較出表項的新舊報文計數(shù)器的計數(shù)值不同時,則檢測到該表項對應的終端有報文傳輸。
9.一種路由服務器,其特征在于包括分配表模塊,用于保存出接口分配表,當需要添加表項時,根據(jù)多條等價鏈路的負載狀態(tài)為所述服務器接收到的報文分配出接口,生成相應的表項保存在出接口分配表中;轉發(fā)模塊,用于根據(jù)來自于分配表模塊的出接口信息,將所述報文轉發(fā)到多條等價鏈路中的一條鏈路上。
10.根據(jù)權利要求9所述的路由服務器,其特征在于還包括信息庫查找模塊,用于根據(jù)所述路由服務器接收到的報文中的目的地址在轉發(fā)信息庫中查找是否存在至少兩條等價鏈路,是則將查找結果發(fā)送給分配表模塊;所述分配表模塊還用于在接收到該查找結果后,當需要添加表項時,根據(jù)多條等價鏈路的負載狀態(tài)為所述服務器接收到的報文分配出接口,生成相應的表項保存在所述出接口分配表中。
11.根據(jù)權利要求9或10所述的路由服務器,其特征在于還包括循環(huán)查詢模塊,用于對所述分配表模塊中的出接口分配表的表項進行定時循環(huán)查詢,當查詢到表項所對應的終端在老化周期內(nèi)未進行報文傳輸,則將該表項刪除。
全文摘要
一種負載均衡方法及路由服務器,其中方法包括路由服務器接收到來自于終端的報文后,在預先根據(jù)多條等價鏈路的負載狀態(tài)動態(tài)生成的出接口分配表中查找相應的出接口信息;根據(jù)查找到的出接口信息將該報文轉發(fā)到多條等價鏈路中的一條鏈路上其中,所述出接口分配表的表項中包括相互關聯(lián)保存的能夠唯一區(qū)分發(fā)送報文終端的終端特征信息和該路由服務器的多條等價鏈路的出接口信息。路由服務器包括分配表模塊和轉發(fā)模塊。通過本發(fā)明,由于出接口分配表中的表項信息根據(jù)多條等價鏈路上的負載狀態(tài)進行了動態(tài)配置,從而不受網(wǎng)絡結構的限制,因此配置過程更加靈活方便,負載分擔的效果更好,各條等價鏈路的利用率更高。
文檔編號H04L29/06GK101022413SQ20071006476
公開日2007年8月22日 申請日期2007年3月26日 優(yōu)先權日2007年3月26日
發(fā)明者趙鯤鵬 申請人:杭州華為三康技術有限公司