Menyiapkan Load Balancer Jaringan passthrough internal untuk peralatan pihak ketiga

Di Google Cloud, Anda dapat mengintegrasikan peralatan pihak ketiga dengan cara yang sangat tersedia dan di-scale out. Untuk melakukannya, Anda mengonfigurasi rute statis dan menetapkan next hop-nya ke Google Cloud Load Balancer Jaringan passthrough internal. Hal ini memungkinkan load balancer menyeimbangkan beban traffic untuk awalan tujuan ke kumpulan peralatan VM pihak ketiga yang telah di-health check.

Panduan ini menggunakan contoh untuk mengajari Anda cara mengonfigurasi Load Balancer Jaringan passthrough internal agar menjadi 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 Anda harus memiliki semua peran IAM Compute Engine berikut:

Tugas Peran yang diperlukan
Membuat jaringan, subnet, dan komponen 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 di-scaling secara horizontal.

Solusi yang dibahas dalam panduan ini membuat VM perangkat yang menjalankan Debian Linux. VM contoh 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 dalam 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) appliance 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 ini menunjukkan beberapa resource yang dibuat 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 flag can-ip-forward-nya. 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 di-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 yang 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, 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 Google Cloud konsol, buka halaman VPC networks.

    Buka jaringan VPC

  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 Google Cloud konsol, buka halaman VPC networks.

    Buka jaringan VPC

  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 ingress yang diterapkan ke instance VM di jaringan VPC testing. Aturan ini memungkinkan 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 ingress yang diterapkan ke instance VM di jaringan VPC production. Aturan ini memungkinkan 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 di-load balance. Aturan ini mengizinkan traffic dari sistem health checkGoogle Cloud (130.211.0.0/22 dan 35.191.0.0/16). Contoh ini menggunakan tag target allow-health-check untuk mengidentifikasi instance yang harus diterapkan dengan tag tersebut.

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

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 pemeriksaan 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, lalu 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: ingress
    • Tindakan terhadap kecocokan: izinkan
    • Target: Semua instance dalam jaringan
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 10.30.1.0/24, 10.50.1.0/24
    • Protocols and ports: Izinkan semua
  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: ingress
    • Tindakan terhadap kecocokan: izinkan
    • Target: Semua instance dalam jaringan
    • Filter sumber: Rentang IPv4
    • Rentang IPv4 sumber: 10.30.1.0/24, 10.50.1.0/24
    • Protocols and ports: Izinkan semua
  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: ingress
    • 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, lalu ketik: 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: ingress
    • 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, lalu ketik: tcp:22
  9. Klik Buat.

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

    • Nama: fw-allow-health-check
    • Jaringan: testing
    • Prioritas: 1000
    • Direction of traffic: ingress
    • 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 Google Cloud health check di lingkungan produksi:

    • Nama: fw-allow-production-health-check
    • Jaringan: production
    • Prioritas: 1000
    • Direction of traffic: ingress
    • 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 Google Cloud health check ke VM appliance 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 appliance 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 peralatan virtual pihak ketiga

Langkah-langkah berikut menunjukkan cara membuat template instance dan grup instance terkelola regional 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. Saat ini, Google Cloud konsol 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 tanda --can-ip-forward agar 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 di-scaling 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 yang 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.

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

  • Aturan penerusan. Meskipun aturan penerusan contoh ini menentukan port TCP 80, saat load balancer menjadi 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

Mulai 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.

Buat load balancer pertama

  1. Di kolom Load Balancer name, masukkan ilb1.
  2. Dalam daftar Region, pilih us-west1.
  3. Dalam daftar Jaringan, pilih testing.
  4. Klik Backend configuration dan lakukan tindakan berikut:
    1. Di daftar Health check, klik Create a health check, lalu masukkan informasi berikut:
      • Nama: hc-http-80
      • Protokol: HTTP
      • Port: 80
      • Proxy protocol: NONE
      • 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.
    2. Klik Buat.
    3. Di bagian New backend, pilih grup instance third-party-instance-group, lalu klik Done.
    4. Dalam daftar Afinitas sesi, pilih IP Klien.
    5. Pastikan terdapat tanda centang biru di samping Backend configuration sebelum melanjutkan. Tinjau langkah ini jika tidak.
  5. Klik Frontend configuration. Di bagian New Frontend IP and port, lakukan 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. Port: Pilih Single, lalu masukkan 80 untuk Port number. Ingatlah bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer menjadi next hop rute.
    5. Pastikan terdapat tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika tidak.
  6. Klik Review and finalize. Periksa kembali setelan Anda.
  7. Klik Buat.

Mulai 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.

Buat load balancer kedua

  1. Tetapkan Name ke ilb2.
  2. TetapkanRegion ke us-west1.
  3. Tetapkan Network ke production.
  4. Klik Backend configuration dan lakukan 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 Afinitas sesi, pilih IP Klien.
    4. Pastikan terdapat tanda centang biru di samping Backend configuration sebelum melanjutkan. Tinjau langkah ini jika tidak.
  5. Klik Frontend configuration. Di bagian New Frontend IP and port, lakukan 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. Port: Pilih Single, lalu masukkan 80 untuk Port number. Ingatlah bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer menjadi next hop rute.
    5. Pastikan terdapat tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika tidak.
  6. Klik Review and finalize. Periksa kembali setelan Anda.
  7. Klik Buat.

  8. Konfigurasi 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 perangkat 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 (alat 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 load balancer next hop.

Konsol

Membuat rute pertama

  1. Di konsol Google Cloud , buka halaman Routes.

    Buka Rute

  2. Klik Create route.

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

  4. Pilih jaringan testing.

  5. Untuk Destination IP range, 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 Name rute, masukkan ilb-nhop-dest-10-30-1.
  3. Pilih jaringan testing.
  4. Untuk Destination IP range, 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 aturan penerusan setiap load balancer, dan setiap rentang tujuan ditetapkan dengan tepat.

Untuk tanda --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 mengetahui informasi selengkapnya, lihat Project dan jaringan next hop.

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

Anda dapat secara opsional menentukan satu atau beberapa tag instance pada rute. Rute dapat diterapkan ke VM tertentu jika Anda menentukan tag jaringan pada rute. Jika Anda tidak menentukan tag jaringan, rute akan berlaku untuk semua VM di 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) dalam 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) dalam 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 kondisi 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 mengetahui informasi selengkapnya, lihat Hashing simetris.

Hapus dan buat ulang aturan penerusan

Konsol

Hapus aturan penerusan Anda dan buat yang baru

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

    Buka Load balancing

  2. Klik load balancer be-ilb Anda, 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 terdapat tanda centang biru di samping Frontend configuration sebelum melanjutkan. Tinjau langkah ini jika tidak.
  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 dalam 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 NONE setelan afinitas sesi

  • 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 pengganti 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. Dalam konfigurasi load balancer, hapus health check.

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

    Jika Anda menggunakan konsol Google Cloud , health check 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