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