專利名稱:一種實現(xiàn)負荷分擔的方法和路由設備的制作方法
技術領域:
本發(fā)明涉及IP報文轉發(fā)技術領域,尤其涉及一種實現(xiàn)負荷分擔的方法和路由設備。
背景技術:
在路由器、交換機等設備中,通常在對同一目的IP報文進行轉發(fā)時,根據(jù)目的IP 查找到的路由表中的出接口都是相同的,即所有流量都通過路由表中的下一跳以及出接 口發(fā)送到下一個設備,那么,當流量超過接口帶寬或者受到流量管理時,部分數(shù)據(jù)會被路由 器設備丟棄,從而影響用戶正常業(yè)務。為了減少數(shù)據(jù)丟失的可能,可以在轉發(fā)時將相同目的 IP的數(shù)據(jù)流量按某種策略分配到多個不同的鏈路上,最終再匯聚到共同的目標設備,這就 是負荷分擔。 負荷分擔的選路策略一般有兩種第一種,是將相同的目的IP的流量均勻分配到 所有的負荷分擔鏈路上,這種選路策略適合使用在對流量保序要求不高的場合,優(yōu)點是流 量絕對均衡,缺點就是報文順序不能保證,如圖l所示,目的IP同為到路由器B的報文會 均勻分配到三條鏈路轉發(fā)到路由器B,但因轉發(fā)通過不同鏈路所用的時間是不同的,因此, 報文到達路由器B后的順序可能會改變,用戶收到亂序報文后會發(fā)出報文重發(fā)的請求,網(wǎng) 絡服務質量會因此降低;第二種,是按流量特征選擇鏈路,相同目的IP的報文根據(jù)端口號、 協(xié)議類型的不同等生成流特征標識,每個流特征標識對應一條負荷分擔鏈路,由此保證用 戶相同的業(yè)務流量走相同的鏈路,減少了報文順序錯亂的可能,服務質量得以提高,但是, 同樣缺點在于當某一種業(yè)務流量占帶寬比較多時,鏈路的負荷分擔效果得不到體現(xiàn),同樣 如圖1所示,假設到路由器B的相同目的IP報文只按協(xié)議類型分類選路,則可能用戶數(shù)據(jù) 包協(xié)議(UDP,User Datagram Protocol)報文走鏈路一,傳輸控制協(xié)議(TCP,Transmission Control Protocol)報文走鏈路二,從而保證了相同協(xié)議類型報文選擇相同鏈路,減少報文 亂序的可能。 現(xiàn)有的負荷分擔實現(xiàn)方法中,無論是基于報文的均勻選路方式還是基于流特征標 識的選路方式,都需要將報文序列號、或隨機數(shù)、或報文流特征標識對應到負荷分擔的一條 鏈路,一般使用流特征標識對鏈路數(shù)求余的方法,對于沒有求余計算模塊的處理器,用軟件 來實現(xiàn)這個算法是非常占指令行的,對于網(wǎng)絡處理器來說,如果一個報文在處理流程中某 個算法占用過多的指令行,會導致路由器設備轉發(fā)性能降低。 另外,如果使用的報文序列號或隨機數(shù)的最大范圍不是負荷分擔鏈路數(shù)的倍數(shù), 則使用基于報文的均勻選路方式時,流量會產(chǎn)生誤差,并不會完全均勻分布到各鏈路上。如 圖1所示,當報文序列號范圍是0-65535 (16Bits的計數(shù)器),負荷分擔鏈路為如圖1所示三 條相同帶寬的出接口 ,報文在計算選路時,用報文序列號對3求余,余數(shù)結果為0的會比余 數(shù)結果為1、2的多l(xiāng)個,因此,選擇鏈路一的報文會多l(xiāng)個,在長時間轉發(fā)后會產(chǎn)生一定的 誤差;當報文序列號范圍更小是時,誤差會更為明顯。
發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種實現(xiàn)負荷分擔的方法和路由設備,能 直接選擇轉發(fā)的下一跳及出接口信息,并對產(chǎn)生鏈路選擇不均勻誤差的報文進行轉發(fā),從 而保證高效率、高質量的報文轉發(fā)。 為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的
本發(fā)明提供了一種實現(xiàn)負荷分擔的方法,包括 獲取負荷分擔策略并生成負荷分擔鏈路表,當負荷分擔策略是基于報文選路且會 產(chǎn)生負荷分擔誤差時,使用誤差計數(shù)器中的負荷分擔誤差計數(shù)值查找負荷分擔鏈路表,得 到下一跳以及出接口信息; 根據(jù)所述負荷分擔鏈路表中的下一跳以及出接口信息轉發(fā)報文。 上述方案中,所述獲取負荷分擔策略并生成負荷分擔鏈路表之后,該方法還包
括 在收到轉發(fā)的報文后,根據(jù)報文計數(shù)生成報文序列號,根據(jù)目的IP和協(xié)議類型生 成報文標識,根據(jù)報文的目的IP查找路由設備,獲得對應的路由信息表,判斷所述路由信 息表中是否存在負荷分擔標記,如果有所述負荷分擔標記,則確定進行負荷分擔,如果沒有 所述負荷分擔標記,則確定不進行負荷分擔。 上述方案中,所述確定進行負荷分擔之后,該方法還包括 根據(jù)路由信息表中的負荷分擔策略標記,判斷是基于報文選路方式還是基于流選 路方式;如果是基于報文選路方式,判斷是否會產(chǎn)生負荷分擔誤差。 上述方案中,該方法進一步包括當所述負荷分擔策略是基于報文選路且不會產(chǎn) 生負荷分擔誤差時、或者當負荷分擔策略是基于流選路時,根據(jù)報文標識查找所述負荷分 擔鏈路表。 上述方案中,所述得到下一跳以及出接口信息之后,該方法還包括所述負荷分擔 誤差計數(shù)值增加1。
上述方案中,所述獲取負荷分擔策略并生成負荷分擔鏈路表具體為 根據(jù)目的路由設備的IP生成路由信息表,當存在負荷分擔時獲取用戶所配置的
負荷分擔策略,在所述路由信息表中自動形成負荷分擔標記和負荷分擔策略標記,根據(jù)各
個出接口的帶寬得到負荷分擔鏈路表中各個出接口的分擔比例,根據(jù)所述負荷分擔策略、
負荷分擔標記、負荷分擔鏈路接口帶寬比例,生成負荷分擔鏈路表。 本發(fā)明還提供了一種實現(xiàn)負荷分擔的路由設備,包括負荷分擔配置模塊、生成模 塊、轉發(fā)模塊;其中, 負荷分擔配置模塊,用于配置負荷分擔策略; 生成模塊,用于根據(jù)所述負荷分擔配置模塊配置的負荷分擔策略以及路由信息, 生成負荷分擔鏈路表; 轉發(fā)模塊,用于在所述負荷分擔策略是基于報文選路且會產(chǎn)生負荷分擔誤差時, 使用誤差計數(shù)器中的負荷分擔誤差計數(shù)值查找所述生成模塊生成的負荷分擔鏈路表,根據(jù) 所述負荷分擔鏈路表中的下一跳以及出接口信息轉發(fā)報文。 上述方案中,該設備還包括路由信息表生成模塊,用于根據(jù)目的路由設備的IP生 成路由信息表。
5
上述方案中,所述生成模塊生成負荷分擔鏈路表的具體過程為 根據(jù)路由信息表生成模塊生成的路由信息表,當存在負荷分擔時獲取用戶所配
置的負荷分擔策略,在所述路由信息表中自動形成負荷分擔標記和負荷分擔策略標記,根
據(jù)各個出接口的帶寬得到負荷分擔鏈路表中各個出接口的分擔比例,根據(jù)所述負荷分擔策
略、負荷分擔標記、負荷分擔鏈路接口帶寬比例,生成負荷分擔鏈路表。 本發(fā)明所提供的實現(xiàn)負荷分擔的方法和路由設備,可直接選擇轉發(fā)的下一跳及出 接口信息,極大的減少了轉發(fā)時選擇鏈路的計算時間,保證數(shù)據(jù)轉發(fā)通道的高效轉發(fā);并且 將負荷分擔鏈路表與路由信息表分開,增加了表項管理的靈活性,減小了路由與負荷分擔 的耦合性,當路由信息或負荷分擔相關配置與鏈路信息發(fā)生變化時進行分別維護,提高了 系統(tǒng)的穩(wěn)定高效性。同時,在沒有求余計算的情況下,利用誤差累積計數(shù)的方法計算出在報 文選路時產(chǎn)生的誤差,提高了路由器設備轉發(fā)時的性能,從而提高了負荷分擔的服務質量。
圖1為現(xiàn)有的負荷分擔應用組網(wǎng)示意圖; 圖2為本發(fā)明負荷分擔鏈路表的示例圖; 圖3為本發(fā)明實現(xiàn)負荷分擔的方法的流程示意圖; 圖4為本發(fā)明實現(xiàn)負荷分擔的路由設備的結構示意圖。
具體實施例方式
本發(fā)明的基本思想是當負荷分擔策略是基于報文選路且產(chǎn)生負荷分擔誤差時, 使用誤差計數(shù)器中的負荷分擔誤差計數(shù)值查找負荷分擔鏈路表,得到下一跳以及出接口信 息,并根據(jù)得到的下一跳以及出接口信息轉發(fā)報文。 下面通過附圖及具體實施例對本發(fā)明再做進一步的詳細說明。 圖3是本發(fā)明實現(xiàn)負荷分擔的方法的流程示意圖,如圖3所示,本發(fā)明提供的一種 實現(xiàn)負荷分擔的方法包括以下步驟 步驟301,獲取負荷分擔策略并生成負荷分擔鏈路表; 具體的,根據(jù)目的路由設備的IP生成路由信息表,當存在負荷分擔時獲取用戶 所配置的負荷分擔策略,在路由信息表中自動形成負荷分擔標記和負荷分擔策略標記,根 據(jù)各個出接口的帶寬可以得到負荷分擔鏈路表中各個出接口的分擔比例,根據(jù)負荷分擔策 略、負荷分擔標記、負荷分擔鏈路接口帶寬比例,生成負荷分擔鏈路表;當負荷分擔鏈路關 系發(fā)生變化時,負荷分擔鏈路表需要更新出接口和下一跳信息。例如,如圖2所示,鏈路一 為1G帶寬,鏈路二為1G帶寬,鏈路三為IOG帶寬,則負荷分擔鏈路表中三條鏈路的分擔比
例為i : i : io。 這里,負荷分擔鏈路表空間可以存放1024條鏈路表,因此,根據(jù)得到的比例,按照 順序依次向1024條鏈路表條目空間循環(huán)填充,直到1024條表空間填充滿,負荷分擔鏈路表 的每個條目中包含下一跳以及出接口信息;負荷分擔策略包括當需要負荷分擔時是采用 基于流的選路方式還是采用基于報文的選路方式;路由信息表中的負荷分擔標記,是根據(jù) 目的IP的路由信息是否符合負荷分擔條件而生成的標記,如果多條鏈路對應同一個目的 IP,就滿足負荷分擔條件。其中,目的IP可以是Ipv4,也可以使Ipv6。
步驟302,生成報文序列號和報文標識,并判斷路由信息表中是否有負荷分擔標 記,如果有負荷分擔標記,則執(zhí)行步驟303,如果沒有負荷分擔標記,則執(zhí)行步驟307 ;
具體的,在收到需要轉發(fā)的報文后,根據(jù)報文計數(shù)生成報文序列號,根據(jù)目的IP 和協(xié)議類型生成報文標識,報文序列號和報文標識都對應負荷分擔鏈路表中的條目索引, 可以直接索引到負荷分擔鏈路表的條目,從而得到對應的負荷分擔鏈路表的下一跳、出接 □; 根據(jù)報文的目的IP查找路由設備,獲得對應的路由信息表,判斷路由信息表中是 否存在負荷分擔標記,如果有負荷分擔標記,表示需要進行負荷分擔,則執(zhí)行步驟303,如果 沒有負荷分擔標記,表示不需要進行負荷分擔,則執(zhí)行步驟307。 步驟303,判斷負荷分擔策略是否基于報文選路方式,如果是基于報文選路方式, 則執(zhí)行步驟304,如果不是基于報文選路方式,則執(zhí)行步驟306 ; 具體的,根據(jù)路由信息表中的負荷分擔策略標記,判斷是基于報文選路方式還是 基于流選路方式,如果是基于報文選路方式,則執(zhí)行步驟304,如果是基于流選路方式,則執(zhí) 行步驟306 ; 步驟304,判斷是否將會產(chǎn)生負荷分擔誤差,如果會產(chǎn)生誤差,則執(zhí)行步驟305,如 果不會產(chǎn)生誤差,則執(zhí)行步驟306 ; 具體的,根據(jù)報文序列號對應的負荷分擔鏈路,判斷是否將會產(chǎn)生負荷分擔誤差; 如圖2所示,當報文序列號對應最后四條鏈路時,如果繼續(xù)使用這四條鏈路中的鏈路進行 報文轉發(fā),進行報文轉發(fā)的鏈路會比其他鏈路多一次轉發(fā)報文的機會,將會導致負荷分擔 誤差,這種情況下執(zhí)行步驟305 ;如果不使用這四條鏈路中的鏈路進行轉發(fā),就不會產(chǎn)生誤 差,這種情況下執(zhí)行步驟306。 步驟305,使用誤差計數(shù)器的負荷分擔誤差計數(shù)值查找負荷分擔鏈路表,負荷分擔 誤差計數(shù)值加1 ; 具體的,當判斷將會產(chǎn)生負荷分擔誤差時,根據(jù)此時的誤差計數(shù)器的負荷分擔誤 差計數(shù)值查找負荷分擔鏈路表,找到對應的負荷分擔鏈路表中的對應的鏈路后,得到下一 跳、出接口。例如,如圖2所示,當報文序列號對應最后四條鏈路時,如果繼續(xù)使用這四條鏈 路中的下一跳1、出口 1鏈路進行報文轉發(fā)就會產(chǎn)生誤差,這時誤差計數(shù)器的負荷分擔誤差 計數(shù)值是1 ;根據(jù)誤差計數(shù)器的負荷分擔誤差計數(shù)值在負荷分擔鏈路表中找到鏈路l,得到 鏈路1的下一跳、出接口 ;然后誤差計數(shù)器的負荷分擔誤差計數(shù)值加l,此時誤差計數(shù)器的 負荷分擔誤差計數(shù)值是2。 這里,誤差計數(shù)器可以利用芯片中的寄存器,通過讀取寄存器中的計數(shù)值得到負 荷分擔誤差計數(shù)值。 步驟306,根據(jù)報文標識查找負荷分擔鏈路表; 具體的,根據(jù)步驟302中產(chǎn)生的報文標識,查找與其對應的負荷分擔鏈路表中的
鏈路,得到負荷分擔鏈路表中的下一跳以及出接口信息;如果需要進行轉發(fā)的報文具有一
樣的報文標識,那么這些報文對應的負荷分擔鏈路表中的鏈路也是一樣的; 步驟307,根據(jù)路由信息表中的下一跳以及出接口信息轉發(fā)報文,結束當前處理流
程; 步驟308,根據(jù)負荷分擔鏈路表中的下一跳以及出接口信息轉發(fā)報文。
為實現(xiàn)上述方法,本發(fā)明還提供了一種實現(xiàn)負荷分擔的路由設備,如圖4所示,該 設備包括負荷分擔配置模塊41、生成模塊42、轉發(fā)模塊43 ;其中,
負荷分擔配置模塊41,用于配置負荷分擔策略; 其中,負荷分擔策略是當需要進行負荷分擔時,是基于報文選路方式還是基于流 選路方式; 生成模塊42,用于根據(jù)負荷分擔配置模塊41配置的負荷分擔策略以及路由信息, 生成負荷分擔鏈路表; 轉發(fā)模塊43,用于在負荷分擔策略是基于報文選路且會產(chǎn)生負荷分擔誤差時,使 用誤差計數(shù)器中的負荷分擔誤差計數(shù)值查找生成模塊42生成的負荷分擔鏈路表,根據(jù)負 荷分擔鏈路表中的下一跳以及出接口信息轉發(fā)報文;
這里,在轉發(fā)報文的同時需將負荷分擔誤差計數(shù)值增加1 ; 該路由設備還可以進一步包括路由信息表生成模塊44,用于根據(jù)目的路由設備 的IP生成路由信息表; 在路由信息表中,可以自動形成負荷分擔標記和負荷分擔策略標記,根據(jù)各個出 接口的帶寬,可以得到負荷分擔鏈路表中各個出接口的分擔比例; 生成模塊42生成負荷分擔鏈路表的具體過程為根據(jù)路由信息表生成模塊44生 成的路由信息表,當存在負荷分擔時獲取用戶所配置的負荷分擔策略,在所述路由信息表 中自動形成負荷分擔標記和負荷分擔策略標記,根據(jù)各個出接口的帶寬得到負荷分擔鏈路 表中各個出接口的分擔比例,根據(jù)所述負荷分擔策略、負荷分擔標記、負荷分擔鏈路接口帶 寬比例,生成負荷分擔鏈路表。 以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在 本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護 范圍之內。
8
權利要求
一種實現(xiàn)負荷分擔的方法,其特征在于,該方法包括獲取負荷分擔策略并生成負荷分擔鏈路表,當負荷分擔策略是基于報文選路且會產(chǎn)生負荷分擔誤差時,使用誤差計數(shù)器中的負荷分擔誤差計數(shù)值查找負荷分擔鏈路表,得到下一跳以及出接口信息;根據(jù)所述負荷分擔鏈路表中的下一跳以及出接口信息轉發(fā)報文。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述獲取負荷分擔策略并生成負荷分擔 鏈路表之后,該方法還包括在收到轉發(fā)的報文后,根據(jù)報文計數(shù)生成報文序列號,根據(jù)目的IP和協(xié)議類型生成報 文標識,根據(jù)報文的目的IP查找路由設備,獲得對應的路由信息表,判斷所述路由信息表 中是否存在負荷分擔標記,如果有所述負荷分擔標記,則確定進行負荷分擔,如果沒有所述 負荷分擔標記,則確定不進行負荷分擔。
3. 根據(jù)權利要求2所述的方法,其特征在于,所述確定進行負荷分擔之后,該方法還包括根據(jù)路由信息表中的負荷分擔策略標記,判斷是基于報文選路方式還是基于流選路方 式;如果是基于報文選路方式,判斷是否會產(chǎn)生負荷分擔誤差。
4. 根據(jù)權利要求3所述的方法,其特征在于,該方法還包括當所述負荷分擔策略是基 于報文選路且不會產(chǎn)生負荷分擔誤差時、或者當負荷分擔策略是基于流選路時,根據(jù)報文 標識查找所述負荷分擔鏈路表。
5. 根據(jù)權利要求1所述的方法,其特征在于,所述得到下一跳以及出接口信息之后,該 方法還包括所述負荷分擔誤差計數(shù)值增加1。
6. 根據(jù)權利要求1所述的方法,其特征在于,所述獲取負荷分擔策略并生成負荷分擔 鏈路表具體為根據(jù)目的路由設備的IP生成路由信息表,當存在負荷分擔時獲取用戶所配置的負荷 分擔策略,在所述路由信息表中自動形成負荷分擔標記和負荷分擔策略標記,根據(jù)各個出 接口的帶寬得到負荷分擔鏈路表中各個出接口的分擔比例,根據(jù)所述負荷分擔策略、負荷 分擔標記、負荷分擔鏈路接口帶寬比例,生成負荷分擔鏈路表。
7. —種實現(xiàn)負荷分擔的路由設備,其特征在于,該設備包括負荷分擔配置模塊、生成 模塊、轉發(fā)模塊;其中,負荷分擔配置模塊,用于配置負荷分擔策略;生成模塊,用于根據(jù)所述負荷分擔配置模塊配置的負荷分擔策略以及路由信息,生成 負荷分擔鏈路表;轉發(fā)模塊,用于在所述負荷分擔策略是基于報文選路且會產(chǎn)生負荷分擔誤差時,使用 誤差計數(shù)器中的負荷分擔誤差計數(shù)值查找所述生成模塊生成的負荷分擔鏈路表,根據(jù)所述 負荷分擔鏈路表中的下一跳以及出接口信息轉發(fā)報文。
8. 根據(jù)權利要求7所述的路由設備,其特征在于,該設備還包括路由信息表生成模塊, 用于根據(jù)目的路由設備的IP生成路由信息表。
9. 根據(jù)權利要求8所述的路由設備,其特征在于,所述生成模塊生成負荷分擔鏈路表 的具體過程為根據(jù)路由信息表生成模塊生成的路由信息表,當存在負荷分擔時獲取用戶所配置的負荷分擔策略,在所述路由信息表中自動形成負荷分擔標記和負荷分擔策略標記,根據(jù)各個 出接口的帶寬得到負荷分擔鏈路表中各個出接口的分擔比例,根據(jù)所述負荷分擔策略、負 荷分擔標記、負荷分擔鏈路接口帶寬比例,生成負荷分擔鏈路表。
全文摘要
本發(fā)明公開了一種實現(xiàn)負荷分擔的方法,該方法包括獲取負荷分擔策略并生成負荷分擔鏈路表,當負荷分擔策略是基于報文選路且會產(chǎn)生負荷分擔誤差時,使用誤差計數(shù)器中的負荷分擔誤差計數(shù)值查找負荷分擔鏈路表,得到下一跳以及出接口信息,根據(jù)所述負荷分擔鏈路表中的下一跳以及出接口信息轉發(fā)報文;根據(jù)所述負荷分擔鏈路表中的下一跳以及出接口信息轉發(fā)報文;本發(fā)明同時還公開了一種實現(xiàn)負荷分擔的路由設備。根據(jù)本發(fā)明的方案,能實現(xiàn)報文的高效轉發(fā)。
文檔編號H04L29/06GK101789949SQ20101011278
公開日2010年7月28日 申請日期2010年2月4日 優(yōu)先權日2010年2月4日
發(fā)明者文雙平, 邵慶華, 鐘煒 申請人:中興通訊股份有限公司