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 diskalakan. Untuk melakukannya, konfigurasikan rute statis kustom dan tetapkan hop berikutnya ke Load Balancer Jaringan passthrough internal Google Cloud. Dengan demikian, load balancer dapat melakukan load balancing terhadap traffic untuk awalan tujuan ke kumpulan peralatan VM pihak ketiga yang telah diperiksa kondisinya.

Panduan ini menggunakan contoh untuk mengajari Anda cara mengonfigurasi Load Balancer Jaringan passthrough internal agar menjadi hop berikutnya. Sebelum mengikuti panduan ini, pahami hal-hal berikut:

Izin

Untuk mengikuti panduan ini, Anda perlu membuat instance dan mengubah jaringan dalam sebuah 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 hop berikutnya dengan backend umum

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

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

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

  • Contoh jaringan VPC dan subnet kustom
  • Aturan firewall Google Cloud yang mengizinkan koneksi masuk ke virtual machine (VM) peralatan backend
  • Rute statis kustom
  • 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 detail multi-NIC next-hop untuk Load Balancer Jaringan passthrough internal.
Contoh lengkap multi-NIC next-hop untuk Load Balancer Jaringan passthrough internal (klik untuk memperbesar).

Diagram ini menampilkan beberapa resource yang dibuat oleh contoh tersebut:

  • Instance aplikasi di belakang Load Balancer Jaringan passthrough internal (dalam contoh ini, fr-ilb1). Instance aplikasi hanya memiliki alamat IP internal.
  • Setiap instance aplikasi telah mengaktifkan flag 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 dari aturan penerusan yang mengarah ke VM. Flag can-ip-forward mengubah perilaku ini sehingga VM dapat mengirimkan paket dengan alamat IP sumber apa pun.
  • Rute statis kustom 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 kustom 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 lainnya, lihat Load balancer TCP/UDP internal sebagai hop berikutnya.

Mengonfigurasi jaringan, region, dan subnet

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

  • Jaringan: Contoh ini memerlukan dua jaringan, masing-masing dengan setidaknya satu subnet. Setiap VM alat 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 merupakan resource zona.

  • 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 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 Subnet baru, masukkan informasi berikut:
      • Name: testing-subnet
      • Region: us-west1
      • Rentang alamat IP: 10.30.1.0/24
      • Klik Done.
  5. Klik Create.

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 Subnet baru, masukkan informasi berikut:
      • Name: production-subnet
      • Region: us-west1
      • Rentang alamat IP: 10.50.1.0/24
      • Klik Done.
  5. Klik Create.

gcloud

  1. Buat jaringan VPC 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 masuk, 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 masuk, 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 mengizinkan konektivitas SSH yang masuk pada port TCP 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 ingin 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 mengizinkan konektivitas SSH yang masuk pada port TCP 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 alat pihak ketiga yang melakukan load balancing. Aturan ini mengizinkan traffic dari sistem health check Google 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.

  • fw-allow-production-health-check: Aturan ingress untuk VM alat pihak ketiga yang melakukan load balancing. Aturan ini mengizinkan traffic dari sistem health check Google 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.

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 memeriksa rentang IP untuk 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 agar VM pengujian dapat menerima paket dari pengujian dan subnet produksi:

    • Name: fw-allow-testing-from-both
    • Jaringan: testing
    • Prioritas: 1000
    • Arah traffic: masuk
    • 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
    • Protokol dan port: Izinkan semua
  3. Klik Create.

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

    • Name: fw-allow-production-from-both
    • Jaringan: production
    • Prioritas: 1000
    • Arah traffic: masuk
    • 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
    • Protokol dan port: Izinkan semua
  5. Klik Create.

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

    • Name: fw-allow-testing-ssh
    • Jaringan: testing
    • Prioritas: 1000
    • Arah 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 ketik: tcp:22
  7. Klik Create.

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

    • Name: fw-allow-production-ssh
    • Jaringan: production
    • Prioritas: 1000
    • Arah 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 ketik: tcp:22
  9. Klik Create.

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

    • Name: fw-allow-health-check
    • Jaringan: testing
    • Prioritas: 1000
    • Arah 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 Create.

  12. Klik Create firewall rule untuk membuat aturan guna mengizinkan health check Google Cloud di lingkungan production:

    • Name: fw-allow-production-health-check
    • Jaringan: production
    • Prioritas: 1000
    • Arah 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 Create.

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. Saat 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 alat 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 check Google Cloud ke VM alat 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 regional terkelola dengan lebih dari satu antarmuka jaringan. Grup instance ini digunakan sebagai appliance 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 sisipkan 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. Template instance harus menyertakan flag --can-ip-forward sehingga instance VM yang dibuat dari template tersebut 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-10 \
        --image-project=debian-cloud \
        --can-ip-forward \
        --metadata=startup-script="$(< config.sh)"
    
  3. Membuat grup instance terkelola untuk peralatan virtual pihak ketiga. Perintah ini membuat grup instance terkelola regional, yang kemudian dapat diskalakan secara otomatis, dalam 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 200 HTTP (OK). Untuk mengetahui informasi selengkapnya, baca bagian health check pada ringkasan Load Balancer Jaringan passthrough internal.

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

  • Aturan penerusan: Meskipun aturan penerusan contoh ini menentukan TCP port 80, jika load balancer adalah next hop untuk suatu rute, traffic di port TCP atau UDP mana 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 Anda

  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 Hubung publik atau internal, pilih Internal lalu klik Berikutnya.
  6. Klik Konfigurasikan.

Membuat load balancer pertama

  1. Tetapkan Name ke ilb1.
  2. Setel Region ke us-west1.
  3. Setel 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 dan klik Done.
    2. Untuk Health check, pilih Buat health check lain, masukkan informasi berikut, lalu klik Simpan dan lanjutkan:
      • Name: hc-http-80
      • Protokol: HTTP
      • Port: 80
      • Protokol proxy: NONE
      • Request path: / Perhatikan bahwa saat Anda menggunakan Konsol Google Cloud untuk membuat load balancer, health check akan bersifat global. Jika Anda ingin membuat health check regional, gunakan gcloud atau API.
    3. Untuk Afinitas sesi, pilih IP Klien.
    4. Pastikan ada tanda centang biru di samping Konfigurasi Backend sebelum melanjutkan. Tinjau langkah ini jika belum.
  5. Klik Frontend configuration. Di bagian New Frontend IP and port, lakukan perubahan berikut:
    1. Name: fr-ilb1
    2. Subjaringan: testing-subnet
    3. Dari Internal IP, pilih Reserve a static internal IP address, masukkan informasi berikut, lalu klik Reserve:
      • Name: ip-ilb
      • Alamat IP statis: Biarkan saya pilih
      • Alamat IP kustom: 10.30.1.99
    4. Ports: Pilih Single, lalu masukkan 80 untuk Port number. Perlu diingat bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer adalah hop berikutnya dari sebuah rute.
    5. Pastikan ada tanda centang biru di samping Konfigurasi Frontend sebelum melanjutkan. Tinjau langkah ini jika belum.
  6. Klik Review and finalize. Periksa kembali setelan Anda.
  7. Klik Create.

Memulai konfigurasi Anda

  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 Hubung publik atau internal, pilih Internal lalu klik Berikutnya.
  6. Klik Konfigurasikan.

Membuat load balancer kedua

  1. Tetapkan Name ke ilb2.
  2. Setel Region ke us-west1.
  3. Setel 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 dan klik Done.
    2. Untuk Health check, pilih hc-http-80.
    3. Untuk Afinitas sesi, pilih IP Klien.
    4. Pastikan ada tanda centang biru di samping Konfigurasi Backend sebelum melanjutkan. Tinjau langkah ini jika belum.
  5. Klik Frontend configuration. Di bagian New Frontend IP and port, lakukan perubahan berikut:
    1. Name: fr-ilb2
    2. Subjaringan: production-subnet
    3. Dari Internal IP, pilih Reserve a static internal IP address, masukkan informasi berikut, lalu klik Reserve:
      • Name: ip-ilb2
      • Alamat IP statis: Biarkan saya pilih
      • Alamat IP kustom: 10.50.1.99
    4. Ports: Pilih Single, lalu masukkan 80 untuk Port number. Perlu diingat bahwa pilihan protokol dan port untuk load balancer tidak membatasi protokol dan port yang digunakan saat load balancer adalah hop berikutnya dari sebuah rute.
    5. Pastikan ada tanda centang biru di samping Konfigurasi Frontend sebelum melanjutkan. Tinjau langkah ini jika belum.
  6. Klik Review and finalize. Periksa kembali setelan Anda.
  7. Klik Create.

  8. Mengonfigurasi resource load balancer di jaringan VPC production.

gcloud

  1. Buat health check HTTP baru untuk menguji konektivitas TCP ke VM di 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 peralatan 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. Membuat aturan penerusan internal dan menghubungkannya ke layanan backend untuk menyelesaikan konfigurasi load balancer. Perlu diingat bahwa protokol (TCP) dan port (80) load balancer tidak membatasi port dan protokol yang diteruskan ke backend instance (peralatan virtual pihak ketiga) saat load balancer digunakan sebagai hop rute berikutnya.

    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 hop berikutnya

Buat dua rute statis kustom yang ditampilkan next-hop-ilb.

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 Rentang IP tujuan, masukkan 10.50.1.0/24.

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

  7. Untuk Next hop rute, pilih Define 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 Create.

Membuat rute kedua

  1. Klik Create route.
  2. Untuk Name 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 Define 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 Create.

gcloud

Membuat rute lanjutan dengan hop berikutnya 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. Jika Anda menentukan alamat IP, alamat IP ini dapat dipelajari di semua pembanding tanpa harus mengekspor rute kustom. Dalam contoh, rute pertama menggunakan alamat IP 10.30.1.99, sedangkan rute kedua menggunakan nama aturan penerusan fr-ilb12.

Secara opsional, Anda dapat menentukan satu atau beberapa tag instance pada rute. Rute ini dapat berlaku untuk VM tertentu jika Anda menentukan tag jaringan pada rute. Jika Anda tidak menentukan tag jaringan apa pun, rute tersebut 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) 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-10 \
        --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 dalam 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-10 \
        --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. Memverifikasi 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. Menguji konektivitas dari VM testing.

    gcloud compute ssh testing-vm --zone=us-west1-a
    
    curl http://10.50.1.99
    
    exit
    
  3. Menguji 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 paket tersebut berasal. Tindakan ini disebut hashing simetris.

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

Untuk mengetahui informasi selengkapnya, lihat Hashing simetris.

Menghapus dan membuat ulang aturan penerusan

Konsol

Menghapus aturan penerusan dan membuat yang 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. Tahan kursor ke aturan penerusan Anda, lalu klik Delete untuk menghapusnya.

  5. Klik Add frontend IP and port.

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

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

  8. Klik Create.

gcloud

  1. Menghapus 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
    

Ketika SNAT tidak diperlukan

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

  • Aturan penerusan untuk Load Balancer Jaringan passthrough internal dibuat pada atau setelah 22 Juni 2021.
  • Rute statis kustom yang merujuk ke 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 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 merujuk ke layanan backend yang sama. Aturan penerusan pengganti menggunakan alamat IP yang berbeda.

  • Buat rute statis kustom pengganti yang merujuk ke aturan penerusan baru. Pastikan rute pengganti ini memiliki prioritas yang lebih tinggi daripada rute yang ada.

  • Menghapus rute yang ada dengan prioritas lebih rendah (merujuk aturan penerusan sebelumnya), lalu menghapus aturan penerusan sebelumnya.

Pembersihan

  1. Di 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. Pada 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, health check ini 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 beberapa template instance.

    gcloud compute instance-templates delete third-party-template
    
    gcloud compute instance-templates delete third-party-template-multinic
    
  8. Menghapus 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 selanjutnya