已知路徑
本文說明已知的路徑、虛擬私有雲網路的動態轉送模式如何影響已知的路徑,以及 Cloud Router 提供的最佳路徑選取模式。
取得的路徑可以是 Cloud Router 透過 BGP 協定從遠端對等路由器接收的路徑,也可以是您在 Cloud Router 上設定的自訂取得路徑:
- BGP 接收的路徑
從遠端對等互連點取得的 BGP 路徑。對等路由器可以是下列任一裝置:
- 實體地端部署路由器
- 另一個 Cloud Router
- 路由器設備 VM (搭配 Network Connectivity Center)
- 其他雲端服務供應商的路由器
- 自訂已知路徑
自訂已知的路徑是在 Cloud Router 上手動設定,用來模擬從遠端對等互連取得的路徑。如果您沒有管理員控制權,無法設定遠端對等路由器,自訂已知路徑就很有用。
Cloud Router 會強制執行動態路徑的不重複前置字元數量配額,包括從 BGP 對等互連動態取得的前置字元,或手動設定為自訂取得路徑的前置字元。詳情請參閱 Cloud Router 配額。
除非使用啟用資料移轉功能的 Network Connectivity Center 混合型輪輻,否則 Cloud Router 不會重新宣傳已學習的路由。
動態路徑控制平面和虛擬私有雲網路控制平面,都會處理這兩種 Cloud Router 學習到的路徑。處理步驟會使用目的地前置字元和路徑指標,在 VPC 網路中建立動態路徑。如要瞭解動態路徑控制平面與虛擬私有雲網路控制平面之間的差異,請參閱「Cloud Router 的運作方式」。
自訂已知路徑
自訂已知路徑與 BGP 接收的動態路徑具有相同的優點。與靜態路徑不同,當下一個躍點的 BGP 工作階段關閉時,系統會自動撤銷自訂的動態已知路徑。
對於特定下一個中繼站 (例如 Cloud Interconnect VLAN 連結和高可用性 VPN 通道),自訂已知路徑是定義非 BGP 路徑的唯一方法。
詳情請參閱「指定及管理自訂學習路徑」。
動態轉送模式
虛擬私有雲網路的動態轉送模式,會影響動態路徑控制平面和虛擬私有雲網路控制平面處理收到的 BGP 路徑和自訂學習路徑的方式,進而在虛擬私有雲網路中建立動態路徑。
使用虛擬私有雲網路對等互連時,匯出自訂路徑的虛擬私有雲網路動態轉送模式,會控管在匯入自訂路徑的對等互連虛擬私有雲網路中,動態路徑的建立方式。詳情請參閱虛擬私有雲端網路對等互連說明文件中的動態轉送模式的影響。
Trusted Cloud 虛擬私有雲網路支援兩種動態轉送模式:
- 區域動態轉送模式
- 每個地區的動態路徑控制平面只會處理來自該地區 Cloud Router BGP 工作的路徑。在虛擬私有雲網路的特定區域中建立動態路徑時,產生的下一個中繼站只會位於該特定區域。
- 全域動態轉送模式
- 各區域的動態路徑控制層會處理來自該區域 Cloud Router BGP 工作的路徑。每個區域的動態路徑控制層也會將每個前置碼的最佳路徑,傳送至虛擬私有雲網路中所有其他區域的動態路徑控制層。在虛擬私有雲網路的特定區域中建立的動態路徑,其下一個躍點可位於任何區域。
最佳路徑選取模式
Cloud Router 提供兩種最佳路徑選取模式:標準和舊版。 最佳路徑選取模式適用於透過虛擬私有雲網路所有區域的 Cloud Router 取得的所有路徑,包括自訂取得的路徑。
建立新的 VPC 網路時,系統會預設採用舊版最佳路徑選取模式。除非需要標準模式的特定功能,或使用 Trusted Cloud by S3NS 依賴標準模式的功能,否則建議使用舊版模式。
網路連線能力中心 (用於網站對網站資料移轉) 和網路連線能力中心 (用於第三方網路虛擬設備) 或路由器設備,可搭配標準最佳路徑選取或舊版最佳路徑選取功能使用。
網路連線中心與 VPC 輪輻交換路由的最佳路徑選取模式有下列限制:
如果某個路徑是由一個虛擬私有雲獨自宣傳,舊版和標準模式都能正常運作。
如果多個虛擬私有雲端向同一個工作負載虛擬私有雲端通告相同路徑,則適用下列情況:
如果所有虛擬私有雲都使用舊版最佳路徑選取機制,工作負載虛擬私有雲就會對來自不同轉送虛擬私有雲的路徑套用舊版最佳路徑選取機制。
如果所有虛擬私有雲都使用標準最佳路徑選取方式,工作負載虛擬私有雲就會根據內部演算法,使用其中一個轉送虛擬私有雲的最佳路徑。
如果路由 VPC 同時使用舊版最佳路徑選取和標準最佳路徑選取,工作負載 VPC 會根據舊版最佳路徑選取或內部演算法,使用其中一個最佳標準最佳路徑選取路徑。
如果您打算從多個路由虛擬私有雲宣傳同一條路徑,建議您為所有虛擬私有雲網路選取舊版最佳路徑選取方式。
舊版最佳路徑選取
本節說明 Cloud Router BGP 工作和動態路徑控制層如何實作舊版最佳路徑選取模式。
AS 路徑長度
在舊版最佳路徑選取模式中,AS 路徑資訊只與單一 Cloud Router BGP 工作相關,動態路徑控制層不會使用 AS 路徑資訊來決定最佳路徑。使用舊版最佳路徑選取模式時,如果相同目的地前置字元涉及不同的 Cloud Router 軟體工作,請勿依據 AS 路徑長度資訊選取最佳路徑。
BGP 工作階段會涉及多項 Cloud Router BGP 工作。詳情請參閱「Cloud Router BGP 工作」。
BGP 工作選取程序
Cloud Router BGP 工作會從其管理的 BGP 工作階段對等路由器接收目的地前置字元。BGP 工作會從 BGP 工作管理的所有 BGP 工作階段中,建立一組專屬目的地前置字元。接著,BGP 工作會使用下列程序,為每個 BGP 接收到的專屬目的地前置字元判斷至少一個最佳下一個躍點:
最短的 AS 路徑長度:BGP 工作會依 AS 路徑長度排序下一個躍點清單,從最短的 AS 路徑長度到最長的 AS 路徑長度。排序後,BGP 工作會從考量範圍中移除所有 AS 路徑長度不是最短的下個躍點。
偏好的來源類型:BGP 工作偏好使用內部閘道通訊協定 (IGP) 的下一個躍點,而非使用外部閘道通訊協定 (EGP) 的下一個躍點;BGP 工作偏好使用 EGP 的下一個躍點,而非來源類型不完整的下一個躍點。
如果至少有一個下一個躍點的來源類型是 IGP,BGP 工作就會從考量範圍中移除所有來源類型為 EGP 或不完整的下一個躍點。
如果下個躍點的來源類型都不是 IGP ,且至少有一個下個躍點的來源類型是 EGP,BGP 工作就會從考量範圍中移除來源類型為「不完整」的所有下個躍點。
最小 MED 值:BGP 工作會依多出口鑑別 (MED) 值,將下一個躍點從最小到最大排序。排序後,BGP 工作會從考量範圍中移除所有不具最小 MED 值的下一個躍點。
BGP 工作會將每個目的地前置字串和對應的最佳下一個中繼站清單,傳送至區域的動態路徑控制層。在某些情況下,Cloud Router BGP 軟體工作也可能會傳送已從考量因素中移除的下一個躍點。
動態路徑控制層處理
每個區域的動態路徑控制層都會強制執行下列配額,這些配額適用於 BGP 接收和自訂學習路徑中的不重複目的地:
強制執行先前的 Cloud Router 配額時,動態路徑控制平面會捨棄與超出任一 Cloud Router 配額限制的排序不重複目的地相關聯的所有路徑資訊。詳情請參閱「確定性路徑捨棄行為」。
強制執行配額後,動態路徑控制層會對每個未捨棄的不重複目的地前置字元套用下列處理演算法:
動態路徑控制平面會為前置字元建立下一個躍點清單。清單包含:
從虛擬私有雲網路中各個 Cloud Router BGP 工作收到的前置字串,以及其所在區域的後續躍點和 MED 值。
使用前置字串的自訂已知路徑的下一個躍點和優先順序值。自訂已知路徑的優先順序會視為 MED 值。
只有在包含 Cloud Router 的 VPC 網路使用全域動態轉送模式時,才會發生下列步驟:
動態路徑控制層只會將 MED 值最低的下一個躍點,傳送至其他區域的動態路徑控制層。如果有多個下個躍點的 MED 值相同且最低,則這些躍點都會匯出至其他區域的動態路由控制層。傳送的資訊包括下一個躍點和最低 MED 值。
動態路徑控制層會從其他區域的動態路徑控制層接收下一個躍點和 MED 值清單。動態路徑控制層會將每個下一個躍點新增至前置字元的下一個躍點清單。新增每個下一個躍點時,動態路徑控制平面會加上跨區域費用,藉此調整 MED 值。
動態路徑控制平面會根據接收到的 MED 值,由小到大排序前置字串的下一個躍點清單。
動態路徑控制層會截斷傳送至 VPC 控制層的路徑清單。傳送至 VPC 控制平面的路徑清單通常包含 MED 值最低的路徑,以及次低的 MED 值 (如有)。不過,動態路徑控制層只保證會將 MED 值最低的路徑傳送至 VPC 控制層。
標準最佳路徑選取模式
標準最佳路徑選取模式更符合 RFC 4271。與舊版最佳路徑選取模式相比,這項功能具有下列優點:
以 AS 路徑為準的轉送方式:系統會考量虛擬私有雲網路中所有 Cloud Router 取得的所有路徑,您可以使用 AS 路徑前置,影響流量流動。
彈性和自訂程度更高:您可以更自由地控制虛擬私有雲網路中的 BGP 前置字元排名,包括微調 BGP 最佳路徑轉送。相較於靜態路徑,動態路徑的虛擬私有雲網路路徑優先順序一律較低。
使用標準最佳路徑選取模式時,Cloud Router 提供下列設定選項:
比較 MED 值:您可以選擇下列任一選項:
一律比較:比較每個目的地前置字元的 MED 值,不考量 Cloud Router 從中瞭解前置字元的 AS。
有條件比較:前置字串會依 Cloud Router 取得前置字串的 AS 分組。在每個 AS 內的每個前置字串中,躍點會依據 RFC 4721 中所述的相符 MED 值排序。
將區域新增至跨區域費用:您可以選取是否要將跨區域費用新增至 MED 值。
BGP 工作選取程序
Cloud Router BGP 工作會從其管理的 BGP 工作階段對等路由器接收目的地前置字元。BGP 工作會從 BGP 工作管理的所有 BGP 工作階段中,建立一組專屬目的地前置字元。接著,BGP 工作會使用下列程序,為每個 BGP 接收到的專屬目的地前置字元判斷至少一個最佳下一個躍點:
最短的 AS 路徑長度:BGP 工作會依 AS 路徑長度排序下一個躍點清單,從最短的 AS 路徑長度到最長的 AS 路徑長度。排序後,BGP 工作會從考量範圍中移除所有 AS 路徑長度不是最短的下個躍點。
偏好的來源類型:BGP 工作偏好使用內部閘道通訊協定 (IGP) 的下一個躍點,而非使用外部閘道通訊協定 (EGP) 的下一個躍點;BGP 工作偏好使用 EGP 的下一個躍點,而非來源類型不完整的下一個躍點。
如果至少有一個下一個躍點的來源類型是 IGP,BGP 工作就會從考量範圍中移除所有來源類型為 EGP 或不完整的下一個躍點。
如果下個躍點的來源類型都不是 IGP ,且至少有一個下個躍點的來源類型是 EGP,BGP 工作會從考量範圍中移除來源類型為「不完整」的所有下個躍點。
考量鄰近 ASN:VPC 網路設定
routingConfig.bgpAlwaysCompareMed
會控制演算法的這項步驟,如下所示:如果
routingConfig.bgpAlwaysCompareMed
為True
,系統會將每個下一個躍點的鄰近 ASN 值視為不相關。BGP 工作會依 MED 值由小到大排序下一個躍點。排序後,BGP 工作會從考量範圍中移除所有 MED 值不是最小的下一個躍點。如果
routingConfig.bgpAlwaysCompareMed
為False
或未設定,系統會將每個下一個躍點的鄰近 ASN 值視為相關,因此 BGP 工作會執行下列操作:BGP 工作會依據鄰居 ASN 值將下一個躍點清單分組。
在每個鄰近 ASN 群組中,BGP 工作會依 MED 值由小到大排序下一個躍點。(每個鄰近 ASN 群組的最小編號 MED 值可能不同)。
在每個鄰近 ASN 群組中,BGP 工作會從考量因素中移除所有沒有最小 MED 值的下一個躍點。
BGP 工作會將每個目的地前置字串及其對應的未移除下一個躍點清單,傳送至區域的動態路徑控制層。在某些情況下,Cloud Router BGP 軟體工作也可能會傳送已從考量因素中移除的下一個躍點。
動態路徑控制層處理
每個區域的動態路徑控制層都會強制執行下列配額,這些配額適用於 BGP 接收和自訂學習路徑中的不重複目的地:
強制執行先前的 Cloud Router 配額時,動態路徑控制平面會捨棄與超出任一 Cloud Router 配額限制的排序不重複目的地相關聯的所有路徑資訊。詳情請參閱「確定性路徑捨棄行為」。
強制執行配額後,動態路徑控制層會對每個未捨棄的不重複目的地前置字元套用下列處理演算法:
前置字串的初始下一個躍點清單:動態路徑控制平面會為前置字串建立初始下一個躍點清單,其中包含下列兩者:
BGP 工作從管理虛擬私人雲端網路中 Cloud Router 的 BGP 工作接收下一個躍點資訊,這些 Cloud Router 與動態路徑控制平面位於相同區域。
前置字元的自訂學習路徑下一個躍點資訊,定義於虛擬私有雲網路中的 Cloud Router,且位於與動態路徑控制平面相同的區域。自訂已知路徑會套用下列 BGP 屬性:
- AS 路徑,僅包含對等互連裝置的 ASN。AS 路徑長度為 1,且為對等 ASN 的鄰近 ASN。
- 來源:設為「未完成」。
- MED 值,其中每個自訂已知路徑優先順序都會視為 MED 值。
- 跨區域費用設為 0。
最短的 AS 路徑長度:動態路由控制層會依 AS 路徑長度排序下一個躍點清單,從最短的 AS 路徑長度到最長的 AS 路徑長度。動態路徑控制平面會從考量因素中,移除所有 AS 路徑長度不是最短的下個躍點。
偏好的來源類型:動態路徑控制平面偏好使用 IGP 的下一個躍點,而非使用 EGP 的下一個躍點;偏好使用 EGP 的下一個躍點,而非來源類型為「不完整」的下一個躍點。
如果至少一個下一個躍點的來源類型為 IGP,則動態路徑控制平面會從考量範圍中移除所有來源類型為 EGP 或 Incomplete 的下一個躍點。
如果沒有任何下個躍點的來源類型為 IGP ,且至少有一個下個躍點的來源類型為 EGP,動態路徑控制平面會從考量範圍中移除來源類型為「不完整」的所有下個躍點。
考量鄰近 ASN:VPC 網路設定
routingConfig.bgpAlwaysCompareMed
會控管演算法的這項步驟,如下所示:如果
routingConfig.bgpAlwaysCompareMed
為True
,則每個下個躍點的鄰近 ASN 值不視為相關。在這種情況下,動態路徑控制平面會依 MED 值由小到大排序下一個躍點。MED 最小的下一個躍點等級最高。動態路徑控制平面會移除所有下一個躍點,但最高等級的躍點除外。如果
routingConfig.bgpAlwaysCompareMed
為False
或未設定,系統會將每個下一個躍點的鄰近 ASN 值視為相關,因此動態路徑控制平面會執行下列操作:動態路徑控制層會依據鄰近 ASN 值,將下一個躍點清單分組。
在每個鄰近 ASN 群組中,動態路徑控制平面會依據 MED 值由小到大排序下一個躍點。每個鄰近 ASN 群組中,編號最小的 MED 值可能不同。
在每個鄰近 ASN 群組中,動態路徑控制層會從考量範圍中移除所有不具最小 MED 值的下一個躍點。
在每個鄰近 ASN 群組中,MED 值最小的下一個躍點具有最高等級。動態路徑控制平面會從考量範圍中,移除所有躍點,只留下評等最高的躍點。
將所有排名最高的下一個中繼站傳送至其他地區:當 VPC 網路的動態轉送模式為全域時,動態路徑控制平面會將目前排名最高的下一個中繼站組合傳送至其他地區。
接收其他區域中排名最高的躍點:當 VPC 網路的動態轉送模式為全域時,動態路徑控制平面會從其他每個區域的動態路徑控制平面,接收前置字元排名最高的下一個躍點清單。每個收到的下一個躍點都包含 AS 路徑長度、鄰近 ASN、來源類型和 MED,以及傳送下一個躍點的動態路徑控制層區域。
動態路徑控制層應用程式會將收到的下一個躍點附加至前置字串的下一個躍點清單,然後執行下列操作:
重複「最短 AS 路徑長度」步驟。
根據虛擬私有雲網路的
routingConfig.bgpInterRegionCost
設定,重複「考量鄰近 ASN」步驟:如果 VPC 網路的
routingConfig.bgpInterRegionCost
為ADD_COST_TO_MED
,動態路徑控制平面會在重複執行「考量鄰近 ASN」步驟時,使用調整後的 MED 值。每個調整後的 MED 值都是原始 MED 值加上跨區域費用的總和。動態路徑控制層所在區域的下一個中繼站,跨區域成本為0
。從其他區域的動態路徑控制層取得的下一個躍點,具有非零的跨區域費用,且每個區域配對 (由傳送區域和接收區域組成) 的費用都不相同。如果 VPC 網路的
routingConfig.bgpInterRegionCost
為DEFAULT
或未設定,動態路徑控制平面會使用原始 MED 值,重複執行「考量鄰近 ASN」步驟。
從考量範圍中移除所有不具備最小區域間成本的下一個躍點:當 VPC 網路的動態轉送模式為全域時,動態路徑控制平面會從考量範圍中移除所有下一個躍點,但具備最小區域間成本的下一個躍點除外。
將下一個躍點傳送至虛擬私有雲控制層:針對每個不重複的目的地前置字元,動態路徑控制層會將所有排名最高且區域間成本最低的下一個躍點傳送至虛擬私有雲控制層。這些下一個躍點會在 VPC 網路的動態路徑控制平面區域中建立動態路徑。這些動態路徑的 Andromeda 路徑優先順序為
65536
。我們刻意選擇65536
優先順序號碼,因為這個值比65535
大 1,而65535
是靜態路徑的最低優先順序。因此,如果相同目的地前置碼同時存在靜態和動態路徑,轉送順序會優先採用靜態路徑。在某些情況下,動態路徑控制層可能會傳送排名較低或非最低區域間費用的下一個躍點。這些額外的下一個躍點也會在虛擬私有雲網路的動態路徑控制層區域中建立動態路徑,但會使用較低的 Andromeda 路徑優先順序,例如
65537
、65538
。
VPC 控制層處理
每個區域的 VPC 控制層都會收到來自該區域動態路徑控制層的候選動態路徑。除非動態路徑遭到動態路徑控制層捨棄,否則虛擬私有雲控制層會評估每個候選動態路徑。評估結果會決定是否在包含 Cloud Router 的 VPC 網路中建立動態路徑,或是抑制候選動態路徑。候選動態路徑遭到抑制的原因如下:
候選動態路徑的目的地前置字元與本機、對等互連或 Network Connectivity Center 子網路路徑衝突。詳情請參閱「與動態路徑互動」。
在 Cloud Router 處理更新後的 BGP 狀態之前,VPC 控制平面會判斷候選動態路徑的下一個躍點無法使用。詳情請參閱「Disregard static and dynamic routes with unusable next hops」。
如果包含 Cloud Router 的虛擬私有雲網路匯出自訂路徑,且對等互連的虛擬私有雲網路匯入自訂路徑,則每個區域的虛擬私有雲控制平面也可以在對等互連的虛擬私有雲網路中建立對等互連動態路徑。如要瞭解如何使用虛擬私有雲網路對等互連交換自訂路徑,請參閱交換動態路徑的選項。
建立對等互連動態路徑時,每個區域的 VPC 控制平面會以每個網路為單位,獨立評估候選動態路徑。除了先前所述的抑制案例外,對等互連 VPC 網路還適用下列抑制案例:
如果候選對等互連動態路徑的目的地前置碼,與本機動態路徑的目的地前置碼完全相符,VPC 控制層就會抑制衝突的對等互連動態路徑。
如果從兩個以上的對等互連虛擬私有雲網路收到相同目的地前置字元的候選對等互連動態路徑,虛擬私有雲控制平面會使用內部演算法,選取要從哪個網路匯入對等互連動態路徑。系統會先評估這個內部演算法,再考量路徑優先順序。詳情請參閱「從單一 VPC 網路選取對等互連自訂路由的下一個躍點」。
如果每個區域各對等互連群組的動態路徑配額超過上限,虛擬私有雲控制層只會抑制對等互連的動態路徑。
由於每個虛擬私有雲控制層都會抑制每個網路的動態路徑,請注意下列事項:
如果候選動態路徑在包含建立候選動態路徑的 Cloud Router 的 VPC 網路中,成為本機動態路徑,則候選動態路徑可能會在一或多個對等互連的 VPC 網路中遭到抑制。
如果候選動態路徑在虛擬私有雲網路中遭到抑制,而該網路含有建立候選動態路徑的 Cloud Router,則候選動態路徑可能會在一個或多個對等互連的虛擬私有雲網路中,成為對等互連動態路徑。
BGP 狀態變更
如「最佳路徑選取模式」一文所述,BGP 接收和自訂已知路徑會產生動態路徑。只要建立對應的 BGP 工作階段,動態路徑就會持續存在。如果系統判定 BGP 工作階段已停止運作或已終止,就會移除動態路徑。以下是常見範例:
如果對等路由器支援安全重新啟動,並傳送安全重新啟動通知 (TCP
FIN
或RST
封包), Trusted Cloud 會在對等路由器安全重新啟動計時器到期後,移除從 BGP 工作階段取得的動態路徑。詳情請參閱「正常重新啟動計時器」。如果對等路由器傳送 BGP
CEASE
通知 Trusted Cloud,系統會立即移除從 BGP 工作階段取得的動態路徑。詳情請參閱 RFC 4271 的 4.5 節。如果上述兩種通知情況都不適用,且已達到協商保留計時器時間, Trusted Cloud 就會移除從 BGP 工作階段學到的動態路徑。詳情請參閱「保留計時器」。
後續步驟
如要設定自訂已知路徑,請參閱「指定及管理自訂已知路徑」。
如要排解 Cloud Router 問題,請參閱下列內容: