為工作負載 VM 設定網路連線能力
您可以為 Google Cloud VMware Engine 中的 VMware 工作負載,依區域設定網路連線服務。您可以使用 Google Cloud的網際網路邊緣或內部連線,將工作負載 VM 的網際網路流量導向網際網路。
可存取網際網路的工作負載 VM 也可以使用私人 Google 存取權存取 Google Cloud服務。使用 Private Google Access 存取 Google Cloud 服務時,資料會保留在 Google Cloud 網路中,不會傳送到網際網路。
網際網路存取網路服務支援下列項目:
- 每個區域最多可使用 100 個公開 IP 位址
- 每個防火牆資料表最多可設定 300 個防火牆規則
- 每個區域最多 128k 個並行連線,處理量最高可達 2 Gbps
- TCP、UDP 和 ICMP 通訊協定
網路存取網路服務不支援應用程式層閘道 (ALG) 功能。
事前準備
如要變更私有雲的網際網路存取設定,您必須具備 VMware Engine 的管理員存取權。
如要啟用網際網路存取權,您需要邊緣服務 CIDR 位址範圍。啟用網際網路存取權或公開 IP 網路服務時,閘道會在服務租用戶內容中部署。
請使用邊緣服務 CIDR 位址範圍,針對 VMware Engine 網際網路和公開 IP 閘道指定位址。位址範圍必須符合下列條件:
- 遵循 RFC 1918 做為私人範圍。
- 不得與任何其他 VMware Engine 位址範圍重疊,例如用於管理機器或 NSX-T 區段的位址範圍。
- 與向 VMware Engine 宣傳的任何位址範圍不重疊,例如用於虛擬私有雲 (VPC) 網路子網路或地端部署網路的位址範圍。
- 使用 26 個子網路遮罩位元 (/26) 專用 IP 位址範圍。
Google Cloud CLI 和 API 需求
如要使用 gcloud
指令列工具或 API 管理 VMware Engine 資源,建議您按照下列說明設定工具。
gcloud
設定預設專案 ID:
gcloud config set project PROJECT_ID
設定預設地區和區域:
gcloud config set compute/region REGION
gcloud config set compute/zone ZONE
如要進一步瞭解 gcloud vmware
工具,請參閱 Cloud SDK 參考文件。
API
本套說明文件中的 API 範例會使用 cURL
指令列工具查詢 API。cURL
要求中必須提供有效的存取權杖。取得有效存取權杖的方法有很多種,以下步驟會使用 gcloud
工具產生存取權杖:
登入 Google Cloud:
gcloud auth login
產生存取權杖並匯出至 TOKEN:
export TOKEN=`gcloud auth print-access-token`
確認已正確設定 TOKEN:
echo $TOKEN
接下來,請在 API 要求中使用授權金鑰。例如:
curl -X GET -H "Authorization: Bearer \"$TOKEN\"" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations
Python
本文件中的 Python 程式碼範例會使用 VMware Engine 程式庫與 API 通訊。如要使用這種方法,您必須安裝程式庫,並設定應用程式預設憑證。
下載並安裝 Python 程式庫:
pip install google-cloud-vmwareengine
在 Shell 中執行下列指令,設定 ADC 資訊:
gcloud auth application-default login
或者,您也可以使用服務帳戶金鑰檔案:
export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
如要進一步瞭解程式庫,請參閱參考頁面,或查看 GitHub 上的程式碼範例。
設定網際網路存取服務
您可以建立或更新網路政策,允許工作負載 VM 存取網際網路。
根據預設,網路存取網路服務會停用。
在某個區域啟用網際網路存取服務
主控台
如要在某個區域啟用網際網路存取服務,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「Network policies」頁面。
按一下「選取專案」,然後選取包含要啟用網際網路存取服務的 VMware Engine 網路的機構、資料夾或專案。
按一下「建立」建立新政策。如要編輯現有網路政策,請按一下資料列末端的「更多」圖示
,然後選取「編輯」。填寫網路政策的詳細資料,包括選擇政策適用的網路和區域。
將「網際網路存取」切換至「已啟用」,並視需要啟用「外部 IP 位址服務」。
在「Edge Services CIDR」欄位中,輸入用於尋址 VMware Engine 網際網路閘道時使用的位址範圍 (/26 位址範圍)。
按一下 [建立]。
作業完成後 (通常需要幾分鐘),服務的狀態會變更為「已啟用」。
gcloud
使用 gcloud
工具執行下列指令,建立網路政策:
gcloud vmware network-policies create NETWORK_POLICY_NAME \ --vmware-engine-network projects/PROJECT_ID/locations/LOCATIONS/vmwareEngineNetworks/NETWORK_ID \ --edge-services-cidr=IP_RANGE \ --location=LOCATION \ --internet-access
更改下列內容:
NETWORK_POLICY_NAME
:此網路政策的名稱。NETWORK_ID
:這個網路政策適用的網路IP_RANGE
:用於網際網路存取和外部 IP 存取閘道,以 CIDR 標記法表示的 CIDR 範圍。必須使用前置碼為「/26」的 RFC 1918 CIDR 區塊。LOCATION
:global
(舊版網路或標準網路的區域)
API
curl -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/networkPolicies?networkPolicyId=NETWORK_POLICY_NAME '{ "vmwareEngineNetwork":"projects/PROJECT_ID/locations/LOCATION/vmwareEngineNetworks/NETWORK_ID", "edgeServiceCidr":IP_RANGE, "internetAccess: { "enabled": true }, "externalIp": { "enabled": true } }"
更改下列內容:
NETWORK_POLICY_NAME
:此網路政策的名稱。格式必須為REGION-default
。PROJECT_ID
:這項要求的專案 IDLOCATION
:global
(舊版網路或標準網路的區域)IP_RANGE
:用於網際網路存取和外部 IP 存取閘道,以 CIDR 標記法表示的 CIDR 範圍。必須使用前置碼為「/26」的 RFC 1918 CIDR 區塊。NETWORK_ID
:此網路政策的網路
Python
在某個區域停用網際網路存取服務
如要在某個區域停用網際網路存取服務,請按照下列步驟操作:
主控台
在 Google Cloud 控制台中,前往「Network policies」頁面。
按一下「選取專案」,然後選取包含要停用網際網路存取服務的 VMware Engine 網路的機構、資料夾或專案。
在對應相關網路政策的資料列中,按一下「更多」圖示
。將「網路存取」切換為「停用」。
- 您必須先停用公開 IP 服務,才能停用網際網路存取權。
- 您必須先刪除所有已分配的公開 IP 位址和點對點 VPN 閘道,才能停用公開 IP 服務。
按一下 [儲存]。
作業完成後 (通常需要幾分鐘),服務的狀態會變更為「停用」。
gcloud
使用 gcloud
工具執行下列指令,更新網路政策:
gcloud vmware network-policies update NETWORK_POLICY_NAME \ --no-internet-access \ --location LOCATION
更改下列內容:
NETWORK_POLICY_NAME
:這個網路政策的名稱LOCATION
:global
(舊版網路或標準網路的區域)
API
curl -X PATCH -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{ "internetAccess: { "enabled": false }, "externalIp": { "enabled": false } }"
更改下列內容:
PROJECT_ID
:這項要求的專案 IDLOCATION
:global
(舊版網路或標準網路的區域)NETWORK_POLICY_NAME
:這個網路政策的名稱
Python
使用地端連線讓工作負載存取網際網路
您可以選擇透過內部部署連線,從 VMware Engine 中的工作負載 VM 直接傳送網際網路流量。系統會根據下列項目的狀態,將流量導向至適當的目標:
- 來自內部部署的預設路徑 (
0.0.0.0/0
) 廣告 - VMware Engine 公開 IP 服務
- VMware Engine 網路連線服務
- 在虛擬私有雲網路和 VMware Engine 之間的虛擬私有雲對等互連連線上設定 VPC Service Controls
啟用透過地端連線轉送網際網路流量
如要透過內部連線從工作負載 VM 存取網際網路,您必須完成兩個步驟:
- 透過內部部署連線 (Cloud VPN 或 Cloud Interconnect) 宣告內部部署的預設路徑 (
0.0.0.0/0
)。檢查 Cloud VPN 閘道或 Cloud Router,找出內部部署 VPN 連線終止的位置。 - 停用 VMware Engine 網路的網際網路存取權和公開 IP 服務。
主控台
在 Google Cloud 控制台中,前往「Network policies」頁面。
按一下「選取專案」,然後選取包含要啟用網路存取服務的 VMware Engine 網路的機構、資料夾或專案。
在對應相關網路政策的資料列中,按一下「更多」圖示
。將「公開 IP」切換為「停用」。
將「網路存取」切換為「停用」。
按一下 [儲存]。
如果使用舊版 VMware Engine 網路:請使用
gcloud services vpc-peerings enable-vpc-service-controls
指令,在 VPC 網路與 VMware Engine 之間的 VPC 對等互連連線中啟用 VPC 服務控管:gcloud services vpc-peerings enable-vpc-service-controls \ --network=VPC_NETWORK \ --service=servicenetworking.googleapis.com
gcloud
使用 gcloud
工具執行下列指令,更新網路政策:
gcloud vmware network-policies update NETWORK_POLICY_NAME \ --no-internet-access \ --no-external-ip-address \ --location LOCATION
更改下列內容:
NETWORK_POLICY_NAME
:這個網路政策的名稱LOCATION
:global
(舊版網路或標準網路的區域)
如果使用舊版 VMware Engine 網路:使用 gcloud services vpc-peerings enable-vpc-service-controls
指令,在 VPC 網路和 VMware Engine 之間的 VPC 對等互連連線中啟用 VPC 服務控管:
gcloud services vpc-peerings enable-vpc-service-controls \ --network=VPC_NETWORK \ --service=servicenetworking.googleapis.com
API
curl -X PATCH -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled "{ "internetAccess: { "enabled": false }, "externalIp: { "enabled": false } }"
如果使用舊版 VMware Engine 網路:使用 gcloud services vpc-peerings enable-vpc-service-controls
指令,在 VPC 網路與 VMware Engine 之間的 VPC 對等互連連線中啟用 VPC 服務控管:
gcloud services vpc-peerings enable-vpc-service-controls \ --network=VPC_NETWORK_NAME \ --service=servicenetworking.googleapis.com
Python
將 internet_access 和 external_ip 設為 False
。
如果使用舊版 VMware Engine 網路:使用 gcloud services vpc-peerings enable-vpc-service-controls
指令,在 VPC 網路與 VMware Engine 之間的 VPC 對等互連連線中啟用 VPC 服務控管:
gcloud services vpc-peerings enable-vpc-service-controls \ --network=VPC_NETWORK \ --service=servicenetworking.googleapis.com
啟用 VPC Service Controls 是透過內部部署連線或專案中的 VPC 路由網際網路流量的必要條件。
啟用 VPC Service Controls 後, Google Cloud 會在服務供應商虛擬私有雲網路 (在本例中為與 VMware Engine 對等互連的服務租用戶專案) 中進行下列路由變更:
- 移除 IPv4 預設路徑 (目的地
0.0.0.0/0
,下一個躍點為預設網際網路閘道)。 - 開始使用 VPC 對等互連預設路徑轉送網際網路流量。
範例:
如要在目前專案中,為名為「my-network」的網路對等互連連線啟用 VPC Service Controls,請使用 gcloud services vpc-peerings enable-vpc-service-controls
指令:
gcloud services vpc-peerings enable-vpc-service-controls \ --network=my-network \ --service=servicenetworking.googleapis.com
停用透過地端連線轉送網際網路流量
如要停用透過內部部署連線,從工作負載虛擬機器人轉送網際網路流量,請停止宣傳預設路徑 (0.0.0.0/0
),並在虛擬私有雲對等互連連線上停用 VPC Service Controls。
如果使用舊版 VMware Engine 網路:請使用 gcloud services vpc-peerings disable-vpc-service-controls
指令,在 VPC 網路和 VMware Engine 之間的 VPC 對等互連連線上停用 VPC Service Controls:
gcloud services vpc-peerings disable-vpc-service-controls \ --network=VPC_NETWORK_NAME \ --service=servicenetworking.googleapis.com
後續步驟
- 瞭解如何為私有雲中的 VM 分配公開 IP 位址。
- 瞭解防火牆表和防火牆規則如何篩選私有雲端資源的進出網路流量。