BGP 是網際網路的路由協定,它透過交換路由資訊和可達性資訊來管理資料包在網路間的路由方式。以下是 BGP 協議基礎與核心機制
BGP 基礎與自動化 (Auto BGP)
4200000000。eBGP vs. iBGP
AS_Path 屬性來防止路由環路 (Loop)。BGP 路徑選擇演算法 (Path Selection)
當有多條路徑時,BGP 會依序按以下優先順序選路:
BGP Unnumbered (無 IP 介面 BGP)
這是現代資料中心非常熱門的技術:
自治系統 (Autonomous System, AS)
AS 是由單一管理實體控制的網路集合,擁有獨立的路由策略。
ASN 64,512 到 65,534 是 16 位元 ASN 範圍內的私有 ASN,而 4,200,000,000 到 4,294,967,294 是擴展 32 位元範圍內的私有 ASN。
BGP 傳輸層與會話建立
BGP 使用 TCP 協議 (Port 179) 作為可靠的傳輸協議,在 BGP 路由器(或稱為 BGP speakers)之間建立 TCP 連線會話。
無自動發現機制:BGP 鄰居關係必須透過手動配置來定義。
路由交換:當 TCP 連線建立後,BGP 對等體會先交換完整的 BGP 路由表;之後只傳送增量更新 (incremental updates)。
Keepalive 與 Hold Time:在沒有路由更新時,BGP 對等體會交換 Keepalive 訊息以維持會話活躍。
下面是 Cumulus 預設值,單位為秒
$ nv show vrf default router bgp timers
operational applied
--------------------- ----------- -------
keepalive 3
hold 9
connection-retry 10
route-advertisement none
conditional-advertise 60
router id 要在對等端之間建立 BGP 會話,BGP 必須具有路由器 ID,該 ID 會在建立 BGP 會話時通過 OPEN 消息發送給 BGP 對等端。
BGP session 是兩個 BGP 路由器之間建立的鄰接關係
BGP 鄰居狀態機 (Finite-State Machine, FSM)
BGP 使用 FSM 來維護與所有 BGP 對等體的操作狀態。一個典型的 BGP 會話會經歷以下幾個關鍵狀態: