摘 要:邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol,BGP),是互聯(lián)網(wǎng)上的一種外部邊界路由協(xié)議,在自治系統(tǒng)的邊界傳播路由信息,是矢量路由協(xié)議的一種。BGP的路由信息中包含自治系統(tǒng)路徑、網(wǎng)絡(luò)策略、規(guī)則集等信息,來構(gòu)造拓?fù)鋱D。BGP的實(shí)施和使用可消除路由環(huán)路,使得用戶配置的策略得以實(shí)現(xiàn)。比起發(fā)現(xiàn)和計(jì)算路由,BGP更側(cè)重于路由的選擇和傳播。
關(guān)鍵詞:BGP;邊界網(wǎng)關(guān);路由;自治系統(tǒng)
中圖分類號:TP393.02
Internet是全球由成千上萬個(gè)包含自身網(wǎng)絡(luò)設(shè)別的大型網(wǎng)絡(luò)互相鏈接而構(gòu)成的。為了便于管理,Internet被劃分為若干自治系統(tǒng)(Automomous Syetem),自治系統(tǒng)是網(wǎng)絡(luò)種自主決定使用何種路由的網(wǎng)絡(luò)單位,可以是一個(gè)網(wǎng)絡(luò),也可以是經(jīng)管理的網(wǎng)絡(luò)群體,簡稱AS,如CHINANET、CERNET等。用一個(gè)1-65535范圍內(nèi)的整數(shù)來標(biāo)志,由InterNIC統(tǒng)一分配,AS號分為私有AS號和公有AS號。實(shí)際上,在一個(gè)管理機(jī)構(gòu)管理的大的網(wǎng)絡(luò)中,為了便于管理,也會劃分不同的AS,一般使用私有AS號。在AS內(nèi)運(yùn)行內(nèi)部路由協(xié)議(IGP),在AS間運(yùn)行外部路由協(xié)議(EGP),所以動態(tài)路由協(xié)議分為內(nèi)部路由協(xié)議(主要有RIP OSPF IS-IS IGRP EIGRP等)和外部路由協(xié)議(主要有EGP BGP等)。
另一種動態(tài)路由分類的方法是根據(jù)路由算法分為:距離矢量路由協(xié)議,如RIP、BGP等,和鏈路狀態(tài)路由協(xié)議,如OSPF、IS-IS等。
BGP有如下特點(diǎn):
BGP是一種面向連接的、高可靠的TCP傳輸層協(xié)議,通信端通過TCP的179端口會話交換數(shù)據(jù)。BGP的路由器會周期性的發(fā)送存活數(shù)據(jù)消息來保持連接,在所有路由協(xié)議中,只有BGP使用TCP連接。BGP的四種報(bào)文分別是:(1)打開(Open)報(bào)文,用來與另一個(gè)相鄰的BGP建立初期連接。(2)更新(Update)報(bào)文,用來發(fā)送路由屬性信息,以及列出要消除的多余路由。(3)保持(Keepalive)報(bào)文,用來周期性的確認(rèn)報(bào)文的和確認(rèn)鄰居關(guān)系。(4)通知(Notificaton)報(bào)文,用來發(fā)送檢測到的連接錯誤,如參數(shù)不匹配,報(bào)文非法等。
由于BGP只發(fā)送路由變化信息,對帶寬的影響較小,并且適用于各種網(wǎng)絡(luò)拓?fù)洌瑘?bào)文種類僅限4種,一次適用于在互聯(lián)網(wǎng)上傳播大量的路由信息。BGP路由攜帶了豐富的路由屬性,包括可達(dá)路由與不可達(dá)路由,由BGP的路由策略來選擇使用,供每個(gè)自治系統(tǒng)在入口和出口對路由進(jìn)行過濾、選擇和控制,使得BGP是既簡明、靈活、強(qiáng)大。BGP支持無類別域間路由(CIDR),擴(kuò)展性較好。
1 BGP路由協(xié)議的通告原理
與BGP建立關(guān)系的路由叫做BGP鄰居,又稱為對等體。對等體可以在同一個(gè)AS中,也可以在不同的AS中。如果兩個(gè)交換BGP報(bào)文的對等體屬于不同的AS,則該鄰居為外部對等體(external peer)此時(shí)的BGP被稱EBGP(external BGP,外部BGP);如果兩個(gè)交換BGP報(bào)文的對等體屬于同一個(gè)AS,則該鄰居為內(nèi)部對等體(internal peer),此時(shí)的BGP被稱IBGP(internal BGP,內(nèi)部BGP)。通過TCP來建立鄰居關(guān)系,任何兩個(gè)路由器只要可以建立TCP的連接就可以建立鄰居,鄰居可以是直連也可以是非直連。
同一個(gè)自治區(qū)域內(nèi)的邊界路由器之間需要建立BGP連接以確保路由信息能夠在整個(gè)AS內(nèi)傳遞。IBGP對等體之間不一定是物理上直連的,但必須保證邏輯上全連(TCP連接能夠建立即可);EBGP對等體之間在絕大多數(shù)情況下是有物理上的直連鏈路的,但是如果實(shí)在無法實(shí)現(xiàn),也可以配置邏輯鏈接。BGP把從EBGP獲得的路由向它所有的BGP對等體通告(包括IBGP和EBGP);而不向IBGP對等體通告從IBGP獲得的路由。
2 BGP連接屬性
通過自治系統(tǒng)某種內(nèi)部路由協(xié)議發(fā)現(xiàn)和計(jì)算產(chǎn)生的路由信息,傳遞到自治系統(tǒng)的邊界,由自治系統(tǒng)邊界路由器(ASBR)通過EBGP連接傳播到其它AS中。路由在傳播過程中經(jīng)過的若干個(gè)自治系統(tǒng)統(tǒng)稱為過渡自治系統(tǒng)。過渡自治系統(tǒng)的邊界路由器之間運(yùn)行IBGP來交換路由信息。自治系統(tǒng)內(nèi)部的路由器只需維護(hù)設(shè)備間的IP連通性,并不與外部路由器交換數(shù)據(jù)。路由到達(dá)自治系統(tǒng)邊界后,若內(nèi)部路由器需要知道這些外部路,ASBR可以將路由引入內(nèi)部路由協(xié)議。如果外部路由的數(shù)量巨大,超出內(nèi)部路由器的處理能力,就需要通過過濾和聚合引入外部路由,以減少路由的數(shù)量,或者使用默認(rèn)路由。
從鄰居接受或者從IGP引入,是自治系統(tǒng)邊界路由器路由的主要來源。ASBR收到路由后,根據(jù)其屬性對其進(jìn)行過濾和設(shè)置,如設(shè)置AS路徑等等。如果BGP從多個(gè)鄰居收到同目的地的路由,將會篩選出最好的路由并加入IP路由表。對于IGP路由,則要經(jīng)過引入策略的過濾和設(shè)置。BGP發(fā)送優(yōu)選的BGP路由和引入的IGP路由給鄰居。
3 BGP的基本屬性和功能
BGP路由屬性是一些參數(shù)的集合,通過這些參數(shù)對路由屬性的描述,使得BGP能夠過濾和選擇合適的路由。這些屬性又分為:如果是不能處理的可選過渡屬性,則接受該屬性,并把它向前傳遞給其它BGP路由器,如果該屬性非過渡,則不能再向前傳播。必遵屬性是每個(gè)路由必須具有的屬性,如下一跳,可選屬性則可以省略,如團(tuán)體。下邊分別做簡要說明。
3.1 AS路徑屬性
是路由器發(fā)送的包含BGP度量質(zhì)量的關(guān)于目的地網(wǎng)絡(luò)的BGP更新消息,BGP更新消息中包含屬性類型屬性長度,屬性值三種。路由經(jīng)過自治區(qū)域并記錄相關(guān)屬性數(shù)據(jù),BGP不接受路徑屬性中和本自治系統(tǒng)相同屬性號的路由,因此BGP協(xié)議將自己的特征數(shù)據(jù)放到自治區(qū)域路徑頭部,以避免出現(xiàn)路由環(huán)路,并幫助選取最佳路由。BGP在向EBGP鄰居通告一條路由時(shí),要把自己的自治系統(tǒng)號加入到路徑屬性中,以記錄此路由通過的AS區(qū)域信息。同時(shí),AS路徑屬性也在影響路由選擇。在其它因素相同的情況下,選擇AS路徑較短的路由。
3.2 下一跳屬性
BGP的下一跳屬性與EBGP是相同的,都是通告鄰居的地址,與IGP有所不同。BGP在向EBGP鄰居通告路由時(shí),下一跳屬性是本地BGP與對端連接的端口地址。而在其它情況下,BGP使用第三方的下一跳,如IBGP對從EBGP對等體獲得的下一跳不加改變的在自治系統(tǒng)內(nèi)傳遞。BGP在向IBGP通告從其它EBGP得到的路由時(shí),不改變路由的下一跳屬性,本地BGP將從EBGP得到的路由的下一跳屬性直接傳遞給IBGP。
4 總結(jié):BGP的應(yīng)用時(shí)機(jī)
BGP是一個(gè)非常復(fù)雜的路由協(xié)議,并且一般不同的自治系統(tǒng)之間的路由不一定需要使用BGP。靜態(tài)路由和默認(rèn)路由可以代替BGP,根據(jù)網(wǎng)絡(luò)的具體情況進(jìn)行選擇。
以下是應(yīng)當(dāng)使用靜態(tài)或默認(rèn)路由來代替BGP的情況:網(wǎng)絡(luò)中的路由器處理能力較低,網(wǎng)絡(luò)中包含的路由器數(shù)目太大;本網(wǎng)的AS只和另外一個(gè)AS相連,沒有策略的執(zhí)行;網(wǎng)絡(luò)帶寬較窄需要應(yīng)用BGP的情況是:網(wǎng)絡(luò)信息流需要策略的控制;本網(wǎng)的AS與多個(gè)AS有連接,本網(wǎng)AS將成為過渡AS;通過不通的因特網(wǎng)服務(wù)商與另一個(gè)AS相連。
以上只是部分使用(或不使用)BGP的原因。在實(shí)際中是否使用BGP、如何使用,要根據(jù)具體的網(wǎng)絡(luò)、帶寬、設(shè)備情況進(jìn)行設(shè)置和應(yīng)用。
參考文獻(xiàn):
[1]張建偉.BGP路由沖突解決方案的研究[J].計(jì)算機(jī)工程與應(yīng)用,2011(47).
[2]王東.BGP路由協(xié)議應(yīng)用探討[J].重慶科技學(xué)院學(xué)報(bào),2011(08).
作者單位:武漢軟件工程職業(yè)學(xué)院,武漢 430205