BGP 路由技術

Nipengliang發表於2020-09-27

BGP概述

BGP特徵

傳輸協議:TCP、埠號:179
BGP 是外部路由協議,用來在AS之間傳遞路由資訊,是一種增強的路徑向量路由協議;
擁有可靠的路由更新機制,具有豐富的Metric度量方法;
無環路協議設計,為路由條目附帶多種屬性資訊;
支援CIDR(無類別域間選路),豐富的路由過濾和路由策略;
無需週期性更新,路由更新時只傳送增量路由;
週期性傳送keepAlive報文以保持TCP連通性。

TCP連線的建立與中止

建立:三次握手

在這裡插入圖片描述

中止:四次斷開

在這裡插入圖片描述

BGP報文型別

執行bgp的路由器稱之為bgp speaker,它們之間會交換五種型別的報文。
Open:負責和對等體建立鄰居關係,主要包括bgp版本、AS號等資訊;試圖建立bgp鄰居關係的兩個路由器在建立了tcp會話連線之後開始交換open資訊以確認能否形成鄰居關係。
Keepalive:該報文在對等體之間週期性的傳送,用於判斷對等體之間的可達性,實現bgp鄰居關係的維護。
Update:該報文用於在對等體之間交換路由資訊,其中包括撤銷路由資訊和可達路由資訊及其各種路由屬性,是五個報文中最重要的。
Notification:bgp的差錯檢驗機制,一旦檢測到任何形式的差錯,bgp speaker 會傳送一個notification報文,隨後與之相關的鄰接關係將被關閉。
Route-refresh:用來通知bgp對等體自己支援路由重新整理能力。

BGP工作原理

BGP鄰居關係

Idle(空閒)
idle是bgp連線的第一個狀態,在空閒狀態,bgp在等待一個啟動事件。啟動事件出現以後,bgp初始化資源,復位連線重試計時器(connect-retry),發起一條tcp連線,同時接入connect狀態。
Connect(連線)
在connect狀態,bgp發起第一個tcp連線,如果連線重試計時器超時,就重新發起tcp連線,並繼續保持在connect狀態,如果tcp連線成功,就轉入opensent狀態,如果tcp連線失敗,就轉入active狀態。
Active(活躍)
在active狀態,bgp總是在試圖建立tcp狀態,如果連線重試計時器超時,就退回到connnect狀態,如果tcp連線成功,就轉入opensent狀態,如果tcp連線失敗,就繼續保持在active狀態,並繼續發起tcp連線。
Opensent(開啟訊息已傳送)
在opensent狀態,tcp連線已經建立,bgp也已經傳送了第一個open報文,剩下的工作,bgp就在等待其對等體傳送open報文,並對收到的open報文進行正確的檢查,如果有錯誤,系統就會傳送一條出錯通知訊息並退回到idle狀態。如果沒有錯誤,bgp就開始傳送keepalive報文,並復位keepalive計時器,開始計時,同時轉入openconfirm狀態。
Openconfirm(開啟訊息確認)
在openconfirm狀態,bgp傳送一個keepalive報文,同時復位保持計時器,如果收到一個keepalive報文,就轉入established階段,bgp鄰居關係就建立起來了,如果tcp連線中斷,就退回到idle狀態。
Established(連線已建立)
在Established狀態,bgp鄰居已經建立,這時,bgp將和它的鄰居們交換update報文,同時復位保持計時器。

通告BGP路由的方式:network/import方式

BGP的配置

對等體互動原則

1、從ibgp對等體獲得的bgp路由,bgp裝置只傳遞給它的ebgp對等體
2、從ebgp對等體獲得的bgp路由,bgp裝置傳遞給它所有ebgp和ibgp對等體(對等體是ibgp只能傳送一跳,對等體是ebgp則不限制)
3、當存在多條到達同一目的地址的有效路由時,bgp裝置只將最優路由釋出給對等體
4、路由更新時,bgp裝置只傳送更新的bgp路由
5、所有對等體傳送的路由,bgp裝置都會接收
6、所有ebgp對等體在傳遞過程中,下一跳改變
7、所有ibgp對等體在傳遞過程中,嚇一跳不變
8、預設ebgp傳遞時TTL值為1
9、預設ibgp傳遞時TTL值為255

BGP屬性

起源屬性(origin)

無法改變,IGP優先順序高於egp,egp優先順序高於incomplete

AS路徑(as-path)屬性

適用於igp/egp,越短越優先

下一跳(next-hop)屬性

不建議改

local-pref屬性

適用於IBGP,本地優先順序,越大越優

MED屬性

適用於EBGP,med值越小,鏈路越優先

BGP選路原則

1、若去往目的網路的路由下一跳不可達,則可以忽略此路由
2、Preferred-value優先順序以數值高的路由優先
3、local-preference優先順序以數值高的路由優先
4、聚合路由優先順序高於非聚合路由
5、本地手動聚合路由的優先順序高於本地自動聚合的路由
6、本地通過network命令引入的路由的優先順序高於本地通過import-route命令引入的路由
7、AS路徑長度最短(最少個數)的路徑優先順序高
8、比較origin屬性,igp優先順序高於egp,egp優先順序高於incomplete
9、選擇med優先順序較小的路由
10、ebgp路由優先順序高於ibgp路由
11、bgp優先選擇到bgp下一跳的igp度量(metic)低的路程

相關文章