一、介紹算法
BGP是自治系統間的路由協議。BGP交換的網絡可達性信息提供了足夠的信息來檢測路由迴路並根據性能優先和策略約束對路由進行決策。特別地,BGP交換包含所有AS path的網絡可達性信息,按照配置信息執行路由策略。網絡
隨着近年來互聯網的進步和增加,它也不得不面對一些嚴重的規模問題,包括:ide
-B類網絡地址空間的耗盡。該問題的主要緣由之一,是缺乏適於 中型組織的中等大小的網絡;C類網絡,最多擁有254個主機地址,實在太少,而B類網絡容許最多65534個地址,卻又太大沒法充分使用。性能
-互聯網路由器中路由表的增加使目前的軟件(和人們)沒法有效管理。學習
-32位IP地址空間的耗竭。設計
很明顯,前兩個問題和最後一個問題可能分別在從此一兩年內和三年內變得急迫。無類別域間路由(CIDR)試圖解決這些問題,設計相應機制來下降路由表和對新IP網絡分配需求的增加速度。它並無解決更具長期性的第三個問題,而是努力讓近期問題推遲使得互聯網仍能有效運做,同時着手遠期的解決方案。進程
BGP-4對BGP-3作了擴展,支持路由信息的聚合及基於無類別域間路由體系(CIDR)的路由減小。本備忘錄論述了BGP-4在互聯網中的應用。路由
本文檔的全部討論基於以下假設:互聯網是一些隨意鏈接的自治系統的集合。也就是說,互聯網能夠建模成一張通常的網絡圖,圖上節點是AS,邊是每對AS間的鏈接。文檔
自治系統的經典定義是,一組路由器在統一管理之下,在AS內使用內部網關協議和統一度量來路由數據包,而經過外部網關協議將數據包路由到其餘AS。該經典定義尚在發展,一些AS在其內部使用多種內部網關協議和度量。在此,強調一下自治系統在本文檔中的含義,即便它採用多種IGP和度量,它的管理區別於其餘 AS,其內部路由是一致的,當路由穿越它時,它在圖上視做一個節點。每一個AS由一個管理機構管理,至少在外部看來它表明着該系統的路由信息。it
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發言人所在的自治系統。