Mengonfigurasi akses internet untuk VM workload

Anda mengonfigurasi layanan jaringan akses internet untuk workload VMware di Google Cloud VMware Engine berdasarkan per region. Anda dapat mengarahkan traffic yang terhubung ke internet dari VM workload menggunakan edge internet Google Cloud atau koneksi lokal.

VM workload yang dapat mengakses internet juga dapat mengakses layanan Google Cloud menggunakan Akses Google Pribadi. Akses ke layanan Google Cloud menggunakan Akses Google Pribadi tetap berada dalam jaringan Google Cloud dan tidak keluar ke internet.

Layanan jaringan akses internet mendukung hal berikut:

  • Hingga 100 alamat IP publik untuk setiap wilayah
  • Hingga 300 aturan firewall per tabel firewall
  • Throughput hingga 2 Gbps di 128 ribu koneksi serentak untuk setiap region
  • Protokol TCP, UDP, dan ICMP

Layanan jaringan akses internet tidak mendukung fungsi Gateway Tingkat Aplikasi (ALG).

Sebelum memulai

Untuk mengubah setelan akses internet cloud pribadi, Anda harus memiliki akses admin ke VMware Engine.

Untuk mengaktifkan akses internet, Anda memerlukan rentang alamat CIDR layanan edge. Saat Anda mengaktifkan akses internet atau layanan jaringan IP publik, gateway akan di-deploy dalam konteks tenant layanan.

Gunakan rentang alamat CIDR layanan edge untuk menangani gateway IP publik dan internet VMware Engine. Rentang alamat IP harus memenuhi persyaratan berikut:

  • Patuhi RFC 1918 sebagai rentang pribadi.
  • Tidak tumpang-tindih dengan rentang alamat VMware Engine lainnya, seperti rentang alamat yang digunakan untuk peralatan pengelolaan atau segmen NSX-T.
  • Tidak ada tumpang tindih dengan rentang alamat apa pun yang diiklankan ke VMware Engine, seperti yang digunakan untuk subnet jaringan Virtual Private Cloud (VPC) atau jaringan lokal.
  • Dedikasikan rentang alamat IP dengan 26 bit subnet mask (/26).

Persyaratan gcloud dan API

Untuk menggunakan alat command line gcloud atau API guna mengelola resource VMware Engine, sebaiknya konfigurasikan alat seperti yang dijelaskan di bawah.

gcloud

  1. Setel ID project default Anda:

    gcloud config set project PROJECT_ID
    
  2. Menetapkan region dan/atau zona default:

    gcloud config set compute/region REGION
    gcloud config set compute/zone ZONE

Untuk mengetahui informasi selengkapnya tentang alat gcloud vmware, meninjau dokumen referensi Cloud SDK.

API

Contoh API dalam kumpulan dokumentasi ini menggunakan alat command line cURL untuk membuat kueri API. Token akses yang valid diperlukan sebagai bagian dari permintaan cURL. Ada banyak cara untuk mendapatkan token akses yang valid. Langkah berikut akan menggunakan alat gcloud untuk membuat token akses:

  1. Login ke Google Cloud

    gcloud auth login
    
  2. Buat token akses dan ekspor ke TOKEN

    export TOKEN=`gcloud auth print-access-token`
    
  3. Memverifikasi bahwa TOKEN telah disetel dengan benar

    echo $TOKEN
    
    Output:
    TOKEN
    

Sekarang, gunakan token otorisasi dalam permintaan Anda ke API. Contoh:

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

Contoh kode Python dalam dokumentasi ini menggunakan library VMware Engine untuk berkomunikasi dengan API. Agar dapat menggunakan pendekatan ini, library perlu diinstal dan Kredensial Default Aplikasi harus dikonfigurasi.

  1. Mendownload dan menginstal library Python

     pip install google-cloud-vmwareengine
    
  2. Konfigurasikan informasi ADC dengan menjalankan perintah tersebut di shell Anda

      gcloud auth application-default login
    

    atau gunakan file kunci Akun Layanan

      export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Untuk mengetahui informasi selengkapnya tentang library ini, kunjungi halaman referensi atau lihat contoh kode di GitHub.

Mengonfigurasi layanan akses internet

Anda dapat mengizinkan VM workload memiliki akses ke internet dengan mengaktifkan layanan jaringan akses internet. Secara default, layanan jaringan akses internet dinonaktifkan.

Mengaktifkan layanan akses internet di suatu region

Konsol

Untuk mengaktifkan layanan akses internet di suatu region, lakukan hal berikut:

  1. Akses portal VMware Engine.
  2. Buka Jaringan > Setelan regional.
  3. Di baris yang sesuai dengan wilayah minat, pilih Edit. Jika wilayah tidak tercantum dalam tabel ringkasan, tambahkan wilayah dengan mengklik Tambahkan wilayah.
  4. Alihkan Internet access ke Enabled.
    • Anda dapat mengaktifkan akses internet dan menonaktifkan layanan IP publik. Jika Anda melakukannya, VPN point-to-site dan alokasi IP publik tidak tersedia.
  5. Di kolom Edge Services CIDR, masukkan rentang alamat yang akan digunakan saat menangani gateway internet VMware Engine (rentang alamat /26).
  6. Klik Submit.

Status layanan berubah menjadi Enabled saat operasi selesai, biasanya setelah beberapa menit.

gcloud

Dengan menggunakan alat gcloud, jalankan perintah berikut untuk membuat kebijakan jaringan:

gcloud vmware network-policies create NETWORK_POLICY_NAME \
    --vmware-engine-network projects/PROJECT_ID/locations/LOCATIONS/vmwareEngineNetworks/NETWORK_NAME \
    --edge-services-cidr IP_RANGE \
    --location REGION --internet-access

Ganti kode berikut:

  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini. ID ini harus dalam format REGION-default.
  • NETWORK_NAME: jaringan tempat kebijakan jaringan ini berlaku untuk
  • IP_RANGE: rentang CIDR yang akan digunakan untuk akses internet dan gateway akses IP eksternal, dalam notasi CIDR. Blok CIDR RFC 1918 dengan awalan "/26" wajib diisi.
  • REGION: region jaringan

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/REGION/networkPolicies?networkPolicyId=NETWORK_POLICY_NAME -d "{
  "vmwareEngineNetwork":"projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/NETWORK_NAME",
  "edgeServiceCidr":IP_RANGE,
  "internetAccess: {
    "enabled": true
   },
   "externalIp": {
     "enabled": true
   }
}"

Ganti kode berikut:

  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini. ID ini harus dalam format REGION-default.
  • PROJECT_ID: project ID untuk permintaan ini
  • REGION: region jaringan
  • IP_RANGE: rentang CIDR yang akan digunakan untuk akses internet dan gateway akses IP eksternal, dalam notasi CIDR. Blok CIDR RFC 1918 dengan awalan "/26" wajib diisi.
  • NETWORK_NAME: jaringan tempat kebijakan jaringan ini berlaku, harus dalam format >REGION-default

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1

def create_network_policy(
    project_id: str,
    region: str,
    ip_range: str,
    internet_access: bool,
    external_ip: bool,
) -> operation.Operation:
    """
    Creates a new network policy in a given network.

    Args:
        project_id: name of the project you want to use.
        region: name of the region you want to use. I.e. "us-central1"
        ip_range: the CIDR range to use for internet access and external IP access gateways,
            in CIDR notation. An RFC 1918 CIDR block with a "/26" suffix is required.
        internet_access: should internet access be allowed.
        external_ip: should external IP addresses be assigned.

    Returns:
        An operation object representing the started operation. You can call its .result() method to wait for
        it to finish.

    Raises:
        ValueError if the provided ip_range doesn't end with /26.
    """
    if not ip_range.endswith("/26"):
        raise ValueError(
            "The ip_range needs to be an RFC 1918 CIDR block with a '/26' suffix"
        )

    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.edge_services_cidr = ip_range
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request = vmwareengine_v1.CreateNetworkPolicyRequest()
    request.network_policy = network_policy
    request.parent = f"projects/{project_id}/locations/{region}"
    request.network_policy_id = f"{region}-default"

    client = vmwareengine_v1.VmwareEngineClient()
    return client.create_network_policy(request)

Menonaktifkan layanan akses internet di suatu region

Untuk menonaktifkan layanan akses internet di suatu region, lakukan hal berikut:

Konsol

  1. Akses portal VMware Engine.
  2. Buka Jaringan > Setelan regional.
  3. Di baris yang sesuai dengan wilayah minat, pilih Edit.
  4. Alihkan Internet access ke Disabled.
    • Anda harus menonaktifkan layanan IP publik sebelum dapat menonaktifkan akses internet.
    • Anda harus menghapus alamat IP publik yang dialokasikan dan gateway VPN point-to-site sebelum dapat menonaktifkan layanan IP publik.
  5. Klik Submit.

Status layanan berubah menjadi Disabled saat operasi selesai, biasanya setelah beberapa menit.

gcloud

Dengan menggunakan alat gcloud, jalankan perintah berikut untuk memperbarui kebijakan jaringan:

gcloud vmware network-policies update NETWORK_POLICY_NAME \
  --no-internet-access --location REGION

Ganti kode berikut:

  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini
  • REGION: region jaringan

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/REGION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{
  "internetAccess: {
    "enabled": false
 },
  "externalIp": {
    "enabled": false
   }
}"

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini
  • REGION: region jaringan
  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1

def update_network_policy(
    project_id: str, region: str, internet_access: bool, external_ip: bool
) -> operation.Operation:
    """
    Updates a network policy in a given network.

    Args:
        project_id: name of the project you want to use.
        region: name of the region you want to use. I.e. "us-central1".
        internet_access: should internet access be allowed.
        external_ip: should external IP addresses be assigned.

    Returns:
        An operation object representing the started operation. You can call its .result() method to wait for
        it to finish.
    """

    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UpdateNetworkPolicyRequest()
    request.update_mask = "internetAccess.enabled,externalIp.enabled"
    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.name = (
        f"projects/{project_id}/locations/{region}/networkPolicies/{region}-default"
    )
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request.network_policy = network_policy

    return client.update_network_policy(request)

Gunakan koneksi lokal untuk akses internet workload

Jika ingin, Anda dapat mengarahkan traffic terikat internet dari VM workload di VMware Engine melalui koneksi lokal. Traffic diarahkan berdasarkan status berikut:

  • Iklan rute default (0.0.0.0/0) dari lokal
  • Layanan IP publik VMware Engine
  • Layanan akses internet VMware Engine
  • Kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC Anda dan VMware Engine

Aktifkan perutean traffic internet melalui koneksi lokal

Untuk mengakses internet dari VM workload melalui koneksi lokal, Anda harus menyelesaikan dua langkah:

  1. Iklankan rute default (0.0.0.0/0) dari lokal melalui koneksi lokal (Cloud VPN atau Cloud Interconnect). Periksa gateway Cloud VPN atau Cloud Router tempat koneksi lokal ke VPN Anda dihentikan.
  2. Nonaktifkan akses internet dan layanan IP publik untuk jaringan VMware Engine.

Konsol

  1. Akses portal VMware Engine
  2. Buka Jaringan > Setelan regional.
  3. Klik ikon Edit untuk region tempat Anda ingin mengaktifkan akses internet menggunakan koneksi lokal.
  4. Alihkan Public IP ke Disabled.

  5. Alihkan Internet access ke Disabled.

  6. Klik Submit.

  7. Aktifkan kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC Anda dan VMware Engine menggunakan perintah gcloud services vpc-peerings enable-vpc-service-controls:

    gcloud services vpc-peerings enable-vpc-service-controls \
       --network=VPC_NETWORK \
       --service=servicenetworking.googleapis.com

gcloud

Dengan menggunakan alat gcloud, jalankan perintah berikut untuk memperbarui kebijakan jaringan:

gcloud vmware network-policies update NETWORK_POLICY_NAME \
  --no-internet-access --no-external-ip-address --location REGION

Ganti kode berikut:

  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini
  • REGION: region jaringan

Kemudian, aktifkan kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC Anda dan VMware Engine menggunakan perintah gcloud services vpc-peerings enable-vpc-service-controls:

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/REGION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled -d "{
  "internetAccess: {
    "enabled": false
   },
  "externalIp: {
    "enabled": false
   }
}"

Kemudian, aktifkan kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC Anda dan VMware Engine menggunakan perintah gcloud services vpc-peerings enable-vpc-service-controls:

gcloud services vpc-peerings enable-vpc-service-controls \
   --network=VPC_NETWORK \
   --service=servicenetworking.googleapis.com

Python

Setel internet_access dan external_ip ke False.

from google.api_core import operation
from google.cloud import vmwareengine_v1

def update_network_policy(
    project_id: str, region: str, internet_access: bool, external_ip: bool
) -> operation.Operation:
    """
    Updates a network policy in a given network.

    Args:
        project_id: name of the project you want to use.
        region: name of the region you want to use. I.e. "us-central1".
        internet_access: should internet access be allowed.
        external_ip: should external IP addresses be assigned.

    Returns:
        An operation object representing the started operation. You can call its .result() method to wait for
        it to finish.
    """

    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UpdateNetworkPolicyRequest()
    request.update_mask = "internetAccess.enabled,externalIp.enabled"
    network_policy = vmwareengine_v1.NetworkPolicy()
    network_policy.name = (
        f"projects/{project_id}/locations/{region}/networkPolicies/{region}-default"
    )
    network_policy.vmware_engine_network = f"projects/{project_id}/locations/{region}/vmwareEngineNetworks/{region}-default"
    network_policy.internet_access.enabled = internet_access
    network_policy.external_ip.enabled = external_ip

    request.network_policy = network_policy

    return client.update_network_policy(request)

Kemudian, aktifkan kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC Anda dan VMware Engine menggunakan perintah gcloud services vpc-peerings enable-vpc-service-controls:

gcloud services vpc-peerings enable-vpc-service-controls \
   --network=VPC_NETWORK \
   --service=servicenetworking.googleapis.com

Nonaktifkan pemilihan rute traffic internet melalui koneksi lokal

Untuk menonaktifkan perutean traffic internet dari VM workload Anda melalui koneksi lokal, hentikan iklan rute default (0.0.0.0/0) dan nonaktifkan kontrol layanan VPC pada koneksi peering VPC.

Untuk menonaktifkan kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC dan VMware Engine Anda, gunakan perintah gcloud services vpc-peerings disable-vpc-service-controls:

gcloud services vpc-peerings disable-vpc-service-controls \
    --network=VPC_NETWORK \
    --service=servicenetworking.googleapis.com

Langkah selanjutnya