BGP路由協議
BGP路由協議
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由一個管理機構管理,至少在外部看來它代表著該系統的路由信息。
當我們說一個在兩個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.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用來在多個自治系統間傳遞路由信息。其信息流如右圖示:
這張圖表說明,在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發言人所在的自治系統。
BGP機房就是伺服器租用商通過技術的手段,實際不同運營商能共同訪問一個IP,並且不同運營商之間都能達到最快的接入速度的相關網路技術。
BGP機房在一定程度上解決了各用戶南北互通的問題,提高了用戶的訪問速度,用BGP協議實現的單IP雙線路的效果。該方案就是通過BGP協議,直接將其中一條線路的IP映射另外一條線路IP上,當訪客瀏覽你的網站時,會自動根據實際情況選擇訪問速度最快的線路,這樣各個運營商的用戶都能達到最佳的訪問速度。
1. 租用的伺服器只有一個IP,用戶的訪問路線是由路由器根據訪客的實際訪問速度選擇最優訪問路徑,來選擇訪問的。而且不佔用任何的伺服器資源。伺服器的上行和下行都是有路由器來選擇最佳的路線,所以這樣能夠真正的做到各運營商之間都達到最佳的訪問速度實現真正的BGP效果。
2. 由於BGP協議本身具有冗餘備份、消除環路的特點,所以當你託管或者租用的伺服器出現故障時,能實現互相備份。同時自動切換到其它線路去,並且不影響正常訪問。
3. BGP伺服器租用還有較好的拓展性和融合性,可以實現和其它運營商互聯互通,輕鬆實現單IP多線路,做到所有互聯運營商的用戶訪問都很快。這是雙IP雙線伺服器租用所不能實現的。