路由器設備是 Network Connectivity Center (NCC) 支援的輪輻類型之一。本頁說明如何建立及設定路由器設備執行個體。視您選擇的方法而定,部分程序可能會自動執行。不過,您必須先完成所有必要工作,才能使用路由器設備輪輻建立連線。
必要工作包括:
建立要用做路由器設備執行個體的 VM。您可以透過支援的合作夥伴解決方案或自訂映像檔建立 VM。
確認路由器設備執行個體可透過 TCP 通訊埠 179 存取 BGP 流量。為確保可存取,您可能需要建立防火牆規則。
建立使用路由器設備執行個體的輪輻。
設定 Cloud Router。這項工作包含下列子工作:
在路由器設備執行個體所在的區域建立 Cloud Router。
在 Cloud Router 上建立兩個介面。
在 Cloud Router 設定 BGP 對接。
在路由器設備執行個體上設定 BGP 對等互連。
完成這些工作的方式可能大不相同。舉例來說,如果您使用合作夥伴解決方案建立路由器設備執行個體,系統可能會自動為您執行後續部分工作。
您可以使用 NCC 實作中樞與輪輻架構,在 Google Cloud中管理網路連線。詳情請參閱「NCC 總覽」。
範例設定
本頁說明如何設定範例網站對雲端設定。在這個設定中,兩個路由器設備執行個體會在虛擬私有雲 (VPC) 網路和地端部署網路之間提供連線。NCC 會使用等價多路徑 (ECMP) 轉送,在路由器設備執行個體之間進行流量負載平衡。並使用邊界閘道通訊協定 (BGP) 在網路之間分配路徑。
範例設定會將路由器設備執行個體放在同一個子網路中。 不過,每個路由器設備執行個體都位於不同的可用區。
每個路由器設備執行個體都會與同一個 Cloud Router 維持 BGP 工作階段。這個 Cloud Router 有兩個介面。每個路由器設備執行個體都會與這些介面建立對等互連,因此共有四個對等互連工作階段。
這個拓撲並未說明站對站資料移轉。不過,設定這個拓撲的操作說明與站對站資料移轉拓撲的一半幾乎相同,例外情況會在操作說明中註明。如要進一步瞭解站對站資料移轉,請參閱「路由器設備總覽」。
事前準備
開始之前,請先詳閱下列各節。
建立或選取專案
如要輕鬆設定 NCC,請先找出有效的專案。
- 登入 Google Cloud 帳戶。如果您未曾使用過 Google Cloud,歡迎 建立帳戶,親自體驗實際使用我們產品的成效。新客戶還能獲得價值 $300 美元的免費抵免額,能用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init 如果您使用 Google Cloud CLI,請使用
gcloud config set指令設定專案 ID。gcloud config set project PROJECT_ID
將
PROJECT_ID替換為您的專屬專案 ID。本頁的 gcloud CLI 指令假設您已設定專案 ID。
如要確認專案 ID 設定正確,請使用
gcloud config list指令。gcloud config list --format='text(core.project)'
啟用 Network Connectivity API
您必須先啟用 Network Connectivity API,才能使用 NCC 執行任何工作。
控制台
如要啟用 Network Connectivity API,請按照下列步驟操作:
前往 Google Cloud 控制台的「Network Connectivity Center」(網路連線中心) 頁面。
按一下「啟用」。
或者,您也可以使用Google Cloud 控制台 API 程式庫啟用 API,詳情請參閱「啟用 API」。
取得存取權
如要使用 NCC,您必須具備「角色和權限」一文所述的權限。
設定 NCC 時,您也會使用 Google Cloud資源,例如虛擬私有雲網路、子網路和防火牆規則。如要進一步瞭解使用這些資源所需的權限,請參閱 Compute Engine 存取權控管說明文件。
IP 位址和路由器設備執行個體
如要設定路由器設備執行個體,您必須在執行個體和 Cloud Router 之間建立對接。如要設定對等互連,VM 必須使用 RFC 1918 內部 IP 位址。如果 VM 使用不同類型的位址,您就無法對等互連這兩項資源。
如要瞭解如何查看 VM 的 IP 位址,請參閱下列文件:
如需 IP 位址類型的定義和詳細資訊,請參閱「IP 位址」。
預留靜態內部 IP 位址 (建議)
建議您為路由器設備執行個體指派靜態內部 IP 位址,這樣位址就不會在重新啟動時變更。如果位址變更,BGP 對等互連就會失敗。
您可以透過多種方式指派保留的 IP 位址。您可以預先保留 IP 位址。或者,您也可以在建立 VM 時預留 IP 位址。如果您不小心為 VM 指派了臨時位址,可以稍後再將位址轉換為靜態位址。如要進一步瞭解靜態 IP 位址,請參閱「預留靜態內部 IP 位址」。
BGP 對等互連的 IP 位址
路由器設備執行個體會使用內部 IP 位址與 Cloud Router 對等互連。執行個體不會使用連結本機位址 (例如 169.254.x.x) 進行 BGP 對等互連。
同樣地,Cloud Router 會使用兩個 RFC 1918 內部 IP 位址,與路由器設備執行個體建立對等互連,每個介面各使用一個位址。這些 IP 位址可從子網路手動或自動指派,該子網路同時包含路由器設備執行個體介面和 Cloud Router 介面。
建立虛擬私有雲資源
以下各節說明如何建立虛擬私有雲網路和子網路。
建立虛擬私有雲網路
如果尚未建立虛擬私有雲網路,請先建立。將網路的動態轉送模式設為 global。
如要進一步瞭解如何建立虛擬私有雲網路,請參閱「建立網路」。
控制台
如要使用 Google Cloud 控制台建立自訂虛擬私有雲網路,請參閱「建立自訂模式網路」。請務必將「動態轉送模式」設為「全域」。如要遵循範例設定中使用的命名慣例,請將網路命名為 network-a。
gcloud
如要建立自訂虛擬私有雲網路,請使用 gcloud compute networks create 指令。
gcloud compute networks create NETWORK \
--subnet-mode custom \
--bgp-routing-mode global
將 NETWORK 替換為虛擬私有雲網路的名稱,例如 network-a。
API
如要使用 Compute Engine API 建立自訂虛擬私有雲網路,請參閱「建立及管理虛擬私有雲網路」。
建立子網路
在 network-a 中建立一個子網路,用於存放做為路由器設備執行個體的 VM 執行個體。
控制台
如要使用 Google Cloud 控制台新增子網路,請參閱「新增子網路」。
如要遵循範例設定中使用的命名慣例,請使用下列值:
- Name (名稱):
subnet-a-1 - Region (區域):
us-west1 - 範圍:
10.0.1.0/24
gcloud
如要建立虛擬私有雲子網路,請使用 gcloud compute networks subnets create 指令。
gcloud compute networks subnets create SUBNET \
--network=NETWORK \
--region=REGION \
--range=RANGE
更改下列內容:
SUBNET:包含路由器設備 VM 的子網路名稱,例如subnet-a-1NETWORK:包含子網路的網路,例如network-aREGION:包含子網路的區域,例如us-west1RANGE:子網路的 IP 範圍,採用 CIDR 標記法,例如10.0.1.0/24
API
如要使用 Compute Engine API 建立虛擬私有雲子網路,請參閱「建立及管理虛擬私有雲網路」。
建立路由器設備 VM
建立 Compute Engine VM,做為路由器設備執行個體。範例設定使用兩個 VM:router-app-a 和 router-app-b。
從高層次來看,建立路由器設備映像檔的方法是建立使用網路虛擬設備映像檔的 VM。這張圖片可以是下列任一類型:
由支援的 NCC 合作夥伴提供的解決方案
自訂圖片,例如您建立的圖片
如要進一步瞭解如何指定圖片,請參閱下列資源:
如要進一步瞭解如何建立 VM,請參閱「建立並啟動 VM 執行個體」。
本節中的範例假設您已為路由器設備執行個體預留 IP 位址。詳情請參閱「IP 位址和路由器設備執行個體」。
控制台
如要建立範例設定中顯示的兩個 VM,請參閱「建立及啟動 VM 執行個體」。建立 VM 時,請選擇下列選項:
如要遵循範例設定中使用的命名慣例,請使用下列值:
- Name (名稱):
router-app-a或router-app-b - 區域:
us-west1 - 可用區:
us-west1-a或us-west1-b
- Name (名稱):
如要選取映像檔,請前往頁面的「Boot disk」(開機磁碟) 區域,按一下「Change」(變更),然後前往 VM 的適當映像檔。
展開「進階選項」,然後展開「網路」。請使用下列值:
- 在「IP forwarding」(IP 轉送) 下方,選取「Enable」(啟用)。
- 在「Network interfaces」(網路介面) 下方,選取「Add a Network Interface」(新增網路介面),然後填寫下列欄位:
- 選取要放置路由器設備執行個體的「子網路」,例如
subnet-a-1。 - 在「主要內部 IP」下方,選取要使用的保留 RFC 1918 內部 IP 位址,例如
10.0.1.10。 - 在「Network Service Tier」(網路服務級別) 下方,選取「Premium」(進階級);這項選擇可盡量讓流量使用 Google 的網路。
- 選取要放置路由器設備執行個體的「子網路」,例如
gcloud
如要建立範例設定中顯示的兩個路由器設備 VM,請使用 gcloud compute instances create 指令。請使用兩次指令,一次建立 router-app-a,另一次建立 router-app-b。
下列程式碼片段範例會為 VM 指派靜態內部 IP 位址和靜態外部 IP 位址。此外,也指定了要用於 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-a或router-app-bPROJECT:包含路由器設備 VM 的專案名稱,例如my-projectZONE:VM 所在的 Google Cloud 可用區,例如us-west1-aMACHINE_TYPE:VM 要使用的機型資源,例如n1-standard-2NETWORK_TIER:建立路由器設備 VM 時,請將網路層級設為premium,這樣可盡量讓流量使用 Google 網路SUBNET:指派給 VM 主要網路介面的子網路,例如subnet-a-1INTERNAL_IP_ADDRESS:指派給 VM 介面的 RFC 1918 內部 IP 位址,該介面會連線至 Cloud Router,例如10.0.1.10IMAGE_PROJECT:專案名稱,其中包含image欄位中指定的映像檔,例如debian-cloudIMAGE:要安裝的映像檔名稱,例如debian-10-buster-v20210217
API
如要建立範例設定中顯示的兩個路由器設備 VM,請使用 compute.instances.insert 方法。請使用這個方法兩次,一次建立 router-app-a,另一次建立 router-app-b。
下列程式碼片段範例會為 VM 指派靜態內部 IP 位址和靜態外部 IP 位址。此外,也會指定要用於 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-projectZONE:VM 所在的 Google Cloud 區域,例如us-west1-aMACHINE_TYPE:用於 VM 的機器類型資源,例如zones/us-west1-a/machineTypes/n1-standard-2INSTANCE_NAME:VM 的名稱,例如router-app-a或router-app-bREGION:VM 所在的區域,例如us-west1SUBNET:指派給 VM 主要網路介面的子網路,例如regions/us-west1/subnetworks/subnet-a-1INTERNAL_IP_ADDRESS:指派給 VM 的 RFC 1918 內部 IP 位址;請為連線至 Cloud Router 的 VM 介面設定位址,例如10.0.1.10NETWORK_TIER:建立路由器設備 VM 時,請將網路層級設為premium,這樣可盡量讓流量使用 Google 網路IMAGE_PROJECT:包含您在建立 VM 時指定映像檔的專案名稱,例如debian-cloudIMAGE:建立 VM 時要使用的映像檔名稱,例如debian-10-buster-v20210217
建立允許 BGP 的防火牆規則
建立防火牆規則,允許 BGP 流量前往 network-a 的 TCP 通訊埠 179。
請務必建立特定防火牆規則,允許流量傳送至網路虛擬設備 (NVA)。
如要進一步瞭解防火牆指令,請參閱「使用虛擬私有雲防火牆規則」。
控制台
如要使用Google Cloud 控制台建立虛擬私有雲防火牆規則,請參閱「使用虛擬私有雲防火牆規則」。
gcloud
如要使用 Google Cloud CLI 建立虛擬私有雲防火牆規則,請參閱「使用虛擬私有雲防火牆規則」。
API
如要使用 Compute Engine API 建立虛擬私有雲防火牆規則,請參閱「使用虛擬私有雲防火牆規則」。
建立 NCC 資源
如要使用路由器設備 VM,必須先建立必要的 NCC 資源,包括路由器設備輪輻。
建立中樞
您必須先建立中樞,才能建立 NCC 輪輻。
控制台
前往 Google Cloud 控制台的「Network Connectivity Center」(網路連線中心) 頁面。
在專案選單中選取專案。
輸入中樞名稱。
輸入說明 (選填)。
確認專案 ID。如果專案 ID 不正確,請使用畫面頂端的選單選取其他專案。
按一下「繼續」。
控制台會顯示表單,供您建立 Spoke。如要立即填寫,請按照「建立路由器設備 Spoke」一文中的步驟操作。
按一下「完成」。
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:包含新中樞的專案 IDHUB_NAME:新中樞的名稱DESCRIPTION:描述中樞的選填文字KEY:鍵/值組合中的鍵,用於選用標籤文字VALUE:鍵/值組合中的值,用於選用標籤文字
建立路由器設備輪輻
建立使用您剛建立的兩個路由器設備執行個體的路由器設備輪輻。您必須建立輪輻,才能在路由器設備執行個體和 Cloud Router 之間啟用 BGP 對接,這項操作將在下一個步驟中完成。
如要進一步瞭解如何建立輪輻,請參閱「使用中樞和輪輻」。
控制台
輸入輪輻的基本詳細資料
- 前往 Google Cloud 控制台的「Network Connectivity Center」(網路連線中心) 頁面。 前往 Network Connectivity Center
- 在專案選單中,選取 Google Cloud 專案。
- 按一下「Spokes」分頁標籤。
- 按一下「新增輪輻」。
- 在「新增輪輻」表單中,設定「輪輻類型」。
- 輸入「Spoke 名稱」,並視需要輸入「說明」。
- 選取新輪輻的「Region」(區域) 欄位。
- 在「站對站資料移轉」下方,選取「開啟」或「關閉」。如果所選區域不支援資料移轉,系統會停用該欄位。如要進一步瞭解這項用途,請參閱「站對站資料移轉功能總覽」。
- 在「虛擬私有雲網路」清單中選取網路。如果您有多個使用資料移轉功能的輪輻,這些輪輻必須位於同一個虛擬私有雲網路。因此,如果您已建立使用資料移轉的 Spoke,系統會預先填入 虛擬私有雲網路值,且無法變更。
輸入路由器設備詳細資料
- 將「Spoke type」(輪輻類型) 設為「Router appliance」(路由器設備)。
- 選取輪輻的「區域」。
- 選擇路由器設備執行個體:
- 按一下「新增執行個體」。
- 在「執行個體」選單中,選取現有的路由器設備執行個體。
- 如要將更多路由器設備執行個體新增至這個輪輻,請重複上述步驟。完成後,按一下「完成」,然後繼續儲存你的 Spoke。
儲存 Spoke
- 如要新增更多輪輻,請按一下「新增輪輻」,然後再次開始程序,首先輸入「輪輻名稱」。
- 新增完輪輻後,按一下「建立」。 「NCC」頁面會更新,顯示您建立的輪輻詳細資料。
gcloud
如要建立路由器設備 Spoke,請使用 gcloud network-connectivity spokes linked-router-appliances create 指令。
下列程式碼片段範例會建立包含兩個路由器設備執行個體的 Spoke。在本範例中,Spoke 不會使用站對站資料移轉功能。(如要啟用資料移轉功能,請再新增一個旗標:--site-to-site-data-transfer)。
gcloud network-connectivity spokes linked-router-appliances create NAME \
--hub="HUB_NAME" \
--description="DESCRIPTION" \
--router-appliance=instance="ROUTER_APPLIANCE_URI",ip=IP_ADDRESS \
--router-appliance=instance="ROUTER_APPLIANCE_URI_2",ip=IP_ADDRESS_2 \
--region=REGION \
--labels="KEY"="VALUE"
替換下列值:
NAME:輪輻名稱HUB_NAME:要將 Spoke 連接至的 Hub 名稱DESCRIPTION:說明輪輻的選用文字,例如us-vpn-spokeROUTER_APPLIANCE_URI:第一個路由器設備執行個體的 URI,例如:https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
IP_ADDRESS:第一個路由器設備執行個體的內部 IP 位址ROUTER_APPLIANCE_URI_2:第二個路由器設備執行個體的 URIIP_ADDRESS_2:第二個路由器設備執行個體的內部 IP 位址REGION:要放置 Spoke 的 Google Cloud 區域,例如us-west1KEY:鍵/值組合中的鍵,用於選用標籤文字VALUE:鍵/值組合中的值,用於選用標籤文字舉例來說,下列指令會建立路由器設備輪輻,並使用
router-app-a和router-app-b做為基礎資源:gcloud network-connectivity spokes linked-router-appliances create my-spoke \ --hub=my-hub \ --description="Test spoke 1" \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-a/instances/router-app-a",ip=10.0.1.10 \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b",ip=10.0.1.11 \ --region=us-west1 \ --labels="environment"="test"
如要建立相同的輪輻,但啟用資料移轉功能,請使用下列指令:
gcloud network-connectivity spokes linked-router-appliances create my-spoke \ --hub=my-hub \ --description="Test spoke 1" \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-a/instances/router-app-a",ip=10.0.1.10 \ --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b",ip=10.0.1.11 \ --region=us-west1 \ --labels="environment"="test" --site-to-site-data-transfer
API
如要建立路由器設備輪輻,請使用 networkconnectivity.spokes.create 方法。
下列程式碼片段範例會建立包含兩個路由器設備執行個體的 Spoke。每個例項都包含在 linkedRouterApplianceInstances.instances 陣列中。
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,
},
{
"virtualMachine": "ROUTER_APPLIANCE_URI_2,
"ipAddress": INTERNAL_IP_ADDRESS_2,
}
],
"siteToSiteDataTransfer": BOOLEAN
}
}
替換下列值:
PROJECT_ID:專案的專案 IDREGION:要放置 Spoke 的 Google Cloud 區域,例如us-west1SPOKE_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 位址ROUTER_APPLIANCE_URI_2:第二個路由器設備執行個體的 URIIP_ADDRESS_2:第二個路由器設備執行個體的內部 IP 位址BOOLEAN:決定是否為這個 Spoke 啟用站對站資料移轉的值舉例來說,如要建立以
router-app-a和router-app-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-west1-a/instances/router-app-a", "ipAddress": "10.0.1.10", }, { "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b", "ipAddress": "10.0.1.11", } ], "siteToSiteDataTransfer": true } }
設定 Cloud Router
路由器設備會使用 Cloud Router 與虛擬私有雲網路交換路由。因此,您必須建立 Cloud Router 並完成其他幾項設定工作。
建立 Cloud Router
在路由器 VM 所在的相同網路和區域中建立資源。在範例設定中,這些資源為 network-a 和 us-west1。
詳情請參閱「建立 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-aREGION:包含 Cloud Router 的區域,例如us-west1NETWORK:包含 Cloud Router 的虛擬私有雲網路,例如network-aASN:Cloud Router 的自治系統編號 (ASN)。這個 ASN 必須是 RFC 6996 中定義的 16 位元或 32 位元私有 ASN,例如65000PROJECT_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-projectREGION:Cloud Router 所在的區域,例如us-west1NAME:Cloud Router 的名稱,例如cloud-router-aNETWORK:包含 Cloud Router 的虛擬私有雲網路 URI,例如/global/networks/network-aASN:Cloud Router 的自治系統編號 (ASN)。這個 ASN 必須是 RFC 6996 中定義的 16 位元或 32 位元私有 ASN,例如65000
在 Cloud Router 上建立兩個備援介面
建立兩個備援 Cloud Router 介面,在範例設定中,這些介面會與 subnet-a-1 建立關聯。
Cloud Router 介面使用區域內部 IP 位址。
如果您明確指定介面的內部 IP 位址,該 IP 位址必須屬於子網路的主要 IP 位址範圍。不得由其他資源使用,例如 VM 或其他 Cloud Router 介面。如要預先預留子網路中的 IP 位址,請建立位址資源,然後將預留的 IP 位址用於 Cloud Router 介面。
使用控制台建立 BGP 對等互連時,系統會自動建立介面,因此這個步驟沒有控制台操作說明。 Google Cloud Google Cloud
gcloud
如要建立範例設定中顯示的兩個備援 Cloud Router 介面,請使用 gcloud compute routers add-interface 指令。請使用兩次指令,一次建立 router-appliance-interface-0,另一次建立 router-appliance-interface-1。
如果未指定 --ip-address 選項,Google 會嘗試從子網路的主要 IP 範圍中尋找可用的 IP 位址,並指派給介面。
建立第一個 Cloud Router 介面:
gcloud compute routers add-interface NAME \ --interface-name=INTERFACE_NAME \ --ip-address=IP_ADDRESS \ --subnetwork=SUBNET \ --region=REGION \ --project=PROJECT_ID建立備援 Cloud Router 介面:
gcloud compute routers add-interface NAME \ --interface-name=INTERFACE_2_NAME \ --ip-address=IP_ADDRESS \ --subnetwork=SUBNET \ --redundant-interface=INTERFACE_NAME \ --region=REGION \ --project=PROJECT_ID更改下列內容:
NAME:要更新的 Cloud Router 名稱,例如cloud-router-aINTERFACE_NAME:介面名稱,例如router-appliance-interface-0IP_ADDRESS:要用於介面的 RFC 1918 內部 IP 位址,例如10.0.1.5或10.0.1.6SUBNET:包含內部 IP 位址的子網路,例如subnet-a-1INTERFACE_2_NAME:與主要介面同一個路由器設備執行個體對等的備援 Cloud Router 介面,例如router-appliance-interface-1REGION:Cloud Router 所在的 Google Cloud 區域,例如us-west1PROJECT_ID:Cloud Router 的專案 ID,例如my-project
下列指令會在 Cloud Router 上建立第一個介面,如範例設定所述:
gcloud compute routers add-interface cloud-router-a \ --interface-name=router-appliance-interface-0 \ --ip-address=10.0.1.5 \ --subnetwork=subnet-a-1 \ --region=us-west1 \ --project=my-project下列指令會在 Cloud Router 上建立備援介面,如範例設定所述:
gcloud compute routers add-interface cloud-router-a \ --interface-name=router-appliance-interface-1 \ --ip-address=10.0.1.6 \ --subnetwork=subnet-a-1 \ --redundant-interface=router-appliance-interface-0 \ --region=us-west1 \ --project=my-project
API
如要建立範例設定中顯示的兩個備援 Cloud Router 介面,請使用 compute.routers.patch 方法。請使用這個方法兩次,一次建立 router-appliance-interface-0,另一次建立 router-appliance-interface-1。
如未指定 privateIpAddress 選項,Google 會嘗試從子網路的主要 IP 範圍中,找出可用的 IP 位址並指派給介面。
建立第一個 Cloud Router 介面:
"PATCH https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME { "region":"REGION", "interfaces":[ { "name":"INTERFACE_NAME", "privateIpAddress:"IP_ADDRESS", "subnetwork": "https":"//www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" } ] }建立備援 Cloud Router 介面:
"PATCH https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME { "region":"REGION", "interfaces":[ { "name":"INTERFACE_NAME_1", "privateIpAddress:"IP_ADDRESS", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET" }, { "name":"INTERFACE_NAME_2", "privateIpAddress:"IP_ADDRESS", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET", "redundantInterface": "INTERFACE_NAME_1" } ] }更改下列內容:
PROJECT_ID:Cloud Router 的專案 ID,例如my-projectREGION:Cloud Router 所在的 Google Cloud 區域,例如us-west1NAME:要更新的 Cloud Router 名稱,例如cloud-router-aNETWORK:包含 Cloud Router 的虛擬私有雲網路,例如network-aINTERFACE_NAME_1:主要介面的名稱,例如router-appliance-interface-0SUBNET:包含 RFC 1918 內部 IP 位址的子網路網址IP_ADDRESS:要用於介面的內部 IP 位址,例如10.0.1.5或10.0.1.6INTERFACE_NAME_2:備援 Cloud Router 介面的名稱,例如router-appliance-interface-1
下列指令會按照範例設定,在
cloud-router-a上建立第一個介面:"PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a { "region":"us-west1", "interfaces":[ { "name":"router-appliance-interface-0", "privateIpAddress:"10.0.1.5", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/>" } ] }下列指令會按照範例設定,在
cloud-router-a上建立備援介面:"PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a { "region":"us-west1", "interfaces":[ { "name":"router-appliance-interface-0", "privateIpAddress:"10.0.1.5", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a-1" }, { "name":"router-appliance-interface-0", "privateIpAddress:"10.0.1.6", "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a-1", "redundantInterface": "router-appliance-interface-0" } ] }
在 Cloud Router 上設定 BGP 對等互連
針對每個路由器設備執行個體,您必須在 Cloud Router 上建立兩個 BGP 對等互連,每個 Cloud Router 介面各一個。BGP 對等互連 IP 位址必須是設為路由器設備執行個體的 VM 主要內部 IP 位址。
為「router-app-a」建立 BGP 對等互連
本節說明如何為範例設定中名為 router-app-a 的路由器設備執行個體建立兩個 BGP 對等互連。下一節將說明如何在 router-app-b 上建立兩個 BGP 對等互連。
以下範例說明如何在 Cloud Router cloud-router-a 的兩個介面上,將 router-app-a 設定為 BGP 對等互連。
控制台
- 前往「Network Connectivity Center」頁面。 前往 Network Connectivity Center
- 在專案下拉式選單中選取專案。
- 按一下「Spokes」分頁標籤。
- 在「Spoke name」(輪輻名稱) 欄中選取輪輻,查看「Spoke details」(輪輻詳細資料) 頁面。
在「Name」(名稱) 欄中,找到
router-app-a。按一下展開圖示,即可顯示「設定 BGP 工作階段」連結。點選任一連結。系統隨即會顯示「設定 Cloud Router 和 BGP 工作階段」面板。
-
在「Cloud Router」部分,執行下列其中一項操作:
- 如要選取現有的 Cloud Router,請按一下「Use existing」(使用現有項目)。使用「Cloud Router」欄位找出適當的資源,然後按一下「Select and continue」(選取並繼續)。
- 如要在「Network Connectivity Center」頁面建立 Cloud Router,請按一下「建立新項目」,然後按照提示建立 Cloud Router。然後按一下「建立並繼續」。
- 在「BGP 工作階段」下方,設定兩個 BGP 工作階段。請針對每個工作階段完成下列步驟:
- 按一下「Edit BGP session」(編輯 BGP 工作階段)。
- 填寫表單,輸入「Name」(名稱)、「Peer ASN」(對等互連 ASN) 和「Advertised route priority (MED)」(公告路徑優先順序 (MED))。按一下「儲存並繼續」。
- 點選「建立」。
gcloud
如要在 Cloud Router 上為 router-app-a 建立 BGP 對等互連,請使用 gcloud compute routers add-bgp-peer 指令。請使用指令兩次,一次建立第一個 BGP 對等互連,另一次建立第二個 BGP 對等互連。
建立第一個 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建立第二個 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 名稱PEER_NAME:要與路由器設備執行個體建立的 BGP 對等互連工作階段名稱INTERFACE:這個 BGP 對等互連介面的名稱PEER_IP_ADDRESS:對等互連路由器 (路由器設備執行個體) 的內部 IP 位址,這個位址必須與 VM 主要網路介面 (nic0) 的主要內部 IP 位址相符PEER_ASN:這個 BGP 對等互連的 BGP 自治系統編號 (ASN);這個 ASN 必須是 RFC 6996 中定義的 16 位元或 32 位元私有 ASNROUTER_APPLIANCE:做為路由器設備執行個體的 VM 名稱ROUTER_APPLIANCE_ZONE:做為路由器設備執行個體的 VM 所在的可用區REGION:做為路由器設備執行個體的 VM 所在區域
下列程式碼片段範例說明如何為 router-app-a 建立兩個對等互連:
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.0.1.10 \
--peer-asn=65001 \
--instance=router-app-a \
--instance-zone=us-west1-a \
--region=us-west1
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.0.1.10 \
--peer-asn=65001 \
--instance=router-app-a \
--instance-zone=us-west1-a \
--region=us-west1
API
如要在 router-app-a 的 Cloud Router 上建立 BGP 對等互連,請使用 compute.routers.patch 方法。請使用這個方法兩次,分別建立第一個和第二個 BGP 對等互連。
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 的專案 IDREGION:做為路由器設備執行個體的 VM 所在區域NAME:要更新的 Cloud Router 名稱PEER_NAME:要與路由器設備執行個體建立的 BGP 對接工作階段名稱INTERFACE_NAME:要新增對等的 Cloud Router 介面名稱IP_ADDRESS:要用於 Cloud Router 介面的 RFC 1918 內部 IP 位址PEER_IP_ADDRESS:做為路由器設備執行個體的 VM 內部 IP 位址ROUTER_APPLIANCE_INSTANCE:以網址格式表示的名稱,適用於做為路由器設備執行個體的 VMROUTER_APPLIANCE_ZONE:做為路由器設備執行個體的 VM 所在的可用區PEER_ASN:這個 BGP 對等互連的 BGP 自治系統編號 (ASN);這個 ASN 必須是 RFC 6996 中定義的 16 位元或 32 位元私有 ASN
下列程式碼片段範例說明如何為 router-app-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.0.1.5",
"peerIpAddress": "10.0.1.10",
"routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-a",
"peerAsn": 65001,
}
{
"name": "router-appliance-bgp-peer-router-app-a-1",
"interfaceName": "router-appliance-interface-1",
"ipAddress": "10.0.1.6",
"peerIpAddress": "10.0.1.10",
"routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-a",
"peerAsn": 65001
}
]
}
為「router-app-b」建立 BGP 對等互連
如前所述,Cloud Router 可與多個設為路由器設備執行個體的 VM 建立 BGP 工作階段。這些 VM 必須位於同一個區域。如要建立這項設定,請在相同的 Cloud Router 介面上建立額外的 BGP 對接工作階段。
上一節說明瞭如何為 router-app-a 設定 BGP 對接。本節說明如何在 Cloud Router cloud-router-a 的兩個介面上,將 router-app-b 額外設定為 BGP 對等互連點。
控制台
- 前往「Network Connectivity Center」頁面。 前往 Network Connectivity Center
- 在專案下拉式選單中選取專案。
- 按一下「Spokes」分頁標籤。
- 在「Spoke name」(Spoke 名稱) 欄中選取 Spoke,即可查看「Spoke details」(Spoke 詳細資料) 頁面。
- 在「名稱」欄中找到
router-app-b。按一下展開圖示,即可顯示「設定 BGP 工作階段」連結。點選任一連結。系統會顯示「Configure Cloud Router and BGP sessions」(設定 Cloud Router 和 BGP 工作階段) 面板。
-
在「Cloud Router」部分,執行下列其中一項操作:
- 如要選取現有的 Cloud Router,請按一下「Use existing」(使用現有項目)。使用「Cloud Router」欄位找出適當的資源,然後按一下「Select and continue」(選取並繼續)。
- 如要在「Network Connectivity Center」頁面建立 Cloud Router,請按一下「建立新項目」,然後按照提示建立 Cloud Router。然後按一下「建立並繼續」。
- 在「BGP 工作階段」下方,設定兩個 BGP 工作階段。請針對每個工作階段完成下列步驟:
- 按一下「Edit BGP session」(編輯 BGP 工作階段)。
- 填寫表單,輸入「Name」(名稱)、「Peer ASN」(對等互連 ASN) 和「Advertised route priority (MED)」(公告路徑優先順序 (MED))。按一下「儲存並繼續」。
- 點選「建立」。
gcloud
如要在 Cloud Router 上為 router-app-b 建立兩個 BGP 對等互連點,請使用 gcloud compute routers add-bgp-peer 指令。請使用兩次指令,第一次建立第一個 BGP 對等互連,第二次建立第二個 BGP 對等互連。
第一個 BGP 對等互連的設定範例:
gcloud compute routers add-bgp-peer cloud-router-a \ --peer-name=router-appliance-bgp-peer-router-app-b-0 \ --interface=router-appliance-interface-0 \ --peer-ip-address=10.0.1.11 \ --peer-asn=65002 \ --instance=router-app-b \ --instance-zone=us-west1-b \ --region=us-west1第二個 BGP 對等互連的範例設定:
gcloud compute routers add-bgp-peer cloud-router-a \ --peer-name=router-appliance-bgp-peer-router-app-b-1 \ --interface=router-appliance-interface-1 \ --peer-ip-address=10.0.1.11 \ --peer-asn=65002 \ --instance=router-app-b \ --instance-zone=us-west1-b \ --region=us-west1
API
如要在 Cloud Router 上為 router-app-b 建立兩個 BGP 對等互連,請使用 compute.routers.patch 方法。請使用這個方法兩次,一次建立第一個 BGP 對等互連,另一次建立第二個 BGP 對等互連。
PATCH
https://compute.googleaps.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
{
"bgpPeers": [
{
"name": "router-appliance-bgp-peer-router-app-b-0",
"interfaceName": "router-appliance-interface-0",
"ipAddress": "10.0.1.5",
"peerIpAddress": "10.0.1.11",
"routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-b/instances/router-app-b",
"peerAsn": 65002,
}
{
"name": "router-appliance-bgp-peer-router-app-b-1",
"interfaceName": "router-appliance-interface-1",
"ipAddress": "10.0.1.6",
"peerIpAddress": "10.0.1.11",
"routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-b/instances/router-app-b",
"peerAsn": 65002
}
]
}
在路由器設備執行個體上設定 BGP
如要設定路由器設備執行個體,以便透過 BGP 連線至 Cloud Router,請參閱路由器設備映像檔的供應商說明文件。
使用自訂已知路徑
您可以視需要設定路由器設備執行個體,使用自訂已知路由。設定自訂已知路徑後,Cloud Router 的行為反應就會像是已掌握 BGP 對等互連點 (路由器設備執行個體) 的路徑一樣。
如要使用自訂已知路由,請完成下列步驟:
登入設備。如要指定每個自訂已知路徑,請為該 IP 前置字元設定靜態路徑,並將下一個躍點設為外部網路。這是必要步驟,因為路由器設備執行個體需要知道如何轉送使用自訂學習路徑的流量。
更新 Cloud Router 上的 BGP 工作階段,以使用自訂已知路徑。按照「更新現有工作階段以使用自訂學習路徑」一文所述步驟操作。
使用 MD5 驗證
如果您使用的路由器設備映像檔支援 MD5 驗證,可以選擇在 BGP 對等互連工作階段中新增驗證。如要瞭解如何搭配使用 MD5 驗證和 Cloud Router,請參閱「使用 MD5 驗證」。
後續步驟
- 如要刪除路由器設備執行個體,請參閱「刪除路由器設備執行個體」。
- 如要查看解決方案已與 NCC 整合的合作夥伴清單,請參閱 NCC 合作夥伴。
- 如要查看路由器設備監控和記錄資訊,請參閱「查看記錄和指標」。
- 如要瞭解 Router 裝置問題的解決方案,請參閱「疑難排解」。
- 如要瞭解 API 和 gcloud CLI 的詳細資料,請參閱「API 和參考資料」。