述步驟四中,所述IP轉(zhuǎn)發(fā)表中的路由信息具體為:經(jīng)過(guò)入站過(guò)濾以及判決處理的路由,選舉出本地最佳路由,在本地路由表(Loc-RIB)存儲(chǔ)本地最佳路由,通過(guò)所有已知的BGP本地最佳路由,選舉出BGP全局最佳路由;此時(shí)的路由為全局最佳路由;隨之從IGP路由和全局最佳路由中選出的路由作為輸出路由表中路由信息的來(lái)源,來(lái)激活路由決策進(jìn)程;此時(shí)的路由信息需要置于IP轉(zhuǎn)發(fā)表中,并通過(guò)控制接口管理模塊發(fā)送到本地控制器。
[0018]所述步驟五中,重分布以及聚合后的路由和BGP全局最佳路由組成了本地路由信息庫(kù)(Loc-RIB),本地路由信息庫(kù)將本地路由表中的BGP最佳路由以及本地產(chǎn)生的路由都交給鄰居輸入輸出策略庫(kù)模塊,并經(jīng)過(guò)BGP出站過(guò)濾后存儲(chǔ)到輸出路由表(Adj-RIB-Out),并通告給遠(yuǎn)端的BGP對(duì)等體。
[0019]本發(fā)明解決當(dāng)前缺乏的一種BGP協(xié)議的主從控制重要問(wèn)題,即提供了一個(gè)BGP協(xié)議在分層控制器上分布式部署的方案,目前還沒(méi)有BGP協(xié)議在主從控制器中并行部署方式的存在。本發(fā)明顯著優(yōu)點(diǎn)有:能夠確保路由協(xié)議能夠處理更多對(duì)等體之間的BGP會(huì)話(huà),提高協(xié)議的可拓展性。多個(gè)分層控制器之間并行處理在對(duì)等體數(shù)量很大的情況下,可以非常有效地提升路由更新信息速率,減少更新報(bào)文接收到全局路由表更新過(guò)程的時(shí)間,從而提高路由學(xué)習(xí)的能力。
【附圖說(shuō)明】
[0020]圖1是BGP協(xié)議在本地控制器上的分布模塊。
[0021 ]圖2是BGP協(xié)議在全局控制器上的分布模塊。
[0022]圖3是基于主從控制器的BGP分布式架構(gòu)。
【具體實(shí)施方式】
[0023]下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說(shuō)明。
[0024]本發(fā)明提供了一種BGP協(xié)議的主從控制器架構(gòu),通過(guò)分層方式設(shè)計(jì)整體框架,然后再細(xì)分每層結(jié)構(gòu),通過(guò)各個(gè)層次之間的聯(lián)系,共同協(xié)作完成路由信息的傳遞。本發(fā)明提供的一種BGP協(xié)議的主從控制方法包括如下步驟:
步驟I:將BGP協(xié)議分別部署在主從控制器上,主控制器作為全局控制器,從控制器包括若干本地控制器;如圖1所示,所述本地控制器中包括BGP對(duì)等體建立與維護(hù)模塊、本地路由管理模塊以及本地路由計(jì)算模塊;所述BGP對(duì)等體建立與維護(hù)模塊包括對(duì)等體協(xié)商有限狀態(tài)機(jī)模塊、對(duì)等體會(huì)話(huà)維持模塊、鄰居輸入輸出策略庫(kù)模塊。所述本地路由計(jì)算模塊包括路由更新報(bào)文處理模塊以及路由更新輸入輸出策略模塊。如圖2所示,所述全局控制器中包括全局路由管理模塊、全局路由計(jì)算模塊以及控制接口管理模塊,所述全局路由管理模塊包括全局路由庫(kù)以及全局輸入輸出策略庫(kù)。
[0025]在本地控制器中的BGP對(duì)等體建立與維護(hù)模塊中,通過(guò)BGP對(duì)等體有限狀態(tài)機(jī)的協(xié)商,建立BGP會(huì)話(huà),根據(jù)TCP連接與KEEPALIVE消息的驗(yàn)證來(lái)維護(hù)對(duì)等體之間的會(huì)話(huà),BGP通過(guò)IBGP或者EBGP從遠(yuǎn)端對(duì)等體處接收路由,并將這些未加修改的初始路由存儲(chǔ)于輸入路由表(Adj-RIB-1n)中;
初始路由經(jīng)過(guò)入站過(guò)濾或者屬性控制后允許的路由集合進(jìn)行本地最佳路由的判決處理,判決處理將檢查到達(dá)同一目的地的所有可用的路由,比較每個(gè)路由的不同屬性,具體選路過(guò)程如下:(I)如果此路由的下一跳不可達(dá),則忽略此路由。(2)選擇本地優(yōu)先級(jí)較大的路由。(3)在本地優(yōu)先級(jí)相同時(shí),選擇本地控制器始發(fā)的路由。(4)選擇AS路徑較短的路由。(5)依次選擇起點(diǎn)類(lèi)型為IGP,EGP,Incomplete類(lèi)型的路由。(6)選擇MED較小的路由。(7)選擇RouterID較小的路由。由此選出本地的最佳路由,但此時(shí)經(jīng)過(guò)路由決策選擇的路由不能進(jìn)行宣告,因?yàn)樗潜镜刈罴崖酚?,而非全局最佳路由?br>[0026]步驟2:經(jīng)過(guò)入站過(guò)濾以及判決處理的路由,選舉出本地最佳路由,在本地路由表(Loc-RIB)存儲(chǔ)本地最佳路由。全局路由計(jì)算模塊在全局控制器中主要通過(guò)全局輸入輸出策略庫(kù),將依次接收的若干個(gè)本地最佳路由的數(shù)據(jù)結(jié)構(gòu)屬性添加到數(shù)據(jù)庫(kù)中進(jìn)行路由的優(yōu)先選擇,具體選路過(guò)程如下:(I)如果此路由的下一跳不可達(dá),則忽略此路由。(2)選擇全局優(yōu)先級(jí)較大的路由。(3)在全局優(yōu)先級(jí)相同相同時(shí),選擇全局控制器始發(fā)的路由。(4)選擇AS路徑較短的路由。(5)依次選擇起點(diǎn)類(lèi)型為IGP,EGP,IncompIete類(lèi)型的路由。(6 )選擇MED較小的路由。(7)選擇RouterID較小的路由。如新增路由優(yōu)于原來(lái)的路由,則重新設(shè)置全局最佳路由。
[0027]步驟3:選舉出BGP全局最佳路由;此時(shí)的路由為全局最佳路由;隨之從IGP路由和全局最佳路由中選出的路由作為輸出路由表中路由信息的來(lái)源,來(lái)激活路由決策進(jìn)程;此時(shí)的路由信息需要置于IP轉(zhuǎn)發(fā)表中,并通過(guò)控制接口管理模塊發(fā)送到本地控制器。
[0028]步驟4:所有激活的路由組播給所有的BGP引擎,同時(shí)對(duì)路由進(jìn)行路由聚合以及重分布。通過(guò)路由聚合可以大幅度減少路由表的大小,除此之外,通過(guò)對(duì)路由條目的聚合,還能減少路由震蕩對(duì)網(wǎng)絡(luò)帶來(lái)的影響,BGP路由聚合結(jié)合豐富的路由策略,是BGP信息的傳遞與管理變得更加的有效。而B(niǎo)GP重分布旨在實(shí)現(xiàn)不同路由協(xié)議之間信息傳遞,提高網(wǎng)絡(luò)的安全性與可管理性。
[0029]經(jīng)過(guò)重分布以及聚合后的路由和BGP全局最佳路由組成了本地路由信息庫(kù)(Loc-RIB),本地路由信息庫(kù)將本地路由表中的BGP最佳路由以及本地產(chǎn)生的路由都交給鄰居輸入輸出策略庫(kù)模塊,輸出策略機(jī)工作原理與輸入策略機(jī)類(lèi)似,只是放在輸出端對(duì)輸出路由進(jìn)行路由過(guò)濾或者屬性控制,并經(jīng)過(guò)BGP出站過(guò)濾后存儲(chǔ)到輸出路由表(Adj-RIB-Out),并通告給遠(yuǎn)端的BGP對(duì)等體。
[0030]如圖2所示,在全局控制器中的路由計(jì)算模塊在路由信息更新時(shí),生成BGP路由Update報(bào)文,旨在計(jì)算變動(dòng)后網(wǎng)絡(luò)的最佳路由。路由計(jì)算模塊處理過(guò)程與BGP選路過(guò)程類(lèi)似,更新內(nèi)容需儲(chǔ)存于輸入路由表(Adj-RIB-1n)中,通過(guò)入站過(guò)濾或者屬性控制,經(jīng)過(guò)處理之后的路由按照判決處理規(guī)定,與已有的本地最佳路由進(jìn)行比較,看是否是全局最佳的路由,如是,則進(jìn)行BGP接下來(lái)決策,更新相應(yīng)的轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)并執(zhí)行輸出路由的流程。在本地控制器,路由計(jì)算模塊主要實(shí)現(xiàn)Update報(bào)文接收發(fā)送以及策略的輸入輸出。處于緩沖區(qū)等待的Update報(bào)文經(jīng)過(guò)報(bào)文解析,轉(zhuǎn)換為路由屬性以及路由前綴的數(shù)據(jù)結(jié)構(gòu),通過(guò)路由映射等策略,修改數(shù)據(jù)結(jié)構(gòu)的表項(xiàng),輸出階段策略與輸入階段類(lèi)似,通過(guò)更新報(bào)文打包處理,將報(bào)文置于緩沖區(qū)進(jìn)行最終報(bào)文的發(fā)送。
[0031]為了更好的描述實(shí)施例的過(guò)程,將結(jié)合附圖3進(jìn)一步分析BGP協(xié)議分布式實(shí)現(xiàn)步驟,具體如下:
步驟1:多個(gè)B G P對(duì)等體中接收來(lái)自其他本地控制器中的所有初始路由(保存B G PSpeaker從鄰居中學(xué)到的路由)經(jīng)過(guò)BGP入站過(guò)濾進(jìn)程后輸出;
步驟2:入站過(guò)濾進(jìn)程路由的輸出由已經(jīng)修改屬性的一系列路由組成;
步驟3:被入站過(guò)濾進(jìn)程允許的路由集合被用來(lái)選擇出本地最佳路由,并將其存儲(chǔ)在本地路由信息庫(kù)(Loc-RIB),但此時(shí)經(jīng)過(guò)路由決策選擇的路由不能進(jìn)行宣告,因?yàn)樗潜镜刈罴崖酚?,而非全局最佳路由?br> 步驟4:本地最佳路由的集合發(fā)送全局控制器,并存儲(chǔ)于全局路由庫(kù)中;
步驟5:通過(guò)所有已知的BGP本地最佳路由,經(jīng)全局路由計(jì)算模塊選舉BGP全局最佳路由;
步驟6:此時(shí)最佳路由為全局最佳路由;
步驟7:從IGP和全局最佳路由中所選出的路由作為輸出,來(lái)激活路由決策進(jìn)程;
步驟8:通過(guò)IP,激活的路由被用作FIB;
步驟9:所有激活的路由組播給所有的BGP