Menyiapkan Load Balancer Jaringan passthrough internal untuk peralatan pihak ketiga

Di Google Cloud, Anda dapat mengintegrasikan perangkat pihak ketiga dengan cara yang sangat tersedia dan diskalasikan. Untuk melakukannya, Anda mengonfigurasi rute statis dan menetapkan next hop-nya ke Google Cloud Load Balancer Jaringan passthrough internal. Hal ini memungkinkan load balancer melakukan load balancing traffic untuk awalan tujuan ke kumpulan peralatan VM pihak ketiga yang telah diperiksa kondisinya.

Panduan ini menggunakan contoh untuk mengajarkan cara mengonfigurasi Load Balancer Jaringan passthrough internal sebagai next hop. Sebelum mengikuti panduan ini, pahami hal-hal berikut:

Izin

Untuk mengikuti panduan ini, Anda perlu membuat instance dan mengubah jaringan dalam project. Anda harus menjadi pemilik atau editor project, atau memiliki semua peran IAM Compute Engine berikut:

Tugas Peran yang diperlukan
Membuat komponen jaringan, subnet, dan load balancer Admin Jaringan
Menambahkan dan menghapus aturan firewall Security Admin
Membuat instance Compute Instance Admin

Untuk informasi selengkapnya, lihat panduan berikut:

Menyiapkan Load Balancer Jaringan passthrough internal sebagai next hop dengan backend umum

Panduan ini menunjukkan cara menggunakan Load Balancer Jaringan passthrough internal sebagai next hop untuk rute statis guna mengintegrasikan peralatan virtual yang diskalakan.

Solusi yang dibahas dalam panduan ini membuat VM appliance yang menjalankan Debian Linux. Contoh VM tidak melakukan pemfilteran paket apa pun, tetapi Anda dapat menambahkan fungsi tersebut dengan mengubah konfigurasi jaringan contoh ini atau dengan menggunakan software pemfilteran atau perutean paket yang berbeda.

Langkah-langkah di bagian ini menjelaskan cara mengonfigurasi resource berikut:

  • Contoh jaringan VPC dan subnet kustom
  • Google Cloud aturan firewall yang mengizinkan koneksi masuk ke virtual machine (VM) aplikasi backend
  • Rute statis
  • Dua VM klien untuk menguji koneksi
  • Komponen Load Balancer Jaringan passthrough internal berikut:
    • VM backend dalam grup instance terkelola (MIG)
    • Health check untuk VM backend
    • Layanan backend internal di region us-west1 untuk mengelola distribusi koneksi di antara VM backend
    • Aturan penerusan internal dan alamat IP internal untuk frontend load balancer

Contoh ini menunjukkan load balancing ke beberapa NIC backend, seperti yang dijelaskan dalam Load balancing ke beberapa NIC.

Topologinya terlihat seperti ini:

Contoh mendetail multi-NIC next hop untuk Load Balancer Jaringan passthrough internal.
Contoh mendetail multi-NIC next hop untuk Load Balancer Jaringan passthrough internal (klik untuk memperbesar).

Diagram menunjukkan beberapa resource yang dibuat oleh contoh:

  • Instance aplikasi di balik Load Balancer Jaringan passthrough internal (fr-ilb1, dalam contoh ini). Instance aplikasi hanya memiliki alamat IP internal.
  • Setiap instance aplikasi mengaktifkan tanda can-ip-forward. Tanpa flag ini, VM Compute Engine hanya dapat mengirimkan paket jika alamat IP sumber paket cocok dengan alamat IP internal VM, alamat IP dari rentang IP alias, atau alamat IP aturan penerusan yang me-resolve ke VM. Flag can-ip-forward mengubah perilaku ini sehingga VM dapat mengirimkan paket dengan alamat IP sumber apa pun.
  • Rute statis dengan tujuan 10.50.1.0/24 dan next hop ditetapkan ke aturan penerusan load balancer, fr-ilb1.

Diagram juga menunjukkan alur traffic:

  • Jaringan VPC testing memiliki rute statis untuk traffic yang ditujukan ke subnet 10.50.1.0/24. Rute ini mengarahkan traffic ke load balancer.
  • Load balancer meneruskan traffic ke salah satu instance aplikasi berdasarkan afinitas sesi yang dikonfigurasi. (Afinitas sesi hanya memengaruhi traffic TCP.)

Untuk kasus penggunaan tambahan, lihat Load balancer TCP/UDP internal sebagai next hop.

Mengonfigurasi jaringan, region, dan subnet

Contoh ini menggunakan jaringan VPC, region, dan subnet berikut:

  • Jaringan: Contoh ini memerlukan dua jaringan, masing-masing dengan setidaknya satu subnet. Setiap VM perangkat pihak ketiga backend harus memiliki minimal dua antarmuka jaringan, satu di setiap jaringan VPC. Jaringan dalam contoh ini adalah jaringan VPC mode kustom bernama testing dan production. Jaringan testing dalam contoh ini berisi klien dan load balancer. Jaringan production berisi VM target tujuan.

  • Region: Subnet berada di region us-west1. Subnet harus berada di region yang sama karena instance VM adalah resource zonal.

  • Subnet: Subnet, testing-subnet dan production-subnet, masing-masing menggunakan rentang alamat IP utama 10.30.1.0/24 dan 10.50.1.0/24.

Untuk membuat contoh jaringan dan subnet, ikuti langkah-langkah berikut.

Konsol

Buat jaringan testing dan testing-subnet:

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

    Buka VPC networks

  2. Klik Create VPC network.

  3. Masukkan Nama testing.

  4. Di bagian Subnet:

    • Setel Subnet creation mode ke Custom.
    • Di bagian New subnet, masukkan informasi berikut:
      • Nama: testing-subnet
      • Region: us-west1
      • Rentang alamat IP: 10.30.1.0/24
      • Klik Selesai.
  5. Klik Buat.

Buat jaringan production dan production-subnet:

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

    Buka VPC networks

  2. Klik Create VPC network.

  3. Masukkan Nama production.

  4. Di bagian Subnet:

    • Setel Subnet creation mode ke Custom.
    • Di bagian New subnet, masukkan informasi berikut:
      • Nama: production-subnet
      • Region: us-west1
      • Rentang alamat IP: 10.50.1.0/24
      • Klik Selesai.
  5. Klik Create.

gcloud

  1. Buat jaringan VPC mode kustom:

    gcloud compute networks create testing --subnet-mode=custom
    
    gcloud compute networks create production --subnet-mode=custom
    
  2. Buat subnet di jaringan testing dan production di region us-west1:

    gcloud compute networks subnets create testing-subnet \
        --network=testing \
        --range=10.30.1.0/24 \
        --region=us-west1
    
    gcloud compute networks subnets create production-subnet \
        --network=production \
        --range=10.50.1.0/24 \
        --region=us-west1
    

Mengonfigurasi aturan firewall

Contoh ini menggunakan aturan firewall berikut:

  • fw-allow-testing-from-both: Aturan ingress, yang berlaku untuk semua target di jaringan testing. Aturan ini mengizinkan traffic dari sumber dalam rentang alamat IP 10.30.1.0/24 dan 10.50.1.0/24. Kedua rentang ini mencakup alamat IP internal utama VM di kedua jaringan.

  • fw-allow-production-from-both: Aturan ingress, yang berlaku untuk semua target di jaringan production. Aturan ini mengizinkan traffic dari sumber dalam rentang alamat IP 10.30.1.0/24 dan 10.50.1.0/24. Kedua rentang ini mencakup alamat IP internal utama VM di kedua jaringan.

  • fw-allow-testing-ssh: Aturan masuk yang diterapkan ke instance VM di jaringan VPC testing. Aturan ini mengizinkan konektivitas SSH masuk di TCP port 22 dari alamat mana pun. Anda dapat memilih rentang IP sumber yang lebih ketat untuk aturan ini; misalnya, Anda dapat menentukan rentang IP sistem tempat Anda berencana memulai sesi SSH. Contoh ini menggunakan tag target allow-ssh untuk mengidentifikasi VM yang menerapkan aturan firewall.

  • fw-allow-production-ssh: Aturan masuk yang diterapkan ke instance VM di jaringan VPC production. Aturan ini mengizinkan konektivitas SSH masuk di TCP port 22 dari alamat mana pun. Seperti aturan fw-allow-testing-ssh, Anda dapat memilih rentang IP sumber yang lebih ketat untuk aturan ini.

  • fw-allow-health-check: Aturan ingress untuk VM peralatan pihak ketiga yang sedang di-load balance. Aturan ini mengizinkan traffic dari sistem pemeriksaan kesehatanGoogle Cloud (130.211.0.0/22 dan 35.191.0.0/16). Contoh ini menggunakan tag target allow-health-check untuk mengidentifikasi instance tempat tag tersebut harus diterapkan.

  • fw-allow-production-health-check: Aturan ingress untuk VM aplikasi pihak ketiga yang di-load balanced. Aturan ini mengizinkan traffic dari sistem pemeriksaan kesehatanGoogle Cloud (130.211.0.0/22 dan 35.191.0.0/16). Contoh ini menggunakan tag target allow-health-check untuk mengidentifikasi instance tempat tag tersebut harus diterapkan.

Tanpa aturan firewall ini, aturan tolak ingress default akan memblokir traffic masuk ke instance backend. Anda harus membuat aturan firewall untuk mengizinkan health check dari rentang IP sistem probe Google Cloud . Lihat rentang IP probe untuk mengetahui informasi selengkapnya.

Konsol

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

    Buka Kebijakan firewall

  2. Klik Create firewall rule dan masukkan informasi berikut untuk membuat aturan yang mengizinkan VM pengujian menerima paket dari subnet pengujian dan produksi:

    • Nama: fw-allow-testing-from-both
    • Jaringan: testing
    • Prioritas: 1000
    • Direction of traffic: masuk
    • Tindakan terhadap kecocokan: izinkan
    • Targets: Semua instance dalam jaringan
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 10.30.1.0/24, 10.50.1.0/24
    • Protocols and ports: Allow all
  3. Klik Buat.

  4. Klik Create firewall rule dan masukkan informasi berikut untuk membuat aturan yang mengizinkan VM produksi menerima paket dari subnet pengujian dan produksi:

    • Nama: fw-allow-production-from-both
    • Jaringan: production
    • Prioritas: 1000
    • Direction of traffic: masuk
    • Tindakan terhadap kecocokan: izinkan
    • Targets: Semua instance dalam jaringan
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 10.30.1.0/24, 10.50.1.0/24
    • Protocols and ports: Allow all
  5. Klik Buat.

  6. Klik Create firewall rule untuk membuat aturan yang mengizinkan koneksi SSH yang masuk di lingkungan pengujian:

    • Nama: fw-allow-testing-ssh
    • Jaringan: testing
    • Prioritas: 1000
    • Direction of traffic: masuk
    • Tindakan terhadap kecocokan: izinkan
    • Targets: Tag target yang ditentukan
    • Tag target: allow-ssh
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 0.0.0.0/0
    • Protocols and ports: Pilih Specified protocols and ports dan ketikkan: tcp:22
  7. Klik Buat.

  8. Klik Create firewall rule untuk membuat aturan yang mengizinkan koneksi SSH yang masuk di lingkungan produksi:

    • Nama: fw-allow-production-ssh
    • Jaringan: production
    • Prioritas: 1000
    • Direction of traffic: masuk
    • Tindakan terhadap kecocokan: izinkan
    • Targets: Tag target yang ditentukan
    • Tag target: allow-ssh
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 0.0.0.0/0
    • Protocols and ports: Pilih Specified protocols and ports dan ketikkan: tcp:22
  9. Klik Buat.

  10. Klik Create firewall rule untuk membuat aturan yang mengizinkan health checkGoogle Cloud di lingkungan pengujian:

    • Nama: fw-allow-health-check
    • Jaringan: testing
    • Prioritas: 1000
    • Direction of traffic: masuk
    • Tindakan terhadap kecocokan: izinkan
    • Targets: Tag target yang ditentukan
    • Tag target: allow-health-check
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 130.211.0.0/22 dan 35.191.0.0/16
    • Protokol dan port: tcp
  11. Klik Buat.

  12. Klik Create firewall rule untuk membuat aturan yang mengizinkan health checkGoogle Cloud di lingkungan produksi:

    • Nama: fw-allow-production-health-check
    • Jaringan: production
    • Prioritas: 1000
    • Direction of traffic: masuk
    • Tindakan terhadap kecocokan: izinkan
    • Targets: Tag target yang ditentukan
    • Tag target: allow-health-check
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 130.211.0.0/22 dan 35.191.0.0/16
    • Protokol dan port: tcp
  13. Klik Buat.

gcloud

  1. Buat aturan firewall fw-allow-testing-subnet untuk mengizinkan VM pengujian menerima paket dari subnet testing dan production:

    gcloud compute firewall-rules create fw-allow-testing-from-both \
        --network=testing \
        --action=allow \
        --direction=ingress \
        --source-ranges=10.30.1.0/24,10.50.1.0/24 \
        --rules=all
    
  2. Buat aturan firewall fw-allow-production-subnet untuk mengizinkan VM produksi menerima paket dari subnet testing dan production:

    gcloud compute firewall-rules create fw-allow-production-from-both \
        --network=production \
        --action=allow \
        --direction=ingress \
        --source-ranges=10.30.1.0/24,10.50.1.0/24 \
        --rules=all
    
  3. Buat aturan firewall fw-allow-testing-ssh untuk mengizinkan konektivitas SSH ke VM dengan tag jaringan allow-ssh. Jika Anda menghapus source-ranges,Google Cloud akan menafsirkan aturan sebagai sumber apa pun.

    gcloud compute firewall-rules create fw-allow-testing-ssh \
        --network=testing \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  4. Buat aturan firewall fw-allow-production-ssh untuk mengizinkan konektivitas SSH ke VM dengan tag jaringan allow-ssh.

    gcloud compute firewall-rules create fw-allow-production-ssh \
        --network=production \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  5. Buat aturan fw-allow-health-check untuk mengizinkan health check Google Cloud ke VM aplikasi pihak ketiga di jaringan testing.

    gcloud compute firewall-rules create fw-allow-testing-health-check \
        --network=testing \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp
    
  6. Buat aturan firewall fw-allow-production-health-check untuk mengizinkan health checkGoogle Cloud ke VM aplikasi pihak ketiga di jaringan production.

    gcloud compute firewall-rules create fw-allow-production-health-check \
        --network=production \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp
    

Membuat perangkat virtual pihak ketiga

Langkah-langkah berikut menunjukkan cara membuat template instance dan grup instance regional terkelola dengan lebih dari satu antarmuka jaringan. Grup instance ini digunakan sebagai perangkat virtual pihak ketiga untuk contoh ini.

Konsol

Anda harus menggunakan gcloud untuk langkah ini karena Anda perlu membuat template instance dengan lebih dari satu antarmuka jaringan. Konsol Google Cloud saat ini tidak mendukung pembuatan template instance dengan lebih dari satu antarmuka jaringan.

gcloud

  1. Buat file lokal bernama config.sh dan masukkan konten berikut:

    #!/bin/bash
    # Enable IP forwarding:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/20-example.conf
    # Read VM network configuration:
    md_vm="http://metadata.google.internal/computeMetadata/v1/instance/"
    md_net="$md_vm/network-interfaces"
    nic0_gw="$(curl $md_net/0/gateway -H "Metadata-Flavor:Google" )"
    nic0_mask="$(curl $md_net/0/subnetmask -H "Metadata-Flavor:Google")"
    nic0_addr="$(curl $md_net/0/ip -H "Metadata-Flavor:Google")"
    nic0_id="$(ip addr show | grep $nic0_addr | awk '{print $NF}')"
    nic1_gw="$(curl $md_net/1/gateway -H "Metadata-Flavor:Google")"
    nic1_mask="$(curl $md_net/1/subnetmask -H "Metadata-Flavor:Google")"
    nic1_addr="$(curl $md_net/1/ip -H "Metadata-Flavor:Google")"
    nic1_id="$(ip addr show | grep $nic1_addr | awk '{print $NF}')"
    # Source based policy routing for nic1
    echo "100 rt-nic1" >> /etc/iproute2/rt_tables
    sudo ip rule add pri 32000 from $nic1_gw/$nic1_mask table rt-nic1
    sleep 1
    sudo ip route add 35.191.0.0/16 via $nic1_gw dev $nic1_id table rt-nic1
    sudo ip route add 130.211.0.0/22 via $nic1_gw dev $nic1_id table rt-nic1
    # Use a web server to pass the health check for this example.
    # You should use a more complete test in production.
    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    echo "Example web page to pass health check" | \
    tee /var/www/html/index.html
    sudo systemctl restart apache2
  2. Buat template instance untuk peralatan virtual pihak ketiga Anda. Template instance harus menyertakan flag --can-ip-forward sehingga instance VM yang dibuat dari template dapat meneruskan paket dari instance lain di jaringan testing dan production.

    gcloud compute instance-templates create third-party-template-multinic \
        --region=us-west1 \
        --network-interface subnet=testing-subnet,address="" \
        --network-interface subnet=production-subnet \
        --tags=allow-ssh,allow-health-check,my-network-tag \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --can-ip-forward \
        --metadata=startup-script="$(< config.sh)"
    
  3. Buat grup instance terkelola untuk peralatan virtual pihak ketiga Anda. Perintah ini membuat grup instance terkelola regional, yang kemudian dapat disederhanakan secara otomatis, di us-west1.

    gcloud compute instance-groups managed create third-party-instance-group \
        --region=us-west1 \
        --template=third-party-template-multinic \
        --size=3
    

Membuat resource load balancing

Langkah-langkah ini mengonfigurasi semua komponen Load Balancer Jaringan passthrough internal, dimulai dengan health check dan layanan backend, lalu komponen frontend:

  • Health check: Dalam contoh ini, health check HTTP memeriksa respons HTTP 200 (OK). Untuk mengetahui informasi selengkapnya, lihat bagian health check dalam ringkasan Load Balancer Jaringan passthrough internal.

  • Layanan backend: Meskipun layanan backend contoh ini menentukan protokol TCP, saat load balancer adalah next hop untuk rute, Google Cloud akan meneruskan traffic untuk semua protokol (TCP, UDP, dan ICMP).

  • Aturan penerusan: Meskipun contoh aturan penerusan ini menentukan port TCP 80, saat load balancer adalah next hop untuk rute, traffic di port TCP atau UDP apa pun akan dikirim ke backend load balancer.

  • Alamat IP internal: Contoh ini menentukan alamat IP internal, 10.30.1.99, untuk aturan penerusan.

Konsol

Memulai konfigurasi

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

    Buka Load balancing

  2. Klik Create load balancer.
  3. Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL), lalu klik Next.
  4. Untuk Proxy or passthrough, pilih Passthrough load balancer, lalu klik Next.
  5. Untuk Public facing or internal, pilih Internal, lalu klik Next.
  6. Klik Configure.

Membuat load balancer pertama

  1. Tetapkan Name ke ilb1.
  2. Tetapkan Wilayah ke us-west1.
  3. Tetapkan Network ke testing.
  4. Klik Backend configuration dan buat perubahan berikut:
    1. Untuk Backends, di bagian New item, pilih grup instance third-party-instance-group, lalu klik Done.
    2. Untuk Health check, pilih Create another health check, masukkan informasi berikut, lalu klik Save and continue:
      • Nama: hc-http-80
      • Protokol: HTTP
      • Port: 80
      • Protokol proxy: NONE
      • Jalur permintaan: / Perhatikan bahwa saat Anda menggunakan konsol Google Cloud untuk membuat load balancer, health check bersifat global. Jika Anda ingin membuat health check regional, gunakan gcloud atau API.
    3. Untuk Session affinity, pilih Client IP.
    4. Pastikan ada tanda centang biru di samping Backend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
  5. Klik Frontend configuration. Di bagian New Frontend IP and port, buat perubahan berikut:
    1. Nama: fr-ilb1
    2. Subnetwork: testing-subnet
    3. Dari Internal IP, pilih Reserve a static internal IP address, masukkan informasi berikut, lalu klik Reserve:
      • Nama: ip-ilb
      • Static IP address: Let me choose
      • Alamat IP kustom: 10.30.1.99
    4. Ports: Pilih Single, dan masukkan 80 untuk Port number. Ingat bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer adalah next hop rute.
    5. Pastikan ada tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
  6. Klik Review and finalize. Periksa kembali setelan Anda.
  7. Klik Buat.

Memulai konfigurasi

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

    Buka Load balancing

  2. Klik Create load balancer.
  3. Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL), lalu klik Next.
  4. Untuk Proxy or passthrough, pilih Passthrough load balancer, lalu klik Next.
  5. Untuk Public facing or internal, pilih Internal, lalu klik Next.
  6. Klik Configure.

Membuat load balancer kedua

  1. Tetapkan Name ke ilb2.
  2. Tetapkan Wilayah ke us-west1.
  3. Tetapkan Network ke production.
  4. Klik Backend configuration dan buat perubahan berikut:
    1. Untuk Backends, di bagian New item, pilih grup instance third-party-instance-group, lalu klik Done.
    2. Untuk Health check, pilih hc-http-80.
    3. Untuk Session affinity, pilih Client IP.
    4. Pastikan ada tanda centang biru di samping Backend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
  5. Klik Frontend configuration. Di bagian New Frontend IP and port, buat perubahan berikut:
    1. Nama: fr-ilb2
    2. Subnetwork: production-subnet
    3. Dari Internal IP, pilih Reserve a static internal IP address, masukkan informasi berikut, lalu klik Reserve:
      • Nama: ip-ilb2
      • Static IP address: Let me choose
      • Alamat IP kustom: 10.50.1.99
    4. Ports: Pilih Single, dan masukkan 80 untuk Port number. Ingat bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer adalah next hop rute.
    5. Pastikan ada tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
  6. Klik Review and finalize. Periksa kembali setelan Anda.
  7. Klik Buat.

  8. Konfigurasikan resource load balancer di jaringan VPC production.

gcloud

  1. Buat health check HTTP baru untuk menguji konektivitas TCP ke VM di port 80.

    gcloud compute health-checks create http hc-http-80 \
        --region=us-west1 \
        --port=80
    
  2. Buat dua layanan backend internal di region us-west1.

    gcloud compute backend-services create ilb1 \
        --load-balancing-scheme=internal \
        --health-checks-region=us-west1 \
        --health-checks=hc-http-80 \
        --region=us-west1 \
        --network=testing \
        --session-affinity=CLIENT_IP
    
    gcloud compute backend-services create ilb2 \
        --load-balancing-scheme=internal \
        --health-checks-region=us-west1 \
        --health-checks=hc-http-80 \
        --region=us-west1 \
        --network=production \
        --session-affinity=CLIENT_IP
    
  3. Tambahkan grup instance yang berisi appliance virtual pihak ketiga sebagai backend di layanan backend.

    gcloud compute backend-services add-backend ilb1 \
        --instance-group=third-party-instance-group \
        --instance-group-region=us-west1 \
        --region=us-west1
    
    gcloud compute backend-services add-backend ilb2 \
        --instance-group=third-party-instance-group \
        --instance-group-region=us-west1 \
        --region=us-west1
    
  4. Buat aturan penerusan internal dan hubungkan ke layanan backend untuk menyelesaikan konfigurasi load balancer. Ingat bahwa protokol (TCP) dan port (80) load balancer tidak membatasi port dan protokol yang diteruskan ke instance backend (aplikasi virtual pihak ketiga) saat load balancer digunakan sebagai next hop rute.

    gcloud compute forwarding-rules create fr-ilb1 \
        --load-balancing-scheme=internal \
        --ports=80 \
        --network=testing \
        --subnet=testing-subnet \
        --region=us-west1 \
        --backend-service=ilb1 \
        --address=10.30.1.99
    
    gcloud compute forwarding-rules create fr-ilb2 \
        --load-balancing-scheme=internal \
        --ports=80 \
        --network=production \
        --subnet=production-subnet \
        --region=us-west1 \
        --backend-service=ilb2 \
        --address=10.50.1.99
    

Membuat rute statis yang menentukan load balancer sebagai next hop

Buat dua rute statis yang menggunakan next hop load balancer.

Konsol

Membuat rute pertama

  1. Di Konsol Google Cloud, buka halaman Routes.

    Buka Rute

  2. Klik Create route.

  3. Untuk Nama rute, masukkan ilb-nhop-dest-10-50-1.

  4. Pilih jaringan testing.

  5. Untuk Rentang IP tujuan, masukkan 10.50.1.0/24.

  6. Untuk Instance tags, masukkan my-network-tag.

  7. Untuk Next hop rute, pilih Specify a forwarding rule of internal TCP/UDP load balancer.

    Untuk menentukan alamat IP load balancer sebagai next hop, gunakan gcloud CLI atau API.

  8. Tentukan nama aturan penerusan. Untuk nama aturan penerusan, pilih fr-ilb1.

  9. Klik Buat.

Membuat rute kedua

  1. Klik Create route.
  2. Untuk Nama rute, masukkan ilb-nhop-dest-10-30-1.
  3. Pilih jaringan testing.
  4. Untuk Rentang IP tujuan, masukkan 10.30.1.0/24.
  5. Untuk Next hop rute, pilih Specify a forwarding rule of internal TCP/UDP load balancer.

    Untuk menentukan alamat IP load balancer sebagai next hop, gunakan gcloud CLI atau API.

  6. Untuk nama aturan penerusan, pilih fr-ilb2.

  7. Klik Buat.

gcloud

Buat rute statis dengan next hop yang ditetapkan ke setiap aturan penerusan load balancer, dan setiap rentang tujuan ditetapkan sebagaimana mestinya.

Untuk flag --next-hop-ilb, Anda dapat menentukan nama aturan penerusan atau alamat IP aturan penerusan. Alamat IP aturan penerusan next hop dapat berada di jaringan VPC yang sama yang berisi rute atau di jaringan VPC yang di-peering. Untuk informasi selengkapnya, lihat Jaringan dan project next hop.

Dalam contoh, rute pertama menggunakan alamat IP 10.30.1.99, sedangkan rute kedua menggunakan nama aturan penerusan fr-ilb12.

Anda dapat menentukan satu atau beberapa tag instance pada rute secara opsional. Rute dapat diterapkan ke VM tertentu jika Anda menentukan tag jaringan di rute. Jika Anda tidak menentukan tag jaringan, rute tersebut berlaku untuk semua VM dalam jaringan VPC. Dalam contoh ini, rute menggunakan my-network-tag untuk tag jaringan rute.

gcloud compute routes create ilb-nhop-dest-10-50-1 \
    --network=testing \
    --destination-range=10.50.1.0/24 \
    --next-hop-ilb=10.30.1.99 \
    --tags=my-network-tag
gcloud compute routes create ilb-nhop-dest-10-30-1 \
    --network=production \
    --destination-range=10.30.1.0/24 \
    --next-hop-ilb=fr-ilb2 \
    --next-hop-ilb-region=us-west1

Membuat instance VM testing

Contoh ini membuat instance VM dengan alamat IP 10.30.1.100 di testing-subnet (10.30.1.0/24) di jaringan VPC testing.

gcloud

  1. Buat testing-vm dengan menjalankan perintah berikut.

    gcloud compute instances create testing-vm \
        --zone=us-west1-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh,my-network-tag \
        --subnet=testing-subnet \
        --private-network-ip 10.30.1.100 \
        --metadata=startup-script='#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo 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
        sudo systemctl restart apache2'
    

Membuat instance VM production

Contoh ini membuat instance VM dengan alamat IP 10.50.1.100 di production-subnet (10.50.1.0/24) di jaringan VPC production.

gcloud

production-vm dapat berada di zona mana pun di region yang sama dengan load balancer, dan dapat menggunakan subnet apa pun di region tersebut. Dalam contoh ini, production-vm berada di zona us-west1-a.

  1. Buat production-vm dengan menjalankan perintah berikut.

    gcloud compute instances create production-vm \
        --zone=us-west1-a \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh \
        --subnet=production-subnet \
        --private-network-ip 10.50.1.100 \
        --metadata=startup-script='#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo 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
        sudo systemctl restart apache2'
    

Menguji load balancing ke deployment multi-NIC

  1. Verifikasi status backend load balancer.

    gcloud compute backend-services get-health ilb1 --region us-west1
    
    gcloud compute backend-services get-health ilb2 --region us-west1
    
  2. Uji konektivitas dari VM testing.

    gcloud compute ssh testing-vm --zone=us-west1-a
    
    curl http://10.50.1.99
    
    exit
    
  3. Uji konektivitas dari VM production.

    gcloud compute ssh production-vm --zone=us-west1-a
    
    curl http://10.30.1.99
    
    exit
    

Mengaktifkan hashing simetris

Saat menghitung hash yang dipetakan ke instance backend, Google Cloud mengabaikan arah alamat IP dan port. Nilai hash konsisten yang dihitung dari paket TCP/UDP sama, terlepas dari arah asal paket. Hal ini disebut hashing simetris.

Untuk mengaktifkan perilaku hashing ini di Load Balancer Jaringan passthrough internal yang ada, Anda harus membuat ulang aturan penerusan dan rute next hop.

Untuk informasi selengkapnya, lihat Hashing simetris.

Menghapus dan membuat ulang aturan penerusan

Konsol

Menghapus aturan penerusan dan membuat aturan baru

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

    Buka Load balancing

  2. Klik load balancer be-ilb, lalu klik Edit.

  3. Klik Frontend configuration.

  4. Arahkan kursor ke aturan penerusan, lalu klik Hapus untuk menghapusnya.

  5. Klik Add frontend IP and port.

  6. Di bagian New Frontend IP and port, lakukan perubahan berikut:

    1. Nama: FORWARDING_RULE_NAME
    2. Subnetwork: SUBNET_NAME
    3. Dari Internal IP, pilih IP_ADDRESS
    4. Port: PORT_NUMBER atau ALL.
    5. Klik Selesai.
    6. Pastikan ada tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika belum.
  7. Klik Review and finalize. Periksa kembali setelan Anda.

  8. Klik Buat.

gcloud

  1. Hapus aturan penerusan yang ada.

    gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
        --region=REGION
    
  2. Buat aturan penerusan pengganti dengan nama yang sama.

    gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
        --load-balancing-scheme=internal \
        --ports=PORT_NUMBER or `ALL` \
        --network=NETWORK_NAME \
        --subnet=SUBNET_NAME \
        --region=REGION \
        --backend-service=BACKEND_SERVICE_NAME \
        --address=IP_ADDRESS
    

Jika SNAT tidak diperlukan

Seperti yang ditunjukkan pada contoh sebelumnya, penafsiran alamat jaringan sumber (SNAT) tidak diperlukan jika semua hal berikut benar:

  • Aturan penerusan untuk Load Balancer Jaringan passthrough internal dibuat pada atau setelah 22 Juni 2021.
  • Rute statis yang mereferensikan aturan penerusan dibuat pada atau setelah 22 Juni 2021.
  • Layanan backend Load Balancer Jaringan passthrough internal tidak menggunakan setelan afinitas sesi NONE.

Anda dapat mengonversi rute Load Balancer Jaringan passthrough internal next hop yang ada untuk menggunakan hashing simetris dengan mengikuti langkah-langkah berikut:

  • Pastikan layanan backend Load Balancer Jaringan passthrough internal tidak menggunakan setelan afinitas sesi NONE

  • Buat aturan penerusan pengganti yang mereferensikan layanan backend yang sama. Aturan penerusan pengganti menggunakan alamat IP yang berbeda.

  • Buat rute statis pengganti yang mereferensikan aturan penerusan baru. Pastikan rute penggantian ini memiliki prioritas yang lebih tinggi daripada rute yang ada.

  • Hapus rute yang ada dengan prioritas lebih rendah (mereferensikan aturan penerusan sebelumnya), lalu hapus aturan penerusan sebelumnya.

Pembersihan

  1. Dalam konfigurasi load balancer, hapus backend dari layanan backend.

    gcloud compute backend-services remove-backend ilb1 \
        --instance-group=third-party-instance-group \
        --instance-group-region=us-west1 \
        --region=us-west1
    
    gcloud compute backend-services remove-backend ilb2 \
        --instance-group=third-party-instance-group \
        --instance-group-region=us-west1 \
        --region=us-west1
    
  2. Hapus rute.

    gcloud compute routes delete ilb-nhop-dest-10-50-1
    
    gcloud compute routes delete ilb-nhop-dest-10-30-1
    
  3. Di konfigurasi load balancer, hapus aturan penerusan.

    gcloud compute forwarding-rules delete fr-ilb1 \
        --region=us-west1
    
    gcloud compute forwarding-rules delete fr-ilb2 \
        --region=us-west1
    
  4. Di konfigurasi load balancer, hapus layanan backend.

    gcloud compute backend-services delete ilb1 \
        --region=us-west1
    
    gcloud compute backend-services delete ilb2 \
        --region=us-west1
    
  5. Di konfigurasi load balancer, hapus health check.

    gcloud compute health-checks delete hc-http-80 \
        --region=us-west1
    

    Jika Anda menggunakan konsol Google Cloud, pemeriksaan kesehatan bersifat global. Oleh karena itu, perintahnya adalah sebagai berikut:

    gcloud compute health-checks delete hc-http-80 \
         --global
    
  6. Hapus grup instance terkelola.

    gcloud compute instance-groups managed delete third-party-instance-group \
        --region=us-west1
    
  7. Hapus template instance.

    gcloud compute instance-templates delete third-party-template
    
    gcloud compute instance-templates delete third-party-template-multinic
    
  8. Hapus instance pengujian dan produksi.

    gcloud compute instances delete testing-vm \
        --zone=us-west1-a
    
    gcloud compute instances delete production-vm \
        --zone=us-west1-a
    

Langkah berikutnya