跳到內容

路由和故障轉移

在路由層級高可用性設計中,每個 Customer Edge (CE) 網站都透過邊界網關協定 (BGP) 發起相同的服務前綴。北向路由器將可用的宣告安裝為等價多路徑 (ECMP) 下一跳,並成為分配流量和移除故障路徑的關鍵點。

服務 VIP /32
|
上游路由器: 等價下一跳
| | |
CE 網站 1 CE 網站 2 CE 網站 3

當服務為 IPv4 時,將單個虛擬 IP 位址 (VIP) 作為 /32 主機路由宣告。為這些服務位址保留一個僅用於路由的前綴,並且不要將該前綴附加到虛擬私有雲 (VPC)、虛擬網路 (VNet)、VLAN 或本地子網。網路應該從路由宣告中學習服務位址,而不是從相連網段上的位址解析協定 (ARP) 中學習。

保持服務前綴獨立可以避免已連接路由與 BGP 路由之間的混淆。它還使路由策略、過濾和容量規劃變得明確。根據組織的位址管理流程分配前綴;不要將實驗室前綴複製到另一個網路中。

建立的 BGP 工作階段為上游路由器提供了存活訊號。當工作階段關閉或其保持定時器逾時,對等體會撤銷透過該工作階段學習到的路由。當雙端對等體均支援並啟用雙向轉發偵測 (BFD) 時,它可以提供更快的故障偵測。因此,收斂時間取決於配置的協定和定時器;它不是瞬時完成的。

靜態路由沒有等效的工作階段狀態。在 CE 發生故障後,靜態 ECMP 路徑仍保持可用狀態,除非客戶路由器或軟體定義廣域網 (SD-WAN) 控制器使用支援的健康檢查機制追蹤下一跳並移除該路由。在沒有該機制的情況下,路由器可能會繼續選擇已故障的 CE,從而導致部分數據流遭遇黑洞。

在部署 CE 設備前規劃路由器容量

Section titled “在部署 CE 設備前規劃路由器容量”

路由器決定安裝多少個等價路徑。將其最大 ECMP 路徑數與每個 VIP 預期收到的 CE 宣告數進行比較。當宣告數大於已安裝路徑限制時,額外的健康 CE 網站可能無法用於該前綴。

請檢查已安裝的轉發表,而不要僅僅依賴 BGP 的已接收路由檢視。控制層面保留的候選路由可以多於數據層面實際安裝的路由。

將優先級和 ECMP 視為不同的策略

Section titled “將優先級和 ECMP 視為不同的策略”

只有當路由選擇屬性和計量值 (metric) 使它們相等時,路徑才是等價的。修改本地優先級、多出口鑑別器 (MED)、管理距離或靜態路由度量值,可以使特定 VIP 優選某個 CE。這是一種有效的路由引導策略,但它是主備/優选行為,而不是均等分配。

僅當這種非對稱是刻意設計時,才對每個前綴應用優先級。請確認當優選路徑被撤銷時,次選路徑會變得可用,且不要留下一個在 CE 故障後依舊存在且未被追蹤的靜態優選路徑。

將控制層面標籤與實際流量證據分離

Section titled “將控制層面標籤與實際流量證據分離”

在具有多個隧道或路徑的設計中,ACTIVE 標籤可以識別被選擇用於控制層面同步的路徑,但这並不能證明其他 ECMP 路徑沒有承載數據。不要僅憑該標籤推斷轉發狀態。請驗證路由或隧道表,並觀察每個預期路徑上的流量計數器。

對於每個服務前綴,請驗證以下所有項:

  • 每個預期的 CE 都在宣告該前綴;
  • 上游 BGP 表接受了預期的路徑;
  • 轉發表安裝的路徑數既不大於也不小於平台支援的數量;
  • 撤銷一個宣告後,在配置的偵測和收斂間隔後,該下一跳會被移除;
  • 應用程式檢查在剩餘的路徑上執行成功。

使用本倉庫的 BGP 診斷工作流 來區分 CE 宣告問題與上游轉發問題。

  • RFC 4271 定義了 BGP 路由撤銷和保持定時器的行為。
  • RFC 5880 定義了 BFD 故障偵測。