Mengonversi Load Balancer Aplikasi ke IPv6

Dokumen ini menunjukkan cara mengonversi resource dan backend Application Load Balancer dari hanya IPv4 (stack tunggal) menjadi IPv4 dan IPv6 (stack ganda). Keuntungan utama penggunaan IPv6 adalah kumpulan alamat IP yang jauh lebih besar dapat dialokasikan. Anda dapat mengonfigurasi load balancer untuk menghentikan traffic IPv6 masuk dan mengirim traffic ini melalui koneksi IPv4 atau IPv6 ke backend, berdasarkan preferensi Anda. Untuk mengetahui informasi selengkapnya, lihat IPv6 untuk Load Balancer Aplikasi dan Load Balancer Jaringan proxy.

Dalam dokumen ini, khusus IPv4 (stack tunggal) mengacu pada resource yang hanya menggunakan alamat IPv4, dan IPv4 dan IPv6 (stack ganda) mengacu pada resource yang menggunakan alamat IPv4 dan IPv6.

Sebelum memulai

Perhatikan kondisi berikut sebelum Anda memulai proses konversi:

  • Anda harus menggunakan salah satu jenis Application Load Balancer berikut:

    • Load Balancer Aplikasi eksternal global
    • Load Balancer Aplikasi eksternal regional
    • Load Balancer Aplikasi internal lintas region
    • Load Balancer Aplikasi internal regional

    Load Balancer Aplikasi Klasik tidak mendukung backend atau subnet stack ganda. Untuk mengetahui informasi selengkapnya tentang dukungan IPv6, lihat IPv6 untuk Load Balancer Aplikasi dan Load Balancer Jaringan proxy.

  • Load balancer Anda harus memiliki backend grup instance VM atau backend grup endpoint jaringan (NEG) zonal dengan endpoint GCE_VM_IP_PORT. Jenis backend lainnya tidak memiliki dukungan stack ganda.

Selain itu, proses konversi berbeda-beda berdasarkan jenis load balancer.

  • Untuk Load Balancer Aplikasi eksternal global, Anda mengonversi backend ke stack ganda dan membuat aturan penerusan IPv6 yang dapat menangani traffic IPv6 masuk.

  • Untuk Load Balancer Aplikasi internal lintas-region, Load Balancer Aplikasi eksternal regional, dan Load Balancer Aplikasi internal regional, Anda hanya mengonversi backend ke dual-stack. Aturan penerusan IPv6 tidak didukung untuk load balancer ini.

Untuk mengetahui informasi tentang cara menyiapkan Load Balancer Aplikasi, lihat dokumentasi berikut:

Mengidentifikasi resource yang akan dikonversi

Perhatikan nama resource yang terkait dengan load balancer Anda. Anda harus memberikan nama ini nanti.

  1. Untuk mencantumkan semua subnet, gunakan perintah gcloud compute networks subnets list:

    gcloud compute networks subnets list
    

    Perhatikan nama subnet dengan alamat khusus IPv4 yang akan dikonversi ke dual-stack. Nama ini nantinya akan disebut sebagai SUBNET. Jaringan VPC nantinya akan disebut sebagai NETWORK.

  2. Untuk mencantumkan semua layanan backend, gunakan perintah gcloud compute backend-services list:

    gcloud compute backend-services list
    

    Catat nama layanan backend yang akan dikonversi ke dual-stack. Nama ini nantinya akan disebut sebagai BACKEND_SERVICE.

  3. Untuk mencantumkan semua peta URL, gunakan perintah gcloud compute url-maps list:

    gcloud compute url-maps list
    

    Perhatikan nama peta URL yang terkait dengan load balancer Anda. Nama ini nantinya akan disebut sebagai URL_MAP.

  4. Jika Anda sudah memiliki load balancer, untuk melihat jenis stack IP backend, gunakan perintah gcloud compute instances list:

    gcloud compute instances list \
        --format= \
        "table(
        name,
        zone.basename(),
        networkInterfaces[].stackType.notnull().list(),
        networkInterfaces[].ipv6AccessConfigs[0].externalIpv6.notnull().list():label=EXTERNAL_IPV6,
        networkInterfaces[].ipv6Address.notnull().list():label=INTERNAL_IPV6)"
    
  5. Untuk mencantumkan semua instance VM dan template instance, gunakan perintah gcloud compute instances list dan perintah gcloud compute instance-templates list:

    gcloud compute instances list
    
    gcloud compute instance-templates list
    

    Perhatikan nama instance dan template instance yang akan dikonversi ke dual-stack. Nama ini nantinya akan disebut sebagai VM_INSTANCE dan INSTANCE_TEMPLATES.

  6. Untuk mencantumkan semua grup instance, gunakan perintah gcloud compute instance-groups list:

    gcloud compute instance-groups list
    

    Perhatikan nama grup endpoint jaringan yang akan dikonversi menjadi stack ganda. Nama ini nantinya akan disebut sebagai INSTANCE_GROUP.

  7. Untuk mencantumkan semua grup endpoint jaringan (NEG) zonal, gunakan perintah gcloud compute network-endpoint-groups list:

    gcloud compute network-endpoint-groups list
    

    Perhatikan nama backend NEG zona untuk dikonversi ke dual-stack. Nama ini nantinya akan disebut sebagai ZONAL_NEG.

  8. Untuk menampilkan daftar semua proxy target, gunakan perintah gcloud compute target-http-proxies list:

    gcloud compute target-http-proxies list
    

    Perhatikan nama proxy target yang terkait dengan load balancer Anda. Nama ini nantinya akan disebut sebagai TARGET_PROXY.

Mengonversi dari backend single-stack ke dual-stack

Bagian ini menunjukkan cara mengonversi resource dan backend load balancer menggunakan alamat IPv4 saja (stack tunggal) menjadi alamat IPv4 dan IPv6 (stack ganda).

Memperbarui subnet

Subnet dual-stack hanya didukung pada jaringan VPC mode kustom. Subnet dual-stack tidak didukung di jaringan VPC mode otomatis atau jaringan lama. Meskipun jaringan mode otomatis dapat berguna untuk eksplorasi awal, VPC mode kustom lebih cocok untuk sebagian besar lingkungan produksi. Sebaiknya gunakan VPC dalam mode kustom.

Untuk mengupdate VPC ke setelan stack ganda, ikuti langkah-langkah berikut:

  1. Jika menggunakan jaringan VPC mode otomatis, Anda harus terlebih dahulu mengonversi jaringan VPC mode otomatis menjadi mode kustom.

    Jika menggunakan jaringan default, Anda harus mengonversinya menjadi jaringan VPC mode kustom.

  2. Untuk mengaktifkan IPv6, lihat Mengubah jenis stack subnet menjadi stack ganda.

    Pastikan jenis akses IPv6 subnet ditetapkan ke External.

  3. Opsional: Jika Anda ingin mengonfigurasi rentang alamat IPv6 internal pada subnet di jaringan ini, selesaikan langkah-langkah berikut:

    1. Untuk VPC network ULA internal IPv6 range, pilih Enabled.
    2. Untuk Allocate internal IPv6 range, pilih Automatically atau Manually.

      Jika Anda memilih Manually, masukkan rentang /48 dari dalam fd20::/20. Jika rentang tersebut sedang digunakan, Anda akan diminta untuk memberikan rentang yang berbeda.

Memperbarui subnet khusus proxy

Jika Anda menggunakan load balancer berbasis Envoy, sebaiknya ubah jenis stack subnet khusus proxy menjadi stack ganda. Untuk informasi tentang load balancer yang mendukung subnet khusus proxy, lihat Load balancer yang didukung.

Untuk mengubah jenis stack subnet khusus proxy menjadi stack ganda, lakukan hal berikut:

Konsol

  1. Di Konsol Google Cloud, buka halaman jaringan VPC.

    Buka jaringan VPC

  2. Untuk melihat halaman VPC network details, klik nama jaringan.

  3. Klik tab Subnet.

  4. Di bagian Subnet khusus proxy yang dicadangkan untuk load balancing, klik nama subnet khusus proxy yang ingin Anda ubah.

  5. Di halaman Subnet details, klik Edit.

  6. Untuk IP stack type, pilih IPv4 and IPv6 (dual-stack). Tetapkan IPv6 access type ke Internal.

  7. Klik Simpan.

gcloud

Gunakan perintah subnets update.

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=REGION

Ganti kode berikut:

  • PROXY_ONLY_SUBNET: nama subnet khusus proxy.
  • REGION: region subnet.
  • IPv6_ACCESS_TYPE: jenis akses IPv6 subnet adalah INTERNAL.

Mengupdate template atau instance VM

Anda dapat mengonfigurasi alamat IPv6 pada instance VM jika subnet tempat VM terhubung memiliki rentang IPv6 yang telah dikonfigurasi. Hanya backend berikut yang dapat mendukung alamat IPv6:

  • Backend grup instance: Satu atau beberapa backend grup instance terkelola, tidak terkelola, atau kombinasi backend grup instance terkelola dan tidak terkelola.
  • NEG Zona: Satu atau beberapa NEG zona jenis GCE_VM_IP_PORT.

Mengupdate instance VM

Anda tidak dapat mengedit instance VM yang merupakan bagian dari grup instance terkelola atau tidak terkelola. Untuk mengupdate instance VM ke stack ganda, ikuti langkah-langkah berikut:

  1. Menghapus instance tertentu dari grup
  2. Membuat VM stack ganda
  3. Membuat instance dengan nama tertentu di MIG

Mengupdate template instance VM

Anda tidak dapat memperbarui template instance yang sudah ada. Jika perlu melakukan perubahan, Anda dapat membuat template lain dengan properti serupa. Untuk mengupdate template instance VM ke stack ganda, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Instance templates.

    Buka halaman Template instance

    1. Klik template instance yang ingin Anda salin dan perbarui.
    2. Klik Buat yang serupa.
    3. Luaskan bagian Advanced options.
    4. Untuk Network tags, masukkan allow-health-check-ipv6.
    5. Di bagian Network interfaces, klik Add a network interface.
    6. Dalam daftar Network, pilih jaringan VPC mode kustom.
    7. Dalam daftar Subnetwork, pilih SUBNET.
    8. Untuk IP stack type, pilih IPv4 and IPv6 (dual-stack).
    9. Klik Create.
  2. Memulai update berkelanjutan dasar di grup instance terkelola MIG yang terkait dengan load balancer.

Memperbarui NEG zona

Endpoint NEG zonal tidak dapat diedit. Anda harus menghapus endpoint IPv4 dan membuat endpoint stack ganda baru dengan alamat IPv4 dan IPv6.

Untuk menyiapkan NEG zonal (dengan endpoint jenis GCE_VM_IP_PORT) di region REGION_A, buat VM terlebih dahulu di zona GCP_NEG_ZONE. Kemudian, tambahkan endpoint jaringan VM ke NEG zonal.

Membuat VM

Konsol

  1. Di konsol Google Cloud, buka halaman Instance VM.

    Buka instance VM

  2. Klik Create instance.

  3. Tetapkan Name ke vm-a1.

  4. Untuk Region, pilih REGION_A, dan pilih nilai apa pun untuk kolom Zone. Zona ini disebut sebagai GCP_NEG_ZONE dalam prosedur ini.

  5. Di bagian Boot disk, pastikan Debian GNU/Linux 12 (bookworm) dipilih untuk opsi boot disk. Klik Pilih untuk mengubah gambar jika perlu.

  6. Luaskan bagian Advanced options dan lakukan perubahan berikut:

    • Luaskan bagian Networking.
    • Di kolom Tag jaringan, masukkan allow-health-check.
    • Di bagian Network interfaces, buat perubahan berikut:
      • Jaringan: NETWORK
      • Subnet: SUBNET
      • IP stack type: IPv4 and IPv6 (dual-stack)
    • Klik Done.
    • Klik Management. Di kolom Startup script, salin dan tempel konten skrip berikut.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
  7. Klik Create.

  8. Ulangi langkah-langkah berikut untuk membuat VM kedua, menggunakan kombinasi nama dan zona berikut:

    • Nama: vm-a2, zona: GCP_NEG_ZONE

gcloud

Buat VM dengan menjalankan perintah berikut dua kali, menggunakan kombinasi ini untuk nama VM dan zonanya. Konten skrip identik untuk kedua VM.

  • VM_NAME dari vm-a1 dan zona GCP_NEG_ZONE mana pun pilihan Anda.
  • VM_NAME dari vm-a2 dan zona GCP_NEG_ZONE yang sama.

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --stack-type=IPV4_IPV6 \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-health-check \
        --subnet=SUBNET \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

Menambahkan endpoint ke NEG zona

Konsol

Untuk menambahkan endpoint ke NEG zonal:

  1. Di Konsol Google Cloud, buka halaman Network endpoint groups.

    Buka Network endpoint groups

  2. Dalam daftar Nama, klik nama grup endpoint jaringan (ZONAL_NEG). Anda akan melihat halaman Detail grup endpoint jaringan.

  3. Di bagian Network endpoints in this group, pilih endpoint NEG yang sebelumnya dibuat. Klik Hapus endpoint.

  4. Di bagian Endpoint jaringan dalam grup ini, klik Tambahkan endpoint jaringan.

  5. Pilih Instance VM.

  6. Di bagian Network interface, nama, zona, dan subnet VM akan ditampilkan.

  7. Di kolom IPv4 address, masukkan alamat IPv4 endpoint jaringan baru.

  8. Di kolom IPv6 address, masukkan alamat IPv6 endpoint jaringan baru.

  9. Pilih Jenis port.

    1. Jika Anda memilih Default, endpoint akan menggunakan port default 80 untuk semua endpoint dalam grup endpoint jaringan. Hal ini memadai untuk contoh kita karena server Apache menayangkan permintaan di port 80.
    2. Jika Anda memilih Kustom, masukkan Nomor port untuk endpoint yang akan digunakan.
  10. Untuk menambahkan endpoint lainnya, klik Add network endpoint dan ulangi langkah-langkah sebelumnya.

  11. Setelah Anda menambahkan semua endpoint, klik Buat.

gcloud

  1. Tambahkan endpoint (endpoint GCE_VM_IP_PORT) ke ZONAL_NEG.

    gcloud compute network-endpoint-groups update ZONAL_NEG \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80' \
        --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80'
    

Ganti kode berikut:

IPv4_ADDRESS: alamat IPv4 endpoint jaringan. IPv4 harus milik VM di Compute Engine (baik IP utama maupun sebagai bagian dari rentang IP alias). Jika alamat IP tidak ditentukan, alamat IP utama untuk instance VM di jaringan tempat grup endpoint jaringan berada akan digunakan.

IPv6_ADDRESS: alamat IPv6 endpoint jaringan. Alamat IPv6 harus milik instance VM di jaringan tempat grup endpoint jaringan berada (alamat IPv6 eksternal).

Membuat aturan firewall untuk pemeriksaan health check IPv6

Anda harus membuat aturan firewall untuk mengizinkan health check dari rentang IP sistem probe Google Cloud. Untuk informasi selengkapnya, lihat rentang IP yang diuji.

Pastikan aturan ingress berlaku untuk instance yang di-load balance dan mengizinkan traffic dari sistem health check Google Cloud. Contoh ini menggunakan tag target allow-health-check-ipv6 untuk mengidentifikasi instance VM yang menerapkan tag tersebut.

Tanpa aturan firewall ini, aturan tolak ingress default akan memblokir traffic IPv6 masuk ke instance backend.

Konsol

  1. Di Konsol Google Cloud, buka halaman Firewall policies.

    Buka Kebijakan firewall

  2. Untuk mengizinkan traffic subnet IPv6, klik Create firewall rule lagi dan masukkan informasi berikut:

    • Nama: fw-allow-lb-access-ipv6
    • Jaringan: NETWORK
    • Prioritas: 1000
    • Direction of traffic: ingress
    • Targets: Tag target yang ditentukan
    • Tag target: allow-health-check-ipv6
    • Filter sumber: Rentang IPv6
    • Rentang IPv6 sumber:

      • Untuk Load Balancer Aplikasi eksternal global dan Load Balancer Jaringan proxy eksternal global, masukkan 2600:2d00:1:b029::/64,2600:2d00:1:1::/64

      • Untuk Load Balancer Aplikasi internal lintas-region, Load Balancer Aplikasi eksternal regional, Load Balancer Aplikasi internal regional, Load Balancer Jaringan proxy internal lintas-region, Load Balancer Jaringan proxy eksternal regional, dan Load Balancer Jaringan proxy internal regional, masukkan 2600:2d00:1:b029::/64

    • Protocols and ports: Allow all

  3. Klik Create.

gcloud

  1. Buat aturan firewall fw-allow-lb-access-ipv6 untuk mengizinkan komunikasi dengan subnet.

    Untuk Load Balancer Aplikasi eksternal global dan Load Balancer Jaringan proxy eksternal global, gunakan perintah berikut:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
        --rules=all
    

    Untuk Load Balancer Aplikasi internal lintas region, Load Balancer Aplikasi eksternal regional, Load Balancer Aplikasi internal regional, Load Balancer Jaringan proxy internal lintas region, Load Balancer Jaringan proxy eksternal regional, dan Load Balancer Jaringan proxy internal regional, gunakan perintah berikut:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64 \
        --rules=all
    

Membuat aturan firewall untuk subnet khusus proxy

Jika menggunakan Load Balancer Aplikasi eksternal regional atau Load Balancer Aplikasi internal, Anda harus memperbarui aturan firewall masuk fw-allow-lb-access-ipv6 untuk mengizinkan traffic dari subnet khusus proxy ke backend.

Untuk mendapatkan rentang alamat IPv6 subnet khusus proxy, jalankan perintah berikut:

gcloud compute networks subnets describe PROXY_ONLY_SUBNET \
    --region=REGION \
    --format="value(internalIpv6Prefix)"

Perhatikan rentang alamat IPv6 internal; rentang ini nantinya disebut sebagai IPV6_PROXY_ONLY_SUBNET_RANGE.

Untuk mengupdate aturan firewall fw-allow-lb-access-ipv6 untuk subnet khusus proxy, lakukan hal berikut:

Konsol

  1. Di Konsol Google Cloud, buka halaman Firewall policies.

    Buka Kebijakan firewall

  2. Di panel VPC firewall rules, klik fw-allow-lb-access-ipv6.

    • Rentang IPv6 sumber: 2600:2d00:1:b029::/64, IPV6_PROXY_ONLY_SUBNET_RANGE
  3. Klik Simpan.

gcloud

  1. Perbarui aturan firewall fw-allow-lb-access-ipv6 untuk mengizinkan komunikasi dengan subnet khusus proxy:

    gcloud compute firewall-rules update fw-allow-lb-access-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,IPV6_PROXY_ONLY_SUBNET_RANGE
    

Membuat layanan backend dan aturan penerusan baru untuk IPv6

Bagian ini menjelaskan prosedur untuk membuat layanan backend baru dan aturan penerusan untuk IPv6. Perhatikan bahwa aturan penerusan IPv6 hanya dapat dibuat untuk Load Balancer Aplikasi eksternal global. Aturan penerusan IPv6 tidak didukung untuk Load Balancer Aplikasi internal lintas-region, Load Balancer Aplikasi eksternal regional, dan Load Balancer Aplikasi internal regional.

Pada tahap proses ini, BACKEND_SERVICE dan BACKEND_SERVICE_IPV6 dapat menyalurkan traffic. Untuk menghindari gangguan traffic, buat layanan backend baru dengan kebijakan pemilihan alamat IP yang ditetapkan ke Prefer IPv6. Setelah membuat layanan backend baru, Anda dapat me-rutekan traffic ke layanan backend IPv6 baru.

Konsol

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik nama load balancer.

  3. Klik Edit.

Konfigurasikan layanan backend:

  1. Klik Backend configuration.
  2. Di kolom Backend service, pilih Create a backend service.
  3. Tetapkan Name sebagai BACKEND_SERVICE_IPV6.
  4. Untuk Backend type, pilih Zonal network endpoint group.
  5. Dalam daftar Kebijakan pemilihan alamat IP, pilih Pilih IPv6.
  6. Di kolom Protocol, pilih HTTP.
  7. Di panel New Backend, lakukan hal berikut:
    1. Dalam daftar network endpoint group, pilih ZONAL_NEG.
    2. Untuk Maximum RPS, masukkan 10.
  8. Dalam daftar Health check, pilih health check HTTP.
  9. Klik Done.

Konfigurasikan frontend IPv6:

Aturan penerusan dengan IPv6 tidak didukung untuk Load Balancer Aplikasi internal lintas-region, Load Balancer Aplikasi eksternal regional, dan Load Balancer Aplikasi internal regional.

  1. Klik Frontend configuration.
  2. Klik Add frontend IP and port.
  3. Di kolom Name, masukkan nama untuk aturan penerusan.
  4. Pada kolom Protocol, pilih HTTP.
  5. Tetapkam Versi IP ke IPv6.
  6. Klik Done.
  7. Klik Perbarui.

Mengonfigurasi aturan pemilihan rute

  1. Klik Routing rules.
  2. Klik Advanced host and path rule.
  3. Klik Perbarui.

gcloud

  1. Membuat health check:

     gcloud compute health-checks create http HEALTH_CHECK \
         --port 80
    
  2. Buat layanan backend untuk traffic HTTP:

    global

    Untuk Load Balancer Aplikasi eksternal global, gunakan perintah:

    gcloud compute backend-services create BACKEND_SERVICE_IPV6 \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --ip-address-selection-policy=PREFER_IPV6 \
        --health-checks=HEALTH_CHECK \
        --global
    

    lintas region

    Untuk Load Balancer Aplikasi internal lintas-region, gunakan perintah:

    gcloud compute backend-services create BACKEND_SERVICE_IPV6 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=HTTP \
        --ip-address-selection-policy=PREFER_IPV6 \
        --health-checks=HEALTH_CHECK \
        --global
    

    regional

    Untuk Load Balancer Aplikasi eksternal regional, gunakan perintah:

    gcloud compute backend-services create BACKEND_SERVICE_IPV6 \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --ip-address-selection-policy=PREFER_IPV6 \
        --health-checks=HEALTH_CHECK \
        --region=REGION
    

    Untuk Load Balancer Aplikasi internal regional, gunakan perintah:

    gcloud compute backend-services create BACKEND_SERVICE_IPV6 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=HTTP \
        --ip-address-selection-policy=PREFER_IPV6 \
        --health-checks=HEALTH_CHECK \
        --region=REGION
    
  3. Tambahkan NEG zonal dual-stack sebagai backend ke layanan backend.

    global

    Untuk Load Balancer Aplikasi eksternal global, gunakan perintah:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --network-endpoint-group=ZONAL_NEG \
         --network-endpoint-group-zone=ZONE \
         --max-rate-per-endpoint=10 \
         --global
    

    lintas region

    Untuk Load Balancer Aplikasi internal lintas-region, gunakan perintah:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --network-endpoint-group=ZONAL_NEG \
         --network-endpoint-group-zone=ZONE \
         --max-rate-per-endpoint=10 \
         --global
    

    regional

    Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, gunakan perintah:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --network-endpoint-group=ZONAL_NEG \
         --network-endpoint-group-zone=ZONE \
         --max-rate-per-endpoint=10 \
         --region=REGION
    
  4. Tambahkan grup instance dual-stack sebagai backend ke layanan backend.

    global

    Untuk Load Balancer Aplikasi eksternal global, gunakan perintah:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --instance-group=INSTANCE_GROUP \
         --global
    

    lintas region

    Untuk Load Balancer Aplikasi internal lintas-region, gunakan perintah:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --instance-group=INSTANCE_GROUP \
         --global
    

    regional

    Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, gunakan perintah:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --instance-group=INSTANCE_GROUP \
         --region=REGION
    
  5. Khusus untuk Load Balancer Aplikasi eksternal global. Buat aturan penerusan IPv6 untuk Load Balancer Aplikasi eksternal global. Gunakan perintah:

     gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \
         --load-balancing-scheme=EXTERNAL_MANAGED \
         --network-tier=PREMIUM \
         --global \
         --target-http-proxy=TARGET_PROXY \
         --ports=443
    

Mengarahkan traffic ke layanan backend IPv6 baru

Perbarui peta URL untuk mengarahkan sebagian kecil traffic klien ke layanan backend IPv6 baru BACKEND_SERVICE_IPV6.

  1. Gunakan perintah berikut untuk mengedit peta URL:

    global

    Untuk Load Balancer Aplikasi eksternal global, gunakan perintah:

      gcloud compute url-maps edit URL_MAP \
          --global
      

    lintas region

    Untuk Load Balancer Aplikasi internal lintas-region, gunakan perintah:

      gcloud compute url-maps edit URL_MAP \
          --global
      

    regional

    Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, gunakan perintah:

       gcloud compute url-maps edit URL_MAP \
           --region=REGION
       
  2. Di editor teks yang muncul, tambahkan routeRule dengan tindakan weightedBackendServices yang mengarahkan persentase traffic IPv6 ke BACKEND_SERVICE_IPV6.

    defaultService: global/backendServices/BACKEND_SERVICE
    hostRules:
    - hosts:
      - '*'
      pathMatcher: matcher1
    name: URL_MAP
    pathMatchers:
    - defaultService: global/backendServices/BACKEND_SERVICE
      name: matcher1
      routeRules:
      - matchRules:
        - prefixMatch: ''
        priority: 1
        routeAction:
          weightedBackendServices:
          - backendService: global/backendServices/BACKEND_SERVICE
            weight: 95
          - backendService: global/backendServices/BACKEND_SERVICE_IPV6
            weight: 5
    

Untuk menerapkan migrasi bertahap ke IPv6, tingkatkan persentase bobot untuk layanan backend baru BACKEND_SERVICE_IPV6 secara bertahap hingga 100% dengan mengedit peta URL beberapa kali.

Mengonfigurasi kebijakan pemilihan alamat IP

Setelah mengonversi resource dan backend ke stack ganda, Anda dapat menggunakan kebijakan pemilihan alamat IP untuk menentukan jenis traffic yang dikirim dari layanan backend ke backend Anda.

Ganti IP_ADDRESS_SELECTION_POLICY dengan salah satu nilai berikut:

Kebijakan pemilihan alamat IP Deskripsi
Khusus IPv4 Hanya kirim traffic IPv4 ke backend layanan backend, terlepas dari traffic dari klien ke GFE. Hanya health check IPv4 yang digunakan untuk memeriksa kondisi backend.
Pilih IPv6

Prioritaskan koneksi IPv6 backend daripada koneksi IPv4 (asalkan ada backend yang sehat dengan alamat IPv6).

Health check memantau koneksi IPv6 dan IPv4 backend secara berkala. GFE pertama-tama mencoba koneksi IPv6; jika koneksi IPv6 rusak atau lambat, GFE akan menggunakan happy eyeballs untuk kembali dan terhubung ke IPv4.

Meskipun salah satu koneksi IPv6 atau IPv4 tidak sehat, backend masih diperlakukan sebagai sehat, dan kedua koneksi dapat dicoba oleh GFE, dengan happy eyeballs yang pada akhirnya memilih koneksi mana yang akan digunakan.

Hanya IPv6

Hanya kirim traffic IPv6 ke backend layanan backend, terlepas dari traffic dari klien ke proxy. Hanya health check IPv6 yang digunakan untuk memeriksa kondisi backend.

Tidak ada validasi untuk memeriksa apakah jenis traffic backend cocok dengan kebijakan pemilihan alamat IP. Misalnya, jika Anda memiliki backend khusus IPv4 dan memilih Only IPv6 sebagai kebijakan pemilihan alamat IP, konfigurasi akan menghasilkan backend yang tidak sehat karena traffic gagal menjangkau backend tersebut dan kode respons 503 HTTP ditampilkan ke klien.

Konsol

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik nama load balancer.

  3. Klik Edit.

  4. Klik Backend configuration.

  5. Di kolom Layanan backend, pilih BACKEND_SERVICE_IPV6.

  6. Backend type harus berupa Zonal network endpoint group atau Instance group.

  7. Dalam daftar Kebijakan pemilihan alamat IP, pilih IP_ADDRESS_SELECTION_POLICY.

  8. Klik Done.

gcloud

Perbarui kebijakan pemilihan alamat IP untuk layanan backend:

global

Untuk Load Balancer Aplikasi eksternal global, gunakan perintah:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --global

lintas region

Untuk Load Balancer Aplikasi internal lintas-region, gunakan perintah:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --global

regional

Untuk Load Balancer Aplikasi eksternal regional, gunakan perintah:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --region=REGION

Untuk Load Balancer Aplikasi internal regional, gunakan perintah:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --region=REGION

Menguji load balancer

Anda harus memvalidasi bahwa semua resource yang diperlukan telah diupdate ke stack ganda. Setelah Anda mengupdate semua resource, traffic harus otomatis mengalir ke backend. Anda dapat memeriksa log dan memverifikasi bahwa konversi telah selesai.

Uji load balancer untuk mengonfirmasi bahwa migrasi berhasil dan traffic masuk mencapai backend seperti yang diharapkan.

Mencari alamat IP load balancer

Konsol

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik nama load balancer.

  3. Di bagian Frontend, dua alamat IP load balancer ditampilkan. Dalam prosedur ini, alamat IPv4 disebut sebagai IP_ADDRESS_IPV4 dan alamat IPv6 disebut sebagai IP_ADDRESS_IPV6.

  4. Di bagian Backends, jika kebijakan pemilihan alamat IP adalah Prefer IPv6, dua status pemeriksaan kesehatan akan ditampilkan untuk backend.

Mengirim traffic ke load balancer

Dalam contoh ini, permintaan dari perintah curl didistribusikan secara acak ke backend.

Untuk load balancer eksternal

  1. Ulangi perintah berikut beberapa kali hingga Anda melihat semua VM backend merespons:

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    Misalnya, jika alamat IPv6 adalah [fd20:1db0:b882:802:0:46:0:0]:80, perintahnya akan terlihat seperti ini:

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

Untuk load balancer internal

  1. Buat VM klien pengujian di jaringan dan region VPC yang sama dengan load balancer. Subnet atau zona tidak harus sama.

    gcloud compute instances create client-vm \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh \
        --subnet=SUBNET
    
  2. Gunakan SSH untuk terhubung ke instance klien.

    gcloud compute ssh client-vm \
        --zone=ZONE
    
  3. Ulangi perintah berikut beberapa kali hingga Anda melihat semua VM backend merespons:

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    Misalnya, jika alamat IPv6 adalah [fd20:1db0:b882:802:0:46:0:0]:80, perintahnya akan terlihat seperti ini:

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

Memeriksa log

Setiap entri log merekam alamat IPv4 dan IPv6 tujuan untuk backend. Karena kami mendukung dual-stack, penting untuk mengamati alamat IP yang digunakan oleh backend.

Anda dapat memeriksa apakah traffic akan diarahkan ke IPv6 atau gagal kembali ke IPv4 dengan melihat log.

HttpRequest berisi alamat backend_ip yang terkait dengan backend. Dengan memeriksa log dan membandingkan alamat IPv4 dan IPv6 tujuan backend_ip, Anda dapat mengonfirmasi alamat IP mana yang digunakan.