Mengonfigurasi akses internet untuk VM workload

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

VM beban kerja 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 region
  • Maksimal 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 kemampuan Application Level Gateway (ALG).

Sebelum memulai

Untuk membuat perubahan pada 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 internet VMware Engine dan gateway IP publik. Rentang alamat harus memenuhi persyaratan berikut:

  • Mematuhi RFC 1918 sebagai rentang pribadi.
  • Tidak tumpang-tindih dengan rentang alamat VMware Engine lainnya, seperti rentang alamat yang digunakan untuk appliance pengelolaan atau segmen NSX-T.
  • Tidak 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 Google Cloud CLI 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. Tetapkan project ID default Anda:

    gcloud config set project PROJECT_ID
    
  2. Tetapkan region dan zona default:

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

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

API

Contoh API dalam kumpulan dokumentasi ini menggunakan alat command line cURL untuk mengkueri API. Token akses yang valid diperlukan sebagai bagian dari permintaan cURL. Ada banyak cara untuk mendapatkan token akses yang valid; langkah-langkah berikut 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. Pastikan TOKEN ditetapkan dengan benar:

    echo $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 harus diinstal dan Kredensial Default Aplikasi harus dikonfigurasi.

  1. Download dan instal 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 informasi selengkapnya tentang library, buka halaman referensi atau lihat contoh kode di GitHub.

Mengonfigurasi layanan akses internet

Anda dapat mengizinkan VM workload memiliki akses ke internet dengan membuat atau memperbarui kebijakan jaringan.

Secara default, layanan jaringan akses internet dinonaktifkan.

Mengaktifkan layanan akses internet di suatu region

Konsol

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

  1. Di konsol Google Cloud, buka halaman Kebijakan jaringan.

    Buka Kebijakan jaringan

  2. Klik Create untuk membuat kebijakan baru. Jika Anda ingin mengedit kebijakan jaringan yang ada, klik ikon Lainnya di akhir baris, lalu pilih Edit.

  3. Isi detail kebijakan jaringan Anda, termasuk memilih jaringan dan region tempat kebijakan diterapkan.

  4. Alihkan Akses internet ke Diaktifkan dan, secara opsional, aktifkan Layanan alamat IP eksternal.

  5. Di kolom Edge Services CIDR, masukkan rentang alamat yang akan digunakan saat mengalamatkan gateway internet VMware Engine (rentang alamat /26).

  6. Klik Create.

Status untuk layanan akan 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_ID \
    --edge-services-cidr=IP_RANGE \
    --location=LOCATION \
    --internet-access

Ganti kode berikut:

  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini.
  • NETWORK_ID: jaringan tempat kebijakan jaringan ini diterapkan
  • 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" diperlukan.
  • LOCATION: global untuk jaringan lama atau wilayah jaringan standar

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
   }
}"

Ganti kode berikut:

  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini. Nilai ini harus dalam format REGION-default.
  • PROJECT_ID: project ID untuk permintaan ini
  • LOCATION: global untuk jaringan lama atau wilayah jaringan standar
  • 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" diperlukan.
  • NETWORK_ID: jaringan untuk kebijakan jaringan ini

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 wilayah, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Network policies.

    Buka Kebijakan jaringan

  2. Di baris yang sesuai dengan kebijakan jaringan yang relevan, klik ikon Lainnya.

  3. Alihkan Akses internet ke Nonaktif.

    • 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.
  4. Klik Simpan.

Status untuk layanan akan 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 LOCATION

Ganti kode berikut:

  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini
  • LOCATION: global untuk jaringan lama atau wilayah jaringan standar

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
   }
}"

Ganti kode berikut:

  • PROJECT_ID: project ID untuk permintaan ini
  • LOCATION: global untuk jaringan lama atau wilayah jaringan standar
  • 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)

Menggunakan koneksi lokal untuk akses internet beban kerja

Anda dapat mengarahkan traffic yang terikat internet dari VM workload di VMware Engine melalui koneksi lokal. Traffic diarahkan berdasarkan status hal 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

Mengaktifkan 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. Di konsol Google Cloud, buka halaman Network policies.

    Buka Kebijakan jaringan

  2. Di baris yang sesuai dengan kebijakan jaringan yang relevan, klik ikon Lainnya.

  3. Alihkan IP Publik ke Nonaktif.

  4. Alihkan Akses internet ke Nonaktif.

  5. Klik Simpan.

  6. Jika menggunakan jaringan VMware Engine Lama: aktifkan kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC 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 LOCATION

Ganti kode berikut:

  • NETWORK_POLICY_NAME: nama untuk kebijakan jaringan ini
  • LOCATION: global untuk jaringan lama atau wilayah jaringan standar

Jika menggunakan jaringan VMware Engine Lama: aktifkan kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC 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/LOCATION/networkPolicies/NETWORK_POLICY_NAME?updateMask=internetAccess.enabled,externalIp.enabled

"{
  "internetAccess: {
    "enabled": false
   },
  "externalIp: {
    "enabled": false
   }
}"

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

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

Python

Tetapkan 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)

Jika menggunakan jaringan VMware Engine Lama: aktifkan kontrol layanan VPC pada koneksi peering VPC antara jaringan VPC 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

Mengaktifkan Kontrol Layanan VPC sangat penting untuk merutekan traffic internet melalui koneksi lokal atau VPC dalam project Anda.

Saat Kontrol Layanan VPC diaktifkan, Google Cloud akan membuat perubahan perutean berikut di jaringan VPC produsen layanan (dalam hal ini, project tenant layanan yang melakukan peering dengan VMware Engine):

  • Menghapus rute default IPv4 (tujuan 0.0.0.0/0, next hop gateway internet default).
  • Mulai meneruskan traffic internet menggunakan rute default peering VPC.

Contoh:

Untuk mengaktifkan Kontrol Layanan VPC untuk koneksi yang melakukan peering jaringan bernama "my-network" pada project saat ini, gunakan perintah gcloud services vpc-peerings enable-vpc-service-controls:

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

Menonaktifkan perutean traffic internet melalui koneksi lokal

Untuk menonaktifkan perutean traffic internet dari VM workload Anda melalui koneksi lokal, berhenti beriklan rute default (0.0.0.0/0) dan nonaktifkan Kontrol Layanan VPC pada koneksi peering VPC.

Jika menggunakan jaringan VMware Engine Lama: nonaktifkan Kontrol Layanan VPC pada koneksi peering VPC antara jaringan VPC dan VMware Engine, gunakan perintah gcloud services vpc-peerings disable-vpc-service-controls:

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

Langkah selanjutnya