專利名稱:一種路由整合方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體涉及一種路由整合方法和裝置。
背景技術(shù):
隨著互連網(wǎng)和企業(yè)內(nèi)部網(wǎng)的不斷發(fā)展,三層vpn (Visual-Private-Network,虛擬 專用網(wǎng))、ECMP (Equal-Cost Multi-Path,等價多路徑)、FRR(Fast ReRoute,快速重路由) 等各種技術(shù)應(yīng)用越來越廣泛。兩級ecmp/frr組網(wǎng)的需求也越來越普遍。如圖1所示三 層vpn組網(wǎng),遠(yuǎn)端目的CE(Custom Edge Router,用戶邊緣路由器)進行雙歸,遠(yuǎn)端2臺 PE (Provider Edge Router,運營商邊緣路由器)設(shè)備進行備份,到達主PE設(shè)備的公網(wǎng)又進 行了負(fù)載均衡,那么本地PE上就需要支持多級ecmp/frr路由轉(zhuǎn)發(fā)。現(xiàn)有的技術(shù)主要是依 靠多次查找硬件轉(zhuǎn)發(fā)表,首先根據(jù)目的ip地址查路由表,如果發(fā)現(xiàn)出口是ecmp或者frr,則 獲得第一級出口索引,根據(jù)此索引查硬件表;如果發(fā)現(xiàn)表項所指出口還是ecmp或者frr,則 說明是多級嵌套,獲得第二級索引,再查一次ecmp/frr硬件表,獲取真正的出口信息進行 封裝和轉(zhuǎn)發(fā)。上述技術(shù)內(nèi)容存在以下缺陷1、硬件不支持二次查表或者二次路由的設(shè)備無法實現(xiàn)上述嵌套組網(wǎng)的路由轉(zhuǎn) 發(fā);2、支持多次查表或路由的設(shè)備,硬件成本較高,且需要進行多次查找硬件表,顯然 轉(zhuǎn)發(fā)效率低下。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種路由整合方法和裝置,保證在不支持 多次查表的設(shè)備上也能實現(xiàn)兩級轉(zhuǎn)發(fā),并提高轉(zhuǎn)發(fā)效率。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種路由整合方法,該方法包括路由表下發(fā),獲得其中的部分轉(zhuǎn)發(fā)信息和出口索引;根據(jù)出口索引查找平臺軟件 表,獲得出口和封裝信息;根據(jù)路由表和平臺軟件表中的信息整合出完整的轉(zhuǎn)發(fā)信息。針對平臺軟件表的所述查找,是基于路由表進行循環(huán)查找實現(xiàn)的,包括依照由一級索引至二級索引的索引關(guān)系,循環(huán)查找一級索引下的所有二級索引, 依此獲得平臺軟件表。所述整合出完整的轉(zhuǎn)發(fā)信息包括從每次循環(huán)時所獲得的平臺軟件表中獲取出口和封裝信息,并結(jié)合從路由表中獲 取的所述部分轉(zhuǎn)發(fā)信息,最終整合出完整的轉(zhuǎn)發(fā)信息。所述出口索引是基于建立的索引關(guān)系實現(xiàn)的,所述索引關(guān)系包括地址解析協(xié)議arp到快速重路由/等價多路徑frr/ecmp/路由的索引關(guān)系;frr到路由的索引關(guān)系;ecmp到路由的索引關(guān)系;公網(wǎng)frr到虛擬專用網(wǎng)vpnecmp/vpn frr的索 引關(guān)系;公網(wǎng)ecmp到vpn ecmp/vpn frr的索引關(guān)系。該方法進一步包括路由更新處理,為整合出完整的轉(zhuǎn)發(fā)信息提供可用來參考的路 由更新信息;所述路由更新由下一跳arp變動引起,或由frr組變動引起,或由ecmp組變動弓丨 起。一種路由整合裝置,該裝置包括路由表處理單元、平臺軟件表處理單元、整合單 元;其中,所述路由表處理單元,用于進行路由表下發(fā),并獲得其中的部分轉(zhuǎn)發(fā)信息和出口 索引;所述平臺軟件表處理單元,用于獲得路由表處理單元所得到的出口索引,并據(jù)此 查找平臺軟件表,獲得出口和封裝信息;所述整合單元,用于得到路由表處理單元所獲取的轉(zhuǎn)發(fā)信息以及平臺軟件表處理 單元所查找到的平臺軟件表,并根據(jù)獲取的路由表和平臺軟件表中的信息整合出完整的轉(zhuǎn) 發(fā)信息。所述平臺軟件表處理單元針對平臺軟件表的所述查找,是基于路由表進行循環(huán)查 找實現(xiàn)的;所述平臺軟件表處理單元查找平臺軟件表時用于依照由一級索引至二級索引的索引關(guān)系,循環(huán)查找一級索引下的所有二級索引, 依此獲得平臺軟件表。所述整合單元整合出完整的轉(zhuǎn)發(fā)信息時,用于從每次循環(huán)時所獲得的平臺軟件表中獲取出口和封裝信息,并結(jié)合從路由表中獲 取的所述部分轉(zhuǎn)發(fā)信息,最終整合出完整的轉(zhuǎn)發(fā)信息。所述出口索引是基于建立的索引關(guān)系實現(xiàn)的,所述索引關(guān)系包括arp到frr/ecmp/路由的索引關(guān)系;frr到路由的索引關(guān)系;ecmp到路由的索引關(guān) 系;公網(wǎng)frr到vpn ecmp/vpn frr的索引關(guān)系;公網(wǎng)ecmp到vpn ecmp/vpn frr的索引關(guān) 系。該裝置進一步包括路由更新單元,用于進行路由更新并為所述整合單元提供可 用來參考的路由更新信息;所述路由更新由下一跳arp變動引起,或由frr組變動引起,或由ecmp組變動弓| 起。本發(fā)明方法和裝置,不再需要二次查硬件表或者二次路由,轉(zhuǎn)發(fā)效率得到明顯提 高;并能夠保證在不支持多次查表的設(shè)備上也能實現(xiàn)兩級轉(zhuǎn)發(fā),在提供相同的功能前提下, 降低了設(shè)備成本。
圖1為兩級ecmp/frr組網(wǎng)應(yīng)用場景示意圖;圖2為本發(fā)明一實施例的兩級ecmp/frr路由整合流程圖;圖3為本發(fā)明一實施例的地址解析協(xié)議(arp)、frr/ecmp路由之間的引用關(guān)系示 意圖4為本發(fā)明一實施例的下一跳arp變動引起的路由更新流程圖;圖5為本發(fā)明一實施例的frr組變動引起的路由更新流程圖;圖6為本發(fā)明一實施例的ecmp組變動引起的路由更新流程圖;圖7為本發(fā)明一實施例的路由整合流程簡圖;圖8為本發(fā)明一實施例的路由整合裝置圖。
具體實施例方式總體而言,可以通過平臺軟件下發(fā)路由表,還可以查詢平臺軟件表,并根據(jù)路由表 和平臺軟件表整合出完整的出口信息,再將整合出的出口信息一次下發(fā)給驅(qū)動以寫硬件 表,在后續(xù)應(yīng)用中,硬件只需要針對硬件表進行一次查表過程,即可完成兩級ecmp/frr轉(zhuǎn) 發(fā)。上述操作思路可以包括以下步驟1)路由表下發(fā),獲得其中的部分轉(zhuǎn)發(fā)信息和出口索引。2)根據(jù)出口索引查找平臺軟件表,獲得出口和封裝信息。3)根據(jù)路由表和平臺軟件表中的信息整合出完整的轉(zhuǎn)發(fā)信息。需要說明的是,所述出口索引包括ecmp索引或者frr索引。并且,如果在平臺軟 件表中查找不到出口索引,則直接結(jié)束。完整的轉(zhuǎn)發(fā)信息通常包括目的ip,掩碼,vpn id, 物理出端口,出接口索引,下一跳ip地址,目的介質(zhì)訪問控制mac,出標(biāo)簽等。在實際應(yīng)用時,具體的路由整合流程如圖2所示,該流程包括以下步驟步驟201 上層協(xié)議下發(fā)路由表添加或者觸發(fā)路由更新。步驟202 判斷路由出口類型是否為普通的下一跳,如果是,進入步驟203 ;否則, 進入步驟204。步驟203 根據(jù)下一跳ip和三層接口索引查平臺軟件表,獲得目的mac和物理出端□。步驟204 根據(jù)出口 frr索引或者ecmp索引查找平臺軟件表,判斷是否查找成功, 如果成功,進入步驟205 ;否則,返回失敗并結(jié)束本流程。步驟205 設(shè)置i的取值為零。步驟206 判斷i是否小于m,如果小于,進入步驟208 ;否則,進入步驟207。步驟207 將路由前綴信息、出口信息等完整的轉(zhuǎn)發(fā)信息添加給驅(qū)動。具體而言,路由前綴信息包括目的ip、掩碼、vpn id等,出口信息包括下一跳ip、 物理出端口、目的mac、出接口索引、下一跳vpn id等。步驟208 判斷第i個下一跳的出口是否存在二級索引,如果存在,進入步驟210 ; 否則,進入步驟209。步驟209 根據(jù)第i個下一跳的ip地址和三層接口索引查平臺軟件表,獲得目的 mac和物理出端口。步驟210 根據(jù)出口 frr索引或者ecmp索引查找平臺軟件表,判斷是否查找成功; 如果查找成功,進入步驟211 ;否則,返回失敗并結(jié)束本流程。步驟211 設(shè)置j的取值為零。步驟212 判斷j是否小于n,如果小于,進入步驟213 ;否則,進入步驟215。
步驟213 根據(jù)第j個下一跳的ip地址和三層接口索引查平臺軟件表,獲得目的 mac和物理出端口。步驟214 累加j,返回步驟212。步驟215 累加i,返回步驟206。由上述流程可見,針對平臺軟件表的查找,是基于路由表進行循環(huán)查找實現(xiàn)的, 如依照由一級索引至二級索引的索引關(guān)系,循環(huán)查找一級索引下的所有二級索引,依此獲 得平臺軟件表?;谏鲜龅难h(huán)查找方式,后續(xù)在整合出完整的轉(zhuǎn)發(fā)信息時,則可以從之前 每次循環(huán)時所獲得的平臺軟件表中獲取出口和封裝信息,并結(jié)合從路由表中獲取的部分轉(zhuǎn) 發(fā)信息,最終整合出完整的轉(zhuǎn)發(fā)信息。上述流程中的各索引之間存在索引關(guān)系,可以結(jié)合arp、frr/ecmp和路由之間的 引用關(guān)系,應(yīng)用圖3說明上述索引關(guān)系。參見圖3,普通下一跳arp變化會使引用它的路由或 者引用它的ecmp/frr發(fā)生變化,arp變化需要觸發(fā)相關(guān)frr/ecmp和路由更新;同理,frr/ ecmp變化會使引用它的vpn frr.vpn ecmp或者路由發(fā)生變化,需要觸發(fā)相關(guān)vpn frr.vpn ecmp以及路由更新,vpn frr或者vpnecmp變化會使引用它的路由出口發(fā)生變化,需要觸發(fā) 相關(guān)路由更新。因此需要建立與引用關(guān)系方向相反的索引關(guān)系即arp到frr/ecmp/路由 的索引關(guān)系;frr到路由的索引關(guān)系;ecmp到路由的索引關(guān)系;公網(wǎng)frr到vpn ecmp/vpn frr的索引關(guān)系;公網(wǎng)ecmp到vpn ecmp/vpn frr的索引關(guān)系??梢越Y(jié)合上述的索引,說明路由、下一跳arp、ecmp/frr組之間的更新關(guān)系。具體而言,協(xié)議無法感知所有的下一跳arp變化,需要由目前的路由整合模塊響 應(yīng)arp變化,并觸發(fā)相關(guān)路由更新驅(qū)動。普通下一跳變動引起的路由更新過程如圖4所示, 圖4所示流程包括以下步驟步驟401 協(xié)議下發(fā)arp添加、刪除、或者更新操作。步驟402 判斷根據(jù)索引關(guān)系是否能找到引用該arp的子網(wǎng)路由,如果能找到,進 入步驟403 ;否則,進入步驟404。步驟403 根據(jù)操作類型具體處理。如如果是arp添加或者更新操作,則將完整 的出口信息和查到的路由前綴信息整合并寫驅(qū)動。如果是arp刪除操作,則可以將子網(wǎng)路 由出口設(shè)置為上送CPU,等待arp信息完整后再重新整合子網(wǎng)路由出口。步驟404 判斷根據(jù)索引關(guān)系是否能找到引用arp的ecmp組,如果能找到,進入步 驟405 ;否則,進入步驟406。步驟405 根據(jù)ecmp索引進行路由更新流程。步驟406 判斷根據(jù)索引關(guān)系是否能找到引用arp的frr組,如果能找到,進入步 驟407;否則,結(jié)束本流程。步驟407 根據(jù)frr索引進行路由更新流程。frr組變化引起的路由更新過程如圖5所示,圖5所示流程包括以下步驟步驟501 判斷是否為frr組更新操作,如果是,進入步驟502 ;否則,進入步驟 510。步驟502 判斷根據(jù)frr索引能否查找到平臺frr軟件表項,如果能查找到,進入 步驟503;否則,結(jié)束本流程。步驟503 判斷根據(jù)索引關(guān)系是否能找到引用該frr組的vpn frr或者vpnecmp,如果能查找到,進入步驟504 ;否則,進入步驟507。步驟504 判斷根據(jù)vpn frr/vpn ecmp索引能否查找到平臺軟件表項,如果能查 找到,進入步驟505 ;否則,進入步驟507。步驟505 判斷根據(jù)索引關(guān)系能否查找到引用vpn frr或者vpn ecmp的路由a,如 果能查找到,進入步驟506 ;否則,進入步驟507。步驟506 整合完整的轉(zhuǎn)發(fā)信息,將引用vpn frr/vpn ecmp的路由a更新驅(qū)動。步驟507 判斷是否能根據(jù)索引關(guān)系找到引用該frr組的路由b,并在能查找到時 進入步驟508。步驟508 如果是frr更新或者添加操作,則整合完整的路由b信息并更新驅(qū)動; 如果是frr刪除操作,則暫時將路由b的出口置為上送cpu,并更新驅(qū)動。結(jié)束本流程。步驟510 判斷是否為frr組添加操作,如果是,進入步驟503 ;否則,進入步驟 520。步驟520 判斷是否為frr組刪除操作,如果是,進入步驟507 ;否則,結(jié)束本流程。ecmp組變動引起的路由更新過程如圖6所示,圖6所示流程包括以下步驟步驟601 判斷是否為Ecmp組更新操作,如果是,進入步驟602 ;否則,進入步驟 610。步驟602 判斷根據(jù)Ecmp索引能否查找到平臺Ecmp軟件表項,如果能查找到,進 入步驟603 ;否則,結(jié)束本流程。步驟603 判斷根據(jù)索引關(guān)系是否能找到引用該Ecmp組的vpn frr或者vpnecmp, 如果能查找到,進入步驟604 ;否則,進入步驟607。步驟604 判斷根據(jù)vpn frr/vpn ecmp索引能否查找到平臺軟件表項,如果能查 找到,進入步驟605 ;否則,進入步驟607。步驟605 判斷根據(jù)索引關(guān)系能否查找到引用vpn frr或者vpn ecmp的路由a,如 果能查找到,進入步驟606 ;否則,進入步驟607。步驟606 整合完整的路由a的信息并更新驅(qū)動。步驟607:判斷是否能根據(jù)索引關(guān)系查找到引用該Ecmp組的路由b,并在能查找到 時進入步驟608。步驟608 如果是Ecmp更新或者添加操作,則整合完整的路由b的信息并更新驅(qū) 動;如果是Ecmp刪除操作,則暫時將路由b的出口置為上送cpu,并更新驅(qū)動。結(jié)束本流程。步驟610 判斷是否為Ecmp組添加操作,如果是,進入步驟603 ;否則,進入步驟 620。步驟620 判斷是否為Ecmp組刪除操作,如果是,進入步驟607 ;否則,結(jié)束本流程。結(jié)合以上流程描述可知,本發(fā)明路由整合的操作思路可以表示如圖7所示。參見 圖7,圖7為本發(fā)明一實施例的路由整合流程簡圖,該流程包括以下步驟步驟710 路由表下發(fā),獲得其中的部分轉(zhuǎn)發(fā)信息和出口索引。步驟720 根據(jù)出口索引查找平臺軟件表,獲得出口和封裝信息。步驟730 根據(jù)路由表和平臺軟件表中的信息整合成完整的轉(zhuǎn)發(fā)信息。為了保證上述流程及操作思路能夠順利實現(xiàn),可以進行如圖8所示的設(shè)置。參見圖8,圖8為本發(fā)明一實施例的路由整合裝置圖,該裝置包括相連的路由表處理單元、平臺 軟件表處理單元、整合單元,還可以包括與整合單元相連的路由更新單元。在具體應(yīng)用時,路由表處理單元能夠進行路由表下發(fā),并獲得其中的部分轉(zhuǎn)發(fā)信 息和出口索引;平臺軟件表處理單元則能夠獲得路由表處理單元所得到的出口索引,并據(jù) 此查找平臺軟件表,獲得出口和封裝信息。整合單元能夠得到路由表處理單元所獲取的轉(zhuǎn) 發(fā)信息以及平臺軟件表處理單元所查找到的平臺軟件表,并根據(jù)獲取的路由表和平臺軟件 表中的信息整合出完整的轉(zhuǎn)發(fā)信息。另外,路由更新單元能夠進行如圖4至圖6所示的路由更新處理,并將處理結(jié)果通 知給整合單元,為整合單元在整合出完整的轉(zhuǎn)發(fā)信息時提供可用來參考的路由更新信息。需要說明的是,針對圖8所示各單元中的任何單元,只要該單元需要應(yīng)用arp、 frr/ecmp路由之間的引用關(guān)系進行相關(guān)操作,那么就可以維護該引用關(guān)系。圖8所示各單 元所能實現(xiàn)的具體操作已在前述流程中的詳細(xì)描述,在此不再贅述。另外,對于傳統(tǒng)的一級 ecmp/fn 組網(wǎng)或者普通組網(wǎng)而言,前述流程同樣適用。綜上所述可見,無論是方法還是裝置,本發(fā)明的兩級ecmp/fn 路由整合技術(shù),與 現(xiàn)有技術(shù)相比,具有如下有益效果1、不再需要二次查硬件表或者二次路由,轉(zhuǎn)發(fā)效率得到明顯提高。2、保證在不支持多次查表的設(shè)備上也能實現(xiàn)兩級轉(zhuǎn)發(fā),在提供相同的功能前提 下,降低了設(shè)備成本。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護 范圍之內(nèi)。
權(quán)利要求
一種路由整合方法,其特征在于,該方法包括路由表下發(fā),獲得其中的部分轉(zhuǎn)發(fā)信息和出口索引;根據(jù)出口索引查找平臺軟件表,獲得出口和封裝信息;根據(jù)路由表和平臺軟件表中的信息整合出完整的轉(zhuǎn)發(fā)信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,針對平臺軟件表的所述查找,是基于路由 表進行循環(huán)查找實現(xiàn)的,包括依照由一級索引至二級索引的索引關(guān)系,循環(huán)查找一級索引下的所有二級索引,依此 獲得平臺軟件表。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述整合出完整的轉(zhuǎn)發(fā)信息包括從每次循環(huán)時所獲得的平臺軟件表中獲取出口和封裝信息,并結(jié)合從路由表中獲取的 所述部分轉(zhuǎn)發(fā)信息,最終整合出完整的轉(zhuǎn)發(fā)信息。
4.根據(jù)權(quán)利要求1至3任一項所述的方法,其特征在于,所述出口索引是基于建立的索 引關(guān)系實現(xiàn)的,所述索引關(guān)系包括地址解析協(xié)議arp到快速重路由/等價多路徑frr/ecmp/路由的索引關(guān)系;frr到路 由的索引關(guān)系;ecmp到路由的索引關(guān)系;公網(wǎng)frr到虛擬專用網(wǎng)vpnecmp/vpn frr的索引 關(guān)系;公網(wǎng)ecmp到vpn ecmp/vpn frr的索引關(guān)系。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進一步包括路由更新處理,為整合 出完整的轉(zhuǎn)發(fā)信息提供可用來參考的路由更新信息;所述路由更新由下一跳arp變動引起,或由frr組變動引起,或由ecmp組變動引起。
6.一種路由整合裝置,其特征在于,該裝置包括路由表處理單元、平臺軟件表處理單 元、整合單元;其中,所述路由表處理單元,用于進行路由表下發(fā),并獲得其中的部分轉(zhuǎn)發(fā)信息和出口索引;所述平臺軟件表處理單元,用于獲得路由表處理單元所得到的出口索引,并據(jù)此查找 平臺軟件表,獲得出口和封裝信息;所述整合單元,用于得到路由表處理單元所獲取的轉(zhuǎn)發(fā)信息以及平臺軟件表處理單元 所查找到的平臺軟件表,并根據(jù)獲取的路由表和平臺軟件表中的信息整合出完整的轉(zhuǎn)發(fā)信 肩、o
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述平臺軟件表處理單元針對平臺軟件 表的所述查找,是基于路由表進行循環(huán)查找實現(xiàn)的;所述平臺軟件表處理單元查找平臺軟 件表時用于依照由一級索引至二級索引的索引關(guān)系,循環(huán)查找一級索引下的所有二級索引,依此 獲得平臺軟件表。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述整合單元整合出完整的轉(zhuǎn)發(fā)信息時, 用于從每次循環(huán)時所獲得的平臺軟件表中獲取出口和封裝信息,并結(jié)合從路由表中獲取的 所述部分轉(zhuǎn)發(fā)信息,最終整合出完整的轉(zhuǎn)發(fā)信息。
9.根據(jù)權(quán)利要求6至8任一項所述的裝置,其特征在于,所述出口索引是基于建立的索 引關(guān)系實現(xiàn)的,所述索引關(guān)系包括arp到frr/ecmp/路由的索引關(guān)系;frr到路由的索引關(guān)系;ecmp到路由的索引關(guān)系; 公網(wǎng)frr到vpn ecmp/vpn frr的索引關(guān)系;公網(wǎng)ecmp到vpn ecmp/vpn frr的索引關(guān)系。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,該裝置進一步包括路由更新單元,用于 進行路由更新并為所述整合單元提供可用來參考的路由更新信息;所述路由更新由下一跳arp變動引起,或由frr組變動引起,或由ecmp組變動引起。
全文摘要
本發(fā)明公開了一種路由整合方法和裝置,均可進行路由表下發(fā),獲得其中的部分轉(zhuǎn)發(fā)信息和出口索引;根據(jù)出口索引查找平臺軟件表,獲得出口和封裝信息;并能夠根據(jù)路由表和平臺軟件表中的信息整合出完整的轉(zhuǎn)發(fā)信息。本發(fā)明方法和裝置,不再需要二次查硬件表或者二次路由,轉(zhuǎn)發(fā)效率得到明顯提高;并能夠保證在不支持多次查表的設(shè)備上也能實現(xiàn)兩級轉(zhuǎn)發(fā),在提供相同的功能前提下,降低了設(shè)備成本。
文檔編號H04L12/56GK101931590SQ20101026737
公開日2010年12月29日 申請日期2010年8月27日 優(yōu)先權(quán)日2010年8月27日
發(fā)明者史亮 申請人:中興通訊股份有限公司