瞭解下運營商或大型網路中的BGP協議

安全劍客發表於2019-12-17
邊界閘道器協議(英語:Border Gateway Protocol,縮寫:BGP)是網際網路上一個核心的去中心化自治路由協議。 它透過維護IP路由表或'字首'表來實現自治系統(AS)之間的可達性,屬於向量路由協議。
一、瞭解BGP協議

BGP 是一種路徑向量路由協議,用於傳輸自治系統間的路由資訊,BGP 在啟動的時候傳播整張路由表,以後只傳播網路變化的部分觸發更新它採用 TCP 連線傳送資訊,埠號為 179 在 Internet 上,BGP 需要通告的路由數目極大,由於 TCP 提供了可靠的傳送機制,同時 TCP 使用滑動視窗機制,使得 BGP 可以不斷地傳送分組,而無需像 OSPF 或 EIGRP 那樣停止傳送並等待確認。

1. 使用 BGP 一般有如下情況:

一個 AS 允許包穿越它,到達其他的 AS
一個 AS 連線多個 AS
必須對資料流進入和離開 AS 進行控制

2. 不使用 BGP 一般有如下情況:

AS 只有一個出口
AS 的所有出口均為 1 個 ASP
路由效能不高,記憶體較小,CPU 較慢,頻寬不大

3. 認識BGP AS-Path

BGP 是路徑向量協議,它使用一個 AS 號列表,資料包必須透過這些 AS 才能到達目的,同時對產生的 AS-path 做一定的策略。AS-Path 對於路由環路非常容易檢測到,如果路由器接受到一條含有本地 AS 號的 AS-path,說明出現環路。BGP 沒有給出每個 AS 域內的拓撲結構,因此 BGP 只能看到 AS 樹,而 IGP 只能看到 AS 域內拓撲結構.
瞭解下運營商或大型網路中的BGP協議瞭解下運營商或大型網路中的BGP協議
瞭解下運營商或大型網路中的BGP協議瞭解下運營商或大型網路中的BGP協議
當某個特殊目的網路有並列的,等開銷的路徑時,Cisco 預設執行 EBGP 只選擇一條路徑,但可以使用 maximum-paths改變並行路徑預設的最大數目,但僅對 EBGP 有效

二、BGP訊息型別
1. Open

TCP 對話建立以後,兩個鄰居都要傳送一個 Open 訊息,每個鄰居都用該訊息來標示自己,並規定自己的 BGP 執行引數。

BGP version:它明確了發起者正在執行的 BGP 版本號(2,3,4),可以透過 neighbor version 修改,預設版本號為 4。如果版本號不相同,路由器將自動降低版本號重發 Open 訊息,直到版本一致
AS number:發起會話路由器的 AS 號,用於確認 EBGP 或者 IBGP 會話
Hold time:路由器必須收到一個 keepalive 或者更新訊息之前允許經過的最大秒數。Holdtime 必須是 0(在這種情況下,必須是沒有傳送 Keepalive)或者至少 3s Cisco 預設的 holdtime 為 180s,如果兩個鄰居間 holdtime 不一致,選較短的那個做為兩者可接受的時間
BGP router-ID:選取方式和 OSPF 相同,使用數值最大的 loopback 口地址,沒有 loopback 則使用物理介面上數值最大的地址
Optional parameters:用於一些可選功能的支援.例如鑑別,多協議支援及路由重新整理等

2. Keepalive

如果路由器接受了他在鄰居的 Open 訊息中的引數,它就會傳送一個應答的 Keepalive 訊息。

預設情況 Keepalive 間隔 60s,或者是達成一致的保持時間的 1/3

3. Update

Update message 用來公佈可用的路由,撤銷的路由或者兩者兼顧Network Layer Reachability Information (NLRI)用來公佈 IP 地址字首和字首長度的位元組組,例如<19,198.24.160.0>Path Attributes該屬性為 BGP 提供了選擇最短路徑,檢查到路由環路以及決定路由策略的資訊Withdrawn Routes用來描述已經變成不可達並正從業務中撤銷的目的地址位元組組(長度和字首)雖然 NLRI 欄位可以包含多個字首,但每一個更新訊息只描述一條 BGP 路由(因為路徑屬性只描述一條路徑,但該路徑可能會到達多個目的地)

4. Notification

當檢測到差錯的時候就會傳送 Notification 訊息,通常會導致 BGP 連線終止。
瞭解下運營商或大型網路中的BGP協議瞭解下運營商或大型網路中的BGP協議

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2668911/,如需轉載,請註明出處,否則將追究法律責任。

相關文章