管理 BGP 計時器

本頁面說明下列事項:

  • Cloud Router 的 BGP 計時器及其設定,包括在地端部署路由器上設定相同設定的指南。
  • 更新 Cloud Router 的 BGP 保持運作間隔。

BGP 計時器和設定

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

保持運作計時器

BGP 系統會交換存活訊息,判斷連結或主機是否發生故障或無法使用。此保持運作計時器若搭配保留計時器,即可得知路由器是否可連上 BGP 對等互連。

保持運作計時器是 Cloud Router 及相對應的<b>地端部署</b>對等互連路由器規律交換 BGP 訊息的KEEPALIVE_INTERVAL。如要設定這個值,請參閱「更新 BGP 存活間隔」。預設值為 20 秒。Google 建議在內部部署路由器和 Cloud Router 上,將保持運作計時器設為相同值。

暫停計時器

這個計時器會定義 Cloud Router 或地端部署路由器必須等待的時間長度,如果沒有安全重新啟動通知 (TCP FINRST 封包) 或 BGP CEASE 通知,BGP 工作階段就會移至 DOWN 狀態。

路由器會為每個 BGP 工作階段協商保留時間。交涉的保留時間是 Cloud Router 和地端部署路由器上設定的保留計時器值中較低者。當達到協商的保留時間,且未收到安全重新啟動通知或 BGP CEASE 通知時,路由器會將 BGP 工作階段移至 DOWN 狀態,並採取下列動作:

  • 從 BGP 工作階段中移除所有已學習的路由
  • 停止通告路徑

如要設定 Cloud Router 的保留計時器,請更新 Cloud Router 的 BGP 存活間隔。Cloud Router 會將保留計時器的值設為已設定存活間隔值的 3 倍。舉例來說,如果將保持運作計時器設為 20 秒,保留計時器就會是 60 秒。詳情請參閱「更新 BGP 存活間隔」。

安全重新啟動計時器

這個計時器會定義路由器在收到對等路由器傳送的安全重新啟動通知 (TCP FINRST 封包) 後,保留先前 BGP 工作階段狀態的時間長度。

路由器會保留先前的 BGP 工作階段狀態,並保留從對等路由器收到的工作階段學習路徑,繼續向對等路由器通告其路徑。如果在保留先前 BGP 工作階段狀態時建立新的 BGP 工作階段,連線不會中斷。不過,如果沒有建立新的 BGP 工作階段,工作階段會在安全重新啟動計時器結束時轉換為 DOWN 狀態。一旦進入 DOWN 狀態,系統就會移除從對等路由器收到的工作階段學習路徑,路由器也會停止向對等路由器通告路徑。

支援安全重新啟動的路由器會播送安全重新啟動計時器值,定義其他路由器在收到安全重新啟動通知後必須等待的時間。兩個連線的路由器可能會使用不同的安全重新啟動計時器值,且每個路由器都應遵守對等互連的安全重新啟動計時器值。建立新的 BGP 工作階段時,每個路由器都會透過 BGP OPEN 訊息,將自己的安全重新啟動計時器值傳達給對等路由器。

Cloud Router 支援安全重新啟動,且 Cloud Router 安全重新啟動計時器已設為 120 秒。如果對等路由器也支援安全重新啟動,每個 Cloud Router 都會在每次軟體維護事件前,傳送安全重新啟動通知。

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

如要進一步瞭解安全重新啟動,請參閱 RFC 4724

過時路徑計時器

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

更新 BGP 保持運作時間間隔

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

控制台

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

    前往 Cloud Router

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

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

  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 秒。

後續步驟