已知路徑
本文說明已知的路徑、虛擬私有雲網路的動態轉送模式如何影響已知的路徑,以及 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 不會重新宣傳已瞭解的路徑。
動態路由控制平面和 VPC 網路控制平面,都會處理這兩種 Cloud Router 學習到的路由。處理步驟會使用目的地前置字元和路徑指標,在 VPC 網路中建立動態路徑。如要瞭解動態路徑控制平面與虛擬私有雲網路控制平面之間的差異,請參閱「Cloud Router 運作方式」。
自訂已知路徑
自訂已知路徑與 BGP 接收的動態路徑具有相同的優點。與靜態路徑不同,當下一個躍點的 BGP 工作階段關閉時,系統會自動撤銷自訂的已知動態路徑。
如要為特定下一個躍點 (例如 Cloud Interconnect VLAN 連結和高可用性 VPN 通道) 定義非 BGP 路由,只能使用自訂已知路徑。
詳情請參閱「指定及管理自訂學習路徑」。
動態轉送模式
虛擬私有雲網路的動態轉送模式,會影響動態路徑控制平面和虛擬私有雲網路控制平面處理收到的 BGP 路徑和自訂學習路徑的方式,進而在虛擬私有雲網路中建立動態路徑。
使用虛擬私有雲網路對等互連時,匯出自訂路徑的虛擬私有雲網路動態轉送模式,會控管在匯入自訂路徑的對等互連虛擬私有雲網路中,動態路徑的建立方式。詳情請參閱虛擬私有雲網路對等互連說明文件中的動態轉送模式的影響。
Google Cloud 虛擬私有雲網路支援兩種動態轉送模式:
- 區域動態轉送模式
- 每個地區的動態路徑控制平面只會處理來自該地區 Cloud Router BGP 工作的路徑。在虛擬私有雲網路的特定區域中建立動態路由時,產生的路由只會將下一個躍點設在該特定區域。
- 全域動態轉送模式
- 各個區域的動態路徑控制層會處理來自該區域 Cloud Router BGP 工作的路徑。每個區域的動態路徑控制層也會將每個前置碼的最佳路徑,傳送至 VPC 網路中使用的所有其他區域的動態路徑控制層。在 VPC 網路的特定區域中建立的動態路徑,下一個躍點可位於任何區域。
最佳路徑選取模式
Cloud Router 提供兩種最佳路徑選取模式:標準和舊版。 最佳路徑選取模式適用於透過虛擬私有雲網路所有區域的 Cloud Router 取得的所有路徑,包括自訂取得的路徑。
建立新的 VPC 網路時,系統預設會採用「舊版」最佳路徑選取模式。除非需要標準模式的特定功能,或使用依賴標準模式的 Google Cloud 功能,否則建議使用舊版模式。
網路連線能力中心 (適用於網站間的資料移轉) 和網路連線能力中心 (適用於第三方網路虛擬設備) 或路由器設備,可搭配標準最佳路徑選取或舊版最佳路徑選取功能使用。
網路連線中心與 VPC 輪輻交換路徑的最佳路徑選取模式有下列限制:
如果某個路徑是由一個虛擬私有雲獨家宣傳,舊版和標準模式都會正常運作。
如果多個虛擬私有雲將相同路徑通告至相同的工作負載虛擬私有雲,則適用下列情況:
如果所有虛擬私有雲都使用舊版最佳路徑選取機制,工作負載虛擬私有雲就會對來自不同轉送虛擬私有雲的路徑套用舊版最佳路徑選取機制。
如果所有 VPC 都使用標準最佳路徑選取方式,工作負載 VPC 會根據內部演算法,使用其中一個路由 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 路徑為準的路由:系統會考量 VPC 網路中所有 Cloud Router 取得的所有路徑,您可以使用 AS 路徑前置,影響流量流動。
彈性和自訂程度更高:您可以更自由地控制虛擬私有雲網路中的 BGP 前置字元排序方式,包括微調 BGP 最佳路徑路由。相較於靜態路徑,動態路徑的虛擬私有雲網路路徑優先順序一律較低。
使用標準最佳路徑選取模式時,Cloud Router 提供下列設定選項:
比較 MED 值:您可以選擇下列任一選項:
一律比較:比較每個目的地前置字元的 MED 值,但不考量 Cloud Router 從中瞭解前置字元的 AS。
有條件比較:前置字元會依據 Cloud Router 取得前置字元的 AS 分組。在每個 AS 內,系統會根據 RFC 4271 中所述的 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 配額限制的排序不重複目的地相關聯的所有路徑資訊。詳情請參閱「確定性路徑捨棄行為」。
強制執行配額後,動態路徑控制層會對每個未捨棄的不重複目的地前置字元套用下列處理演算法:
前置字串的初始下一個躍點清單:動態路徑控制平面會為前置字串建立初始下一個躍點清單,其中包含下列兩項:
從管理虛擬私有雲網路中 Cloud Router 的 BGP 工作接收 BGP 傳送的下一個躍點資訊,這些資訊與動態路徑控制平面位於相同區域。
前置字元的自訂學習路徑下一個躍點資訊,定義於 VPC 網路中的 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 網路的動態轉送模式為全域時,動態路徑控制平面會將目前排名最高的下一個中繼站組合傳送至其他地區。
接收其他區域中排名最高的躍點:當虛擬私有雲網路的動態轉送模式為全域時,動態路徑控制層會從其他每個區域的動態路徑控制層,接收前置碼排名最高的下一個躍點清單。每個收到的下一個躍點都包含 AS 路徑長度、鄰近 ASN、來源類型和 MED,以及傳送下一個躍點的動態路徑控制層區域。
動態路徑控制層應用程式會將收到的下一個躍點附加至前置字串的下一個躍點清單,然後執行下列操作:
根據虛擬私有雲網路的
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 控制層會抑制衝突的對等互連動態路徑。
如果從兩個以上的對等互連虛擬私有雲網路收到相同目的地前置字元的候選對等互連動態路徑,虛擬私有雲控制平面會使用內部演算法,選取要從哪個網路匯入對等互連動態路徑。這個內部演算法會在考慮路線優先順序之前進行評估。詳情請參閱從單一 VPC 網路選取對等互連自訂路由的下一個躍點。
如果每個區域各對等互連群組的動態路徑配額超過上限,虛擬私有雲控制層只會抑制對等互連的動態路徑。
由於每個虛擬私有雲控制層都會抑制每個網路的動態路徑,請注意下列事項:
如果候選動態路徑成為 VPC 網路中的本機動態路徑,而該 VPC 網路包含建立候選動態路徑的 Cloud Router,則候選動態路徑可能會在一或多個對等互連的 VPC 網路中遭到抑制。
如果候選動態路徑在虛擬私有雲網路中遭到抑制,而該網路包含建立候選動態路徑的 Cloud Router,則候選動態路徑可能會在一個或多個對等互連的虛擬私有雲網路中,成為對等互連動態路徑。
BGP 狀態變更
如「最佳路徑選取模式」一文所述,BGP 接收和自訂已知路徑會產生動態路徑。只要建立對應的 BGP 工作階段,動態路徑就會持續存在。如果系統判定 BGP 工作階段已停止運作或已終止,就會移除動態路徑。以下是常見範例:
如果對等路由器支援安全重新啟動,並傳送安全重新啟動通知 (TCP
FIN或RST封包),則在對等路由器安全重新啟動計時器到期後, Google Cloud 會移除從 BGP 工作階段取得的動態路徑。詳情請參閱「正常重新啟動計時器」。如果對等路由器傳送 BGP
CEASE通知 Google Cloud,系統會立即移除從 BGP 工作階段取得的動態路徑。詳情請參閱 RFC 4271 的 4.5 節。如果上述兩種通知情況都不適用,且已達到協商保留計時器, Google Cloud 會移除從 BGP 工作階段瞭解到的動態路徑。詳情請參閱保留計時器。
Cloud Interconnect 的預定維護事件會導致系統在連線維護期間,移除下一個躍點為與 Cloud Interconnect 連線相關聯的 VLAN 連結的動態路由。在計畫性維護期間,系統會停止對應的 BGP 工作階段。為盡量減少中斷情形,請確保雲端互連網路 VLAN 連結和連線符合下列其中一項規定:
如要進一步瞭解 BFD,請參閱「失敗事件期間的 BFD」。
後續步驟
如要設定自訂已知路徑,請參閱「指定及管理自訂已知路徑」。
如要排解 Cloud Router 問題,請參閱下列內容: