管理 BGP 計時器

本頁面將說明以下內容:

  • Cloud Router 的 BGP 計時器和相關設定,包括在內部部署路由器上設定相同設定的操作說明。
  • 更新 Cloud Router 的 BGP 保持運作間隔。

BGP 計時器和設定

Cloud Router 和內部部署路由器會透過下列計時器設定來維持通訊。

保持運作計時器

BGP 系統會交換保活訊息,判斷連結或主機是否已失敗或無法使用。此保持運作計時器若搭配保留計時器,即可得知路由器是否可連線至 BGP 對等端。

保持運作計時器是 Cloud Router 與相對應的內部部署對等互連路由器之間,規律交換 BGP 訊息的 KEEPALIVE_INTERVAL。您可以按照「更新 BGP 保活間隔」一節所述,設定這個值。預設值為 20 秒。Google 建議在內部部署路由器和 Cloud Router 上,將保持運作計時器設為相同的值。

暫停計時器

此計時器會追蹤上次成功偵測到保持運作活動訊息之後的最短時間,即為 Cloud Router 或內部部署路由器在取得對方路由器的路徑後,應等待多久才可移除該路徑。

Cloud Router 會將這個值設為所設定的保活計時器值乘以 3。舉例來說,如果保持運作計時器為 20 秒,則保留計時器會設為 60 秒。同樣地,請將內部部署路由器的保留計時器設為 Cloud Router 保持運作計時器的值乘以 3。

BGP 保留計時器經過交涉,以 Cloud Router 和內部部署路由器之間的兩個值中較低者為準。由於保留計時器的最低值應為 20 秒,因此 Cloud Router 會將 BGP 保留計時器的預設值設為 60 秒。您應將內部部署路由器的 BGP 保留計時器設為與 Cloud Router 的 BGP 保留計時器相等或更長。這有助於確保兩個路由器在維護事件期間保留已學習的路徑。舉例來說,如果您使用預設的 BGP 保留計時器,應將內部部署保留計時器設為 60 秒以上。

安全重新啟動計時器

此計時器會追蹤路由器收到其他路由器的安全重新啟動通知 (TCP FIN 或 RST 封包) 後,等待的時間長度。支援安全重新啟動的路由器會宣告安全重新啟動計時器值,定義其他路由器在收到安全重新啟動通知後,應等待多久時間。兩個對等路由器可以使用不同的安全重新啟動計時器值,但路由器應遵循其對等端的安全重新啟動計時器值。建立新的 BGP 工作階段時,每部路由器都會透過 BGP OPEN 訊息,將自己的安全重新啟動計時器值傳達給對等路由器。

Cloud Router 支援安全重新啟動,且 Cloud Router 安全重新啟動計時器設為 120 秒。每個 Cloud Router 都會在每次軟體維護事件前傳送正常重新啟動通知。

如果您已設定內部部署路由器的安全重新啟動功能,內部部署路由器在重新啟動或維護事件期間,也可以向 Cloud Router 傳送安全重新啟動通知。將內部部署路由器的平穩重新啟動計時器設為符合需求的值。

過時路徑計時器

此設定會決定從對方路由器收到記錄結束 (EOR) 訊息之後,路由器要等待多久時間,才能刪除已知路徑。此計時器會在 BGP 工作階段安全重新啟動後重新初始化時開始計時,但有問題的前置詞尚未經過 UPDATE 訊息予以處理。建議您將內部部署路由器的 stalepath 計時器設為 300 秒,以便配合 Cloud Router 的設定。

更新 BGP 保持運作間隔

如要修改 Cloud Router 上的 BGP 保持運作間隔,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud Routers」頁面。

    前往 Cloud Router

  2. 選取含有要修改的 BGP 間隔的 Cloud Router。

  3. 在「路由器詳細資料」頁面中,按一下 「編輯」

  4. 更新 BGP 對等點保持運作間隔。這個值必須是介於 20 和 60 之間的整數,用於指定間隔的秒數。預設值為 20 秒。

  5. 按一下 [儲存]

gcloud

執行 update 指令:

gcloud compute routers update ROUTER_NAME \
    --project=PROJECT_ID \
    --keepalive-interval=KEEPALIVE_INTERVAL \
    --region=REGION

更改下列內容:

  • ROUTER_NAME:Cloud Router 的名稱
  • PROJECT_ID:包含 Cloud Router 的專案
  • KEEPALIVE_INTERVAL:向對等路由器傳送邊界閘道通訊協定 (BGP) 保持運作訊息的時間間隔

    這個值必須是介於 20 至 60 之間的整數,用於指定間隔的秒數。預設值為 20 秒。

  • REGION:Cloud Router 所在的區域

輸出結果會與下列內容相似:

  Updating router [my-router]...done.

API

請使用 routers.patch 方法更新 bgp.keepaliveInterval 欄位:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgp": {
        "keepaliveInterval": KEEPALIVE_INTERVAL
     }
   }

更改下列內容:

  • PROJECT_ID:包含 Cloud Router 的專案
  • REGION:Cloud Router 所在的區域
  • ROUTER_NAME:Cloud Router 的名稱
  • KEEPALIVE_INTERVAL:向對等路由器傳送邊界閘道通訊協定 (BGP) 保持運作訊息的時間間隔

    這個值必須是介於 20 至 60 之間的整數,用於指定間隔的秒數。預設值為 20 秒。

後續步驟