一種bgp協(xié)議的主從控制方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明屬于通信領(lǐng)域,具體涉及一種BGP協(xié)議的主從控制方法。
【背景技術(shù)】
[0002]邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol,BGP)作為自治系統(tǒng)之間的路由協(xié)議,主要負(fù)責(zé)與其他BGP系統(tǒng)交換網(wǎng)絡(luò)層可達(dá)性信息。然而,隨著互聯(lián)網(wǎng)規(guī)模與流量的爆發(fā)式增長(zhǎng),為適應(yīng)復(fù)雜的網(wǎng)絡(luò)應(yīng)用,為BGP協(xié)議增添了各種繁雜的應(yīng)用屬性,這些新增屬性使路由協(xié)議的實(shí)現(xiàn)變得更加的復(fù)雜,增加了出錯(cuò)的可能性。與此同時(shí),為了更好地拓展網(wǎng)絡(luò)規(guī)模,BGP協(xié)議需要維護(hù)且存儲(chǔ)更大的路由表,對(duì)路由的存儲(chǔ)能力以及路由計(jì)算能力提出了更高的要求;自治區(qū)域之間物理位置密度增加了BGP對(duì)等體會(huì)話數(shù)量,需要我們從基于單一控制單元的集中式控制模式到分布式控制發(fā)展;BGP路由的猝發(fā)更新和間或的路由抖動(dòng),對(duì)路由協(xié)議的計(jì)算能力提出了新的挑戰(zhàn)。因此,研究BGP協(xié)議的分布式的實(shí)現(xiàn),提高BGP協(xié)議的可擴(kuò)展性和協(xié)議性能有著重要的商業(yè)價(jià)值和現(xiàn)實(shí)意義。
[0003]面對(duì)互聯(lián)網(wǎng)規(guī)模與流量的爆發(fā)式增長(zhǎng),當(dāng)前以IP為核心的網(wǎng)絡(luò)體系結(jié)構(gòu)逐漸暴露出各式各樣的缺點(diǎn),結(jié)構(gòu)功能日趨復(fù)雜導(dǎo)致網(wǎng)絡(luò)管理愈加的困難,尤其是以協(xié)議為核心的網(wǎng)絡(luò)演進(jìn)思路讓現(xiàn)有的網(wǎng)絡(luò)技術(shù)發(fā)展的非常的緩慢。但是互聯(lián)網(wǎng)的高速發(fā)展卻要求路由器隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大以及數(shù)據(jù)流量的增長(zhǎng)不斷提高自身設(shè)備的性能,但受硬件條件以及網(wǎng)絡(luò)體系結(jié)構(gòu)的局限,使得路由器的性能提升舉步維艱。
[0004]從20世紀(jì)50年代到現(xiàn)今,盡管網(wǎng)絡(luò)設(shè)備性能有了明顯的提高,傳輸?shù)牧髁坑育嫶?,但網(wǎng)絡(luò)本身的架構(gòu)卻沒(méi)有突破性的進(jìn)展,現(xiàn)今的網(wǎng)絡(luò)還是主要依靠端到端的路由轉(zhuǎn)發(fā)架構(gòu),很難滿足更加復(fù)雜的網(wǎng)絡(luò)需求。現(xiàn)今的網(wǎng)絡(luò)技術(shù)的創(chuàng)新僅僅停留在傳統(tǒng)網(wǎng)絡(luò)之上,只是被動(dòng)地進(jìn)行修補(bǔ),通常情況下是在用戶發(fā)現(xiàn)現(xiàn)有的網(wǎng)絡(luò)中存在的問(wèn)題或者有新的業(yè)務(wù)需求后,由研發(fā)人員在TCP/IP基礎(chǔ)之上進(jìn)行設(shè)計(jì)改進(jìn),而不是系統(tǒng)性地通過(guò)控制與轉(zhuǎn)發(fā)分離技術(shù)加快網(wǎng)絡(luò)的創(chuàng)新,重塑互聯(lián)網(wǎng)的架構(gòu)。
[0005]為了解決以上問(wèn)題,2007年,MartinCasado聯(lián)合Nick McKeown、Scott Shenker等人創(chuàng)建了一個(gè)致力于網(wǎng)絡(luò)虛擬化技術(shù)創(chuàng)新的公司一一Nicira,并最早提出了 SDN的概念。
[0006]SDN(Software Defined Networking,軟件定義網(wǎng)絡(luò))是一種數(shù)據(jù)控制分離、軟件可編程的新型網(wǎng)絡(luò)體系架構(gòu),采用了集中式的控制平面和分布式轉(zhuǎn)發(fā)平面,兩個(gè)平面相互分離。在SDN框架中,控制平面主要的功能是建立本地的數(shù)據(jù)集合,該數(shù)據(jù)集合一般被稱為路由信息庫(kù)(Routing Informat1n Base,RIB),RIB需要與網(wǎng)內(nèi)其他控制平面實(shí)例的信息保持一致,這一點(diǎn)通常使用分布式路由協(xié)議來(lái)完成。接下來(lái),控制平面需要基于RIB創(chuàng)建轉(zhuǎn)發(fā)表,用于指導(dǎo)設(shè)備出入端口之間的數(shù)據(jù)流量轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)表通常稱為轉(zhuǎn)發(fā)信息表(Forwarding Informat1n Base ,FIB),F(xiàn)IB需要經(jīng)常在設(shè)備的控制和數(shù)據(jù)平面之間進(jìn)行鏡像,以保證轉(zhuǎn)發(fā)行為與路由決策的一致。
[0007 ]控制平面的可擴(kuò)展性是SDN研究的熱點(diǎn)之一,未來(lái)SDN面向大規(guī)模網(wǎng)絡(luò)的必經(jīng)之路便是對(duì)控制平面實(shí)現(xiàn)分布式設(shè)計(jì)。多線程處理對(duì)于大型網(wǎng)絡(luò)而言有局限性,不能保證其性能。單控制器又存在路由器控制平面過(guò)載而丟失“心跳”信息的性能瓶頸以及單點(diǎn)失效和可拓展性差的缺點(diǎn),單一控制單元的集中式控制對(duì)于其他自治區(qū)域的交換機(jī)信息的交互有較大的延遲,且現(xiàn)有的路由協(xié)議大部分運(yùn)行于集中控制平面,軟硬件局部的失效將導(dǎo)致整個(gè)路由協(xié)議的癱瘓,所以為了更好的提高網(wǎng)絡(luò)的性能以及路由協(xié)議可拓展性,我們需要對(duì)控制平面實(shí)行分布式處理。
【發(fā)明內(nèi)容】
[0008]本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提出了一種BGP協(xié)議的主從控制方法。
[0009]本發(fā)明提供的一種BGP協(xié)議的主從控制方法,包括如下步驟:
步驟一:將BGP協(xié)議分別部署在主從控制器上,主控制器作為全局控制器,從控制器包括若干本地控制器;
所述本地控制器中包括BGP對(duì)等體建立與維護(hù)模塊、本地路由管理模塊以及本地路由計(jì)算模塊;所述BGP對(duì)等體建立與維護(hù)模塊包括對(duì)等體協(xié)商有限狀態(tài)機(jī)模塊、對(duì)等體會(huì)話維持模塊、鄰居輸入輸出策略庫(kù)模塊。所述本地路由計(jì)算模塊包括路由更新報(bào)文處理模塊以及路由更新輸入輸出策略模塊。所述全局控制器中包括全局路由管理模塊、全局路由計(jì)算模塊以及控制接口管理模塊,所述全局路由管理模塊包括全局路由庫(kù)以及全局輸入輸出策略庫(kù)。
[0010]步驟二:BGP對(duì)等體建立與維護(hù)模塊中的對(duì)等體協(xié)商有限狀態(tài)機(jī)模塊和對(duì)等體會(huì)話維持模塊將維持本地控制器中BGP對(duì)等體處于會(huì)話狀態(tài),通過(guò)鄰居輸入輸出策略庫(kù)模塊,BGP對(duì)等體從遠(yuǎn)端對(duì)等體接收所有初始路由(保存BGP Speaker從鄰居中學(xué)到的路由),經(jīng)過(guò)本地路由計(jì)算模塊執(zhí)行路由更新輸入輸出策略模塊后,選舉出本地最佳路由,并將其存儲(chǔ)在本地路由管理模塊,然后發(fā)送給全局控制器。
[0011]步驟三:全局控制器接收各個(gè)本地控制器的最佳路由,將其存儲(chǔ)于全局路由庫(kù)中,經(jīng)過(guò)全局路由計(jì)算模塊來(lái)選舉出全局最佳路由。
[0012]步驟四:全局最佳路由與IGP路由共同激活路由決策進(jìn)程,且存儲(chǔ)于IP轉(zhuǎn)發(fā)表中,經(jīng)過(guò)全局輸入輸出策略庫(kù)處理后通過(guò)控制接口管理模塊發(fā)送給本地控制器。
[0013]步驟五:各個(gè)本地控制器接收到全局控制器選出的全局最佳路由后,經(jīng)本地路由計(jì)算模塊中的路由更新報(bào)文處理模塊進(jìn)行路由重分布、聚合、出站過(guò)濾后,選擇出的路由宣告給其他本地控制器中BGP對(duì)等體。
[0014]進(jìn)一步地,所述步驟二中,所述BGP對(duì)等體建立與維護(hù)模塊中的BGP對(duì)等體從遠(yuǎn)端對(duì)等體接收所有初始路由具體為:在BGP對(duì)等體建立與維護(hù)模塊中,通過(guò)BGP對(duì)等體有限狀態(tài)機(jī)的協(xié)商,建立BGP會(huì)話,根據(jù)TCP連接與KEEPALIVE消息的驗(yàn)證來(lái)維護(hù)對(duì)等體之間的會(huì)話,BGP通過(guò)IBGP或者EBGP從遠(yuǎn)端對(duì)等體處接收路由,并將這些未加修改的初始路由存儲(chǔ)于輸入路由表(Adj-RIB-1n)中。
[0015]所述步驟二中,所述選舉出本地最佳路由具體為:初始路由經(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)類型為IGP,EGP,Incomplete類型的路由。(6)選擇MED較小的路由。(7)選擇RouterID較小的路由。由此選出本地的最佳路由,但此時(shí)經(jīng)過(guò)路由決策選擇的路由不能進(jìn)行宣告,因?yàn)樗潜镜刈罴崖酚桑侨肿罴崖酚伞?br>[0016]所述步驟三中,所述全局路由計(jì)算模塊選出全局最佳路由具體為:全局路由計(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)類型為IGP,EGP, Incomplete類型的路由。(6)選擇MED較小的路由。(7)選擇RouterID較小的路由。如新增路由優(yōu)于原來(lái)的路由,則重新設(shè)置全局最佳路由。
[0017]所