BGP--邊界網關協議


要全面了解BGP,首先我們要回答以下看上去很簡單的問題:為什么需要BGP,也就是說BGP是如何產生的,它解決了什么問題。帶着以上問題,我們先簡單的回顧一個路由協議發展的軌跡。

首先路由的實質是描述一個網絡結構的表達方式,路由表其實是一個結果的集合。在早期的ARPANet網絡時代,網絡規模有限,路由數量也不大,因此所有的路由器可以維護整個網絡拓撲,那時候使用的路由協議叫GGP(Gateway-to-Gateway Protocol)。GGP自然成為第一個內部網關協議(IGP)。在1980年左右。當時的網絡管理者遇到了與今天類似的問題:網絡規模擴大導致的路由數量不斷增長。為了解決這種網絡規模的增長問題,提出了自治系統的概念(AS),也可以叫做路由管理域。在AS內部使用一種路由協議,然后在AS之間使用另一種路由協議。這樣做的好處顯而易見,不同的網絡可以自己選擇IGP協議,然后再通過一個統一的AS間協議進行互連就可以了。

在IGP的發展領域中,先是RIP成為IP路由的主流,之后出現了更高級的IGP協議包括OSP和ISIS,這些協議自動化程度更高、更智能更可靠。同一個AS的路由器間是有相互信任關系的,而且這些路由器往往由同樣的管理人員維護,因此IGP的自動發現和路由計算信息泛洪處於完全開放的狀態,人工干預的行為是比較少的。

不同AS互相連接的需求,推動產生了外部網關協議(EGP),EGP的主要目的是在不同的AS之間傳遞路由協議。而不同的AS之間往往是直接相連,大多數AS互聯行為只涉及少量的邊界路由器(ASBR),所以EGP的設計也非常簡單。EGP的RFC827發布於1982年,看上去似乎早於RIP的第一個標准FRC1058,但其實在RFC1058之前,RIP已經被廣泛的使用。在當時,RIP+EGP成為一種標准的路由組合。

EGP被設計的如此簡單,以至於很快就不能滿足網絡管理的要求。EGP單純的發布網絡可達信息,不做任何優選,也沒有考慮環路避免。有人甚至認為EGP算不上是一個路由協議,EGP的眾多缺陷,最終導致被BGP所取代。BGP的第一個FRC1105是1989年發布的,和EGP相比,BGP更像是一個路由協議,具有很多路由協議的特征,比如解決環路問題、收斂問題、觸發更新等等。

就像是不同的企業有各自的企業文化和標准,但是企業間的交往卻要遵循統一的行為規范和標准一樣。對於AS間的路由交互,也必須有一個統一的標准。BGP相比EGP的眾多優勢,使BGP成為唯一的外部網關協議,並廣泛的使用在互連網上。

綜上所述,BGP是為了替代EGP而出現的一個外部網關協議,它必須能夠進行路由優選、路由環路的避免、能夠更高效率的傳遞路由和維護大量的路由。因為BGP部署在不具有完全信任關系的AS之間,因此需要BGP有豐富的路由控制能力,並且可以通過一些簡單統一的方法對BGP進行擴展。

 

--------------------------------------------------------------------------------------

什么是BGP

  BGP(Border Gateway Protocol)即邊界網關協議,是互聯網上一個核心的去中心化自治路由協議。它通過維護IP路由表或‘前綴’表來實現自治系統(AS)之間的可達性,屬於矢量路由協議。 BGP不使用傳統的內部網關協議IGP)的指標,而使用基於路徑、網絡策略或規則集來決定路由。因此,它更適合被稱為矢量性協議,而不是路由協議。

  BGP是為了取代外部網關協議(EGP)協議而創建的,允許運行一個完全分散的路由系統,從ARPANET模型的核心路由系統過渡到包括NSFNET骨干網及其相關區域網絡的分散系統。這使得互聯網成為一個真正的分權制度。自1994年以來,BGP已有四個版本在互聯網上使用,所有以前的版本現在已經過時不可用。在第4版主要的增強功能是通過支持無類別域間路由和路由聚合來減少路由表的大小。第4版是在早期的RFC 1771第4版的基礎上編纂,通過20多個草案修改,最終在2006年1月通過形成RFC 4271RFC 4271版本糾正了一些錯誤,澄清模糊之處,帶來了更接近工業級應用標准的RFC行業慣例。

  大多數互聯網服務提供商(ISP)必須使用BGP來與其他ISP建立路由連接(尤其是當它們采取多宿主連接時)。因此,即使大多數互聯網用戶不直接使用它,但是與7號信令系統(SS7)相比,即通過PSTN的跨供應商核心響應設置協議,BGP仍然是互聯網最重要的協議之一。特大型的私有IP網絡也可以使用BGP。例如當需要將若干個大型的開放最短路徑優先OSPF)網絡進行合並,而開放最短路徑優先協議本身又無法提供這種可擴展性時。使用BGP的另一個原因是其能為多宿主的單個ISP(RFC 1998)或多個ISP網絡提供更好的冗余網絡。

[ 編輯]

BGP使用原則

  ①多條路徑時,BGPSpeaker只選最優的路徑給自己使用。

  ②BGPSpeaker只把自己使用的路由通告給鄰居。

  ③BGPSpeaker從EBGP獲得的路由會向它所有BGP鄰居通告(包括EBGP和IBGP)。

  ④BGPSpeaker從IBGP獲得的路由不向它的IBGP鄰居通告。

  ⑤BGPSpeaker從IBGP獲得的路由是否通告給它的EBGP鄰居要依IGP和BGP同步的情況來決定。

  ⑥連接一旦建立,BGPSpeaker將把自己所有BGP路由通告給新鄰居。

[ 編輯]

BGP屬性[1]

  BGP是一種外部路由協議,與OSPFRIP等的內部路由協議不同,其着眼點不在於發現和計算路由,而在於控制路由的傳播和選擇最好的路由。

  為控制路由的傳播和路由選擇,BGP為路由附帶屬性信息。BGP可在給定的路由上附上很多屬性,因此,IGP使用的路由更新包比BGP使用的路由更新報文更小,這也是IGP和BGP最大的不同之處。

  BGP路由屬性是一套參數,它對特定的路由進行了進一步的描述,使得BGP能夠對路由進行過濾和選擇。在配置路由策略時將廣泛地使用路由屬性,但是不是所有路由屬性都要被用上。路由屬性被分為以下幾類。

  • 必遵屬性:在路由更新數據報文中必須存在的路由屬性,這種屬性域在BGP路由信息中有着不可替代的作用,如果缺少必遵屬性,路由信息就會出錯。如AS-Path就是必遵屬性,BGP用它來避免路由環路,沒有它路由就可能出問題。
  • 可選屬性:它是可選的,不一定存在於路由更新數據報文中,設置它完全是根據需要。如MED屬性,就用它來控制選路。
  • 過渡屬性:具有AS間可傳遞性的屬性就是過渡屬性,過渡屬性的域值可以被傳遞到其他AS中去並繼續起作用。如Origin屬性,路由信息的起源一旦確定,域值會一直存在,無論此路由信息被傳到哪個AS中去。
  • 非過渡屬性:只在本地起作用,出了自治系統,域值就恢復成默認值,如Local preference。以下列出幾種常用屬性的情況,如表所示。

  表:幾種常用屬性

類型代碼 屬性名 必遵/可選 過渡/非過渡
1 Origin 必遵 過渡
2 AS-Path 必遵 過渡
3 Next-hop 必遵 過渡
4 MED 可選 非過渡
5 Local-preference 可選 非過渡
8 Community 可選 過渡

  每個屬性都有特定的含義並可以靈活地運用,使得BGP的功能十分強大。BGP屬性可以擴展到256種。這里列出了一些BGP的常用屬性。

  • Origin起點屬性:定義路徑信息的來源,標記一條路由是怎樣成為BGP路由的。如IGP、EGP和Incomplete等。
  • AS-PathAS路徑屬性:是路由經過的AS的序列,即列出在到達所通告的網絡之前所經過的AS的清單。BGP發言者將自己的AS前置到接收到的AS路徑的頭部,它可以防止路由循環,並用於路由的過濾和選擇。
  • Next-hop下一跳屬性:包含到達更新消息所列網絡的下一跳邊界路由器的 IP地址。BGP的下一跳與IGP有所不同,它可以是通告此路由的對等體的地址,如EBGP,這同IGP是相同的。而在其他情況下,BGP使用第三方的下 一跳,如IBGP對從EBGP對等體獲得的下一跳不加改變地在自治系統內傳遞。在多路訪問媒體上,BGP以路由的實際來源為下一跳,即使它不是BGP對等 體。
  • MED(Multi-Exit-Discriminators)屬性:當某個AS有多個入口時,可以用MED屬性來幫助其外部的鄰居路由器選擇一個較好的人口路徑。一條路由的MED值越小,其優先級越高。
  • Local-preference本地優先屬性:用於在自治系統內優選到達某一個目的地的路由。反映了BGP發言人對每個外部路由的偏好程度。本地優先屬性值越大,路由的優選程度就越高。

Community團體屬性:標識了一組具有相同特征的路由信息,與它所在的IP子網和自治系統無關。公認的團體屬性值有NO-EXPORT、N0一ADVERTISE、LOCALAS和INTERNET。

----------------------------------------------------------------------------

 

 

BGP(自治系統間的路由)協議詳解

 

1、介紹 BGP是自治系統間的路由協議。BGP交換的網絡可達性信息提供了足夠的信息來檢測路由回路並根據性能優先和策略約束對路由進行決策。特別地,BGP交換 包含全部AS path的網絡可達性信息,按照配置信息執行路由策略。 隨着近年來互聯網的進步和增長,它也不得不面對一

  

1、介紹

BGP是自治系統間的路由協議。BGP交換的網絡可達性信息提供了足夠的信息來檢測路由回路並根據性能優先和策略約束對路由進行決策。特別地,BGP交換包含全部AS path的網絡可達性信息,按照配置信息執行路由策略。

隨着近年來互聯網的進步和增長,它也不得不面對一些嚴重的規模問題,包括:

-B類網絡地址空間的耗盡。該問題的主要原因之一,是缺少適於 中型組織的中等大小的網絡;C類網絡,最多擁有254個主機地址,實在太少,而B類網絡允許最多65534個地址,卻又太大無法充分使用。

-互聯網路由器中路由表的增長使目前的軟件(和人們)無法有效管理。

-32位IP地址空間的耗竭。

很明顯,前兩個問題和最后一個問題可能分別在今后一兩年內和三年內變得急迫。無類別域間路由(CIDR)試圖解決這些問題,設計相應機制來降低路由 表和對新IP網絡分配需求的增長速度。它並沒有解決更具長期性的第三個問題,而是努力讓近期問題推遲使得互聯網仍能有效運作,同時着手遠期的解決方案。

BGP-4對BGP-3做了擴展,支持路由信息的聚合及基於無類別域間路由體系(CIDR)的路由減少。本備忘錄論述了BGP-4在互聯網中的應用。

本文檔的所有討論基於如下假設:互聯網是一些隨意連接的自治系統的集合。也就是說,互聯網可以建模成一張一般的網絡圖,圖上節點是AS,邊是每對AS間的連接。

自治系統的經典定義是,一組路由器在統一管理之下,在AS內使用內部網關協議和統一度量來路由數據包,而通過外部網關協議將數據包路由到其他AS。 該經典定義尚在發展,一些AS在其內部使用多種內部網關協議和度量。在此,強調一下自治系統在本文檔中的含義,即使它采用多種IGP和度量,它的管理區別 於其他 AS,其內部路由是一致的,當路由穿越它時,它在圖上視作一個節點。每個AS由一個管理機構管理,至少在外部看來它代表着該系統的路由信息。

2. BGP拓撲模型

當我們說一個在兩個AS之間的連接時,意味着兩件事:

物理連接:兩個AS之間存在一條共享的數據鏈路子網,並且在該子網上,每個AS至少有一台自己的邊界網關路由器。因此,每個AS的邊界網關路由器可以轉發數據包到其他AS的邊界網關路由器,無需借助於AS內到AS間的路由。

BGP連接:在各個AS的BGP發言人之間有一個BGP會話進程,通過會話溝通路由,經過聲明的AS到達某目標網絡。

本文檔中,我們對構成BGP連接的BGP發言人加以額外限制:他們必須是自己直接共享數據鏈路子網。因此,相鄰AS間的BGP會話無需AS內或AS間的路由。超出本文范圍的案例可能與該限制不符。

因此,在每個連接中,每個AS擁有一個以上的BGP發言人和邊界網關路由器,這些BGP發言人和邊界網關路由器分布在共享數據鏈路子網上。注意到, BGP發言人不一定是邊界網關路由器,反之亦然。一條連接上一個AS的BGP發言人聲明的路徑可以被同一個共享子網上其他AS的邊界網關路由器使用,也就是非直接的鄰居是允許的。

一個AS內的流量,要么是源於該AS,要么是終於該AS(也就是說,IP數據包的源IP或目的IP在該AS內)。符合以上描述的流量稱為"本地流量",否則稱為"過渡流量"。BGP使用的主要目的是控制過渡流量。

按照某AS如何處理過渡流量,AS可以分為以下幾類:

末端AS:只連接到一個其他AS。自然地,末端AS只運輸本地流量。

多宿主AS:連接到超過一個的其他AS,但不運輸過渡流量。

過渡AS:連接到超過一個的其他AS,可以運輸本地和過渡流量。

一個完整的AS path提供了有效和簡捷的方式來避免路由回路、消除伴隨距離向量算法的"計數到無窮"問題,因此,BGP沒有對AS之間的連接拓撲加以任何限制。

3. 互聯網中的BGP

3.1 拓撲學考慮

互聯網拓撲可以視作過渡AS、多宿主AS和末端AS的任意互連。為了盡可能減少對目前互聯網結構的影響,末端和多宿主AS不一定要使用BGP。這些AS 可以運行其他的協議(比如,EGP)來與過渡AS交換網絡可達性信息。使用BGP的過渡AS將對這些信息做標記,以表明其學習自BGP以外的方法。BGP 不一定運行於末端或多宿主AS,這就不會對源於或終於末端AS或多宿主AS的數據包的AS間路由質量產生負面影響。

然而,仍然建議在末端和多宿主AS上使用BGP。在這些情況下,BGP相比其他目前使用的協議(比如EGP),可以提供更優的帶寬和性能。另外,這將減少默認路由的使用,為多宿主AS的AS間路由提供更好選擇。

3.2 BGP的整體特性

整體水平上,BGP用來在多個自治系統間傳遞路由信息。其信息流如下圖示:

 

     +-----------+ +------------+

BGP |  BGP  |  BGP  |  BGP   |  BGP

  -------------------+ +--------------------------+   

 |  IGP  |  |  IGP    |

     +------------+    +-----------+

<-AS A--> <--AS B->

這張圖表說明,在AS間只用BGP傳輸信息,而在AS內BGP和IGP均可以傳輸信息。確保AS內BGP和IGP間路由信息的兼容性,是一個重大問題。

3.3 BGP鄰居關系

互聯網視作隨意連接的AS的集合。通過BGP直接連接的路由器就是BGP發言人。BGP發言人可以在同一AS內,也可以在不同AS內。每個AS的BGP 發言人互相通信,遵照每個AS建立的策略,交換網絡可達性信息。對某BGP發言人,如果與其他BGP發言人通信而且那個BGP發言人在不同的AS,則那個其他 BGP發言人稱為外部對等體,而如果在相同的AS內,則稱為內部對等體。

在一個AS內可以有許多BGP發言人並被認為是需要的。通常,如果一個 AS與其他AS有多個連接,則需要多個BGP發言人。所有BGP發言人代表着相同AS,對外保持統一形象。這就要求他們之間保持一致的路由信息。這些路由器可以通過BGP或其他方法互相通信。在同一AS內的所有BGP發言人的策略約束必須一致。一些技術,如使用帶標記的IGP,可以用來探測可能的矛盾。

對於外部對等體,對等體分別屬於不同的AS,但共享同一數據鏈路子網。這共同的子網用來在對等體之間運輸BGP信息。如果BGP使用通過一個干預的AS,則將使AS path信息無效。自治系統號必須在BGP中使用,用來標明BGP發言人所在的自治系統。    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM