設定 Cloud Router 的 BGP ID 範圍

每個 Cloud Router 都有 BGP ID,也稱為「路由器 ID」。根據 RFC 6286 的規定,虛擬私有雲 (VPC) 網路中的每個 Cloud Router 都有專屬的 BGP ID。BGP ID 是 4 個八位元的無正負號整數,以有效的 IPv4 位址表示。

您可以為 Cloud Router 指派明確的 BGP ID 範圍。如果這麼做,系統會從指派的範圍為 Cloud Router 指派穩定的 BGP ID。

IPv6 BGP 必須使用明確的 BGP ID 範圍。如果您為尚未指派 BGP ID 範圍的 Cloud Router 新增 IPv6 介面,系統會從 IPv4 連結本機位址空間隨機指派範圍。

如果 Cloud Router 沒有明確的 BGP ID 範圍,系統會指派對應的 BGP ID,也就是 IPv4 介面中,以字典順序排序的最後一個 IPv4 位址。

BGP ID 變更和 BGP 工作階段重新啟動

除非您已設定明確的 BGP ID 範圍,否則 Cloud Router 可能會在下列情況下變更自動產生的路由器 ID:

  • 新增 BGP 工作階段
  • 移除 BGP 工作階段
  • 定期維護期間

事前準備

gcloud

如要使用本指南中的指令列範例,請完成下列事項:

  1. 安裝或更新至最新版 Google Cloud CLI
  2. 設定預設地區和區域

API

如要使用本指南提供的 API 範例,請設定 API 存取權

將 BGP ID 範圍指派給 Cloud Router

本節說明如何將明確的 BGP ID 範圍指派給 Cloud Router。

控制台

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

    前往「建立 Cloud Router」

  2. 指定 Cloud Router 的詳細資料:

    • 名稱:Cloud Router 的名稱。這個名稱會顯示在 Google Cloud 控制台中,並由 Google Cloud CLI 用於參照 Cloud Router,例如 my-router
    • 說明:選填。Cloud Router 的說明。
    • 網路:您要連線的執行個體所屬的虛擬私有雲網路,例如 my-network
    • 「Region」(地區):您希望 Cloud Router 所處的地區,例如 asia-east1
    • Google ASN:任何私人 ASN (64512-655344200000000-4294967294),只要您尚未在內部部署網路中使用即可。Cloud Router 規定您必須使用私人 ASN,但地端部署 ASN 可以是公用或私人 ASN。

    • BGP 對等互連保持運作間隔:傳送至對等互連路由器的兩則連續 BGP 保持運作訊息之間的時間間隔。這個值必須是介於 20 至 60 之間的整數,指定間隔的秒數。預設值為 20 秒。詳情請參閱「管理 BGP 計時器」。
    • BGP ID:選用。BGP ID (有時稱為路由器 ID) 是用來在網路中區分 Cloud Router 的專屬 ID。如果省略,具有 IPv4 BGP 工作階段的 Cloud Router 會使用其中一個 IPv4 BGP 位址做為 BGP 識別碼,並在將第一個 IPv6 介面新增至這個 Cloud Router 時,自動填入這個欄位。

      詳情請參閱「為 Cloud Router 設定 BGP ID 範圍」。

  3. 選用:如要指定自訂 advertise 路由,請前往「Advertised routes」(公告路徑) 區段。詳情請參閱「廣告路由」。
    1. 如要指定自訂「Routes」(路由),請選取「Create custom routes」(建立自訂路由)
    2. 選擇是否要通告 Cloud Router 可用的子網路。啟用這個選項後即可模擬 Cloud Router 的預設行為。
    3. 如要新增通告路徑,請選取「新增自訂路徑」,然後進行設定。
  4. 如要儲存設定並建立 Cloud Router,請按一下「建立」。新的 Cloud Router 便會顯示在 Cloud Router 清單頁面上。如要查看詳細資料及設定 BGP 工作階段,請選取該 Cloud Router。

gcloud

如要在建立 Cloud Router 時指派明確的 BGP ID 範圍,請使用 --bgp-identifier-range 旗標。

gcloud compute routers create ROUTER_NAME \
    --bgp-identifier-range=BGP_IDENTIFIER_RANGE

BGP_IDENTIFIER_RANGE 替換為 169.254.0.0/16 中的連結本機 IPv4 範圍,子網路遮罩前置長度最多為 /30。IPv4 位址範圍不得與下列任一項目重疊:

  • 這個 Cloud Router 上另一個 BGP 工作階段使用的 IPv4 位址範圍。

  • 相同虛擬私有雲網路和區域中,其他 Cloud Router 使用的任何自訂 BGP ID 範圍。

API

請使用 routers.insert 方法

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/ROUTER_NAME
    {
      "bgp": {
         "asn": "ASN_NUMBER",
         "keepaliveInterval": KEEPALIVE_INTERVAL,
         "identifierRange": BGP_IDENTIFIER_RANGE
      },
      "name": "ROUTER_NAME",
      "network": "NETWORK"
     }

BGP_IDENTIFIER_RANGE 替換為 169.254.0.0/16 中的連結本機 IPv4 範圍,子網路遮罩前置長度最多為 /30。這個範圍不得與相同區域中任何現有的 IPv4 Cloud Router 介面或 Cloud Router 的 BGP ID 範圍重疊。

修改 BGP ID 範圍

本節說明如何修改 Cloud Router 上現有的明確 BGP ID 範圍。

gcloud

如要變更明確的 BGP ID 範圍,請執行下列指令。

gcloud compute routers update ROUTER_NAME \
    --bgp-identifier-range=BGP_IDENTIFIER_RANGE

BGP_IDENTIFIER_RANGE 替換為 169.254.0.0/16 中的連結本機 IPv4 範圍,子網路遮罩前置長度最多為 /30

IPv4 位址範圍不得與下列任一項目重疊:

  • 這個 Cloud Router 上另一個 BGP 工作階段使用的 IPv4 位址範圍。

  • 相同虛擬私有雲網路和區域中,其他 Cloud Router 使用的任何自訂 BGP ID 範圍。

API

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

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

BGP_IDENTIFIER_RANGE 替換為 169.254.0.0/16 中的連結本機 IPv4 範圍,子網路遮罩前置長度最多為 /30。IPv4 位址範圍不得與下列任一項目重疊:

  • 這個 Cloud Router 上另一個 BGP 工作階段使用的 IPv4 位址範圍。

  • 相同虛擬私有雲網路和區域中,其他 Cloud Router 使用的任何自訂 BGP ID 範圍。

後續步驟