本發(fā)明涉及數(shù)據(jù)網(wǎng)絡(luò)通信領(lǐng)域,尤其是涉及到策略路由處理方法及裝置。
背景技術(shù):
策略路由與傳統(tǒng)路由相比,功能更強、使用更靈活,它使網(wǎng)絡(luò)管理者不僅能夠根據(jù)目的地址,而且能夠根據(jù)報文應(yīng)用或源ip地址來選擇轉(zhuǎn)發(fā)路徑。所謂報文應(yīng)用包括傳輸控制協(xié)議(tcp)或用戶數(shù)據(jù)報協(xié)議(udp)的接口號,還包括報文的長度。策略路由可以在一定程度上實現(xiàn)流量工程,使不同服務(wù)質(zhì)量的流或不同性質(zhì)的數(shù)據(jù),如語音流量和數(shù)據(jù)流量,走不同的路徑。
隨著策略路由技術(shù)在網(wǎng)絡(luò)中應(yīng)用越來越廣泛,對策略路由的要求越來越高,如路由器接口失效時策略路由快速切換到傳統(tǒng)路由的性能提出了更高要求?,F(xiàn)在常見的策略路由切換到傳統(tǒng)路由的方法是接口模塊先將接口失效上報到協(xié)議層,然后再由接口協(xié)議通知策略路由的協(xié)議重新計算轉(zhuǎn)發(fā)路徑,然后下發(fā)控制轉(zhuǎn)發(fā)面的轉(zhuǎn)發(fā)表切換到傳統(tǒng)路由。這樣的切換方式存在的一個問題就是切換的時間需要將接口協(xié)議通知策略路由重新計算的時間算進來,這樣可能會使切換性能滿足不了日益增加的高性能需求,且在尚未完成切換的情況下,會導(dǎo)致報文丟失。
針對相關(guān)技術(shù)中轉(zhuǎn)發(fā)表維護方式引起丟包的問題,現(xiàn)有技術(shù)還未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供了策略路由處理方法及裝置,解決了相關(guān)技術(shù)中轉(zhuǎn)發(fā)表維護方式引起丟包的問題。
根據(jù)本發(fā)明的一個方面,提供一種策略路由處理方法,包括:將檢測到的接口失效信息上報協(xié)議層,其中,該接口失效信息用于指示該協(xié)議層將該 策略路由轉(zhuǎn)發(fā)表狀態(tài)更新為無效;將失效接口對應(yīng)的策略路由轉(zhuǎn)發(fā)表置于無效。
進一步地,將該失效接口對應(yīng)的策略路由轉(zhuǎn)發(fā)表置于無效包括:根據(jù)接口id確定該策略路由轉(zhuǎn)發(fā)表,其中,該接口id為協(xié)議層下發(fā)的;將確定的該策略路由轉(zhuǎn)發(fā)表置于無效。
進一步地,根據(jù)該接口id確定該策略路由轉(zhuǎn)發(fā)表包括:根據(jù)該接口id、下一跳ip地址和虛擬專用網(wǎng)絡(luò)id確定該策略路由轉(zhuǎn)發(fā)表,其中,該下一跳ip地址和虛擬專用網(wǎng)絡(luò)id是根據(jù)該接口id查詢映射表確定的。
進一步地,根據(jù)該接口id、該下一跳ip地址和該虛擬專用網(wǎng)絡(luò)id確定該策略路由轉(zhuǎn)發(fā)表包括:根據(jù)該接口id、該下一跳ip地址和該虛擬專用網(wǎng)絡(luò)id查詢散列表確定該策略路由轉(zhuǎn)發(fā)表。
進一步地,將該失效策略路由對應(yīng)的策略路由轉(zhuǎn)發(fā)表置于無效包括:通過更改策略路由轉(zhuǎn)發(fā)表的有效標記位的方式將策略路由轉(zhuǎn)發(fā)表置于無效。
根據(jù)本發(fā)明的另一方面,提供一種報文轉(zhuǎn)發(fā)方法,包括:判斷是否獲取到策略路由轉(zhuǎn)發(fā)信息,其中,該策略路由轉(zhuǎn)發(fā)信息包括有效標記位;在判斷結(jié)果為是且該有效標記位為有效的情況下,將該報文按照策略路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā);在判斷結(jié)果為否,或判斷結(jié)果為是但該有效標記位為無效的情況下,將該報文按照普通路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)。
進一步地,在判斷是否獲取到策略路由轉(zhuǎn)發(fā)信息之前,該方法還包括:通過報文關(guān)鍵詞匹配訪問控制列表acl表,其中,該報文關(guān)鍵詞通過解析報文獲取;判斷匹配是否成功;在判斷結(jié)果為是的情況下,確定獲取到該策略路由轉(zhuǎn)發(fā)信息;在判斷結(jié)果為否的情況下,確定未獲取到該策略路由轉(zhuǎn)發(fā)信息。
根據(jù)本發(fā)明的另一方面,提供一種策略路由處理裝置,包括:上報模塊,用于將檢測到的接口失效信息上報協(xié)議層,其中,該接口失效信息用于指示該協(xié)議層將該策略路由轉(zhuǎn)發(fā)表狀態(tài)更新為無效;處理模塊,用于將失效接口對應(yīng)的策略路由轉(zhuǎn)發(fā)表置于無效。
進一步地,該處理模塊包括:確定單元,用于根據(jù)該接口id、下一跳ip地址和虛擬專用網(wǎng)絡(luò)id確定該策略路由轉(zhuǎn)發(fā)表,其中,該下一跳ip地址和 虛擬專用網(wǎng)絡(luò)id是根據(jù)該接口id查詢映射表確定的。
根據(jù)本發(fā)明的另一方面,提供一種報文轉(zhuǎn)發(fā)裝置,包括:判斷模塊,用于判斷是否獲取到策略路由轉(zhuǎn)發(fā)信息,其中,該策略路由轉(zhuǎn)發(fā)信息包括有效標記位;第一轉(zhuǎn)發(fā)模塊,用于在判斷結(jié)果為是且該有效標記位為有效的情況下,將該報文按照策略路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā);第二轉(zhuǎn)發(fā)模塊,用于在判斷結(jié)果為否,或判斷結(jié)果為是但該有效標記位為無效的情況下,將該報文按照普通路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)。
通過本發(fā)明,采用將檢測到的接口失效信息上報協(xié)議層,將失效接口對應(yīng)的策略路由轉(zhuǎn)發(fā)表置于無效的技術(shù)方案,解決了相關(guān)技術(shù)中轉(zhuǎn)發(fā)表維護方式引起丟包的問題,減少了丟包的可能性。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的策略路由處理方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的報文轉(zhuǎn)發(fā)方法的流程圖;
圖3是根據(jù)本發(fā)明實施例的策略路由處理裝置的結(jié)構(gòu)框圖;
圖4是根據(jù)本發(fā)明優(yōu)選實施例的策略路由處理裝置的結(jié)構(gòu)框圖;
圖5是根據(jù)本發(fā)明實施例的報文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)框圖;
圖6是根據(jù)本發(fā)明實施例報文處理方法的流程圖;
圖7是根據(jù)本發(fā)明實施例策略路由轉(zhuǎn)發(fā)表更新流程圖;
圖8是根據(jù)本發(fā)明實施例策略路由切換到普通路由的流程圖。
具體實施方式
下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
在本實施例中提供了一種策略路由處理方法及裝置,圖1是根據(jù)本發(fā)明 實施例的策略路由處理方法的流程圖,如圖1所示,該流程包括如下步驟:
步驟s102,接口模塊將檢測到的接口失效信息上報協(xié)議層,其中,該接口失效信息用于指示該協(xié)議層將該策略路由轉(zhuǎn)發(fā)表狀態(tài)更新為無效;
步驟s104,所述接口模塊將失效接口對應(yīng)的策略路由轉(zhuǎn)發(fā)表置于無效。
進一步地,協(xié)議層下發(fā)接口id,所述接口模塊根據(jù)接口id確定該策略路由轉(zhuǎn)發(fā)表,將確定的該策略路由轉(zhuǎn)發(fā)表置于無效。
可選地,接口id查詢映射表確定下一跳ip地址和虛擬專用網(wǎng)絡(luò)id,根據(jù)該接口id、下一跳ip地址和虛擬專用網(wǎng)絡(luò)id查詢散列表確定該策略路由轉(zhuǎn)發(fā)表。
可選地,接口模塊通過更改策略路由轉(zhuǎn)發(fā)表的有效標記位的方式將策略路由轉(zhuǎn)發(fā)表置于無效。具體而言,在有效標記位為1的情況下,表示策略路由轉(zhuǎn)發(fā)表有效,轉(zhuǎn)發(fā)面可將報文按照策略路由轉(zhuǎn)發(fā)表的路徑轉(zhuǎn)發(fā);在有效標記位為0的情況下,表示策略路由轉(zhuǎn)發(fā)表無效,轉(zhuǎn)發(fā)面可將報文按照普通路由轉(zhuǎn)發(fā)表的路徑轉(zhuǎn)發(fā)。
通過上述步驟,解決了相關(guān)技術(shù)中轉(zhuǎn)發(fā)表維護方式引起丟包的問題,減少了丟包的可能性。
圖2是根據(jù)本發(fā)明實施例的報文轉(zhuǎn)發(fā)方法的流程圖,如圖2所示,該流程包括如下步驟:
步驟s202,轉(zhuǎn)發(fā)面判斷是否獲取到策略路由轉(zhuǎn)發(fā)信息,其中,該策略路由轉(zhuǎn)發(fā)信息包括有效標記位;
步驟s204,所述轉(zhuǎn)發(fā)面在判斷結(jié)果為是且該有效標記位為有效的情況下,將該報文按照策略路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā);在判斷結(jié)果為否,或判斷結(jié)果為是但該有效標記位為無效的情況下,將該報文按照普通路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)。
進一步地,可以通過判斷報文關(guān)鍵詞是否匹配訪問控制列表acl表判斷是否獲取到策略路由轉(zhuǎn)發(fā)信息。具體而言,轉(zhuǎn)發(fā)面解析報文獲取報文關(guān)鍵詞,通過報文關(guān)鍵詞匹配訪問控制列表acl表,在匹配成功的情況下,確定獲取到該策略路由轉(zhuǎn)發(fā)信息;在匹配失敗的情況下,確定未獲取到該策略路由轉(zhuǎn)發(fā)信息。
圖3是根據(jù)本發(fā)明實施例的策略路由處理裝置的結(jié)構(gòu)框圖,如圖3所示,該裝置包括:
上報模塊32,用于將檢測到的接口失效信息上報協(xié)議層,其中,該接口失效信息用于指示該協(xié)議層將該策略路由轉(zhuǎn)發(fā)表狀態(tài)更新為無效;
處理模塊34,用于將失效接口對應(yīng)的策略路由轉(zhuǎn)發(fā)表置于無效。
圖4是根據(jù)本發(fā)明優(yōu)選實施例的策略路由處理裝置的結(jié)構(gòu)框圖,如圖4所示,該處理模塊34包括:
確定單元42,用于根據(jù)該接口id、下一跳ip地址和虛擬專用網(wǎng)絡(luò)id確定該策略路由轉(zhuǎn)發(fā)表,其中,該下一跳ip地址和虛擬專用網(wǎng)絡(luò)id是根據(jù)該接口id查詢映射表確定的
圖5是根據(jù)本發(fā)明實施例的報文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)框圖,如圖5所示,該報文轉(zhuǎn)發(fā)裝置還包括:
判斷模塊52,用于判斷是否獲取到策略路由轉(zhuǎn)發(fā)信息,其中,該策略路由轉(zhuǎn)發(fā)信息包括有效標記位;
第一轉(zhuǎn)發(fā)模塊54,用于在判斷結(jié)果為是且該有效標記位為有效的情況下,將該報文按照策略路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā);
第二轉(zhuǎn)發(fā)模塊56,用于在判斷結(jié)果為否,或判斷結(jié)果為是但該有效標記位為無效的情況下,將該報文按照普通路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)。
下面結(jié)合具體實施例對本發(fā)明進行進一步說明。
本實施例提出了一種策略路由失效減少丟包的方法,通過控制面底層接口模塊在接口down時先更新策略路由轉(zhuǎn)發(fā)表的有效標記位,轉(zhuǎn)發(fā)面同時查詢普通路由表和策略路由轉(zhuǎn)發(fā)表,由策略路由轉(zhuǎn)發(fā)表的有效標記位是否有效,來判斷報文轉(zhuǎn)發(fā)路徑的方式,實現(xiàn)網(wǎng)絡(luò)中發(fā)生故障時策略路由快速切換到普通路由,減少丟包數(shù)量。
圖6是根據(jù)本發(fā)明實施例的報文處理方法的流程圖,如圖6所示,該方法包括以下步驟:
步驟s602,控制面底層接口模塊檢測到接口down,將接口狀態(tài)上報的同時通知策略路由模塊更改策略路由轉(zhuǎn)發(fā)表為無效;
步驟s604,在數(shù)據(jù)轉(zhuǎn)發(fā)層面用報文中的目的ip地址查路由表和策略路由轉(zhuǎn)發(fā)表,如果策略路由轉(zhuǎn)發(fā)表有效標記位有效就按策略路由轉(zhuǎn)發(fā),如果策略路由轉(zhuǎn)發(fā)表有效標記位無效,則按報文目的ip地址查路由表的結(jié)果轉(zhuǎn)發(fā);
步驟s606,接口模塊將接口down信息上報接口協(xié)議層,再由接口協(xié)議通知策略路由協(xié)議下發(fā)更新策略路由轉(zhuǎn)發(fā)表,使上層協(xié)議層與下層硬件層狀態(tài)達到一致。
該上下層一致的步驟可以進一步克服網(wǎng)絡(luò)管理的困難。
圖7是根據(jù)本發(fā)明實施例的策略路由轉(zhuǎn)發(fā)表更新的流程圖,如圖7所示,該方法包括以下步驟:
步驟s702,策略路由模塊根據(jù)策略路由協(xié)議下發(fā)的接口id、下一跳ip地址、虛擬專用網(wǎng)絡(luò)(又稱vpn)id三個關(guān)鍵字段申請策略路由轉(zhuǎn)發(fā)表,并以這三個字段進行散列(又稱hash)建立hash表,hash表內(nèi)容是策略路由轉(zhuǎn)發(fā)表;
步驟s704,策略路由模塊以策略路由接口id為鍵值建立接口id與下一跳ip地址、vpnid的映射表;
步驟s706,控制面底層的接口模塊檢測到鏈路失效down后,用接口id查詢映射表得到下一跳ip地址和vpnid;
步驟s708,用接口id,下一跳ip地址和vpnid進行hash查找hash表得到策略路由轉(zhuǎn)發(fā)表;
步驟s710,修改策略路由轉(zhuǎn)發(fā)表的有效標記位字段為0,即策略路由轉(zhuǎn)發(fā)表無效。
圖8為是根據(jù)本發(fā)明實施例的策略路由切換到普通路由的流程圖,如圖8所示,該方法包括以下步驟:
步驟s802,轉(zhuǎn)發(fā)面“報文解析模塊”提取報文關(guān)鍵字,若報文為ip報文,解析出源ip地址、目的ip地址,協(xié)議號等字段,若報文為udp報文,解析出源ip地址,目的ip地址,ip協(xié)議號,源接口,目的接口;
步驟s804,轉(zhuǎn)發(fā)面“路由查找模塊”用報文目的ip地址查路由表得到普通路由轉(zhuǎn)發(fā)表信息并保存;
步驟s806,轉(zhuǎn)發(fā)面“acl匹配模塊”用報文關(guān)鍵字去匹配acl表,若匹配成功,則取其結(jié)果表得到策略路由轉(zhuǎn)發(fā)表,執(zhí)行步驟s808;如果沒有匹配的acl表,則按上述普通路由轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā);
步驟s808,查詢策略路由轉(zhuǎn)發(fā)表的有效標記位valid_flag,如果valid_flag=1,表示策略路由有效,按策略路由轉(zhuǎn)發(fā);如果valid_flag=0,則按普通路由轉(zhuǎn)發(fā)。
圖6-圖8中所述的模塊的功能由接口模塊、上報模塊、處理模塊、判斷模塊、第一轉(zhuǎn)發(fā)模塊與第二轉(zhuǎn)發(fā)模塊中的一種或幾種的組合實現(xiàn)。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包括在本發(fā)明的保護范圍之內(nèi)。