建立混合式子網路
混合型子網路可協助您將工作負載從其他網路 (來源網路) 遷移至虛擬私有雲 (VPC) 子網路,不必變更任何 IP 位址。本文說明如何建立混合式子網路、將工作負載遷移至混合式子網路的 Google Cloud 部分,以及測試混合式子網路中的連線。
事前準備
- 確認您已完成「準備混合式子網路連線」中的步驟。
- 如要使用本指南提供的指令列範例,請安裝或更新至最新版 Google Cloud CLI。
- 在 Google Cloud 專案中啟用 Compute Engine API。詳情請參閱 Compute Engine API。
- 在 Google Cloud 專案中啟用 Network Connectivity API。詳情請參閱 Network Connectivity API。
必要的角色
如要取得建立混合式子網路所需的權限,請要求管理員為您授予專案的Compute Network Admin (roles/compute.networkAdmin
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
設定混合式子網路轉送
如要建立混合型子網路,您需要啟用混合型子網路路由的虛擬私有雲子網路。您可以使用 Google Cloud 控制台建立子網路。如果您使用 gcloud CLI 或 API,請先建立子網路,然後啟用混合式子網路路由。
建立啟用混合型子網路路由的新子網路
主控台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
按一下要建立混合式子網路的 VPC 網路名稱。
按一下「子網路」分頁標籤。
按一下 [Add subnet] (新增子網路)。在顯示的面板中:
- 提供「Name」(名稱)。
- 選擇一個 [Region] (地區)。
- 在「用途」部分中,選取「無」。
- 在「堆疊類型」區段中,選取「IPv4 (單一堆疊)」。
- 在「IPv4 range」(IPv4 範圍) 欄位中,輸入來源網路區隔的 IPv4 位址範圍,做為混合式子網路使用。
- 在「私人 Google 存取權」區段中,選取 [關閉]。
- 在「混合式子網路」區段中,選取「開啟」。
- 按一下「新增」。
為現有子網路啟用混合型子網路轉送
如果現有子網路的主要 IPv4 位址範圍,與您要用於混合式子網路的來源網路區隔範圍相符,即可為該子網路啟用混合式子網路路由。
如要為現有子網路啟用混合型子網路轉送,請為該子網路啟用 CIDR 路徑重疊。這會修改虛擬私有雲網路的轉送行為,允許子網路與自訂動態路徑的 IP 位址範圍重疊。
如要進一步瞭解 CIDR 路徑重疊,請參閱 Compute Engine API 參考資料中的 allowSubnetCidrRoutesOverlap
欄位。
主控台
在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。
按一下包含要更新子網路的 VPC 網路名稱。
按一下「子網路」分頁標籤。
按一下要更新的子網路。
按一下 [編輯]。
在「混合式子網路」區段中,選取「開啟」。
按一下 [儲存]。
gcloud
使用 gcloud beta compute networks subnets update
指令。
gcloud beta compute networks subnets update SUBNET \ --region=REGION \ --allow-cidr-routes-overlap
更改下列內容:
SUBNET
:子網路的名稱。REGION
:子網路的區域。
API
找出子網路的
fingerprint
ID。使用任何要求資料之前,請先替換以下項目:
- PROJECT_ID:您的專案 ID
- REGION:子網路的區域
- SUBNET_NAME:子網路名稱
HTTP 方法和網址:
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "compute#subnetwork", "id": "5514771331600183201", "creationTimestamp": "2022-09-16T12:41:02.010-07:00", "name": "subnet-name", "network": "https://www.googleapis.com/compute/v1/projects/project-name/global/networks/network-name", "ipCidrRange": "10.6.0.0/16", "gatewayAddress": "10.6.0.1", "region": "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1", "selfLink": "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1/subnetworks/subnet-name", "privateIpGoogleAccess": true, "fingerprint": "YiItidAFRsA5", "allowSubnetCidrRoutesOverlap": false, "enableFlowLogs": true, "privateIpv6GoogleAccess": "DISABLE_GOOGLE_ACCESS", "purpose": "PRIVATE", "stackType": "IPV4_ONLY" }
啟用混合型子網路轉送。
使用任何要求資料之前,請將 SUBNET_FINGERPRINT 替換為您在上一個要求中找到的子網路指紋 ID,例如
YiItidAFRsA5
。HTTP 方法和網址:
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
JSON 要求主體:
{ "allowSubnetCidrRoutesOverlap": true, "fingerprint": "SUBNET_FINGERPRINT" }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "compute#operation", "id": "5973660558170953708", "name": "operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6", "operationType": "compute.subnetworks.patch", "targetLink": "https://www.googleapis.com/compute/beta/projects/test-project/regions/us-central1/subnetworks/subnet-name", "targetId": "5514771331600183201", "status": "RUNNING", "user": "user@gmail.com", "progress": 0, "insertTime": "2023-03-31T11:40:03.882-07:00", "startTime": "2023-03-31T11:40:03.893-07:00", "selfLink": "https://www.googleapis.com/compute/beta/projects/test-project/regions/us-central1/operations/operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6", "region": "https://www.googleapis.com/compute/beta/projects/test-project/regions/us-central1" }
如要確認子網路已啟用
allowSubnetCidrRoutesOverlap
,請再次提出GET
要求,並確認回應包含下列項目:"allowSubnetCidrRoutesOverlap": true
從虛擬私有雲網路測試來源網路連線
如要測試混合式子網路與來源網路重疊 IP 位址範圍之間的連線,請執行下列操作:
- 在虛擬私有雲網路的混合式子網路中建立測試 VM。
- 記下測試 VM 的主要內部 IPv4 位址。
- 更新 Cloud Router BGP 工作階段的自訂通告模式,加入測試 VM 主要內部 IPv4 位址的
/32
自訂通告路徑。 - 使用 SSH 連線至 VM。
- 在作業系統提示中,使用
ping
指令測試與混合式子網路來源網路部分中系統的連線。
如果 Ping 測試失敗,請確認混合式子網路的來源和虛擬私有雲網路部分中的防火牆設定,允許混合式子網路 IP 位址範圍內的 ICMP。
移動工作負載並更新路徑
每次遷移工作負載或工作負載群組時,請一併完成下列步驟。
遷移工作負載
使用偏好的方法,將來源網路中的工作負載和 VM 遷移至虛擬私有雲端網路。如要將 VM 遷移至 Compute Engine,建議使用 Migrate to Virtual Machines。
如要瞭解遷移選項,請參閱「混合式子網路和 Migrate to Virtual Machines」。
更新自訂通告路徑
將 VM 遷移至 Google Cloud時,請更新 Cloud Router BGP 工作階段的自訂通告路徑,納入每個遷移 VM 的主要內部 IPv4 位址。
使用/32
自訂通告路徑新增個別 IP 位址。如果是連續的 IP 位址區塊,請盡可能將位址整合到最少的自訂廣告中。通告必須比混合式子網路的 IP 位址範圍更具體 (子網路遮罩較長)。
從來源網路測試與已遷移 VM 的連線
如要測試與已遷移至 Google Cloud的 VM 連線,可以執行下列操作:
- 請確認您已更新管理混合式連線的 BGP 工作階段自訂通告模式。路徑通告必須包含遷移 VM 的主要內部 IPv4 位址。
- 使用
ping
指令,測試從來源網路系統到已遷移 VM IP 位址的連線。