專利名稱:一種高效分布式路由表的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)交換設(shè)備領(lǐng)域,具體來講是一種高效分布式路由表的實(shí)現(xiàn)方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)規(guī)模越來越大,對(duì)網(wǎng)絡(luò)交換設(shè)備的路由表容量和路由表查找效率的要求也越來越高。當(dāng)前,對(duì)于網(wǎng)絡(luò)核心路由器和三層交換機(jī)等IP網(wǎng)絡(luò)交換設(shè)備,越來越多地采用了分布式軟件架構(gòu),其基本特點(diǎn)是系統(tǒng)有專用的主控盤,同時(shí)存在多塊獨(dú)立的業(yè)務(wù)接口盤。在系統(tǒng)路由表的組成上,一般實(shí)現(xiàn)方法是主控盤根據(jù)網(wǎng)絡(luò)拓?fù)渖陕酚尚畔⒈?,各業(yè)務(wù)接口盤分別拷貝一份完全相同的路由信息表,該路由信息表對(duì)于業(yè)務(wù)接口盤來說即是轉(zhuǎn)發(fā)信息表,其容量大小取決于業(yè)務(wù)接口盤的硬件轉(zhuǎn)發(fā)表容量。當(dāng)網(wǎng)絡(luò)數(shù)據(jù)包到到達(dá)某一塊業(yè)務(wù)接口盤時(shí),業(yè)務(wù)接口盤首先根據(jù)目的IP地址查找本盤上的路由信息表,如果目的地址是本設(shè)備地址,則將數(shù)據(jù)包送主控盤處理;否則,根據(jù)查到的路由找到與其對(duì)應(yīng)的出接口,在完成必要的業(yè)務(wù)處理后,將報(bào)文通過交換盤發(fā)給該出接口所在的業(yè)務(wù)接口盤,在出接口所在業(yè)務(wù)接口盤上,也可能會(huì)進(jìn)行必要的業(yè)務(wù)處理,然后由出接口所在的業(yè)務(wù)接口盤將報(bào)文從該出接口發(fā)送出去。各個(gè)業(yè)務(wù)接口盤對(duì)數(shù)據(jù)包的處理方式相同,同時(shí)每個(gè)業(yè)務(wù)接口盤接收到的數(shù)據(jù)報(bào)文的目的IP地址都有可能是任意IP地址,因此為了保證所有數(shù)據(jù)報(bào)文在任意業(yè)務(wù)接口盤上都能被正確處理和轉(zhuǎn)發(fā),每個(gè)業(yè)務(wù)接口盤必須具備本設(shè)備學(xué)習(xí)到的所有路由信息。這樣,單個(gè)業(yè)務(wù)接口盤上路由表的大小,就決定了整個(gè)設(shè)備路由表容量大小,從而一端設(shè)備的路由表容量取決于各業(yè)務(wù)接口盤中路由表容量最小的一個(gè)。舉例來說,如果一端設(shè)備有三個(gè)業(yè)務(wù)接口盤,業(yè)務(wù)接口盤I的硬件轉(zhuǎn)發(fā)表容量為A,業(yè)務(wù)接口盤2的硬件轉(zhuǎn)發(fā)表容量為B,業(yè)務(wù)接口盤3的硬件轉(zhuǎn)發(fā)表容量為C,若A = B =C,即三個(gè)業(yè)務(wù)接口盤路由表容量相同,則這端設(shè)備的路由表容量就等于A,而不能大于A ;若A < B < C,即業(yè)務(wù)接口盤I的硬件轉(zhuǎn)發(fā)表容量比其他兩個(gè)業(yè)務(wù)接口盤都小,則這端設(shè)備的路由表容量就等于A,也不能大于A。這樣以來,在一端設(shè)備上如果有多個(gè)業(yè)務(wù)接口盤,這端設(shè)備在進(jìn)行業(yè)務(wù)處理和業(yè)務(wù)轉(zhuǎn)發(fā)過程中并不能充分利用所有的硬件資源,對(duì)于硬件資源來說是很大的浪費(fèi)。同時(shí),由于每個(gè)業(yè)務(wù)接口盤都存儲(chǔ)了一個(gè)本端設(shè)備全局路由表,在路由查找效率上也會(huì)低于基于局部路由表查找。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種高效分布式路由表的實(shí)現(xiàn)方法,在不改變各個(gè)業(yè)務(wù)單盤硬件轉(zhuǎn)發(fā)芯片的情況下,將分布式網(wǎng)絡(luò)系統(tǒng)中多個(gè)單盤的路由表置加在一起,提聞?wù)麄€(gè)系統(tǒng)設(shè)備的路由表容量,并通過_■級(jí)路由查找算法,有效提聞了路由表查找效率。為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是一種高效分布式路由表的實(shí)現(xiàn)方法,包括如下步驟S1.主控盤將路由信息表與靜態(tài)路由表一起組成整機(jī)路由表,再根據(jù)哈希算法對(duì)整機(jī)路由表進(jìn)行分組,將每個(gè)哈希分組對(duì)應(yīng)下發(fā)到每個(gè)業(yè)務(wù)接口盤上,作為業(yè)務(wù)接口盤的一級(jí)路由表,針對(duì)每個(gè)哈希分組建立一個(gè)內(nèi)部靜態(tài)路由表?xiàng)l目,將所有哈希分組對(duì)應(yīng)的內(nèi)部靜態(tài)路由表?xiàng)l目組成一個(gè)二級(jí)路由表,分別存儲(chǔ)到每個(gè)業(yè)務(wù)接口盤上;S2.當(dāng)一個(gè)業(yè)務(wù)接口盤由業(yè)務(wù)接口從路由系統(tǒng)外部收到數(shù)據(jù)報(bào)文后,如果查到路由,則將數(shù)據(jù)報(bào)文從相應(yīng)端口發(fā)出;如果未查到,則查詢二級(jí)路由表,如果在二級(jí)路由表中查到路由,則給該數(shù)據(jù)報(bào)文打上一個(gè)特殊標(biāo)志,并轉(zhuǎn)發(fā)給目標(biāo)業(yè)務(wù)接口盤;如果在二級(jí)路由表中未查到,則丟棄該數(shù)據(jù)報(bào)文;S3.當(dāng)一個(gè)業(yè)務(wù)接口盤由內(nèi)部接口從路由系統(tǒng)內(nèi)部收到數(shù)據(jù)報(bào)文后,首先檢查該數(shù)據(jù)報(bào)文是否帶有特殊標(biāo)志,若有,則直接查詢該業(yè)務(wù)接口盤的一級(jí)路由表;如果在一級(jí)路由表中查到對(duì)應(yīng)的路由表項(xiàng),則將該數(shù)據(jù)報(bào)文中的特殊標(biāo)志剝離,還原數(shù)據(jù)報(bào)文后從該路由表所指定的端口發(fā)出;如果在一級(jí)路由表中查詢失敗,則將該數(shù)據(jù)報(bào)文丟棄;若無特殊標(biāo)志,而根據(jù)其是否攜本業(yè)務(wù)接口盤有效端口號(hào)信息,從相應(yīng)端口發(fā)出或丟棄。在上述技術(shù)方案的基礎(chǔ)上,所述SI中,路由信息表由分布式系統(tǒng)主控盤根據(jù)網(wǎng)絡(luò)拓?fù)溆蓜?dòng)態(tài)路由協(xié)議生成。 在上述技術(shù)方案的基礎(chǔ)上,所述SI中,哈希算法將路由表中目標(biāo)地址的前X位的值作為鍵值,計(jì)算出每個(gè)路由表的哈希值,將哈希值相同的路由表分為一組,且保證各個(gè)分組中路由表的條目數(shù)最多相差一條。在上述技術(shù)方案的基礎(chǔ)上,所述X值的大小根據(jù)整個(gè)分布式系統(tǒng)配置狀況進(jìn)行人工設(shè)置,或者通過自動(dòng)檢測業(yè)務(wù)接口盤的數(shù)目后,再通過整機(jī)路由表?xiàng)l目數(shù)計(jì)算出每個(gè)業(yè)務(wù)接口盤平均路由條目數(shù),再根據(jù)每個(gè)業(yè)務(wù)接口盤平均路路由條目數(shù)反推出X的值。在上述技術(shù)方案的基礎(chǔ)上,所述整機(jī)路由表中,允許每個(gè)哈希分組中一部分路由表?xiàng)l目的掩碼長度小于X值,且這部分路由表?xiàng)l目不超過每個(gè)哈希分組中的路由表?xiàng)l目,該部分路由表作為公共部分,存儲(chǔ)于每個(gè)哈希分組中。在上述技術(shù)方案的基礎(chǔ)上,所述針對(duì)每個(gè)哈希分組建立多個(gè)內(nèi)部靜態(tài)路由表?xiàng)l目,其目的地址是對(duì)應(yīng)哈希分組中每個(gè)哈希桶子網(wǎng)掩碼長度為X的匯聚路由,下一跳是此哈希分組對(duì)應(yīng)業(yè)務(wù)接口盤的IP地址,下一跳出端口是此內(nèi)部靜態(tài)路由表?xiàng)l目被存儲(chǔ)的業(yè)務(wù)接口盤的內(nèi)部接口 IP地址。在上述技術(shù)方案的基礎(chǔ)上,對(duì)于每一個(gè)所述業(yè)務(wù)接口盤而言,由哈希分組生成的一級(jí)路由表為私有路由表,而二級(jí)路由表對(duì)于整個(gè)分布式系統(tǒng)是統(tǒng)一的。在上述技術(shù)方案的基礎(chǔ)上,所述S2中,在查到路由情況下,當(dāng)出端口是本業(yè)務(wù)接口盤的端口,則將數(shù)據(jù)報(bào)文從相應(yīng)端口發(fā)出;當(dāng)出端口是其他業(yè)務(wù)接口盤上的端口則在數(shù)據(jù)報(bào)文中按照事先確定的原則添加出端口號(hào)信息后,發(fā)送給出端口所在業(yè)務(wù)接口盤。在上述技術(shù)方案的基礎(chǔ)上,所述S2中,特殊標(biāo)志是一個(gè)系統(tǒng)內(nèi)部特殊的虛擬局域網(wǎng)標(biāo)簽值,或者是一個(gè)保留的多協(xié)議標(biāo)簽交換標(biāo)簽值。在上述技術(shù)方案的基礎(chǔ)上,所述S3中,若無特殊標(biāo)志但攜帶了本業(yè)務(wù)接口盤有效端口號(hào)信息,則將出端口號(hào)信息剝離還原數(shù)據(jù)報(bào)文后,從相應(yīng)端口發(fā)出;若無特殊標(biāo)志,且沒有攜帶本業(yè)務(wù)接口盤有效端口號(hào)信息,則將數(shù)據(jù)報(bào)文丟棄。本發(fā)明的有益效果在于本發(fā)明將分布式系統(tǒng)整機(jī)路由表分布到多個(gè)業(yè)務(wù)接口盤,整機(jī)路由表是各個(gè)業(yè)務(wù)接口盤路由表中非公共部分路由表的疊加,再加上公共部分路由表之和,解決了業(yè)務(wù)接口盤之間路由表不能置加的問題,有效提聞了設(shè)備整機(jī)路由表容量,降低了設(shè)備成本。同時(shí),由于每個(gè)哈希分組的路由表?xiàng)l目遠(yuǎn)小于整機(jī)路由表?xiàng)l目,因此在路由查找時(shí)效率也會(huì)有所提高。
圖I為本發(fā)明實(shí)施例利用哈希表對(duì)路由進(jìn)行分組的示意圖;圖2為本發(fā)明實(shí)施例系統(tǒng)內(nèi)部靜態(tài)路由表的示意圖;圖3為本發(fā)明實(shí)施例一個(gè)業(yè)務(wù)接口盤的一級(jí)路由表和二級(jí)路由表的示意圖;圖4為本發(fā)明實(shí)施例一個(gè)業(yè)務(wù)接口盤的接口從路由系統(tǒng)外部收到數(shù)據(jù)報(bào)文后的 處理流程圖;圖5為本發(fā)明實(shí)施例一個(gè)業(yè)務(wù)接口盤的接口從路由系統(tǒng)內(nèi)部收到數(shù)據(jù)報(bào)文后的處理流程圖。
具體實(shí)施例方式以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。本發(fā)明所述高效分布式路由表的實(shí)現(xiàn)方法,包括如下步驟SI.主控盤將路由信息表與靜態(tài)路由表一起組成整機(jī)路由表,再根據(jù)哈希算法對(duì)整機(jī)路由表進(jìn)行分組,將每個(gè)哈希分組對(duì)應(yīng)下發(fā)到每個(gè)業(yè)務(wù)接口盤上,作為業(yè)務(wù)接口盤的一級(jí)路由表,針對(duì)每個(gè)哈希分組建立一個(gè)內(nèi)部靜態(tài)路由表?xiàng)l目,將所有哈希分組對(duì)應(yīng)的內(nèi)部靜態(tài)路由表?xiàng)l目組成一個(gè)二級(jí)路由表,分別存儲(chǔ)到每個(gè)業(yè)務(wù)接口盤上。其中,SI的具體步驟如下Sll.分布式系統(tǒng)主控盤負(fù)責(zé)各個(gè)業(yè)務(wù)接口盤的控制及業(yè)務(wù)管理,首先所述主控盤啟動(dòng)動(dòng)態(tài)路由協(xié)議,動(dòng)態(tài)路由協(xié)議根據(jù)網(wǎng)絡(luò)拓?fù)浒l(fā)送信令包生成R i b (Ro u t i n gInformation Base,路由信息表)表項(xiàng),待網(wǎng)絡(luò)穩(wěn)定后,主控盤將Rib表與靜態(tài)路由表一起組成整機(jī)路由表。S12.對(duì)所述整機(jī)路由表采用哈希算法進(jìn)行分組,其中哈希算法使用整機(jī)路由表的目標(biāo)地址的前X位的值作為鍵值,計(jì)算出每個(gè)路由表的哈希值,將哈希值相同的路由表分為一組,且保證各個(gè)分組中路由表的條目數(shù)最多相差一條。這個(gè)X值的大小可根據(jù)整個(gè)分布式系統(tǒng)配置狀況進(jìn)行手動(dòng)人工設(shè)置,也可以通過自動(dòng)檢測業(yè)務(wù)接口盤的數(shù)目后,再通過整機(jī)路由表?xiàng)l目數(shù)計(jì)算出每個(gè)業(yè)務(wù)接口盤平均路由條目數(shù),再根據(jù)每個(gè)業(yè)務(wù)接口盤平均路路由條目數(shù)反推出X的值進(jìn)行設(shè)置。哈希算法分組中,確定X值的大小的基本原則是根據(jù)X值采用哈希算法進(jìn)行分組后,每個(gè)哈希分組中的路由表?xiàng)l目數(shù)基本相等,若有剩余的條目數(shù)則按照系列號(hào)依次添加到對(duì)應(yīng)的分組中,因此各個(gè)分組中路由表的條目數(shù)最多相差一條。所述整機(jī)路由表中,允許每個(gè)哈希分組中一部分路由表?xiàng)l目的掩碼長度小于X值,且這部分路由表?xiàng)l目不超過每個(gè)哈希分組中的路由表?xiàng)l目,該部分路由表作為公共部分,存儲(chǔ)于每個(gè)哈希分組中。所述主控盤將每個(gè)哈希分組對(duì)應(yīng)下發(fā)到每個(gè)業(yè)務(wù)接口盤上,這樣,除了所述掩碼長度小于X值的公共部分路由表?xiàng)l目以外,整機(jī)路由表為各個(gè)業(yè)務(wù)接口盤路由表的置加。如圖I所示,為本發(fā)明實(shí)施例利用哈希表對(duì)路由進(jìn)行分組的示意圖。主控盤將整機(jī)路由表(Rib表+靜態(tài)路由表)按照X值大小分成哈希分組I、哈希分組2、哈希分組哈希分組m,主控盤將每個(gè)哈希分組對(duì)應(yīng)下發(fā)到檢測到的具體每個(gè)業(yè)務(wù)接口盤上,作為該業(yè)務(wù)接口盤的一級(jí)路由表,其中對(duì)于第m個(gè)分組,根據(jù)地址前綴長度為X的IP地址,按照哈希算法生成一個(gè)行哈希值,生成的這個(gè)行哈希值的前X位代表了這個(gè)行哈希值在哈希表中的哈希桶的編號(hào);若不同地址前綴生成的哈希值相同,則將該地址前綴添加到哈希沖突鏈表中,查找時(shí)則按照實(shí)際的前綴長度值來進(jìn)行最長匹配,這個(gè)哈希沖突鏈表,即為哈希分組中的公共部分。S13.各個(gè)業(yè)務(wù)接口盤針對(duì)每個(gè)哈希分組建立若干個(gè)內(nèi)部靜態(tài)路由表?xiàng)l目,目的地址是對(duì)應(yīng)哈希分組中每個(gè)哈希桶子網(wǎng)掩碼長度為X的匯聚路由,下一跳是此哈希分組對(duì)應(yīng)業(yè)務(wù)接口盤的IP地址,下一跳出端口是此內(nèi)部靜態(tài)路由表?xiàng)l目被存儲(chǔ)的業(yè)務(wù)接口盤的內(nèi)部接口 IP地址。將所有哈希分組對(duì)應(yīng)的系統(tǒng)內(nèi)部靜態(tài)路由表?xiàng)l目,最終組成一個(gè)二級(jí)路由表,分別存儲(chǔ)到所述分布式系統(tǒng)的各個(gè)業(yè)務(wù)接口盤上,即這個(gè)二級(jí)路由表在每個(gè)業(yè)務(wù)接口 盤上保存一個(gè)拷貝。如圖2所示,為本發(fā)明實(shí)施例系統(tǒng)內(nèi)部靜態(tài)路由表的示意圖,即針對(duì)于某個(gè)哈希分組中的特定哈希桶,其對(duì)應(yīng)的內(nèi)部靜態(tài)路由條目。例如哈希分組m地址前綴長度為X的IP地址哈希桶,若X為16,哈希桶鍵值為192. 168. 0. 0 ;則對(duì)應(yīng)此哈希分組m中的這個(gè)哈希桶生成的靜態(tài)路由條目為192. 168. 0. 0/16。對(duì)于每一個(gè)業(yè)務(wù)接口盤而言,由哈希分組生成的一級(jí)路由表為私有路由表,而二級(jí)路由表對(duì)于整個(gè)分布式系統(tǒng)為統(tǒng)一的,業(yè)務(wù)接口盤的一級(jí)路由表和二級(jí)路由表的關(guān)系如圖3所示。單盤m—級(jí)路由表…單盤n—級(jí)路由表,二級(jí)路由表包括由單盤m—級(jí)路由表生成的二級(jí)路由表…由單盤n—級(jí)路由表生成的二級(jí)路由表。S2.當(dāng)一個(gè)業(yè)務(wù)接口盤由業(yè)務(wù)接口從路由系統(tǒng)外部收到數(shù)據(jù)報(bào)文后,如果查到路由,則將數(shù)據(jù)報(bào)文從相應(yīng)端口發(fā)出;如果未查到,則查詢二級(jí)路由表,如果在二級(jí)路由表中查到路由,則給該數(shù)據(jù)報(bào)文打上一個(gè)特殊標(biāo)志,并轉(zhuǎn)發(fā)給目標(biāo)業(yè)務(wù)接口盤;如果在二級(jí)路由表中未查到,則丟棄該數(shù)據(jù)報(bào)文。如圖4所示,其具體步驟如下S20.業(yè)務(wù)接口盤由業(yè)務(wù)接口從路由系統(tǒng)外部收到數(shù)據(jù)報(bào)文。S21.獲取數(shù)據(jù)報(bào)文的目標(biāo)地址,并與業(yè)務(wù)接口盤一級(jí)路由表?xiàng)l目進(jìn)行操作,按照最長匹配原則查找路由。S22.判斷是否在一級(jí)路由表中查到路由,如果查到路由,則進(jìn)入S27 ;如果未查至Ij,則進(jìn)入S23。S23.以數(shù)據(jù)報(bào)文的目標(biāo)地址查找二級(jí)路由表。S24.判斷二級(jí)路由表查找是否成功,即其中是否查到路由,若是,進(jìn)入S25 ;若否,進(jìn)如S26。S25.給該數(shù)據(jù)報(bào)文打上一個(gè)特殊標(biāo)志,并轉(zhuǎn)發(fā)給目標(biāo)業(yè)務(wù)接口盤;這個(gè)標(biāo)志可以是一個(gè)系統(tǒng)內(nèi)部特殊的VLAN(Virtual Local Area Network,虛擬局域網(wǎng))標(biāo)簽值,也可以是一個(gè)保留的私有MPLS (Multi-Protocol Label Switching,多協(xié)議標(biāo)簽交換)標(biāo)簽值。S26.則丟棄該數(shù)據(jù)報(bào)文。S27.根據(jù)匹配的路由條目的下一跳,判斷出端口是否為本業(yè)務(wù)接口盤上的端口,若是,進(jìn)入S28 ;若否,進(jìn)入S29。S28.將數(shù)據(jù)報(bào)文從相應(yīng)端口發(fā)出。S29.在數(shù)據(jù)報(bào)文中按照事先確定的原則添加出端口號(hào)信息后,發(fā)送給出端口所在業(yè)務(wù)接口盤。S3.當(dāng)一個(gè)業(yè)務(wù)接口盤由內(nèi)部接口從路由系統(tǒng)內(nèi)部收到數(shù)據(jù)報(bào)文后,首先檢查該數(shù)據(jù)報(bào)文是否帶有特殊標(biāo)志,若有,則直接查詢該業(yè)務(wù)接口盤的一級(jí)路由表;如果在一級(jí)路由表中查到對(duì)應(yīng)的路由表項(xiàng),則將該數(shù)據(jù)報(bào)文中的特殊標(biāo)志剝離,還原數(shù)據(jù)報(bào)文后從該路由表所指定的端口發(fā)出;如果在一級(jí)路由表中查詢失敗,則將該數(shù)據(jù)報(bào)文丟棄;若無特殊標(biāo)志,而根據(jù)其是否攜帶出端口號(hào)信息,從相應(yīng)端口發(fā)出或丟棄。如圖5所示,其具體步驟如下
S31.業(yè)務(wù)接口盤由內(nèi)部接口從路由系統(tǒng)內(nèi)部收到數(shù)據(jù)報(bào)文。S32.檢測該數(shù)據(jù)報(bào)文是否添加了所述特殊標(biāo)志,若是,進(jìn)入S33 ;若否,進(jìn)入S36。S33.判斷一級(jí)路由表是否查找成功,即是否查到對(duì)應(yīng)的路由表項(xiàng),若是,進(jìn)入S34 ;若否,進(jìn)入S38。S34.將該數(shù)據(jù)報(bào)文中的特殊標(biāo)志剝離,還原數(shù)據(jù)報(bào)文,進(jìn)入S35。S35.根據(jù)匹配的路由條目的下一跳,從該路由表所指定的端口發(fā)出該數(shù)據(jù)報(bào)文。S36.檢測該數(shù)據(jù)報(bào)文是否攜帶了本業(yè)務(wù)接口盤有效端口號(hào)信息,若是,進(jìn)入S37 ;若否,進(jìn)入S38。S37.則將出端口號(hào)信息剝離還原數(shù)據(jù)報(bào)文后,從相應(yīng)端口發(fā)出。S38.將該數(shù)據(jù)報(bào)文丟棄。本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種高效分布式路由表的實(shí)現(xiàn)方法,其特征在于,包括如下步驟 51.主控盤將路由信息表與靜態(tài)路由表一起組成整機(jī)路由表,再根據(jù)哈希算法對(duì)整機(jī)路由表進(jìn)行分組,將每個(gè)哈希分組對(duì)應(yīng)下發(fā)到每個(gè)業(yè)務(wù)接ロ盤上,作為業(yè)務(wù)接ロ盤的ー級(jí)路由表,針對(duì)每個(gè)哈希分組建立ー個(gè)內(nèi)部靜態(tài)路由表?xiàng)l目,將所有哈希分組對(duì)應(yīng)的內(nèi)部靜態(tài)路由表?xiàng)l目組成ー個(gè)ニ級(jí)路由表,分別存儲(chǔ)到每個(gè)業(yè)務(wù)接ロ盤上; 52.當(dāng)一個(gè)業(yè)務(wù)接ロ盤由業(yè)務(wù)接ロ從路由系統(tǒng)外部收到數(shù)據(jù)報(bào)文后,如果查到路由,則將數(shù)據(jù)報(bào)文從相應(yīng)端ロ發(fā)出;如果未查到,則查詢ニ級(jí)路由表,如果在ニ級(jí)路由表中查到路由,則給該數(shù)據(jù)報(bào)文打上ー個(gè)特殊標(biāo)志,并轉(zhuǎn)發(fā)給目標(biāo)業(yè)務(wù)接口盤;如果在ニ級(jí)路由表中未查到,則丟棄該數(shù)據(jù)報(bào)文; 53.當(dāng)一個(gè)業(yè)務(wù)接ロ盤由內(nèi)部接ロ從路由系統(tǒng)內(nèi)部收到數(shù)據(jù)報(bào)文后,首先檢查該數(shù)據(jù)報(bào)文是否帶有特殊標(biāo)志,若有,則直接查詢該業(yè)務(wù)接ロ盤的ー級(jí)路由表;如果在ー級(jí)路由表 中查到對(duì)應(yīng)的路由表項(xiàng),則將該數(shù)據(jù)報(bào)文中的特殊標(biāo)志剝離,還原數(shù)據(jù)報(bào)文后從該路由表所指定的端ロ發(fā)出;如果在ー級(jí)路由表中查詢失敗,則將該數(shù)據(jù)報(bào)文丟棄;若無特殊標(biāo)志,而根據(jù)其是否攜本業(yè)務(wù)接ロ盤有效端口號(hào)信息,從相應(yīng)端ロ發(fā)出或丟棄。
2.如權(quán)利要求I所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于所述SI中,路由信息表由分布式系統(tǒng)主控盤根據(jù)網(wǎng)絡(luò)拓?fù)溆蓜?dòng)態(tài)路由協(xié)議生成。
3.如權(quán)利要求I所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于所述SI中,哈希算法將路由表中目標(biāo)地址的前X位的值作為鍵值,計(jì)算出每個(gè)路由表的哈希值,將哈希值相同的路由表分為ー組,且保證各個(gè)分組中路由表的條目數(shù)最多相差一條。
4.如權(quán)利要求3所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于所述X值的大小根據(jù)整個(gè)分布式系統(tǒng)配置狀況進(jìn)行人エ設(shè)置,或者通過自動(dòng)檢測業(yè)務(wù)接ロ盤的數(shù)目后,再通過整機(jī)路由表?xiàng)l目數(shù)計(jì)算出每個(gè)業(yè)務(wù)接ロ盤平均路由條目數(shù),再根據(jù)每個(gè)業(yè)務(wù)接ロ盤平均路路由條目數(shù)反推出X的值。
5.如權(quán)利要求3所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于所述整機(jī)路由表中,允許每個(gè)哈希分組中一部分路由表?xiàng)l目的掩碼長度小于X值,且這部分路由表?xiàng)l目不超過每個(gè)哈希分組中的路由表?xiàng)l目,該部分路由表作為公共部分,存儲(chǔ)于每個(gè)哈希分組中。
6.如權(quán)利要求I或3所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于所述針對(duì)每個(gè)哈希分組建立多個(gè)內(nèi)部靜態(tài)路由表?xiàng)l目,其目的地址是對(duì)應(yīng)哈希分組中每個(gè)哈希桶子網(wǎng)掩碼長度為X的匯聚路由,下一跳是此哈希分組對(duì)應(yīng)業(yè)務(wù)接ロ盤的IP地址,下一跳出端ロ是此內(nèi)部靜態(tài)路由表?xiàng)l目被存儲(chǔ)的業(yè)務(wù)接ロ盤的內(nèi)部接ロ IP地址。
7.如權(quán)利要求6所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于對(duì)于每一個(gè)所述業(yè)務(wù)接ロ盤而言,由哈希分組生成的ー級(jí)路由表為私有路由表,而ニ級(jí)路由表對(duì)于整個(gè)分布式系統(tǒng)是統(tǒng)一的。
8.如權(quán)利要求I所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于所述S2中,在查到路由情況下,當(dāng)出端ロ是本業(yè)務(wù)接ロ盤的端ロ,則將數(shù)據(jù)報(bào)文從相應(yīng)端ロ發(fā)出;當(dāng)出端ロ是其他業(yè)務(wù)接ロ盤上的端ロ則在數(shù)據(jù)報(bào)文中按照事先確定的原則添加出端口號(hào)信息后,發(fā)送給出端ロ所在業(yè)務(wù)接ロ盤。
9.如權(quán)利要求I所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于所述S2中,特殊標(biāo)志是一個(gè)系統(tǒng)內(nèi)部特殊的虛擬局域網(wǎng)標(biāo)簽值,或者是ー個(gè)保留的多協(xié)議標(biāo)簽交換標(biāo)簽值。
10.如權(quán)利要求I所述的高效分布式路由表的實(shí)現(xiàn)方法,其特征在于所述S3中,若無特殊標(biāo)志但攜帯了本業(yè)務(wù)接ロ盤有效端口號(hào)信息,則將出端口號(hào)信息剝離還原數(shù)據(jù)報(bào)文后,從相應(yīng)端ロ發(fā)出;若無特殊標(biāo)志,且沒有攜帶本業(yè)務(wù)接ロ盤有效端口號(hào)信息,則將數(shù)據(jù)報(bào)文丟棄。
全文摘要
一種高效分布式路由表的實(shí)現(xiàn)方法,涉及網(wǎng)絡(luò)交換設(shè)備領(lǐng)域,包括步驟S1.路由信息表與靜態(tài)路由表組成整機(jī)路由表,根據(jù)哈希算法將每個(gè)哈希分組建立一級(jí)路由表,組成一個(gè)二級(jí)路由表;S2.當(dāng)從路由系統(tǒng)外部收到數(shù)據(jù)報(bào)文后,如查到路由,則將數(shù)據(jù)報(bào)文從相應(yīng)端口發(fā)出;如果未查到,如在二級(jí)路由表中查到路由,則打上一個(gè)特殊標(biāo)志并轉(zhuǎn)發(fā)給目標(biāo)業(yè)務(wù)接口盤;如未查到,則丟棄;S3.當(dāng)從路由系統(tǒng)內(nèi)部收到數(shù)據(jù)報(bào)文后,檢查是否帶有特殊標(biāo)志,若有,則直接查詢該業(yè)務(wù)接口盤的一級(jí)路由表;如查到,則將特殊標(biāo)志剝離,從指定的端口發(fā)出;如查詢失敗,則丟棄。本發(fā)明將多個(gè)業(yè)務(wù)接口盤的路由表疊加,提高路由表容量,同時(shí)效提高路由表查找效率。
文檔編號(hào)H04L12/56GK102739526SQ20121019280
公開日2012年10月17日 申請日期2012年6月13日 優(yōu)先權(quán)日2012年6月13日
發(fā)明者張峰, 馬紅斌 申請人:烽火通信科技股份有限公司