iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0

Border Gateway Protocol - BGP

BGP 是網際網路的路由協定,它透過交換路由資訊和可達性資訊來管理資料包在網路間的路由方式。以下是 BGP 協議基礎與核心機制

  1. BGP 基礎與自動化 (Auto BGP)

    • 核心機制:BGP 透過交換路由與可達性資訊來管理網路流量,常用於資料中心的 Clos 拓樸
    • 自治系統 (AS):每個管理單位擁有唯一的 ASN。下面會進行描述。
    • Auto BGP:這是 Cumulus 的特色功能,能自動分配 ASN 以簡化配置。
    • Spine:固定使用 ASN 4200000000
    • Leaf:從特定範圍隨機分配,避免手動配置錯誤。
  2. eBGP vs. iBGP

    • eBGP:用於不同 AS 之間對等連線,eBGP 對等體有不同的 ASN。透過 AS_Path 屬性來防止路由環路 (Loop)。
    • iBGP:用於同一 AS 內部對等連線,iBGP 對等體具有相同的 ASN。
    • 限制:iBGP 路由器不會將從一個 iBGP 同伴學到的路由轉發給另一個 iBGP 同伴。
    • 解決方案:為了解決全連結 (Full Mesh) 的擴展性問題,通常使用 Route Reflector (路由反射器)
  3. BGP 路徑選擇演算法 (Path Selection)

    當有多條路徑時,BGP 會依序按以下優先順序選路:

    1. Weight:權重最高者優先(僅限本地有效)。
    2. Local Preference:本地偏好最高者優先(AS 內部交換)。
    3. Locally Originated:本地產生的路由優先。
    4. Shortest AS Path:AS 路徑最短者優先。
    5. Lowest MED:多出口鑑別值最低者優先。
    6. eBGP 優先於 iBGP
    7. Lowest Router ID:最後比無可比時,選路由器 ID 最小的。
  4. BGP Unnumbered (無 IP 介面 BGP)

    這是現代資料中心非常熱門的技術:

    • 原理:利用 RFC 5549 (ENHE),不需要在每個互聯介面上配置 IPv4 地址。
    • 優點:節省大量的 IPv4 地址空間,簡化配置(Peer 直接建立在 IPv6 Link-local 地址上)。
    • 運作:雖然介面沒有 IPv4,但仍可交換 IPv4 路由資訊,並自動計算下一跳的 MAC 地址。
  5. 自治系統 (Autonomous System, AS)

    AS 是由單一管理實體控制的網路集合,擁有獨立的路由策略。

    • BGP 支援 16 位元和 32 位元 AS 編號。
    • BGP 路由資訊:交換的路由資訊包含目的地的路由前綴 (route prefix)、到達該目的地的自治系統路徑 (AS path),以及多種額外的路徑屬性 (path attributes, PAs)。

    ASN 64,512 到 65,534 是 16 位元 ASN 範圍內的私有 ASN,而 4,200,000,000 到 4,294,967,294 是擴展 32 位元範圍內的私有 ASN。

  6. BGP 傳輸層與會話建立

    BGP 使用 TCP 協議 (Port 179) 作為可靠的傳輸協議,在 BGP 路由器(或稱為 BGP speakers)之間建立 TCP 連線會話。

    • 無自動發現機制:BGP 鄰居關係必須透過手動配置來定義。

    • 路由交換:當 TCP 連線建立後,BGP 對等體會先交換完整的 BGP 路由表;之後只傳送增量更新 (incremental updates)。

    • Keepalive 與 Hold Time:在沒有路由更新時,BGP 對等體會交換 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 沒有路由器 ID,它無法與任何 BGP 鄰居建立對等連線

    BGP session 是兩個 BGP 路由器之間建立的鄰接關係

  7. BGP 鄰居狀態機 (Finite-State Machine, FSM)

    BGP 使用 FSM 來維護與所有 BGP 對等體的操作狀態。一個典型的 BGP 會話會經歷以下幾個關鍵狀態:

    1. Idle:初始狀態,嘗試啟動 TCP 連線。
    2. Connect/Active:嘗試建立 TCP 連線。
    3. OpenSent/OpenConfirm:交換 OPEN 訊息並協商能力,例如 BGP 版本、AS 編號和保持時間。
    4. Established:BGP 會話完全建立,開始透過 UPDATE 訊息交換路由資訊。

nvidia | cumulus 5.12 | BGP


上一篇
NVUE - VXLAN 實作
下一篇
NVUE - BGP Lab
系列文
ToR 的復仇-頂架也能跑馬拉松13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言