Stories

Detail Return Return

軟件定義網絡-- 10 BGP(邊界網關協議) - Stories Detail

BGP 消息類型及其格式:
BGP(邊界網關協議)消息有四種主要類型:OPEN、UPDATE、NOTIFICATION 和 KEEPALIVE。每種消息類型都有其特定的功能和格式

  1. OPEN 消息

功能:用於建立 BGP 鄰居關係。

格式:
Marker(16 字節):標記字段,用於同步和安全性。
Length(2 字節):消息長度,包括頭部和數據部分。
Type(1 字節):消息類型,值為 1(OPEN)。
Version(1 字節):BGP 版本號。
My Autonomous System(2 字節):發送者的自治系統編號。
Hold Time(2 字節):保持時間,表示 BGP 會話的超時時間。
BGP Identifier(4 字節):BGP 標識符,通常是發送者的 IP 地址。
Optional Parameters Length(1 字節):可選參數長度。
Optional Parameters(可變):可選參數。

示例: 用户 A 和用户 B 想要建立 BGP 鄰居關係。A 發送一個 OPEN 消息給 B,包含其自治系統編號和 BGP 標識符。B 接收到消息後,驗證信息並建立連接。

  1. UPDATE 消息

功能:用於交換路由信息。

格式:
Marker(16 字節):標記字段。
Length(2 字節):消息長度。
Type(1 字節):消息類型,值為 2(UPDATE)。
Withdrawn Routes Length(2 字節):撤銷路由部分的長度。
Withdrawn Routes(可變):被撤銷的路由。
Total Path Attribute Length(2 字節):路徑屬性部分的長度。
Path Attributes(可變):路徑屬性。
Network Layer Reachability Information (NLRI)(可變):可達路由信息。

示例: 用户 B 有新的路由信息要通知給用户 C。B 發送一個 UPDATE 消息給 C,包含新的路由信息和路徑屬性。C 接收到消息後,更新其路由表。

  1. NOTIFICATION 消息

功能:用於通知錯誤或關閉 BGP 會話。

格式:
Marker(16 字節):標記字段。
Length(2 字節):消息長度。
Type(1 字節):消息類型,值為 3(NOTIFICATION)。
Error Code(1 字節):錯誤代碼。
Error Subcode(1 字節):錯誤子代碼。
Data(可變):錯誤相關數據。

示例: 用户 C 發現用户 D 發送的 BGP 消息有錯誤。C 發送一個 NOTIFICATION 消息給 D,包含錯誤代碼和錯誤描述,通知 D 關閉會話並修正錯誤。

  1. KEEPALIVE 消息

功能:用於維持 BGP 鄰居關係。

格式:
Marker(16 字節):標記字段。
Length(2 字節):消息長度。
Type(1 字節):消息類型,值為 4(KEEPALIVE)。

示例: 用户 D 和用户 A 已經建立了 BGP 鄰居關係,為了保持連接,D 定期發送 KEEPALIVE 消息給 A。A 接收到消息後,知道連接是活躍的,並繼續保持會話。


為什麼要建立 BGP 鄰居關係?

在 BGP(邊界網關協議)中,建立鄰居關係(也稱為對等關係或 Peering)是非常關鍵的步驟,以下是一些主要原因:

  1. 路由信息交換
    BGP 的主要功能之一是交換路由信息。通過建立鄰居關係,不同自治系統(AS,Autonomous System)的路由器可以共享路由信息,確保數據包能夠找到最優路徑到達目標地址。
  2. 網絡連通性
    鄰居關係使得不同網絡之間能夠互相通信。對於互聯網服務提供商(ISP)和大型企業網絡來説,建立 BGP 鄰居關係是確保其網絡連通性的關鍵步驟。
  3. 路由冗餘和高可用性
    通過與多個鄰居建立 BGP 對等關係,可以實現路由冗餘和高可用性。如果一個路由器或路徑出現故障,BGP 可以自動選擇其他可用的路徑,確保網絡的穩定性和可靠性。
  4. 路由策略控制
    BGP 鄰居關係允許網絡管理員應用各種路由策略,控制進出自治系統的流量。例如,可以通過設置路由優先級、路徑選擇策略等,優化網絡性能和流量管理。

舉例説明
假設有兩個互聯網服務提供商 ISP-A 和 ISP-B,它們分別管理不同的自治系統(AS)。為了確保其客户可以互相通信,ISP-A 和 ISP-B 需要建立 BGP 鄰居關係。具體步驟如下:

  • 建立鄰居關係:
    ISP-A 和 ISP-B 的網絡管理員配置路由器,使其能夠相互通信,並交換 BGP OPEN 消息建立鄰居關係。
  • 交換路由信息:
    一旦鄰居關係建立,ISP-A 和 ISP-B 的路由器開始交換 BGP UPDATE 消息,分享各自的路由信息。
  • 路徑選擇和優化:
    基於交換的路由信息,ISP-A 和 ISP-B 的路由器選擇最優路徑傳輸數據包。如果某個路徑出現問題,BGP 會自動調整,選擇其他可用路徑。
  • 路由策略應用:
    ISP-A 和 ISP-B 可以應用各種路由策略,例如,優先選擇帶寬較高的路徑,或者根據流量類型選擇不同的路徑。

自治系統(Autonomous System,AS)是指在單一技術管理下的一組 IP 網絡和路由器,通常由一個或多個網絡運營商或大型組織管理。每個自治系統在網絡中具有唯一的 AS 編號(ASN),用於標識和管理其內部和外部的路由信息。

舉例説明
假設有三個自治系統:AS100、AS200 和 AS300。它們分別由不同的互聯網服務提供商(ISP-A、ISP-B 和 ISP-C)管理。以下是它們之間的關係和作用:

  • AS 編號:
    ISP-A 管理的網絡被分配了 AS100,ISP-B 管理的網絡被分配了 AS200,ISP-C 管理的網絡被分配了 AS300。
  • 路由信息交換:
    AS100 和 AS200 通過 BGP 協議交換路由信息,確保其網絡中的數據包可以互相傳遞。
    同樣,AS200 和 AS300 也通過 BGP 交換路由信息。
  • 網絡連通性:
    通過建立 BGP 鄰居關係,AS100 的用户可以訪問 AS200 和 AS300 的網絡資源,反之亦然。
  • 路由策略控制:
    ISP-A 可以設置路由策略,優先選擇從 AS200 傳輸的流量,而不是從 AS300。這些策略可以基於帶寬、延遲、成本等因素進行優化。

BGP(邊界網關協議)的流量並不是非常大。儘管 BGP 是全球互聯網的核心路由協議,負責在不同自治系統(AS)之間交換路由信息,但其流量主要是路由更新信息和保持鄰居關係的心跳消息,實際的數據包傳輸並不通過 BGP 進行。

具體原因如下:

  1. 路由信息交換頻率低
    BGP 的路由信息交換並不是實時的,而是根據網絡拓撲的變化進行更新。只有在路由發生變化時,BGP 才會發送 UPDATE 消息。這意味着在穩定的網絡環境中,BGP 消息的頻率相對較低。
  2. 心跳消息(KEEPALIVE)
    為了維持 BGP 鄰居關係,BGP 會定期發送 KEEPALIVE 消息。這些消息非常小,僅用於確認鄰居關係是否正常,不會產生大量流量。
  3. 路由表大小
    雖然 BGP 路由表可能非常大(包含數十萬條路由),但這些路由表的傳輸和更新是增量式的,即只有變化的部分會被交換,而不是整個路由表。這樣有效地減少了流量。
  4. 數據流量不通過 BGP
    BGP 僅用於路由信息的交換,實際的數據包傳輸通過 IP 網絡進行,不會經過 BGP 協議本身。因此,BGP 的流量主要是控制流量,而不是數據流量。

Add a new Comments

Some HTML is okay.