BGP 是一種路徑矢量路由協議,用于傳輸自治系統間的路由信息,BGP 在啟動的時候傳播整張路
由表,以後隻傳播網絡變化的部分觸發更新,它采用 TCP 連接傳送信息,端口号為 179,在 Internet
上,BGP 需要通告的路由數目極大,由于 TCP 提供了可靠的傳送機制,同時 TCP 使用滑動窗口機
制,使得 BGP 可以不斷地發送分組,而無需像 OSPF 或 EIGRP 那樣停止發送并等待确認。
BGP 是路徑矢量協議,它使用一個 AS 号列表,數據包必須通過這些 AS 才能到達目的,同時
對産生的 AS-path 做一定的策略。AS-Path 對于路由環路非常容易檢測到,如果路由器接受到一
條含有本地 AS 号的 AS-path,說明出現環路。
BGP 具有 4 種消息類型
1. Open
2. Keepalive
3. Update
4. Notification
Open Message
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
用于一些可選功能的支持.例如鑒别,多協議支持及路由刷新等如果路由器接受了他在鄰居的Open消息中的參數,它就會發送一個應答的Keepalive消息。
默認情況 Keepalive 間隔 60s,或者是達成一緻的保持時間的 1/3
Update Message
Update message 用來公布可用的路由,撤銷的路由或者兩者兼顧
Network Layer Reachability Information (NLRI)
用來公布 IP 地址前綴和前綴長度的字節組,例如<19,198.24.160.0>
Path Attributes
該屬性為 BGP 提供了選擇最短路徑,檢查到路由環路以及決定路由策略的信息
Withdrawn Routes
用來描述已經變成不可達并正從業務中撤銷的目的地址字節組(長度和前綴)
注:雖然 NLRI 字段可以包含多個前綴,但每一個更新消息隻描述一條
BGP 路由(因為路徑屬性隻描述一條路徑,但該路徑可能會到達多個目的地)
Notification Message
當檢測到差錯的時候就會發送 Notification 消息,通常會導緻 BGP 連接終止,例如使用
Notification 消息進行 BGP 版本的協商
三、BGP有限狀态機
1 BGP 開始
2 BGP 結束
3 BGP 傳輸連接打開
4 BGP 傳輸連接終止
5 BGP 傳輸連接打開失敗
6 BGP 傳輸緻命差錯
7 重試連接計時器超時
8 持續時間終止
9 Keepalive 計時器終止
10 收到 Open 消息
11 收到 Keepalive 消息
12 收到 Update 消息
13 收到 Notification 消息
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!