專利名稱:自治系統(tǒng)路徑片段的分片方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種自治系統(tǒng)路徑片段的分片方法及裝置。
背景技術(shù):
隨著因特網(wǎng)的高速發(fā)展,互聯(lián)網(wǎng)協(xié)議(Internet Protocol,簡(jiǎn)稱為IP)網(wǎng)絡(luò)的規(guī) 模越來(lái)越大。作為因特網(wǎng)的核心路由協(xié)議邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol,簡(jiǎn) 稱為BGP),用于在自治系統(tǒng)(Autonomous System,簡(jiǎn)稱為AS)間傳遞路由信息。因?yàn)槠鋬?yōu) 秀的擴(kuò)展能力以及豐富的路由控制方法,BGP正發(fā)揮著越來(lái)越重要的作用。在BGP中定義了若干種屬性(Attribute),這些屬性被攜帶在每一條路由信息 中,隨路由信息在運(yùn)行BGP的路由器之間傳遞,并成為路由器進(jìn)行路由決策的依據(jù)。其中, 自治系統(tǒng)路徑(AS_PATH)屬性包含了 AS列表,用來(lái)表示路由信息在傳播過(guò)程中所經(jīng)過(guò)的 所有AS。列表中所列的自治系統(tǒng)編號(hào)(AS Number),被有序的存儲(chǔ)在自治系統(tǒng)序列(AS_ SEQUENCE)類型的片段(segment)當(dāng)中,或者,被無(wú)序的存儲(chǔ)在自治系統(tǒng)集合(AS_SET)類型 的segment當(dāng)中,每個(gè)segment最多可存儲(chǔ)255個(gè)AS Number。目前,在關(guān)于BGP的最新標(biāo)準(zhǔn)RFC4271中,僅規(guī)定當(dāng)路由器向AS_SEQUENCE類型 的segment中添加本地的AS Number時(shí),如果發(fā)生溢出(overflow,即AS Number總數(shù)超 過(guò)255),則需要新建一個(gè)AS_SEQUENCE類型的segment并將本地的AS Number存儲(chǔ)在新 建的segment中。但是,基于網(wǎng)絡(luò)設(shè)計(jì)以及路由控制策略的考慮,路由器除了添加本地的 AS Number之外,通過(guò)本地配置添加由多個(gè)AS Number組成的偽前綴是被允許的。當(dāng)發(fā)生 overflow時(shí),由于BGP標(biāo)準(zhǔn)中對(duì)如何進(jìn)行分片的規(guī)定不清晰,并且對(duì)當(dāng)路由器收到的AS_ PATH屬性中含有多個(gè)segment時(shí)如何處理沒(méi)有規(guī)定,導(dǎo)致現(xiàn)有各廠商路由器的BGP模塊無(wú) 法正確處理AS_PATH屬性,從而引起B(yǎng)GP鄰居關(guān)系的異常中斷。因此這將影響現(xiàn)有網(wǎng)絡(luò)的 穩(wěn)定性,以及新建網(wǎng)絡(luò)中不同廠商設(shè)備間的互通性。針對(duì)相關(guān)技術(shù)中BGP協(xié)議中存儲(chǔ)AS Number的segment發(fā)生overflow時(shí)如何進(jìn) 行分片的問(wèn)題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對(duì)相關(guān)技術(shù)中BGP協(xié)議中存儲(chǔ)AS Number的segment發(fā)生overflow時(shí)如何進(jìn) 行分片的問(wèn)題而提出本發(fā)明,為此,本發(fā)明的主要目的在于提供一種改進(jìn)的自治系統(tǒng)路徑 片段的分片方案,以解決上述問(wèn)題。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種自治系統(tǒng)路徑片段的分 片方法。根據(jù)本發(fā)明的自治系統(tǒng)路徑片段的分片方法,用于對(duì)自治系統(tǒng)路徑屬性中的片段 進(jìn)行分片,上述方法包括邊界網(wǎng)關(guān)協(xié)議模塊接收自治系統(tǒng)路徑;邊界網(wǎng)關(guān)協(xié)議模塊根據(jù) 自治系統(tǒng)路徑判斷自治系統(tǒng)路徑的已有片段中的可用空間是否小于邊界網(wǎng)關(guān)協(xié)議模塊中 待填入的自治系統(tǒng)編號(hào)的空間;如果判斷結(jié)果為是,則新建用于存儲(chǔ)自治系統(tǒng)編號(hào)的片段,
3并將新建的片段設(shè)置于已有片段之前。優(yōu)選地,在邊界網(wǎng)關(guān)協(xié)議模塊根據(jù)自治系統(tǒng)路徑判斷可用空間是否小于空間之 后,上述方法還包括如果判斷結(jié)果為否,則邊界網(wǎng)關(guān)協(xié)議模塊將自治系統(tǒng)編號(hào)填入自治系 統(tǒng)路徑的已有片段中。優(yōu)選地,在新建片段之前,上述方法還包括邊界網(wǎng)關(guān)協(xié)議模塊用自治系統(tǒng)編碼將 自治系統(tǒng)路徑的已有片段的可用空間填滿。優(yōu)選地,在新建片段之后,上述方法還包括邊界網(wǎng)關(guān)協(xié)議模塊對(duì)新建的片段的 空間進(jìn)行判斷,如果新建的片段的空間小于當(dāng)前剩余的待填入的自治系統(tǒng)編號(hào)所需要的空 間,則邊界網(wǎng)關(guān)協(xié)議模塊確定需要繼續(xù)新建另一個(gè)片段,并將另一個(gè)片段設(shè)置于自治系統(tǒng) 路徑中所有片段之前。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種自治系統(tǒng)路徑片段的分 片裝置。根據(jù)本發(fā)明的自治系統(tǒng)路徑片段的分片裝置包括接收模塊,用于接收自治系統(tǒng) 路徑;判斷模塊,用于根據(jù)接收模塊接收的自治系統(tǒng)路徑判斷自治系統(tǒng)路徑的已有片段中 的可用空間是否小于邊界網(wǎng)關(guān)協(xié)議模塊中待填入的自治系統(tǒng)編號(hào)的空間;新建模塊,用于 在判斷模塊的判斷結(jié)果為是的情況下,新建用于存儲(chǔ)自治系統(tǒng)編號(hào)的片段;設(shè)置模塊,用于 將新建模塊新建的片段設(shè)置于已有片段之前。優(yōu)選地,上述裝置還包括填入模塊,用于在判斷模塊的判斷結(jié)果為否的情況下, 將自治系統(tǒng)編號(hào)填入自治系統(tǒng)路徑的已有片段中。優(yōu)選地,上述裝置還包括處理模塊,用于用自治系統(tǒng)編碼將自治系統(tǒng)路徑的已有 片段的可用空間填滿。通過(guò)本發(fā)明,采用當(dāng)segment溢出時(shí),新建一個(gè)segment并將其放在所有segment 的前面,解決了相關(guān)技術(shù)中BGP協(xié)議中存儲(chǔ)AS Number的segment發(fā)生overflow時(shí)無(wú)法進(jìn) 行分片問(wèn)題,進(jìn)而完善了自治系統(tǒng)路徑片段的分片功能。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā) 明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)本發(fā)明實(shí)施例的AS_PATH的分片方法的流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的AS_PATH的分片方法的詳細(xì)流程圖;圖3是根據(jù)本發(fā)明實(shí)施例的AS_PATH的分片裝置的結(jié)構(gòu)框圖;圖4是根據(jù)本發(fā)明實(shí)施例的AS_PATH的分片裝置的優(yōu)選結(jié)構(gòu)框圖。
具體實(shí)施例方式功能概述考慮到相關(guān)技術(shù)中BGP協(xié)議中存儲(chǔ)AS Number的segment發(fā)生overflow時(shí)無(wú) 法進(jìn)行分片問(wèn)題,本發(fā)明實(shí)施例提供了一種改進(jìn)的自治系統(tǒng)路徑片段的分片方案,采用當(dāng) segment溢出時(shí),新建一個(gè)segment并將其放在所有segment的前面,完善了自治系統(tǒng)路徑 片段的分片功能。
需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。方法實(shí)施例根據(jù)本發(fā)明的實(shí)施例,提供了一種自治系統(tǒng)路徑片段的分片方法,用于對(duì)AS_PATH 屬性中的片段進(jìn)行分片,圖1是根據(jù)本發(fā)明實(shí)施例的AS_PATH的分片方法的流程圖,如圖1 所示,該方法包括如下的步驟S102至步驟S106 步驟S102,BGP 模塊接收 AS_PATH;步驟S104,BGP模塊根據(jù)AS_PATH判斷AS_PATH的已有segment中的可用空間是 否小于BGP模塊中待填入的AS Number的空間;步驟S106,如果判斷結(jié)果為是,則新建用于存儲(chǔ)AS Number的segment,并將新建 的segment設(shè)置于已有segment之前。需要說(shuō)明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的 計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不 同于此處的順序執(zhí)行所示出或描述的步驟。下面對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)過(guò)程進(jìn)行詳細(xì)描述。該過(guò)程包括如下的步驟A到步驟 E 步驟A,路由器的BGP模塊接收待修改的AS_PATH屬性。步驟B,BGP模塊根據(jù)接收到的AS_PATH,判斷該AS_PATH的已有Segment中的可 用空間是否小于BGP模塊中待填入的ASNumber的空間;如果判斷結(jié)果為否,則BGP模塊將 AS Number填入AS_PATH的已有Segment中,S卩,如果Segment中的可用空間足夠容納本地 配置需要填入的AS Number,則將待填入的ASNumber按照配置所要求的順序填入segment 以完成對(duì)AS_PATH屬性的修改,否則執(zhí)行步驟C。步驟C,在判斷結(jié)果為是的情況下,BGP模塊首先用自治系統(tǒng)編碼將AS_PATH的已 有Segment的可用空間填滿,即,按照配置所要求順序?qū)⒆钋懊娴膕egment填滿。步驟D,然后,新建用于存儲(chǔ)AS Number的Segment,并將新建的Segment設(shè)置于已 有Segment之前。即,新建一個(gè)segment并將其放在所有segment的最前面。步驟E,BGP模塊對(duì)新建的Segment的空間進(jìn)行判斷,如果新建的Segment的空 間小于當(dāng)前剩余的待填入的AS Number所需要的空間,則BGP模塊確定需要繼續(xù)新建另一 個(gè)Segment,并將另一個(gè)Segment設(shè)置于AS_PATH中所有Segment之前。即,如果新建的 Segment中的空間足夠容納剩余待填入的AS Number,則將待填入的AS Number按照配置所 要求的順序填入segment以完成對(duì)AS_PATH屬性的修改,否則執(zhí)行步驟C。下面將結(jié)合實(shí)例對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)過(guò)程進(jìn)行詳細(xì)描述。圖2是根據(jù)本發(fā)明實(shí)施例的AS_PATH處理方法的流程圖,如圖2所示,該流程包括 如下的步驟202至步驟214 步驟202 待修改的AS_PATH屬性進(jìn)入路由器的BGP模塊,路由器的BGP模塊接收 到待修改的AS_PATH屬性,按照標(biāo)準(zhǔn)格式讀取屬性中的一個(gè)或多個(gè)segment,包括segment 類型、AS列表長(zhǎng)度以及AS列表中AS Number值。步驟204 計(jì)算最前面一個(gè)segment中的可用空間(255減去已經(jīng)填入的AS Number的數(shù)量),與通過(guò)本地配置需要填入的ASNumber數(shù)量比較,即,判斷最前面的
5segment中的可用空間是否足夠容納待填的AS Number,在判斷結(jié)果為是的情況下,進(jìn)行到 步驟212,在判斷結(jié)果為否的情況下,進(jìn)行到步驟206。 步驟206,按照配置所要求的順序?qū)⒆钋懊娴膕egment填滿,并將AS列表長(zhǎng)度相應(yīng) 的修改為255。同時(shí),計(jì)算剩余待填入的ASNumber數(shù)量。步驟208 新建一個(gè)segment,并將其置于最前面的位置。步驟210 將新建的segment中可用空間的數(shù)量與剩余待填入的AS Number數(shù)量 比較,即,判斷新建的segment中的空間是否足夠容納剩余待填入的AS Number,在判斷結(jié) 果為是的情況下,進(jìn)行到步驟212,在判斷結(jié)果為否的情況下,返回到步驟206。步驟212,此時(shí),可用空間足夠容納待填入的(或剩余待填入的)AS Number數(shù)量, 將待填入的AS Number按照配置所要求的順序填入segment,并將AS列表長(zhǎng)度修改為已填 入的AS Number總數(shù)。步驟214,AS_PATH屬性修改完成,流程結(jié)束。裝置實(shí)施例根據(jù)本發(fā)明的實(shí)施例,提供了一種自治系統(tǒng)路徑片段的分片裝置,可以用于實(shí)現(xiàn) 上述的自治系統(tǒng)路徑片段的分片方法。圖3是根據(jù)本發(fā)明實(shí)施例的AS_PATH的分片裝置的 結(jié)構(gòu)框圖,如圖3所示,該裝置包括接收模塊2、判斷模塊4、新建模塊6、設(shè)置模塊8,下面 對(duì)上述結(jié)構(gòu)進(jìn)行描述。接收模塊2,用于接收自治系統(tǒng)路徑;判斷模塊4,連接至接收模塊2,用于根據(jù)所 述接收模塊2接收的所述自治系統(tǒng)路徑判斷所述自治系統(tǒng)路徑的已有片段中的可用空間 是否小于邊界網(wǎng)關(guān)協(xié)議模塊中待填入的自治系統(tǒng)編號(hào)的空間;新建模塊6,連接至判斷模 塊4,用于在所述判斷模塊4的判斷結(jié)果為是的情況下,新建用于存儲(chǔ)自治系統(tǒng)編號(hào)的片 段;設(shè)置模塊8,連接至新建模塊6,用于將所述新建模塊6新建的所述片段設(shè)置于所述已有 片段之前。圖4是根據(jù)本發(fā)明實(shí)施例的AS_PATH的分片裝置的優(yōu)選結(jié)構(gòu)框圖,如圖4所示,該 裝置還包括填入模塊42和處理模塊44,下面對(duì)上述結(jié)構(gòu)進(jìn)行描述。填入模塊42,用于在所述判斷模塊4的判斷結(jié)果為否的情況下,將所述自治系統(tǒng) 編號(hào)填入所述自治系統(tǒng)路徑的已有片段中。處理模塊44,連接至判斷模塊4和新建模塊6,用于在判斷模塊4的判斷結(jié)果為是 的情況下,在新建模塊6新建片段之前,用所述自治系統(tǒng)編碼將所述自治系統(tǒng)路徑的所述 已有片段的可用空間填滿。綜上所述,通過(guò)本發(fā)明的上述實(shí)施例,提供了一種用于邊界網(wǎng)關(guān)協(xié)議中,高效、 健壯的AS_PATH片段分片的方法,當(dāng)路由器的BGP模塊修改AS_PATH屬性時(shí),如果發(fā)生 overflow,可以正確的對(duì)segment進(jìn)行高率的分片處理,從而增強(qiáng)了網(wǎng)絡(luò)設(shè)計(jì)和部署的健 壯性,保障不同廠商設(shè)備間的互通性。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ) 在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們 中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的
6硬件和軟件結(jié)合。 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種自治系統(tǒng)路徑片段的分片方法,用于對(duì)自治系統(tǒng)路徑屬性中的片段進(jìn)行分片,其特征在于,所述方法包括邊界網(wǎng)關(guān)協(xié)議模塊接收自治系統(tǒng)路徑;所述邊界網(wǎng)關(guān)協(xié)議模塊根據(jù)所述自治系統(tǒng)路徑判斷所述自治系統(tǒng)路徑的已有片段中的可用空間是否小于所述邊界網(wǎng)關(guān)協(xié)議模塊中待填入的自治系統(tǒng)編號(hào)的空間;如果判斷結(jié)果為是,則新建用于存儲(chǔ)自治系統(tǒng)編號(hào)的片段,并將新建的所述片段設(shè)置于所述已有片段之前。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述邊界網(wǎng)關(guān)協(xié)議模塊根據(jù)所述自治 系統(tǒng)路徑判斷所述可用空間是否小于所述空間之后,所述方法還包括如果判斷結(jié)果為否,則所述邊界網(wǎng)關(guān)協(xié)議模塊將所述自治系統(tǒng)編號(hào)填入所述自治系統(tǒng) 路徑的已有片段中。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在新建所述片段之前,所述方法還包括 所述邊界網(wǎng)關(guān)協(xié)議模塊用所述自治系統(tǒng)編碼將所述自治系統(tǒng)路徑的所述已有片段的可用空間填滿。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在新建所述片段之后,所述方法還包括 所述邊界網(wǎng)關(guān)協(xié)議模塊對(duì)所述新建的片段的空間進(jìn)行判斷,如果所述新建的片段的空間小于當(dāng)前剩余的待填入的自治系統(tǒng)編號(hào)所需要的空間,則所述邊界網(wǎng)關(guān)協(xié)議模塊確定需 要繼續(xù)新建另一個(gè)片段,并將所述另一個(gè)片段設(shè)置于所述自治系統(tǒng)路徑中所有片段之前。
5.一種自治系統(tǒng)路徑片段的分片裝置,其特征在于,包括 接收模塊,用于接收自治系統(tǒng)路徑;判斷模塊,用于根據(jù)所述接收模塊接收的所述自治系統(tǒng)路徑判斷所述自治系統(tǒng)路徑的 已有片段中的可用空間是否小于邊界網(wǎng)關(guān)協(xié)議模塊中待填入的自治系統(tǒng)編號(hào)的空間;新建模塊,用于在所述判斷模塊的判斷結(jié)果為是的情況下,新建用于存儲(chǔ)自治系統(tǒng)編 號(hào)的片段;設(shè)置模塊,用于將所述新建模塊新建的所述片段設(shè)置于所述已有片段之前。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括填入模塊,用于在所述判斷模塊的判斷結(jié)果為否的情況下,將所述自治系統(tǒng)編號(hào)填入 所述自治系統(tǒng)路徑的已有片段中。
7.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括處理模塊,用于用所述自治系統(tǒng)編碼將所述自治系統(tǒng)路徑的所述已有片段的可用空間填??jī)伞?br>
全文摘要
本發(fā)明公開(kāi)了一種AS_PATH片段的分片方法及裝置,用于對(duì)AS_PATH屬性中的片段進(jìn)行分片,該方法包括BGP模塊接收AS_PATH;BGP模塊根據(jù)AS_PATH判斷AS_PATH的已有片段中的可用空間是否小于BGP模塊中待填入的AS_Number的空間;如果判斷結(jié)果為是,則新建用于存儲(chǔ)AS_Number的片段,并將新建的片段設(shè)置于已有片段之前。本發(fā)明完善了AS_PATH片段的分片功能。
文檔編號(hào)H04L12/56GK101873300SQ20091013449
公開(kāi)日2010年10月27日 申請(qǐng)日期2009年4月21日 優(yōu)先權(quán)日2009年4月21日
發(fā)明者秦超 申請(qǐng)人:中興通訊股份有限公司