Menyiapkan stack ganda (IPv4 dan IPv6)

Subnet stack ganda memungkinkan resource App Engine Anda mengirim traffic IPv4 dan IPv6 ke Jaringan VPC dengan Direct VPC egress. Anda dapat mengubah subnet khusus IPv4 (stack tunggal) yang ada menjadi subnet stack ganda.

Jenis subnet

Jaringan VPC mendukung jenis subnet Compute Engine berikut:

  • Subnet khusus IPv4 (single-stack), dengan hanya rentang subnet IPv4

  • Subnet IPv4 dan IPv6 (dual-stack), dengan rentang subnet IPv4 dan IPv6

Batasan stack ganda

Sebelum mengubah jenis stack pada resource App Engine yang ada, pertimbangkan batasan berikut:

  • Dukungan stack ganda hanya tersedia dengan subnet di jaringan VPC mode kustom. Agar jenis akses internal tersedia untuk subnet stack ganda, rentang IPv6 internal jaringan VPC harus diaktifkan. Siapkan atau konversi jaringan VPC ke mode kustom.

  • Dibandingkan dengan subnet khusus IPv4, subnet dual-stack mungkin mengalami latensi mulai dingin yang lebih tinggi, sehingga membatasi seberapa cepat aplikasi Anda dapat ditingkatkan skalanya.

  • NAT64 tidak didukung.

Sebelum memulai

Pastikan agen layanan App Engine memiliki peran Admin IP Publik Compute (roles/compute.publicIpAdmin) untuk menggunakan subnet dengan IPv6 eksternal.

Menyiapkan subnet stack ganda

Subnet stack ganda memiliki rentang alamat IPv4 dan IPv6.

Untuk menyiapkan subnet stack ganda, Anda dapat menggunakan konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Buka Google Cloud konsol dan aktifkan Compute Engine API:

    Mengaktifkan Compute Engine API

  2. Buka halaman VPC networks:

    Buka VPC networks

  3. Klik Create VPC network jika Anda membuat jaringan mode kustom baru. Jika Anda menggunakan jaringan VPC yang sudah ada, klik nama jaringan VPC untuk menampilkan halaman VPC network details-nya.

  4. Jika Anda membuat jaringan baru atau mengonversi jaringan yang sudah ada, masukkan nama dan pastikan Subnet creation mode disetel ke Custom, lalu pilih Configure a ULA internal IPv6 range for this VPC Network.

  5. Dari tab Subnets, klik Add subnet. Pada panel yang muncul:

    1. Berikan Nama.
    2. Pilih Region.
    3. Untuk IP stack type, pilih IPv4 and IPv6 (dual-stack).
    4. Masukkan rentang IPv4. Ini adalah rentang IPv4 utama untuk subnet.
    5. Pilih IPv6 access type.

      Jika opsi Internal tidak tersedia dan Anda memerlukannya, periksa apakah rentang IPv6 internal telah ditetapkan di jaringan.

    6. Klik Tambahkan.

gcloud

  1. Untuk membuat jaringan mode kustom yang mendukung subnet stack ganda, jalankan perintah gcloud compute networks create.

    Untuk mengonfigurasi rentang IPv6 internal pada subnet apa pun di jaringan ini, gunakan flag --enable-ula-internal-ipv6. Opsi ini menetapkan awalan ULA /48 dari dalam rentang fd20::/20 yang digunakan oleh Google Cloud untuk rentang subnet IPv6 internal.

    gcloud compute networks create NETWORK \
      --subnet-mode=custom \
      --enable-ula-internal-ipv6

    Ganti NETWORK dengan nama jaringan VPC yang akan berisi subnet baru.

  2. Untuk mengonversi atau mengupdate jaringan mode kustom agar mendukung subnet stack ganda, jalankan perintah berikut:

    gcloud compute networks update NETWORK \
      --switch-to-custom-subnet-mode \
      --enable-ula-internal-ipv6

    Ganti NETWORK dengan nama jaringan VPC yang akan berisi subnet baru.

  3. Untuk membuat subnet stack ganda dengan rentang IPv6, jalankan perintah subnets create menggunakan setelan stack ganda:

    gcloud compute networks subnets create SUBNET \
      --network=NETWORK \
      --range=PRIMARY_IPv4_RANGE \
      --stack-type=IPV4_IPV6 \
      --ipv6-access-type=IPV6_ACCESS_TYPE \
      --region=REGION

    Ganti kode berikut:

    • SUBNET: nama untuk subnet baru.
    • NETWORK: nama jaringan VPC yang akan berisi subnet baru.
    • PRIMARY_IPv4_RANGE: rentang IPv4 utama untuk subnet baru, dalam notasi CIDR. Untuk mengetahui informasi selengkapnya, lihat Rentang subnet IPv4.
    • IPV6_ACCESS_TYPE: jenis akses IPv6 untuk subnet baru, internal atau external.
    • REGION: region Google Cloud tempat subnet baru akan dibuat.

Menambahkan subnet stack ganda ke resource App Engine

Setelah membuat subnet stack ganda, konfigurasi layanan App Engine Anda untuk menggunakan subnet:

  1. Di file app.yaml, tentukan jaringan dan subnet di kolom vpc_access:

    vpc_access:
      network_interface:
        network: NETWORK
        subnet: SUBNET
      vpc_egress: EGRESS_SETTING

    Ganti kode berikut:

    • NETWORK: nama jaringan yang Anda buat di langkah sebelumnya.

    • SUBNET: nama subnet yang Anda buat di langkah sebelumnya.

    • Opsional: EGRESS_SETTING: mengontrol cara traffic keluar dirutekan. Kolom ini mendukung setelan konfigurasi berikut:

      • all-traffic: Semua permintaan keluar dirutekan melalui jaringan VPC.
      • private-ranges-only (default): Hanya traffic ke alamat IP internal yang dirutekan melalui jaringan VPC. Traffic internet menggunakan jalur App Engine default.
  2. Deploy ke App Engine dengan menjalankan perintah berikut:

    gcloud beta app deploy

Mengubah subnet dari stack tunggal menjadi stack ganda

Untuk menambahkan rentang subnet IPv6 ke subnet khusus IPv4 yang ada di jaringan VPC mode kustom, lihat Mengubah jenis stack subnet menjadi stack ganda. Kemudian, deploy layanan App Engine di subnet dual-stack.

Mengubah subnet dari stack ganda menjadi stack tunggal

Untuk mengubah subnet stack ganda resource menjadi subnet stack tunggal, lihat Mengubah subnet stack ganda menjadi khusus IPv4. Kemudian, deploy layanan App Engine di subnet stack ganda.

Verifikasi jaringan dan subnet

Untuk memeriksa apakah resource Anda berada di jaringan VPC, jalankan perintah berikut:

gcloud beta app versions describe VERSION --service=SERVICE

Ganti kode berikut:

  • VERSION: versi layanan Anda yang di-deploy
  • SERVICE: layanan yang di-deploy

Contoh output berikut menunjukkan jaringan dan subnet Anda:

  vpcAccess:
  networkInterfaces:
  - network: projects/YOUR_PROJECT/global/networks/YOUR_NETWORK
    subnet: projects/YOUR_PROJECT/regions/YOUR_REGION/subnetworks/YOUR_SUBNET
  vpcEgress: ALL_TRAFFIC/PRIVATE_RANGES_ONLY