邊界網關協議,邊界網關協議內容有哪些?
邊界網關協議,邊界網關協議內容有哪些?
介紹
BGP是自治系統間的路由協議。BGP交換的網絡可達性信息提供了足夠的信息來檢測路由回路并根據性能優先和策略約束對路由進行決策(要點見RFC1104[2])。特別地,BGP交換包含全部AS path的網絡可達性信息,按照配置信息執行路由策略。
隨著近年來互聯網的進步和增長,它也不得不面對一些嚴重的規模問題,包括:
-B類網絡地址空間的耗盡。該問題的主要原因之一,是缺少適于中型組織的中等大小的網絡;C類網絡,最多擁有254個主機地址,實在太少,而B類網絡允許最多65534個地址,卻又太大無法充分使用。
-互聯網路由器中路由表的增長使目前的軟件(和人們)無法有效管理。
-32位IP地址空間的耗竭。
很明顯,前兩個問題和最后一個問題可能分別在今后一兩年內和三年內變得急迫。無類別域間路由(CIDR)試圖解決這些問題,設計相應機制來降低路由表和對新IP網絡分配需求的增長速度。它并沒有解決更具長期性的第三個問題,而是努力讓近期問題推遲使得互聯網仍能有效運作,同時著手遠期的解決方案。
BGP-4對BGP-3做了擴展,支持路由信息的聚合及基于無類別域間路由體系(CIDR)[3]的路由減少。本備忘錄論述了BGP-4在互聯網中的應用。
本文檔的所有討論基于如下假設:互聯網是一些隨意連接的自治系統的集合。也就是說,互聯網可以建模成一張一般的網絡圖,圖上節點是AS,邊是每對AS間的連接。
自治系統的經典定義是,一組路由器在統一管理之下,在AS內使用內部網關協議和統一度量來路由數據包,而通過外部網關協議將數據包路由到其他AS。該經典定義尚在發展,一些AS在其內部使用多種內部網關協議和度量。在此,強調一下自治系統在本文檔中的含義,即使它采用多種IGP和度量,它的管理區別于其他 AS,其內部路由是一致的,當路由穿越它時,它在圖上視作一個節點。
每個AS由一個管理機構管理,至少在外部看來它代表著該系統的路由信息。
BGP拓撲模型
當我們說一個在兩個AS之間的連接時,意味著兩件事:
物理連接:兩個AS之間存在一條共享的數據鏈路子網,并且在該子網上,每個AS至少有一臺自己的邊界網關路由器。因此,每個AS的邊界網關路由器可以轉發數據包到其他AS的邊界網關路由器,無需借助于AS內到AS間的路由。
BGP連接:在各個AS的BGP發言人之間有一個BGP會話進程,通過會話溝通路由,經過聲明的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之間的連接拓撲加以任何限制。
互聯網中的BGP
1 拓撲學考慮
互聯網拓撲可以視作過渡AS、多宿主AS和末端AS的任意互連。為了盡可能減少對目前互聯網結構的影響,末端和多宿主AS不一定要使用BGP。這些AS 可以運行其他的協議(比如,EGP)來與過渡AS交換網絡可達性信息。使用BGP的過渡AS將對這些信息做標記,以表明其學習自BGP以外的方法。BGP 不一定運行于末端或多宿主AS,這就不會對源于或終于末端AS或多宿主AS的數據包的AS間路由質量產生負面影響。
然而,仍然建議在末端和多宿主AS上使用BGP。在這些情況下,BGP相比其他目前使用的協議(比如EGP),可以提供更優的帶寬和性能。另外,這將減少默認路由的使用,為多宿主AS的AS間路由提供更好選擇。
2 BGP的整體特性
整體水平上,BGP用來在多個自治系統間傳遞路由信息。在AS間只用BGP傳輸信息,而在AS內BGP和IGP均可以傳輸信息。確保AS內BGP和IGP間路由信息的兼容性,是一個重大問題,最后將在附錄A中詳細討論。
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(參見A.2.2),可以用來探測可能的矛盾。
對于外部對等體,對等體分別屬于不同的AS,但共享同一數據鏈路子網。這共同的子網用來在對等體之間運輸BGP信息。如果BGP使用通過一個干預的AS,則將使AS path信息無效。自治系統號必須在BGP中使用,用來標明BGP發言人所在的自治系統。
4 路由聚合的需要
當路由信息由各部分聚合時,一致的BGP-4實現需要對其聲明。例如,一個在自治系統邊界的BGP發言人必須能產生某目標IP集合的聚合路由(在BGP -4 術語中該目標IP集合稱為網絡層可達性信息,NLRI),在它基礎上進行管理(包括路由器自身代表的地址),即使當這些地址不是同時全部可達的。
當聚合的NLRI產生時,一致實現應能給予聲明。
當NLRI解聚合時,一致實現應能給予聲明。
當出現重疊路由時,一致實現應能支持如下選項:
-安裝聚合和詳細的路由
-只安裝詳細路由
-安裝聚合路由
-均不安裝
一定的路由策略可能依賴于NLRI(比如,"研究"與"商業")。因此,一個運行路由聚合的BGP發言人,可能的情況下,應該能認知聚合NLRI時路由策略的潛在實現。
5 BGP的策略生成
BGP通過各種路由參數選擇和約束,實現策略。策略并不直接編入協議。而是,策略通過BGP的配置信息來實現。
BGP實現策略的途徑有,影響從多條路徑中的選擇,控制路由信息的下步傳遞。策略由AS的管理者決定。
路由策略與政治、安全或經濟考慮有關。
例如,如果一個AS不愿意將流量運輸到其他AS,它可以制定策略來禁止。如下是一些能夠改變BGP使用的路由策略的例子:
a. 一個多宿主AS可以拒絕成為其他AS的過渡AS。(它只告知那些目標網絡在自己AS內部的路由。)
b. 一個多宿主AS可以指定成為幾個相鄰AS的過渡AS,也就是說,一部分而不是全部AS,可以把該多宿主AS作為過渡AS。(它只把它的路由信息告知被允許的AS。)
c. 一個AS向外運輸流量時,可以決定是否偏愛特定的AS。
BGP應用可以控制許多性能相關的標準:
a. 一個AS可以最少化過渡AS的數目。(AS path越短,越可能被采用。)
b. 過渡AS的權重。如果一個AS決定,兩個以上的AS path可以用來到達目標網絡,那么,AS可以使用多種方法來決定采納哪個候選AS path。一個AS的權重值由以下幾個因素決定:徑向距離,鏈路速度,容量,擁塞的趨勢,和運行質量。這些性能值可以由BGP以外的方法決定。
c. 優先考慮內部路由,而不是外部路由。
為了一個AS的統一性,那些產自策略和/或正常路由選擇過程的等值路徑,必須以一致的方式解決。
BGP的基礎,是這樣一個規則:一個AS只把自己使用的路由通知給相鄰的AS。該規則反映了目前互聯網常用的"一跳接一跳"的路由方式。
6 BGP的路徑選擇
BGP 發言人的一項主要任務,是評價諸條從自身出發到那些用網絡前綴表達的目的地的路徑,從中選出最優,應用合適的策略約束,然后將它通知給所有的BGP鄰居。關鍵問題是如何評價和比較這些不同的路徑。傳統的距離向量協議(比如RIP)中,每條路徑只有一個度量。因此,不同路徑的比較簡化為兩個值的比較。AS間路由的復雜性,源自人們在如何評價外部路由的問題上缺少共同認可的度量。于是,每個AS擁有自己的一套對路徑的評價指標。
BGP發言人構建的路由數據庫,由所有可用的路徑和每條路徑可達的目標集合(表達為網絡前綴)組成。為了達到前面討論的目的,考慮目標網絡所對應的可用路徑,是有用的。大多數情況下,我們期望找到唯一一條可用路徑。但是,當不是這樣時,所有可用的路徑應當保存,當主要路徑缺失時,保存能以最快的速度適應,(產生新的主要路徑)。任何時候,只有主要路徑才會被廣播。
路徑選擇過程可以形式化為,對所有可用路徑及相對應的目標IP,定義完整的優先級。定義這種優先級的一種方法,是定義一個函數,將每條完整的AS path映射成一個非負整數,用來表示該路徑的優先級。路徑選擇于是簡化為,將該函數應用到所有可用路徑,再選擇最高的優先級。
在真實的BGP實現中,為路徑分配優先級的標準在配置信息中說明。
為路徑分配優先級的過程源于以下幾個信息:
a. 整條AS path顯示的信息
b. 由AS path和BGP以外信息(比如,配置信息中的路由策略約束)引申出來的混合信息。
為路徑分配優先級的可能的標準為:
-AS數目。AS越少,該條路徑越好。
-策略考慮。BGP對基于策略路由的支持,源于對分布式路由信息的控制。 一個BGP發言人可能知道幾條策略約束(包括自身AS的內外),進行合適的路徑選擇。不遵從策略要求的路徑不被考慮。
-某些AS是否在路徑中存在。依靠BGP以外的信息,一個AS可以知道某些AS的一些性能特點(比如,帶寬,MTU,AS間徑向距離),然后選擇偏愛程度。
-路徑起源。由BGP學習而來的整條路徑(也就是說,路徑終點與路徑的上一個AS在BGP內部)相比那些部分學習自EGP及其他方法的路徑,是更優的。
-AS path子集。通往同一目的地,一個較長AS path的子集將受到偏愛。在該較短AS path中存在的任何問題都也是較長AS path的問題。
-鏈路動態。穩定的路徑比不穩定的路徑更受歡迎。注意,這個標準應被小心使用,避免出現路由抖動。一般來說,任何依賴于動態信息的標準都可能引發路由不穩定,所以應謹慎對待。
支持路由策略的必備集合
BGP策略以配置信息的形式實現。該信息不直接編入協議。因此,BGP可以提供非常復雜的路由策略。但是,并不要求所有的BGP實現支持這些策略。
我們不試圖將路由策略標準化使其適用于每個BGP實現,強烈鼓勵所有的實現支持如下的路由策略集:
1. BGP實現應允許一個AS控制向相鄰AS廣播由BGP學習來的路由。實現還應支持對地址前綴大小的控制。實現還應支持對自治系統大小的控制,不管該自治系統是起源,還是鄰居。如果某路由對某外部對等體按上述控制聲明,則需注意該路由不能向那個對等體通告。特別地,本地系統必須明確向那個對等體通告,該路由現在不可用。
2. BGP實現應允許一個AS對某條路徑優先考慮(當存在多條可用路徑時)。實現至少具備以下相同功能,允許管理者對來自鄰居的路由設置優先級。優先級的大小應在0到2^(31)-1之間。
3. BGP實現應允許一個AS忽略某些在AS_PATH屬性中存在特定AS的路由。該功能的實現,可以使用[2]中說明的技術,設置這些AS的"weight"為"infinity"。路由選擇過程必須忽略那些"weight"為"infinity"的路由。
與其他外部路由協議的關系
本部分建議的指導方針與[3]中陳述的指導方針一致。
一個AS應通告它內部目標網絡的最小聚合及與實際使用的地址空間的關系。這可以被非BGP-4的AS的管理者用來決定從某條聚合路由可以解聚出多少路由。
一個攜帶ATOMIC_AGGREGATE路徑屬性的路由,不應傳遞于BGP-3或EGP2,除非這種傳遞不出現路由NLRI的解聚。
1 與EGP2交換信息
為過渡順利,一個BGP發言人EGP2和BGP-4都可以參與。因此,一個BGP發言人接收IP可達性信息,可能產自EGP2,也可能產自BGP-4。由 EGP2產生的信息,將ORIGIN路徑屬性設為1后,可插入BGP-4。同樣地,由BGP-4產生的信息也可以插入EGP2。但是,第二種情況,當從 BGP-4接收來的IP前綴代表連續的A/B/C類網絡集合時,應清楚潛在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入時,要求BGP發言人將相應的網絡插入EGP2。本地系統將提供控制EGP2與BGP-4之間可達性信息交換的機制。特別地,當把來自BGP-4的可達性信息插入EGP2 時,一個一致實現要求支持所有如下選項:
-插入默認的(0.0.0.0),不傳遞其他NLRI
-允許受控的解聚,但只對特定路由;
-允許傳遞非聚合的NLRI
-允許只傳遞非聚合的NLRI
在一個參與BGP-4的BGP發言人和一個單純的EGP2發言人之間以EGP2交換路由信息的情況,只可能發現在域(自治系統)邊界。
2 與BGP-3交換信息
為過渡順利,一個BGP發言人BGP-3和BGP-4都可以參與。因此,一個BGP發言人接收IP可達性信息,可能產自BGP-3,也可能產自BGP-4。
一個BGP發言人可能按如下方式將來自BGP-4的信息插入到BGP-3。
如果一條BGP-4路由的AS_PATH屬性帶有AS_SET路徑段,那么,BGP-3路由的AS_PATH屬性應為將此AS_SET段視作 AS_SEQUENCE段,最后的AS_PATH為單純的一個AS_SEQUENCE。這個過程損失了set/sequence信息,但不影響預防路由回路,但可能影響策略,如果策略是建立在AS_PATH屬性的內容或順序上的話。 把源自BGP-4的NLRI插入BGP-3,當從BGP-4接收來的IP前綴代表連續的A/B/C類網絡集合時,應清楚潛在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入時,要求BGP發言人將相應的網絡插入BGP-3。本地系統將提供控制BGP-3與BGP-4之間可達性信息交換的機制。特別地,當把來自BGP-4的可達性信息插入BGP-3時,一個一致實現要求支持所有如下選項:
-插入默認的(0.0.0.0),不傳遞其他NLRI
-允許受控的解聚,但只對特定路由;
-允許傳遞非聚合的NLRI
-允許只傳遞非聚合的NLRI
在一個參與BGP-4的BGP發言人和一個單純的BGP-3發言人之間以BGP-3交換路由信息的情況,只可能發現在自治系統邊界。在一個單獨的自治系統內部,所有BGP發言人的會話必須要么是BGP-3,要么是BGP-4,不能是混合體。
在虛擬交換線路上的運作
BGP使用在虛擬交換子網(SVC)上,被要求產生盡可能少的流量。特別地,可能被要求消除由周期性KEEPALIVE消息所產生的流量。BGP包含了一個機制,在虛擬交換線路(SVC)服務運作時,避免SVCs始終開啟,允許它終止周期性KEEPALIVE消息的發送。
本部分論述了如何在沒有周期性KEEPALIVE消息的條件下,使用智能的SVC管理,使SVC使用最少。所提議的方案也適用于"永久"線路,"永久"線路支持類似鏈路質量監測的特性,或者可以顯示請求來決定鏈路連接的狀態。
1 建立BGP連接
通過在OPEN消息中設定Hold Time為0來實現
2 線路管理器特性
線路管理必須具備足夠的功能來彌補周期性KEEPALIVE消息的缺失:
-必須能夠在失敗發生的可預見的有限時間內,確定鏈路層的不可達性。
-關于確定不可達性,應該:
-開啟一個配置死寂的計數器(與典型的保持計數器值相比)。
-試圖重建鏈路層連接。
-如果死寂計數器終止,應該:
-發送一個內部線路DEAD指示給TCP。
-如果連接重建,應該
-取消死寂計數器
-發送一個內部線路UP指示給TCP。
3 TCP特性
TCP須做一點修改,來處理來自線路管理器的內部通告:
-DEAD:清除發送隊列,取消TCP連接。
-UP:發送任何隊列數據,或者允許向進程傳遞TCP調用
4 混合特性
一些應用可能無法保證BGP進程和線路管理器統一工作;也就是說,當一個停止或崩潰時,另一個仍獨立存在。
如果這是事實,在BGP進程和線路管理器之間周期性的雙向握手就需要實現。如果BGP進程發現線路管理器死亡,它就關閉所有相關的TCP連接。如果線路管理器發現BGP進程死亡,它將關閉所有與BGP進程相關的連接,拒絕新連接。
?非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
相關閱讀:
- [電子說] EtherCAT從站轉modbus RTU協議轉換網關用modbus slave測試的方法 2023-10-24
- [電子說] 工業 CPE 雙頻網關在工業物聯網中的應用優勢 2023-10-24
- [電子說] 5G RedCap工業智能網關 2023-10-24
- [電子說] DLT698轉modbus協議網關把電能數據接到wincc的方法 2023-10-24
- [電子說] 物通博聯工業采集網關實現水處理除臭設備運行狀態監控 2023-10-24
- [電子說] 工業物聯網解決方案:卷繞機數據采集管理系統 2023-10-24
- [電子說] 快速了解電力IEC104協議規約 2023-10-24
- [電子說] 躍昉動態|躍昉簽署亞洲城市減碳卡澳門合作框架協議 2023-10-24
( 發表人:admin )