使用第三方裝置建立連線

您可以使用 Network Connectivity Center,透過第三方網路虛擬設備,在外部網站與虛擬私有雲 (VPC) 網路資源之間建立連線。如要透過這種方式建立連線,請使用 Router appliance 功能。

路由器設備是 Network Connectivity Center 支援的輪輻類型之一。如要瞭解 Network Connectivity Center,請參閱 Network Connectivity Center 總覽。如要進一步瞭解路由器設備,請參閱「路由器設備總覽」。

範例設定

在下列拓撲中,外部網站會透過路由器設備 Spoke 連線至兩個 VPC 網路。

主機 VM 在每個 VPC 網路中都有介面,可做為路由器設備執行個體。路由器設備執行個體會與這兩個網路中的 Cloud Router 維持邊界閘道通訊協定 (BGP) 工作階段。

每個 Cloud Router 都有兩個介面。每個網路中的路由器設備介面都會與適當 Cloud Router 的兩個介面對等互連,因此總共有四個對等互連工作階段。

為路由器設備建立 BGP 工作階段
網站到雲端範例拓撲 (按一下可放大)

必要工作

如要設定範例設定,請確認您符合執行這項程序的必要條件,然後完成必要工作:

  1. 建立 Compute Engine 虛擬機器 (VM),做為路由器設備執行個體。您可以透過支援的合作夥伴解決方案或自訂映像檔建立 VM。

  2. 確認路由器設備執行個體可透過 TCP 通訊埠 179 存取 BGP 流量。如要開放存取,您可能需要建立防火牆規則

  3. 建立兩個輪輻,每個虛擬私有雲網路各一個。每個輪輻都使用相同的路由器設備執行個體做為支援資源。

  4. 設定兩個 Cloud Router,每個虛擬私有雲網路各一個。這項工作包含下列子工作:

    1. 在與路由器設備執行個體相同的地區建立 Cloud Router

    2. 在每個 Cloud Router 上建立兩個介面

    3. 在每個 Cloud Router 上設定 BGP 對等互連

  5. 在路由器設備執行個體上設定 BGP 對等互連

完成這些工作的方式可能大不相同。舉例來說,如果您使用合作夥伴解決方案建立路由器設備執行個體,系統可能會自動執行部分後續工作。

事前準備

開始設定前,請先詳閱下列各節。

建立或選取專案

為方便設定 Network Connectivity Center,請先找出有效的專案。

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.

  5. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Install the Google Cloud CLI.

  10. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. 如果您使用 Google Cloud CLI,請使用 gcloud config set 指令設定專案 ID。

    gcloud config set project PROJECT_ID

    PROJECT_ID 替換為專屬專案 ID。

    這個頁面的 gcloud CLI 指令假設您已設定專案 ID。

  13. 如要確認專案 ID 設定正確無誤,請使用 gcloud config list 指令

    gcloud config list --format='text(core.project)'
  14. 啟用 Network Connectivity API

    您必須先啟用 Network Connectivity API,才能使用 Network Connectivity Center 執行任何工作。

    控制台

    如要啟用 Network Connectivity API,請按照下列步驟操作:

    1. 在 Google Cloud 控制台中,前往「Network Connectivity Center」頁面。

      前往 Network Connectivity Center

    2. 按一下「啟用」

    或者,您也可以使用Google Cloud 控制台 API 程式庫啟用 API,如「啟用 API」一文所述。

    取得存取權

    如要使用 Network Connectivity Center,您需要具備角色和權限一文所述的權限。

    設定網路連線中心時,您也會使用虛擬私有雲網路、子網路和防火牆規則等 Google Cloud資源。如要進一步瞭解使用這些資源所需的權限,請參閱 Compute Engine 存取權控管說明文件

    IP 位址和路由器設備執行個體

    如要設定路由器設備執行個體,您必須在執行個體和 Cloud Router 之間建立對等互連。如要設定對等互連,VM 必須使用 RFC 1918 內部 IP 位址。如果 VM 使用不同類型的位址,您就無法對等互連這兩項資源。此外,這兩個 IP 位址必須位於相同區域。

    如要瞭解如何查看 VM 的 IP 位址,請參閱下列文件:

    如要瞭解 IP 位址類型定義和詳細資訊,請參閱「IP 位址」一文。

    預留靜態內部 IP 位址 (建議)

    建議您為路由器設備執行個體指派靜態內部 IP 位址,這樣位址就不會在重新啟動時變更。如果位址變更,BGP 對等互連就會失敗。

    您可以透過多種方式指派保留的 IP 位址。您可以預先保留 IP 位址。或者,您也可以在建立 VM 時保留 IP 位址。如果誤將暫時位址指派給 VM,之後可以將該位址轉換為靜態位址。如要進一步瞭解靜態 IP 位址,請參閱「保留靜態 IP 位址」。

    BGP 對等互連的 IP 位址

    路由器設備執行個體會使用內部 IP 位址與 Cloud Router 對等互連。執行個體不會使用連結本機位址 (例如 169.254.x.x) 進行 BGP 對等互連。

    同樣地,雲端路由器會使用兩個 RFC 1918 內部 IP 位址與路由器設備執行個體對等互連,每個介面各使用一個位址。您可以從子網路手動或自動指派這些 IP 位址,該子網路同時包含路由器設備執行個體介面和 Cloud Router 介面。

    建立虛擬私有雲資源

    以下各節說明如何建立 VPC 網路和子網路。

    建立兩個虛擬私有雲網路

    如果尚未建立,請建立兩個 VPC 網路。將每個網路的動態轉送模式設為 global

    如要進一步瞭解如何建立虛擬私有雲網路,請參閱「建立網路」。

    主控台

    如要使用 Google Cloud 控制台建立自訂虛擬私有雲網路,請參閱建立自訂模式網路。請務必將「動態轉送模式」設為「全域」。如要遵循範例設定中使用的命名慣例,請將網路命名為 network-anetwork-b

    gcloud

    如要建立自訂虛擬私有雲網路,請使用 gcloud compute networks create 指令

      gcloud compute networks create NAME \
          --subnet-mode custom \
          --bgp-routing-mode global
    

    NAME 替換為虛擬私有雲網路的名稱,例如 network-anetwork-b

    API

    如要使用 Compute Engine API 建立自訂虛擬私有雲網路,請參閱「使用虛擬私有雲」。

    建立子網路

    network-anetwork-b 中各建立一個子網路。

    主控台

    如要使用 Google Cloud 控制台新增子網路,請參閱「新增子網路」一文。

    如要遵循範例設定中使用的命名慣例,請在 network-a 中使用下列子網路值:

    • Name (名稱):subnet-a
    • Region (區域):us-central1
    • 範圍10.1.3.0/24

    針對 network-b 中的子網路使用下列值:

    • Name (名稱):subnet-b
    • Region (區域):us-central1
    • 範圍192.168.10.0/24

    gcloud

    如要建立虛擬私有雲子網路,請使用 gcloud compute networks subnets create 指令

      gcloud compute networks subnets create NAME \
          --network=NETWORK \
          --region=REGION \
          --range=RANGE
    

    更改下列內容:

    • NAME:包含路由器設備 VM 的子網路名稱,例如 subnet-asubnet-b
    • NETWORK:包含子網路的網路,例如 network-anetwork-b
    • REGION:包含子網路的區域,例如 us-central1
    • RANGE:子網路的 IP 範圍,採用 CIDR 標記法,例如 10.1.3.0/24192.168.10.0/24

    API

    如要使用 Compute Engine API 建立虛擬私有雲子網路,請參閱「使用虛擬私有雲」。

    建立路由器設備 VM

    建立做為路由器設備執行個體的 Compute Engine VM。在範例拓撲中,VM 會以 router-app-a 表示。這個類別有兩個介面,分別位於 network-anetwork-b 中。

    建立 VM 時,您必須選取網路虛擬設備映像檔。 這張圖片可以是下列任一類型:

    如要進一步瞭解如何指定圖片,請參閱下列資源:

    如要詳細瞭解如何建立 VM,請參閱建立及啟動 VM 執行個體

    本節範例假設您已為路由器設備執行個體保留 IP 位址。詳情請參閱「Router 設備的 IP 位址」。

    主控台

    如要建立範例設定中使用的 VM,請參閱「建立和啟動 VM 執行個體」。建立 VM 時,請選擇下列選項:

    • 如要遵循範例設定中使用的命名慣例,請使用下列值:

      • Name (名稱):router-app-a
      • 區域us-central1
      • Zone (可用區):us-central1-a
    • 如要選取映像檔,請前往頁面的「開機磁碟」區域,按一下「變更」,然後瀏覽至 VM 的適當映像檔。

    • 展開「進階選項」,然後展開「網路」。請使用下列值:

      • 在「IP forwarding」(IP 轉送) 下方,選取「Enable」(啟用)
      • 在「網路介面」下方,建立兩個介面,分別位於 network-anetwork-b。如要建立每個介面,請選取適當的網路,然後按一下「新增網路介面」。填妥以下欄位:
        • 選取要放置路由器設備執行個體的位置,例如 subnet-asubnet-b
        • 在「主要內部 IP」下方,選取要使用的預留 RFC 1918 內部 IP 位址,例如 10.1.3.8192.168.10.3
        • 在「Network Service Tier」(網路服務級別) 下,選取「Premium」(進階級);這項選擇可盡量讓流量使用 Google 網路。

    gcloud

    如要建立範例設定中使用的兩個路由器設備 VM,請使用 gcloud compute instances create 指令

    執行兩次指令,每個路由器設備執行個體各執行一次。將 INSTANCE_NAME 替換為做為路由器設備執行個體的 VM 名稱。

    在下列範例中,您會將先前保留的靜態內部 IP 位址和靜態外部 IP 位址指派給 VM。您也可以指定包含 VM 供應商提供映像檔的專案,以及映像檔名稱。

      gcloud compute instances create INSTANCE_NAME \
          --project=PROJECT \
          --zone=ZONE \
          --machine-type=MACHINE_TYPE \
          --network-tier=NETWORK_TIER \
          --network-interface=[subnet=SUBNET,private-network-ip=INTERNAL_IP_ADDRESS] \
          --can-ip-forward \
          --image-project=IMAGE_PROJECT \
          --image=IMAGE
    

    更改下列內容:

    • INSTANCE_NAME:做為路由器設備執行個體的 VM 名稱,例如 router-app-arouter-app-b
    • PROJECT:包含路由器設備 VM 的專案名稱,例如 my-project
    • ZONE:VM 所在的 Google Cloud 可用區,例如 us-west1-a
    • MACHINE_TYPE:用於 VM 的機器類型資源,例如 n1-standard-2
    • NETWORK_TIER:建立路由器設備 VM 時,將網路層級設為 premium,盡可能讓流量使用 Google 網路
    • SUBNET:指派給 VM 主要網路介面的子網路,例如 subnet-a-1
    • INTERNAL_IP_ADDRESS:指派給連線至 Cloud Router 的 VM 介面的 RFC 1918 內部 IP 位址,例如 10.0.1.10
    • IMAGE_PROJECT:包含 image 欄位中指定圖片的專案名稱,例如 debian-cloud
    • IMAGE:要安裝的映像檔名稱,例如 debian-10-buster-v20210217

    API

    如要建立範例設定中使用的兩個路由器設備 VM,請使用 compute.instances.insert 方法

    如需其他建立方法,請參閱「建立及啟動 VM 執行個體」。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
     {
       "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
       "name": "INSTANCE_NAME",
       "canIpForward": "true",
       "networkInterfaces": [{
         "subnetwork": "regions/REGION/subnetworks/SUBNET",
         "networkIP": "INTERNAL_IP_ADDRESS",
         "accessConfigs": [{
             "networkTier": "NETWORK_TIER,
           }]
         }],
        "disks": [{
          "initializeParams": {
              "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
          },
          "boot": true
       }]
     }
    

    更改下列內容:

    • PROJECT:包含路由器設備 VM 的專案名稱,例如 my-project
    • ZONE:VM 所在的 Google Cloud 可用區,例如 us-west1-a
    • MACHINE_TYPE:用於 VM 的機器類型資源,例如 zones/us-west1-a/machineTypes/n1-standard-2
    • INSTANCE_NAME:VM 的名稱,例如 router-app-arouter-app-b
    • REGION:包含 VM 的區域,例如 us-west1
    • SUBNET:指派給 VM 主要網路介面的子網路,例如 regions/us-west1/subnetworks/subnet-a-1
    • INTERNAL_IP_ADDRESS:指派給 VM 的 RFC 1918 內部 IP 位址;設定連線至 Cloud Router 的 VM 介面位址,例如 10.0.1.10
    • NETWORK_TIER:建立路由器設備 VM 時,將網路層級設為 premium,盡可能讓流量使用 Google 網路
    • IMAGE_PROJECT:包含您在建立 VM 時指定映像檔的專案名稱,例如 debian-cloud
    • IMAGE:建立 VM 時要使用的映像檔名稱,例如 debian-10-buster-v20210217

    建立允許 BGP 的防火牆規則

    建立兩個防火牆規則,一個在 network-a,另一個在 network-b。每項規則都應允許 TCP 通訊埠 179 上的 BGP 流量。

    如要進一步瞭解防火牆指令,請參閱使用防火牆規則

    主控台

    如要使用Google Cloud 控制台建立虛擬私有雲防火牆規則,請參閱建立防火牆規則

    gcloud

    如要使用 Google Cloud CLI 建立虛擬私有雲防火牆規則,請參閱「建立防火牆規則」。

    API

    如要使用 Compute Engine API 建立虛擬私有雲防火牆規則,請參閱「建立防火牆規則」。

    建立 Network Connectivity Center 資源

    您必須先建立必要的 Network Connectivity Center 資源,才能使用路由器設備 VM。

    建立中樞

    您必須先建立中樞,才能建立 Network Connectivity Center 輪輻。

    主控台

    1. 在 Google Cloud 控制台中,前往「Network Connectivity Center」頁面。

      前往 Network Connectivity Center

    2. 在專案選單中選取專案。

    3. 輸入中樞名稱

    4. 輸入說明 (選填)

    5. 確認專案 ID。如果專案 ID 不正確,請使用畫面頂端的選單選取其他專案。

    6. 按一下「繼續」

    7. 控制台會顯示表單,供您建立 Spoke。如要立即填寫,請按照「建立路由器設備 Spoke」一文中的步驟操作。

    8. 按一下 [完成]

    gcloud

    如要建立中樞,請使用 gcloud network-connectivity hubs create 指令

      gcloud network-connectivity hubs create HUB_NAME \
        --description="DESCRIPTION" \
        --labels="KEY"="VALUE"
    

    替換下列值:

    • HUB_NAME:新中樞的名稱
    • DESCRIPTION:描述中心的選填文字
    • KEY:選用標籤文字的鍵/值組合中的鍵
    • VALUE:選用標籤文字的鍵/值組合中的值

    API

    如要建立中樞,請使用 networkconnectivity.hubs.create 方法

      POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/hubs
      {
        "name":"HUB_NAME",
        "description":"DESCRIPTION",
        "labels": {
          "KEY": "VALUE"
        }
      }
    

    替換下列值:

    • PROJECT_ID:含有新中樞的專案 ID
    • HUB_NAME:新中樞的名稱
    • DESCRIPTION:描述中心的選填文字
    • KEY:選用標籤文字的鍵/值配對中的鍵
    • VALUE:選用標籤文字的鍵/值組合中的值

    建立兩個路由器設備輪輻

    建立兩個路由器設備輪輻。兩個輪輻都使用相同的支援資源:您剛建立的路由器設備執行個體。一個輻輪使用 network-a 中的介面,另一個則使用 network- b 中的介面。

    如要在路由器設備執行個體和 Cloud Router 之間啟用 BGP 對等互連,就必須建立 Spoke。您會在下一個步驟中建立 Cloud Router。

    如要進一步瞭解如何建立輪輻,請參閱「使用中樞和輪輻」。

    主控台

    輸入基本輪輻詳細資料

    1. 在 Google Cloud 控制台中,前往「Network Connectivity Center」頁面。

      前往 Network Connectivity Center

    2. 在專案選單中選取專案。

    3. 按一下「Spokes」分頁標籤。

    4. 按一下「新增輪輻」

    5. 在「New spoke」(新 Spoke) 表單中,將「Spoke type」(Spoke 類型) 設為「Router appliance」(路由器設備)

    6. 輸入「Spoke name」(子網名稱),例如 spoke-aspoke-b

    7. 您也可以選擇輸入「Description」(說明)

    8. 選取新 Spoke 的「Region」(區域) 欄位。

    9. 在「站對站資料移轉」下方,選取「關閉」

    10. 在「VPC network」(虛擬私有雲網路) 下拉式清單中選取網路。

    輸入路由器設備詳細資料

    1. 在「Attach instance(s) to the spoke」(將執行個體附加至 Spoke) 下方,使用下拉式清單選取路由器設備,例如 router-app-a
    2. 如要將更多路由器設備執行個體新增至這個輪輻,請按一下「新增執行個體」,然後重複上一個步驟。
    3. 完成後,按一下「完成」,然後繼續儲存你的 Spoke

    儲存輪輻

    1. 如要新增第二個輪輻,請按一下「新增輪輻」,然後再次開始程序,首先輸入「輪輻名稱」
    2. 新增完所有輻條後,按一下「建立」。 「Network Connectivity Center」頁面會更新,顯示您建立的輪輻詳細資料。

    gcloud

    如要建立 Router 設備 Spoke,請使用 gcloud network-connectivity spokes linked-router-appliances create 指令。請執行兩次指令,每個輪輻一次。

      gcloud network-connectivity spokes linked-router-appliances create NAME \
        --hub="HUB_URI" \
        --description="DESCRIPTION" \
        --router-appliance=instance="ROUTER_APPLIANCE_URI",ip=IP_ADDRESS \
        --region=REGION \
        --labels="KEY"="VALUE"
     

    替換下列值:

    • NAME:分支的名稱,例如 spoke-a
    • HUB_URI:要將 Spoke 連接至的 Hub URI
    • DESCRIPTION:描述輻條的選填文字
    • ROUTER_APPLIANCE_URI:路由器設備執行個體的 URI,例如:
      https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
    • IP_ADDRESS:路由器設備執行個體的內部 IP 位址,位於適當的虛擬私有雲網路中,例如 10.1.3.8192.168.10.3
    • REGION:您希望 Spoke 所在的 Google Cloud 區域,例如 us-central1
    • KEY:選用標籤文字的鍵/值配對中的鍵
    • VALUE:選用標籤文字的鍵/值組合中的值

      舉例來說,下列指令會建立使用 router-app-a 做為基礎資源的路由器設備 Spoke。這個指令會使用路由器設備執行個體的 network-a 介面參照該執行個體:

      gcloud network-connectivity spokes linked-router-appliances create spoke-a \
          --hub=my-hub \
          --description="Test spoke 1" \
          --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=10.1.3.8 \
          --region=us-central1 \
      

      舉例來說,下列指令會建立使用 router-app-a 做為基礎資源的路由器設備 Spoke。這個指令會使用路由器設備執行個體的 network-b 介面參照該執行個體:

      gcloud network-connectivity spokes linked-router-appliances create spoke-b \
          --hub=my-hub \
          --description="Test spoke 1" \
          --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=192.168.10.3\
          --region=us-central1 \
      

    API

    如要建立路由器設備 Spoke,請使用 networkconnectivity.spokes.create 方法。針對要與輪輻建立關聯的每個路由器設備執行個體,使用 linkedRouterApplianceInstances.instances 陣列新增 instance

      POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/spokes/SPOKE_NAME
      {
        "hub": "HUB_URI",
        "labels": {"KEY": "VALUE"},
        "linkedRouterApplianceInstances": {
          "instances": [
            {
              "virtualMachine": "ROUTER_APPLIANCE_URI",
              "ipAddress": INTERNAL_IP_ADDRESS,
            },
          ],
          "siteToSiteDataTransfer": BOOLEAN
        }
      }
     

    替換下列值:

    • PROJECT_ID:專案的專案 ID
    • REGION:您希望 Spoke 所在的 Google Cloud 區域,例如 us-west1
    • SPOKE_NAME:您要為 Spoke 命名的名稱
    • HUB_URI:要將 Spoke 連接至的 Hub URI,例如:
      http://networkconnectivity.googleapis.com/v1/projects/PROJECT_NAME/locations/global/hubs/HUB_NAME 
    • KEY:選用標籤文字的鍵/值配對中的鍵
    • VALUE:選用標籤文字的鍵/值組合中的值
    • ROUTER_APPLIANCE_URI:路由器設備執行個體的 URI,例如:
      https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
    • IP_ADDRESS:適用於相應虛擬私有雲網路的路由器設備執行個體內部 IP 位址,例如 10.1.3.8192.168.10.3
    • BOOLEAN:決定是否為這個 Spoke 啟用網站間資料轉移的值;在這個用途中,請將這個選項設為 false

      舉例來說,如要建立在 network-a 中使用 router-app-a 做為介面的 Spoke,要求主體應採用下列結構:

      {
        "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
      
        "labels": {
          "environment" : "test"
        },
      
        "linkedRouterApplianceInstances": {
          "instances": [
            {
              "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",
              "ipAddress": "10.1.3.8",
            },
          ],
          "siteToSiteDataTransfer": false
        }
      }
      
      

      如要建立使用 router-app-a 做為介面的 Spoke (位於 network-b 中),要求主體應採用下列結構:

      {
        "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
      
        "labels": {
          "environment" : "test"
        },
      
        "linkedRouterApplianceInstances": {
          "instances": [
            {
              "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",
              "ipAddress": "192.168.10.3",
            },
          ],
          "siteToSiteDataTransfer": false
        }
      }
      
      

    設定 Cloud Router

    路由器設備會使用 Cloud Router 與虛擬私有雲網路交換路徑。因此,您必須在每個虛擬私有雲網路中建立 Cloud Router,並完成其他幾項設定工作。

    建立 Cloud Router

    如果您使用與範例拓撲相同的值,請建立兩個 Cloud Router,一個位於 network-a,另一個位於 network-b。兩個 Cloud Router 都應位於 us-central1

    詳情請參閱建立 Cloud Router

    主控台

    如要在 Google Cloud 控制台中建立 Cloud Router,請使用下列其中一種方法:

    • 使用「Cloud Router」頁面,如「建立 Cloud Router」一文所述。

    • 使用「Network Connectivity Center」頁面。這個方法的優點是可同時建立路由器、介面和 BGP 工作階段。如要進一步瞭解如何一併完成所有這些步驟,請參閱「在 Cloud Router 上設定 BGP 對等互連」。

    gcloud

    如要建立 Cloud Router,請使用 gcloud compute routers create 指令

      gcloud compute routers create NAME \
          --region=REGION \
          --network=NETWORK \
          --asn=ASN \
          --project=PROJECT_ID
    

    更改下列內容:

    • NAME:Cloud Router 的名稱,例如 cloud-router-acloud-router-b
    • :包含 Cloud Router 的區域,例如 us-central1REGION
    • NETWORK:包含 Cloud Router 的 VPC 網路,例如 network-anetwork-b
    • ASN:Cloud Router 的自治系統編號 (ASN)。這個 ASN 必須是 RFC 6996 中定義的 16 位元或 32 位元私人 ASN,例如 65000
    • PROJECT_ID:Cloud Router 的專案 ID,例如 my-project

    API

    如要建立 Cloud Router,請使用 compute.routers.insert 方法

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
    {
     "name": "NAME",
     "network": "NETWORK",
     "bgp": {
       "asn": ASN
      }
    }
    

    更改下列內容:

    • PROJECT_ID:Cloud Router 的專案 ID,例如 my-project
    • :包含 Cloud Router 的區域,例如 us-central1REGION
    • NAME:Cloud Router 的名稱,例如 cloud-router-acloud-router-b
    • NETWORK:包含 Cloud Router 的 VPC 網路 URI,例如 /global/networks/network-a/global/networks/network-b
    • ASN:Cloud Router 的自治系統編號 (ASN)。這個 ASN 必須是 RFC 6996 中定義的 16 位元或 32 位元私人 ASN,例如 65000

    在每個 Cloud Router 上建立兩個介面

    如要建立備援機制,請在每個 Cloud Router 上建立兩個介面。在每個 Cloud Router 上,這兩個介面都必須與對應的路由器設備介面建立關聯,且必須位於同一個子網路。如果您使用範例拓撲中的值,請執行下列操作:

    • 如果是 cloud-router-a,請在 subnet-a 中建立兩個介面。
    • 如果是 cloud-router-b,請在 subnet-b 中建立兩個介面。

    每個 Cloud Router 介面都會使用區域內部 IP 位址。如果您明確指定介面的內部 IP 位址,該 IP 位址必須屬於子網路的主要 IP 位址範圍。該 IP 位址不得已由其他資源使用,例如 VM 或其他 Cloud Router 介面。

    這個步驟沒有 Google Cloud 控制台操作說明。如果您使用 Google Cloud 控制台,完成下一個工作 (在每個 Cloud Router 上建立 BGP 對等互連) 時,系統會自動建立介面。

    gcloud

    如要在 Cloud Router 上建立備援介面,請使用 gcloud compute routers add-interface 指令

    請完成下列步驟兩次,一次是針對 cloud-router-a,另一次是針對 cloud-router-b

    1. 為每個 Cloud Router 建立第一個介面:

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name=FIRST_INTERFACE_NAME \
          --ip-address=FIRST_INTERFACE_IP_ADDRESS \
          --subnetwork=SUBNET \
          --region=REGION \
          --project=PROJECT_ID
      

      更改下列內容:

      • ROUTER_NAME:要更新的 Cloud Router 名稱,例如 cloud-router-acloud-router-b
      • FIRST_INTERFACE_NAME:介面名稱,例如 interface-1
      • :用於第一個介面的 RFC 1918 內部 IP 位址;如未指定值,Google 會嘗試在子網路的主要 IP 位址範圍中尋找可用位址FIRST_INTERFACE_IP_ADDRESS
      • SUBNET:包含 Cloud Router 介面和對應路由器設備執行個體介面的子網路
      • REGION:Cloud Router 所在的 Google Cloud 地區,例如 us-central1
      • PROJECT_ID:Cloud Router 的專案 ID,例如 my-project
    2. 為每個 Cloud Router 建立第二個介面:

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name=SECOND_INTERFACE_NAME \
          --ip-address=SECOND_INTERFACE_IP_ADDRESS \
          --subnetwork=SUBNET \
          --redundant-interface=FIRST_INTERFACE_NAME \
          --region=REGION \
          --project=PROJECT_ID
      

      更改下列內容:

      • ROUTER_NAME:要更新的 Cloud Router 名稱,例如 cloud-router-acloud-router-b
      • SECOND_INTERFACE_NAME:介面名稱,例如 interface-2
      • SECOND_INTERFACE_IP_ADDRESS:用於第二個介面的 RFC 1918 內部 IP 位址;如未指定值,Google 會嘗試在子網路的主要 IP 位址範圍中尋找可用位址
      • SUBNET:包含兩個 Cloud Router 介面和對應路由器設備執行個體介面的子網路
      • FIRST_INTERFACE_NAME:您在步驟 1 建立的介面名稱
      • REGION:Cloud Router 所在的 Google Cloud 地區,例如 us-central1
      • PROJECT_ID:Cloud Router 的專案 ID,例如 my-project

      cloud-router-a 的指令範例

      下列指令會在 cloud-router-a 上建立第一個介面:

      gcloud compute routers add-interface cloud-router-a \
          --interface-name=interface-1 \
          --ip-address=10.1.3.14 \
          --subnetwork=subnet-a \
          --region=us-central1 \
          --project=my-project
      

      下列指令會在 cloud-router-a 上建立第二個介面:

      gcloud compute routers add-interface cloud-router-a \
          --interface-name=interface-2 \
          --ip-address=10.1.3.15 \
          --subnetwork=subnet-a \
          --redundant-interface=interface-1 \
          --region=us-central1 \
          --project=my-project
      

      cloud-router-b 的指令範例

      下列指令會在 cloud-router-b 上建立第一個介面:

      gcloud compute routers add-interface cloud-router-b \
          --interface-name=interface-1 \
          --ip-address=192.168.10.14 \
          --subnetwork=subnet-b \
          --region=us-central1 \
          --project=my-project
      

      下列指令會在 cloud-router-b 上建立第二個介面:

      gcloud compute routers add-interface cloud-router-b \
         --interface-name=interface-2 \
         --ip-address=192.168.10.15 \
         --subnetwork=subnet-b \
         --redundant-interface=interface-1 \
         --region=us-central1 \
         --project=my-project
      

    API

    如要在 Cloud Router 上建立備援介面,請使用 compute.routers.patch 方法

    請使用下列要求兩次,一次用於 cloud-router-a,另一次用於 cloud-router-b

        "PATCH
        https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
        {
          "region":"REGION",
          "interfaces":[
            {
              "name":"FIRST_INTERFACE_NAME",
              "privateIpAddress:"FIRST_INTERFACE_IP_ADDRESS",
              "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
            },
            {
              "name":"SECOND_INTERFACE_NAME",
              "privateIpAddress:"SECOND_INTERFACE_IP_ADDRESS",
              "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET",
              "redundantInterface": "FIRST_INTERFACE_NAME"
            }
          ]
        }
      

    更改下列內容:

    • PROJECT_ID:Cloud Router 的專案 ID,例如 my-project
    • REGION:Cloud Router 所在的 Google Cloud 地區,例如 us-central1
    • NAME:要更新的 Cloud Router 名稱,例如 cloud-router-acloud-router-b
    • NETWORK:包含 Cloud Router 的 VPC 網路,例如 network-a
    • FIRST_INTERFACE_NAME:第一個介面的名稱,例如 interface-1
    • :用於第一個介面的 RFC 1918 內部 IP 位址;如未指定值,Google 會嘗試在子網路的主要 IP 位址範圍中尋找可用位址FIRST_INTERFACE_IP_ADDRESS
    • SUBNET:包含兩個 Cloud Router 介面和對應路由器設備執行個體介面的子網路
    • SECOND_INTERFACE_NAME:第二個介面的名稱,例如 interface-2
    • :用於第二個介面的 RFC 1918 內部 IP 位址;如未指定值,Google 會嘗試在子網路的主要 IP 位址範圍中尋找可用位址SECOND_INTERFACE_IP_ADDRESS

      cloud-router-a 的指令範例

      下列指令會在 cloud-router-a 上建立兩個介面:

       "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/routers/cloud-router-a
        {
         "region":"us-central1",
         "interfaces":[
           {
            "name":"router-appliance-interface-0",
            "privateIpAddress:"10.1.3.14",
            "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a"
           },
           {
            "name":"router-appliance-interface-1",
            "privateIpAddress:"10.1.3.15",
            "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a",
            "redundantInterface": "router-appliance-interface-0"
           }
         ]
        }
       

      cloud-router-b 的指令範例

      下列指令會在 cloud-router-b 上建立兩個介面:

      "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/routers/cloud-router-b
       {
         "region":"us-central1",
         "interfaces":[
           {
            "name":"router-appliance-interface-0",
            "privateIpAddress:"192.168.10.14",
            "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-b"
         },
         {
            "name":"router-appliance-interface-1",
            "privateIpAddress:"192.168.10.15",
            "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/subnet-b",
            "redundantInterface": "router-appliance-interface-0"
         }
       ]
      }
      

    在每個 Cloud Router 上設定 BGP 對等互連

    您必須為路由器設備執行個體上的每個介面建立兩個 BGP 對等互連工作階段,每個 Cloud Router 介面各一個。如果您使用範例拓撲中的值,請執行下列操作:

    • cloud-router-arouter-app-anetwork-a 介面之間建立兩個對等互連工作階段。

    • cloud-router-brouter-app-anetwork-b 介面之間建立兩個對等互連工作階段。

    主控台

    請完成下列步驟兩次,一次是針對 spoke-a,另一次是針對 spoke-b

    1. 前往「Network Connectivity Center」頁面。
    2. 前往 Network Connectivity Center
    3. 在專案選單中選取專案。
    4. 按一下「Spokes」分頁標籤。
    5. 在「Spoke name」(Spoke 名稱) 欄中選取 Spoke,即可查看「Spoke details」(Spoke 詳細資料) 頁面。例如選取 spoke-aspoke-b
    1. 在「名稱」欄中找到 router-app-a。 按一下展開圖示,即可顯示「設定 BGP 工作階段」連結。點選任一連結。系統隨即會顯示「設定 Cloud Router 和 BGP 工作階段」面板。

    1. 在「Cloud Router」部分中,執行下列其中一項操作:

      • 如要選取現有的 Cloud Router,請按一下「使用現有項目」。使用「Cloud Router」欄位找出適當的資源,然後按一下「Select and continue」
      • 如要在「Network Connectivity Center」頁面建立 Cloud Router,請按一下「建立新項目」,然後按照提示建立 Cloud Router。然後按一下「建立並繼續」
    2. 在「BGP Sessions」(BGP 工作階段) 下方,設定兩個 BGP 工作階段。請針對每個工作階段完成下列步驟一次:
      1. 按一下「編輯 BGP 工作階段」
      2. 填寫表單,輸入「名稱」、「對等互連 ASN」和「通告路徑優先順序 (MED)」。按一下「儲存並繼續」
    3. 點選「建立」

    gcloud

    如要在 Cloud Router 上建立 BGP 對等互連,請使用 gcloud compute routers add-bgp-peer 指令

    請完成下列步驟兩次,一次是針對 cloud-router-a,另一次是針對 cloud-router-b

    1. 建立第一個 BGP 對等互連:

      gcloud compute routers add-bgp-peer NAME \
          --peer-name=PEER_NAME \
          --interface=INTERFACE \
          --peer-ip-address=PEER_IP_ADDRESS \
          --peer-asn=PEER_ASN \
          --instance=ROUTER_APPLIANCE \
          --instance-zone=ROUTER_APPLIANCE_ZONE \
          --region=REGION
      
    2. 建立第二個 BGP 對等互連:

      gcloud compute routers add-bgp-peer NAME \
          --peer-name=PEER_NAME \
          --interface=INTERFACE \
          --peer-ip-address=PEER_IP_ADDRESS \
          --peer-asn=PEER_ASN \
          --instance=ROUTER_APPLIANCE \
          --instance-zone=ROUTER_APPLIANCE_ZONE \
          --region=REGION
      

      更改下列內容:

      • NAME:要更新的 Cloud Router 名稱,例如 cloud-router-acloud-router-b
      • PEER_NAME:要與路由器設備執行個體建立的 BGP 對等互連工作階段名稱
      • INTERFACE:這個 BGP 對等互連介面的名稱
      • PEER_IP_ADDRESS:對等路由器 (路由器設備執行個體) 的內部 IP 位址,例如 10.1.3.8192.168.10.3
      • PEER_ASN:這個 BGP 對等互連的 BGP 自治系統編號 (ASN);這個 ASN 必須是 RFC 6996 中定義的 16 位元或 32 位元私人 ASN
      • ROUTER_APPLIANCE:做為路由器設備執行個體的 VM 名稱,例如 router-app-a
      • ROUTER_APPLIANCE_ZONE:做為路由器設備執行個體的 VM 所在區域,例如 us-central1-a
      • REGION:做為路由器設備執行個體的 VM 所在區域,例如 us-central1

      cloud-router-a 的指令範例

      使用下列指令為 cloud-router-a 建立 BGP 對等互連:

      gcloud compute routers add-bgp-peer cloud-router-a \
        --peer-name=router-appliance-bgp-peer-router-app-a-0 \
        --interface=router-appliance-interface-0 \
        --peer-ip-address=10.1.3.8 \
        --peer-asn=65001 \
        --instance=router-app-a \
        --instance-zone=us-central1-a \
        --region=us-central1
      
      gcloud compute routers add-bgp-peer cloud-router-a \
        --peer-name=router-appliance-bgp-peer-router-app-a-1 \
        --interface=router-appliance-interface-1 \
        --peer-ip-address=10.1.3.8 \
        --peer-asn=65001 \
        --instance=router-app-a \
        --instance-zone=us-central1-a \
        --region=us-central1
      

      cloud-router-b 的指令範例

      使用下列指令為 cloud-router-b 建立 BGP 對等互連:

      gcloud compute routers add-bgp-peer cloud-router-b \
         --peer-name=router-appliance-bgp-peer-router-app-a-0 \
        --interface=router-appliance-interface-0 \
        --peer-ip-address=192.168.10.3 \
        --peer-asn=65001 \
        --instance=router-app-a \
        --instance-zone=us-central1-a \
        --region=us-central1
      
      gcloud compute routers add-bgp-peer cloud-router-b \
        --peer-name=router-appliance-bgp-peer-router-app-a-1 \
        --interface=router-appliance-interface-1 \
        --peer-ip-address=192.168.10.3 \
        --peer-asn=65001 \
        --instance=router-app-a \
        --instance-zone=us-central1-a \
        --region=us-central1
      

    API

    如要在 Cloud Router 上建立 BGP 對等互連,請使用 compute.routers.patch 方法。請使用這個方法兩次,一次用於 cloud-router-a,另一次用於 cloud-router-b

     PATCH
    https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
       {
        "bgpPeers": [
         {
           "name": "PEER_NAME",
           "interfaceName": "INTERFACE_NAME",
           "ipAddress": "IP_ADDRESS",
           "peerIpAddress": "PEER_IP_ADDRESS",
           "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE",
           "peerAsn": PEER_ASN,
         }
         {
           "name": "PEER_NAME",
           "interfaceName": "INTERFACE_NAME",
           "ipAddress": "IP_ADDRESS",
           "peerIpAddress": "PEER_IP_ADDRESS",
           "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE",
           "peerAsn": PEER_ASN
         }
        ]
       }
     

    更改下列內容:

    • PROJECT_ID:Cloud Router 的專案 ID
    • REGION:做為路由器設備執行個體的 VM 所在區域
    • NAME:要更新的 Cloud Router 名稱
    • PEER_NAME:要與路由器設備執行個體建立的 BGP 對等互連工作階段名稱
    • INTERFACE_NAME:要新增對等的 Cloud Router 介面名稱
    • IP_ADDRESS:Cloud Router 的 RFC 1918 內部 IP 位址,用於對等互連工作階段
    • PEER_IP_ADDRESS:做為路由器設備執行個體的 VM 內部 IP 位址,例如 10.1.3.8192.168.10.3
    • ROUTER_APPLIANCE_INSTANCE:做為路由器設備執行個體的 VM 名稱 (網址格式)
    • ROUTER_APPLIANCE_ZONE:做為路由器設備執行個體的 VM 所在區域
    • PEER_ASN:這個 BGP 對等互連的 BGP 自治系統編號 (ASN);這個 ASN 必須是 RFC 6996 中定義的 16 位元或 32 位元私人 ASN

      cloud-router-a 的指令範例

      PATCH
      https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
      {
       "bgpPeers": [
       {
         "name": "router-appliance-bgp-peer-router-app-a-0",
         "interfaceName": "router-appliance-interface-0",
         "ipAddress": "10.1.3.14",
         "peerIpAddress": "10.1.3.8",
         "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
         "peerAsn": 65001,
       }
       {
         "name": "router-appliance-bgp-peer-router-app-a-1",
         "interfaceName": "router-appliance-interface-1",
         "ipAddress": "10.1.3.15",
         "peerIpAddress": "10.1.3.8",
         "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
         "peerAsn": 65001
       }
       ]
      }
      

      cloud-router-b 的指令範例

      PATCH
      https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-b
      {
       "bgpPeers": [
       {
         "name": "router-appliance-bgp-peer-router-app-a-0",
         "interfaceName": "router-appliance-interface-0",
         "ipAddress": "192.168.10.14",
         "peerIpAddress": "192.168.10.3",
         "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
         "peerAsn": 65001,
       }
       {
         "name": "router-appliance-bgp-peer-router-app-a-1",
         "interfaceName": "router-appliance-interface-1",
         "ipAddress": "192.168.10.15,
         "peerIpAddress": "192.168.10.3",
         "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
         "peerAsn": 65001
       }
       ]
      }
      

    在路由器設備執行個體上設定 BGP

    設定路由器設備執行個體,透過 BGP 連線至兩個 Cloud Router。如要執行這項操作,請參閱路由器設備映像檔的供應商說明文件。

    後續步驟