Panduan ini memberikan petunjuk untuk membuat Load Balancer Jaringan passthrough eksternal berbasis layanan backend yang menyeimbangkan beban traffic TCP, UDP, ESP, GRE, ICMP, dan ICMPv6. Anda dapat menggunakan konfigurasi tersebut untuk melakukan load balancing traffic yang menggunakan protokol IP selain TCP atau UDP. Load Balancer Jaringan passthrough eksternal berbasis kumpulan target tidak mendukung kemampuan ini.
Untuk mengonfigurasi Load Balancer Jaringan passthrough eksternal untuk protokol IP selain TCP atau UDP, Anda
membuat aturan penerusan dengan protokol yang ditetapkan ke
L3_DEFAULT
. Aturan penerusan ini mengarah ke layanan backend dengan protokol yang ditetapkan ke
UNSPECIFIED
.
Dalam contoh ini, kita menggunakan dua Network Load Balancer passthrough eksternal untuk mendistribusikan traffic di seluruh VM backend dalam dua grup instance terkelola di zona di region us-central1
.
Kedua load balancer menerima traffic di alamat IP eksternal yang sama.
Satu load balancer memiliki aturan penerusan dengan protokol TCP
dan port 80, dan
load balancer lainnya memiliki aturan penerusan dengan protokol L3_DEFAULT
. Traffic TCP yang tiba di alamat IP pada port 80 ditangani oleh aturan penerusan TCP
. Semua traffic lain yang tidak cocok dengan aturan penerusan khusus TCP ditangani oleh aturan penerusan L3_DEFAULT
.
Skenario ini mendistribusikan traffic di seluruh instance yang responsif. Untuk mendukung hal ini, Anda membuat health check TCP untuk membantu memastikan bahwa traffic hanya dikirim ke instance yang responsif.
Load Balancer Jaringan passthrough eksternal adalah load balancer regional. Semua komponen load balancer harus berada di region yang sama.
Sebelum memulai
Instal Google Cloud CLI. Untuk mengetahui ringkasan lengkap alat ini, lihat ringkasan gcloud CLI. Anda dapat menemukan perintah terkait load balancing di referensi API dan gcloud.
Jika Anda belum pernah menjalankan gcloud CLI sebelumnya, jalankan
perintah gcloud init
terlebih dahulu untuk melakukan autentikasi.
Panduan ini mengasumsikan bahwa Anda sudah memahami bash.
Menyiapkan jaringan dan subnet
Contoh di halaman ini menggunakan jaringan VPC mode kustom bernama lb-network
. Jika hanya ingin menangani traffic IPv4, Anda dapat menggunakan jaringan VPC mode otomatis.
Namun, traffic IPv6 memerlukan subnet
mode kustom.
Traffic IPv6 juga memerlukan subnet stack ganda (stack-type
ditetapkan ke
IPV4_IPV6
). Saat membuat subnet stack ganda di jaringan VPC mode kustom, Anda memilih jenis akses IPv6 untuk subnet. Untuk contoh ini, kita menetapkan parameter ipv6-access-type
subnet ke
EXTERNAL
. Artinya, VM baru di subnet ini dapat diberi alamat IPv4 eksternal dan alamat IPv6 eksternal. Aturan penerusan juga dapat
ditetapkan alamat IPv4 eksternal dan alamat IPv6 eksternal.
Komponen backend dan load balancer yang digunakan untuk contoh ini berada di region dan subnet berikut:
- Region:
us-central1
- Subnet:
lb-subnet
, dengan rentang alamat IPv4 utama 10.1.2.0/24. Meskipun Anda memilih rentang alamat IPv4 yang dikonfigurasi di subnet, rentang alamat IPv6 ditetapkan secara otomatis. Google menyediakan blok CIDR IPv6 berukuran tetap (/64).
Untuk membuat contoh jaringan dan subnet, ikuti langkah-langkah berikut.
Konsol
Untuk mendukung traffic IPv4 dan IPv6, ikuti langkah-langkah berikut:
Di Google Cloud konsol, buka halaman VPC networks.
Klik Create VPC network.
Masukkan Nama
lb-network
.Di bagian Subnet:
- Setel Subnet creation mode ke Custom.
- Di bagian New subnet, konfigurasi kolom berikut, lalu klik Done:
- Nama:
lb-subnet
- Region:
us-central1
- IP stack type: IPv4 and IPv6 (dual-stack)
- Rentang IPv4:
10.1.2.0/24
Meskipun Anda dapat mengonfigurasi rentang alamat IPv4 untuk subnet, Anda tidak dapat memilih rentang alamat IPv6 untuk subnet. Google menyediakan blok CIDR IPv6 berukuran tetap (/64). - Jenis akses IPv6: Eksternal
- Nama:
Klik Buat.
Untuk mendukung traffic IPv4 saja, ikuti langkah-langkah berikut:
Di Google Cloud konsol, buka halaman VPC networks.
Klik Create VPC network.
Masukkan Nama
lb-network
.Di bagian Subnet:
- Setel Subnet creation mode ke Custom.
- Di bagian New subnet, konfigurasi kolom berikut, lalu klik Done:
- Nama:
lb-subnet
- Region:
us-central1
- Jenis stack IP: IPv4 (single-stack)
- Rentang IPv4:
10.1.2.0/24
- Nama:
Klik Buat.
gcloud
Buat jaringan VPC mode kustom:
gcloud compute networks create lb-network \ --subnet-mode=custom
Dalam jaringan
lb-network
, buat subnet untuk backend di regionus-central1
.Untuk traffic IPv4 dan IPv6, gunakan perintah berikut untuk membuat subnet stack ganda:
gcloud compute networks subnets create lb-subnet \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=EXTERNAL \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1
Untuk traffic IPv4 saja, gunakan perintah berikut:
gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-central1
Buat grup instance terkelola menurut zona
Untuk skenario load balancing ini, Anda akan membuat dua grup instance terkelola zonal Compute Engine dan menginstal server web Apache di setiap instance.
Untuk menangani traffic IPv4 dan IPv6, konfigurasi VM backend agar menjadi
stack ganda. Tetapkan stack-type
VM ke IPV4_IPV6
. VM juga mewarisi setelan
ipv6-access-type
(dalam contoh ini, EXTERNAL
) dari subnet. Untuk
mengetahui informasi selengkapnya tentang persyaratan IPv6, lihat
Ringkasan Load Balancer Jaringan passthrough eksternal: Aturan
penerusan.
Untuk menggunakan VM yang ada sebagai backend, perbarui VM agar menjadi stack ganda menggunakan
perintah gcloud compute instances network-interfaces update
.
Instance yang berpartisipasi sebagai VM backend untuk Load Balancer Jaringan passthrough eksternal harus menjalankan lingkungan tamu Linux, lingkungan tamu Windows, atau proses lain yang memberikan kemampuan yang setara.
Buat grup instance untuk traffic TCP di port 80
Konsol
Membuat template instance. Di konsol Google Cloud , buka halaman Instance templates.
Buka halaman Template instance
- Klik Create instance template.
- Untuk Name, masukkan
ig-us-template-tcp-80
. - Pastikan Boot disk disetel ke image Debian, seperti
Debian GNU/Linux 12 (bookworm). Petunjuk ini menggunakan perintah yang hanya tersedia di Debian, seperti
apt-get
. - Luaskan bagian Advanced options.
Luaskan bagian Management, lalu salin skrip berikut ke kolom Startup script.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
Luaskan bagian Networking, lalu tentukan hal berikut:
- Untuk Network tags, tambahkan
network-lb-tcp-80
. - Untuk Network interfaces, klik antarmuka default dan
konfigurasi kolom berikut:
- Jaringan:
lb-network
- Subnetwork:
lb-subnet
- Jaringan:
- Untuk Network tags, tambahkan
Klik Buat.
Membuat grup instance terkelola. Buka halaman Instance groups di konsol Google Cloud .
- Klik Create instance group.
- Pilih New managed instance group (stateless). Untuk mengetahui informasi selengkapnya, lihat MIG stateless atau stateful.
- Untuk Name, masukkan
ig-us-tcp-80
. - Di bagian Lokasi, pilih Zona tunggal.
- Untuk Region, pilih
us-central1
. - Untuk Zone, pilih
us-central1-a
. - Di bagian Instance template, pilih
ig-us-template-tcp-80
. Tentukan jumlah instance yang ingin Anda buat dalam grup.
Untuk contoh ini, tentukan opsi berikut di bagian Penskalaan otomatis:
- Untuk Autoscaling mode, pilih
Off:do not autoscale
. - Untuk Maximum number of instances, masukkan
2
.
- Untuk Autoscaling mode, pilih
Klik Buat.
gcloud
Petunjuk gcloud
dalam panduan ini mengasumsikan bahwa Anda menggunakan
Cloud Shell atau lingkungan lain dengan bash yang terinstal.
Buat template instance VM dengan server HTTP menggunakan perintah
gcloud compute instance-templates create
.Untuk menangani traffic IPv4 dan IPv6, gunakan perintah berikut.
gcloud compute instance-templates create ig-us-template-tcp-80 \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPV4_IPV6 \ --tags=network-lb-tcp-80 \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Atau, jika Anda ingin menangani traffic IPv4 saja, gunakan perintah berikut.
gcloud compute instance-templates create ig-us-template-tcp-80 \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --tags=network-lb-tcp-80 \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ ://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
Buat grup instance terkelola di zona dengan perintah
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create ig-us-tcp-80 \ --zone us-central1-a \ --size 2 \ --template ig-us-template-tcp-80
Buat grup instance untuk traffic TCP di port 8080, UDP, ESP, dan ICMP
Konsol
Membuat template instance. Di konsol Google Cloud , buka halaman Instance templates.
Buka halaman Template instance
- Klik Create instance template.
- Untuk Name, masukkan
ig-us-template-l3-default
. - Pastikan Boot disk disetel ke image Debian, seperti
Debian GNU/Linux 12 (bookworm). Petunjuk ini menggunakan perintah yang hanya tersedia di Debian, seperti
apt-get
. - Luaskan bagian Advanced options.
Luaskan bagian Management, lalu salin skrip berikut ke kolom Startup script. Skrip startup juga mengonfigurasi server Apache untuk memproses di port 8080, bukan port 80.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf systemctl restart apache2
Luaskan bagian Networking, lalu tentukan hal berikut:
- Untuk Network tags, tambahkan
network-lb-l3-default
. - Untuk Network interfaces, klik antarmuka default dan
konfigurasi kolom berikut:
- Jaringan:
lb-network
- Subnetwork:
lb-subnet
- Jaringan:
- Untuk Network tags, tambahkan
Klik Buat.
Membuat grup instance terkelola. Buka halaman Instance groups di konsol Google Cloud .
- Klik Create instance group.
- Pilih New managed instance group (stateless). Untuk mengetahui informasi selengkapnya, lihat MIG stateless atau stateful.
- Untuk Name, masukkan
ig-us-l3-default
. - Di bagian Lokasi, pilih Zona tunggal.
- Untuk Region, pilih
us-central1
. - Untuk Zone, pilih
us-central1-c
. - Di bagian Instance template, pilih
ig-us-template-l3-default
. Tentukan jumlah instance yang ingin Anda buat dalam grup.
Untuk contoh ini, tentukan opsi berikut di bagian Penskalaan otomatis:
- Untuk Autoscaling mode, pilih
Off:do not autoscale
. - Untuk Maximum number of instances, masukkan
2
.
- Untuk Autoscaling mode, pilih
Klik Buat.
gcloud
Petunjuk gcloud
dalam panduan ini mengasumsikan bahwa Anda menggunakan
Cloud Shell atau lingkungan lain dengan bash yang terinstal.
Buat template instance VM dengan server HTTP menggunakan perintah
gcloud compute instance-templates create
.Skrip startup juga mengonfigurasi server Apache untuk memproses port 8080, bukan port 80.
Untuk menangani traffic IPv4 dan IPv6, gunakan perintah berikut.
gcloud compute instance-templates create ig-us-template-l3-default \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPV4_IPV6 \ --tags=network-lb-l3-default \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'
Atau, jika Anda hanya ingin menangani traffic IPv4, gunakan perintah berikut.
gcloud compute instance-templates create ig-us-template-l3-default \ --region=us-central1 \ --network=lb-network \ --subnet=lb-subnet \ --tags=network-lb-l3-default \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf systemctl restart apache2'
Buat grup instance terkelola di zona dengan perintah
gcloud compute instance-groups managed create
.gcloud compute instance-groups managed create ig-us-l3-default \ --zone us-central1-c \ --size 2 \ --template ig-us-template-l3-default
Mengonfigurasi aturan firewall
Buat aturan firewall berikut:
- Aturan firewall yang mengizinkan traffic TCP eksternal untuk menjangkau instance backend dalam grup instance
ig-us-tcp-80
di port 80 (menggunakan tag targetnetwork-lb-tcp-80
). Buat aturan firewall terpisah untuk mengizinkan traffic IPv4 dan IPv6. - Aturan firewall yang mengizinkan traffic eksternal lainnya (TCP di port
8080, UDP, ESP, dan ICMP) untuk menjangkau instance backend dalam grup instance
ig-us-l3-default
(menggunakan tag targetnetwork-lb-l3-default
). Buat aturan firewall terpisah untuk mengizinkan traffic IPv4 dan IPv6.
Contoh ini membuat aturan firewall yang mengizinkan traffic dari rentang sumber semua untuk menjangkau instance backend Anda di port yang dikonfigurasi. Jika Anda ingin membuat aturan firewall terpisah khusus untuk pemeriksaan health check, gunakan rentang alamat IP sumber yang didokumentasikan dalam Ringkasan health check: Rentang IP pemeriksaan dan aturan firewall.
Konsol
Di konsol Google Cloud , buka halaman Firewall policies.
Untuk mengizinkan traffic TCP IPv4 mencapai backend dalam grup instance
ig-us-tcp-80
, buat aturan firewall berikut.- Klik Create firewall rule.
- Masukkan Nama
allow-network-lb-tcp-80-ipv4
. - Pilih Network tempat aturan firewall diterapkan (Default).
- Di bagian Target, pilih Tag target yang ditentukan.
- Di kolom Target tags, masukkan
network-lb-tcp-80
. - Tetapkan Source filter ke IPv4 ranges.
- Tetapkan Source IPv4 ranges ke 0.0.0.0/0, yang mengizinkan traffic dari sumber mana pun. Hal ini memungkinkan traffic eksternal dan pemeriksaan kondisi mencapai instance backend.
- Di bagian Protocols and ports, pilih Specified protocols and ports. Kemudian, pilih kotak centang TCP dan masukkan
80
. - Klik Buat. Mungkin perlu waktu beberapa saat agar Konsol menampilkan aturan firewall baru, atau Anda mungkin harus mengklik Muat Ulang untuk melihat aturan tersebut.
Untuk mengizinkan traffic IPv4 UDP, ESP, dan ICMP mencapai backend di grup instance
ig-us-l3-default
, buat aturan firewall berikut.- Klik Create firewall rule.
- Masukkan Nama
allow-network-lb-l3-default-ipv4
. - Pilih Network tempat aturan firewall diterapkan (Default).
- Di bagian Target, pilih Tag target yang ditentukan.
- Di kolom Target tags, masukkan
network-lb-l3-default
. - Tetapkan Source filter ke IPv4 ranges.
- Tetapkan Source IPv4 ranges ke
0.0.0.0/0
, yang mengizinkan traffic dari sumber mana pun. Hal ini memungkinkan traffic eksternal dan pemeriksaan kondisi mencapai instance backend. - Di bagian Protocols and ports, pilih Specified protocols and ports.
- Centang kotak TCP, lalu masukkan
8080
. - Centang kotak UDP.
- Centang kotak Lainnya dan masukkan
esp, icmp
.
- Centang kotak TCP, lalu masukkan
- Klik Buat. Mungkin perlu waktu beberapa saat agar Konsol menampilkan aturan firewall baru, atau Anda mungkin harus mengklik Muat Ulang untuk melihat aturan tersebut.
Untuk mengizinkan traffic TCP IPv6 mencapai backend dalam grup instance
ig-us-tcp-80
, buat aturan firewall berikut.- Klik Create firewall rule.
- Masukkan Nama
allow-network-lb-tcp-80-ipv6
. - Pilih Network tempat aturan firewall diterapkan (Default).
- Di bagian Target, pilih Tag target yang ditentukan.
- Di kolom Target tags, masukkan
network-lb-tcp-80
. - Tetapkan Source filter ke IPv6 ranges.
- Tetapkan Source IPv6 ranges ke
::/0
, yang mengizinkan traffic dari sumber mana pun. Hal ini memungkinkan traffic eksternal dan pemeriksaan kondisi mencapai instance backend. - Di bagian Protocols and ports, pilih Specified protocols and ports. Centang kotak di samping TCP, lalu masukkan
80
. - Klik Buat. Mungkin perlu waktu beberapa saat agar Konsol menampilkan aturan firewall baru, atau Anda mungkin harus mengklik Muat Ulang untuk melihat aturan tersebut.
Untuk mengizinkan traffic IPv6 UDP, ESP, dan ICMPv6 mencapai backend di grup instance
ig-us-l3-default
, buat aturan firewall berikut. Aturan firewall ini juga memungkinkan pemeriksaan health check TCP menjangkau instance di port 8080.- Klik Create firewall rule.
- Masukkan Nama
allow-network-lb-l3-default-ipv6
. - Pilih Network tempat aturan firewall diterapkan (Default).
- Di bagian Target, pilih Tag target yang ditentukan.
- Di kolom Target tags, masukkan
network-lb-l3-default
. - Tetapkan Source filter ke IPv6 ranges.
- Tetapkan Source IPv6 ranges ke
::/0
, yang mengizinkan traffic dari sumber mana pun. Hal ini memungkinkan traffic eksternal dan pemeriksaan kondisi mencapai instance backend. - Di bagian Protocols and ports, pilih Specified protocols and ports.
- Centang kotak di samping TCP, lalu masukkan
8080
. - Centang kotak di samping UDP.
- Centang kotak di samping Lainnya, lalu masukkan
esp, 58
.
- Centang kotak di samping TCP, lalu masukkan
- Klik Buat. Mungkin perlu waktu beberapa saat agar Konsol menampilkan aturan firewall baru, atau Anda mungkin harus mengklik Muat Ulang untuk melihat aturan tersebut.
gcloud
Untuk mengizinkan traffic TCP IPv4 mencapai backend dalam grup instance
ig-us-tcp-80
, buat aturan firewall berikut.gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv4 \ --network=lb-network \ --target-tags network-lb-tcp-80 \ --allow tcp:80 \ --source-ranges=0.0.0.0/0
Untuk mengizinkan traffic IPv4 UDP, ESP, dan ICMP mencapai backend di grup instance
ig-us-l3-default
, buat aturan firewall berikut. Aturan firewall ini juga memungkinkan pemeriksaan health check TCP menjangkau instance di port 8080.gcloud compute firewall-rules create allow-network-lb-l3-default-ipv4 \ --network=lb-network \ --target-tags network-lb-l3-default \ --allow tcp:8080,udp,esp,icmp \ --source-ranges=0.0.0.0/0
Untuk mengizinkan traffic TCP IPv6 mencapai backend dalam grup instance
ig-us-tcp-80
, buat aturan firewall berikut.gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv6 \ --network=lb-network \ --target-tags network-lb-tcp-80 \ --allow tcp:80 \ --source-ranges=::/0
Untuk mengizinkan traffic IPv6 UDP, ESP, dan ICMPv6 mencapai backend di grup instance
ig-us-l3-default
, buat aturan firewall berikut. Aturan firewall ini juga memungkinkan pemeriksaan health check TCP menjangkau instance di port 8080.gcloud compute firewall-rules create allow-network-lb-l3-default-ipv6 \ --network=lb-network \ --target-tags network-lb-l3-default \ --allow tcp:8080,udp,esp,58 \ --source-ranges=::/0
Mengonfigurasi load balancer
Selanjutnya, siapkan dua load balancer. Konfigurasi kedua load balancer untuk menggunakan alamat IP eksternal yang sama untuk aturan penerusan, dengan satu load balancer menangani traffic TCP di port 80, dan load balancer lainnya menangani traffic TCP, UDP, ESP, dan ICMP di port 8080.
Saat Anda mengonfigurasi load balancer, instance VM backend Anda akan menerima paket yang ditujukan untuk alamat IP eksternal statis yang Anda konfigurasi. Jika Anda menggunakan image yang disediakan oleh
Compute Engine,
instance Anda akan otomatis dikonfigurasi untuk menangani alamat IP ini. Jika
Anda menggunakan image lain, Anda harus mengonfigurasi alamat ini sebagai
alias di eth0
atau sebagai loopback di setiap instance.
Untuk menyiapkan dua load balancer, gunakan petunjuk berikut.
Konsol
Mulai konfigurasi
Di konsol Google Cloud , buka halaman Load balancing.
- Klik Create load balancer.
- Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL), lalu klik Next.
- Untuk Proxy or passthrough, pilih Passthrough load balancer, lalu klik Next.
- Untuk Public facing or internal, pilih Public facing (external), lalu klik Next.
- Klik Configure.
Konfigurasi dasar
- Di kolom Name, masukkan nama
backend-service-tcp-80
untuk load balancer baru. - Dalam daftar Region, pilih
us-central1
.
Konfigurasi backend
- Klik Backend configuration.
- Di halaman Backend configuration, lakukan perubahan berikut:
- Di bagian New Backend, pilih IP stack type. Jika Anda membuat backend stack ganda untuk menangani traffic IPv4 dan IPv6, pilih IPv4 and IPv6 (dual-stack). Untuk menangani traffic IPv4 saja, pilih IPv4 (single-stack).
- Dalam daftar Instance group, pilih
ig-us-tcp-80
, lalu klik Done. - Di daftar Health check, klik Create a health check,
lalu masukkan informasi berikut:
- Nama:
tcp-health-check-80
- Protokol:
TCP
- Port:
80
- Nama:
- Klik Simpan.
- Pastikan terdapat tanda centang biru di samping Backend configuration sebelum melanjutkan.
Konfigurasi frontend
- Klik Frontend configuration.
- Di kolom Name, masukkan
forwarding-rule-tcp-80
. - Untuk menangani traffic IPv4, ikuti langkah-langkah berikut:
- Untuk IP version, pilih IPv4.
- Di bagian Internal IP purpose, dalam daftar IP address,
pilih Create IP address.
- Di kolom Name, masukkan
network-lb-ipv4
. - Klik Reserve.
- Di kolom Name, masukkan
- Untuk Ports, pilih Single. Di kolom Port number, masukkan
80
. - Klik Selesai.
Untuk menangani traffic IPv6, ikuti langkah-langkah berikut:
- Untuk IP version, pilih IPv6.
- Untuk Subnetwork, pilih lb-subnet.
- Dalam daftar Rentang IPv6, pilih Buat alamat IP.
- Di kolom Name, masukkan
network-lb-ipv6
. - Klik Reserve.
- Di kolom Name, masukkan
- Untuk Ports, pilih Single. Di kolom Port number, masukkan
80
. - Klik Selesai.
Lingkaran biru dengan tanda centang di sebelah kiri Konfigurasi frontend menunjukkan penyiapan berhasil.
Meninjau konfigurasi
- Klik Review and finalize.
- Tinjau setelan konfigurasi load balancer Anda.
- Opsional: Klik Equivalent code untuk melihat permintaan REST API yang akan digunakan untuk membuat load balancer.
Klik Buat.
Di halaman load balancing, di bagian kolom Backend untuk load balancer baru, Anda akan melihat tanda centang hijau yang menunjukkan bahwa load balancer baru tersebut responsif.
Buat load balancer kedua
Mulai konfigurasi
Di konsol Google Cloud , buka halaman Load balancing.
- Klik Create load balancer.
- Untuk Type of load balancer, pilih Network Load Balancer (TCP/UDP/SSL), lalu klik Next.
- Untuk Proxy or passthrough, pilih Passthrough load balancer, lalu klik Next.
- Untuk Public facing or internal, pilih Public facing (external), lalu klik Next.
- Klik Configure.
Konfigurasi dasar
- Di kolom Name, masukkan nama
backend-service-l3-default
untuk load balancer baru. - Dalam daftar Region, pilih
us-central1
.
Konfigurasi backend
- Klik Backend configuration.
- Di halaman Backend configuration, lakukan perubahan berikut:
- Di bagian New Backend, pilih IP stack type. Jika Anda membuat backend stack ganda untuk menangani traffic IPv4 dan IPv6, pilih IPv4 and IPv6 (dual-stack). Untuk menangani traffic IPv4 saja, pilih IPv4 (single-stack).
- Dalam daftar Instance group, pilih
ig-us-l3-default
, lalu klik Done. - Dalam daftar Protocols, pilih L3 (Multiple protocols).
- Di daftar Health check, klik Create a health check,
lalu masukkan informasi berikut:
- Nama:
tcp-health-check-8080
- Protokol:
TCP
- Port:
8080
- Nama:
- Klik Simpan.
- Pastikan terdapat tanda centang biru di samping Backend configuration sebelum melanjutkan.
Konfigurasi frontend
- Klik Frontend configuration.
- Di kolom Name, masukkan
forwarding-rule-l3-default
. - Untuk menangani traffic IPv4, ikuti langkah-langkah berikut:
- Untuk IP version, pilih IPv4.
- Di bagian Internal IP purpose, dalam daftar IP address,
pilih Create IP address.
- Di kolom Name, masukkan
network-lb-ipv4
. - Klik Reserve.
- Di kolom Name, masukkan
- Dalam daftar Protocol, pilih L3 (Multiple protocols).
- Untuk Port, pilih Semua.
- Klik Selesai.
Untuk menangani traffic IPv6, ikuti langkah-langkah berikut:
- Untuk IP version, pilih IPv6.
- Untuk Subnetwork, pilih lb-subnet.
- Dalam daftar Rentang IPv6, pilih Buat alamat IP.
- Di kolom Name, masukkan
network-lb-ipv6
. - Klik Reserve.
- Di kolom Name, masukkan
- Di kolom Protocol, pilih L3 (Multiple protocols).
- Untuk Port, pilih Semua.
- Klik Selesai.
Lingkaran biru dengan tanda centang di sebelah kiri Konfigurasi frontend menunjukkan penyiapan berhasil.
Meninjau konfigurasi
- Klik Review and finalize.
- Tinjau setelan konfigurasi load balancer Anda.
- Opsional: Klik Equivalent code untuk melihat permintaan REST API yang akan digunakan untuk membuat load balancer.
Klik Buat.
Di halaman load balancing, di bagian kolom Backend untuk load balancer baru, Anda akan melihat tanda centang hijau yang menunjukkan bahwa load balancer baru tersebut responsif.
gcloud
Lakukan reservasi alamat IP eksternal statis.
Untuk traffic IPv4: Buat alamat IP eksternal statis untuk load balancer Anda.
gcloud compute addresses create network-lb-ipv4 \ --region us-central1
Untuk traffic IPv6: Buat rentang alamat IPv6 eksternal statis untuk load balancer Anda. Subnet yang digunakan harus berupa subnet dual-stack dengan rentang subnet IPv6 eksternal.
gcloud compute addresses create network-lb-ipv6 \ --region us-central1 \ --subnet lb-subnet \ --ip-version IPV6 \ --endpoint-type NETLB
Buat health check TCP untuk port 80. Health check ini digunakan untuk memverifikasi kondisi backend dalam grup instance
ig-us-tcp-80
.gcloud compute health-checks create tcp tcp-health-check-80 \ --region us-central1 \ --port 80
Buat health check TCP untuk port 8080. Health check ini digunakan untuk memverifikasi kondisi backend dalam grup instance
ig-us-l3-default
.gcloud compute health-checks create tcp tcp-health-check-8080 \ --region us-central1 \ --port 8080
Buat load balancer pertama untuk traffic TCP di port 80.
Buat layanan backend dengan protokol yang ditetapkan ke
TCP
.gcloud compute backend-services create backend-service-tcp-80 \ --protocol TCP \ --health-checks tcp-health-check-80 \ --health-checks-region us-central1 \ --region us-central1
Tambahkan grup instance backend ke layanan backend.
gcloud compute backend-services add-backend backend-service-tcp-80 \ --instance-group ig-us-tcp-80 \ --instance-group-zone us-central1-a \ --region us-central1
Untuk traffic IPv4: Buat aturan penerusan untuk merutekan traffic TCP masuk pada port 80 ke layanan backend.
TCP
adalah protokol aturan penerusan default dan tidak perlu ditetapkan secara eksplisit.Gunakan alamat IP yang dicadangkan di langkah 1 sebagai alamat IP eksternal statis load balancer.
gcloud compute forwarding-rules create forwarding-rule-tcp-80 \ --load-balancing-scheme external \ --region us-central1 \ --ports 80 \ --address network-lb-ipv4 \ --backend-service backend-service-tcp-80
Untuk traffic IPv6: Buat aturan penerusan untuk merutekan traffic TCP masuk pada port 80 ke layanan backend.
TCP
adalah protokol aturan penerusan default dan tidak perlu ditetapkan secara eksplisit.Gunakan rentang alamat IPv6 yang dicadangkan pada langkah 1 sebagai alamat IP eksternal statis load balancer. Subnet yang digunakan harus berupa subnet stack ganda dengan rentang subnet IPv6 eksternal.
gcloud compute forwarding-rules create forwarding-rule-tcp-80 \ --load-balancing-scheme external \ --region us-central1 \ --network-tier PREMIUM \ --ip-version IPV6 \ --subnet lb-subnet \ --address network-lb-ipv6 \ --ports 80 \ --backend-service backend-service-tcp-80
Buat load balancer kedua untuk traffic TCP di port 8080, UDP, ESP, dan ICMP.
Buat layanan backend dengan protokol yang ditetapkan ke
UNSPECIFIED
.gcloud compute backend-services create backend-service-l3-default \ --protocol UNSPECIFIED \ --health-checks tcp-health-check-8080 \ --health-checks-region us-central1 \ --region us-central1
Tambahkan grup instance backend ke layanan backend.
gcloud compute backend-services add-backend backend-service-l3-default \ --instance-group ig-us-l3-default \ --instance-group-zone us-central1-c \ --region us-central1
Untuk traffic IPv4: Buat aturan penerusan dengan protokol yang ditetapkan ke
L3_DEFAULT
untuk menangani semua traffic protokol IP yang didukung (TCP di port 8080, UDP, ESP, dan ICMP). Semua port harus dikonfigurasi dengan aturan penerusanL3_DEFAULT
.Gunakan alamat IPv4 eksternal yang sama dengan yang Anda gunakan untuk load balancer sebelumnya.
gcloud compute forwarding-rules create forwarding-rule-l3-default \ --load-balancing-scheme external \ --region us-central1 \ --ports all \ --ip-protocol L3_DEFAULT \ --address network-lb-ipv4 \ --backend-service backend-service-l3-default
Untuk traffic IPv6: Buat aturan penerusan dengan protokol yang ditetapkan ke
L3_DEFAULT
untuk menangani semua traffic protokol IP yang didukung (TCP di port 8080, UDP, ESP, dan ICMP). Semua port harus dikonfigurasi dengan aturan penerusanL3_DEFAULT
.Gunakan rentang alamat IPv6 yang dicadangkan pada langkah 1 sebagai alamat IP eksternal statis load balancer. Subnet yang digunakan harus berupa subnet stack ganda dengan rentang subnet IPv6 eksternal.
gcloud compute forwarding-rules create forwarding-rule-l3-default \ --load-balancing-scheme external \ --region us-central1 \ --network-tier PREMIUM \ --ip-version IPV6 \ --subnet lb-subnet \ --address network-lb-ipv6 \ --ports all \ --ip-protocol L3_DEFAULT \ --backend-service backend-service-l3-default
Menguji load balancer
Setelah layanan load balancing dikonfigurasi, Anda dapat mulai mengirimkan traffic ke alamat IP eksternal load balancer dan melihat traffic didistribusikan ke instance backend.
Cari alamat IP eksternal load balancer
Konsol
Di konsol Google Cloud , buka halaman load balancing Load balancing components.
Pada tab Forwarding Rules, temukan aturan penerusan yang digunakan oleh load balancer.
Di kolom Alamat IP, catat alamat IP eksternal yang tercantum untuk setiap aturan penerusan IPv4 dan IPv6.
gcloud: IPv4
Masukkan perintah berikut untuk melihat alamat IP eksternal dari aturan penerusan yang digunakan oleh load balancer.
gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \ --region us-central1
Contoh ini menggunakan alamat IP yang sama untuk kedua aturan penerusan IPv4,
sehingga penggunaan forwarding-rule-l3-default
juga berfungsi.
gcloud: IPv6
Masukkan perintah berikut untuk melihat alamat IPv6 eksternal dari aturan penerusan forwarding-rule-tcp-80
yang digunakan oleh load balancer.
gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \ --region us-central1
Contoh ini menggunakan alamat IP yang sama untuk kedua aturan penerusan IPv6,
sehingga penggunaan forwarding-rule-l3-default
juga berfungsi.
Mengirim traffic ke load balancer
Prosedur ini mengirimkan traffic eksternal ke load balancer. Jalankan pengujian berikut untuk membantu memastikan bahwa traffic TCP di port 80 di-load balance oleh grup instance ig-us-tcp-80
, sementara semua traffic lainnya (TCP di port 8080, UDP, ESP, dan ICMP) ditangani oleh grup instance ig-us-l3-default
.
Memverifikasi perilaku dengan permintaan TCP di port 80
Buat permintaan web (melalui TCP di port 80) ke load balancer menggunakan
curl
untuk menghubungi alamat IP-nya.Dari klien dengan konektivitas IPv4, jalankan perintah berikut:
while true; do curl -m1 IP_ADDRESS; done
Dari klien dengan konektivitas IPv6, jalankan perintah berikut:
while true; do curl -m1 http://IPV6_ADDRESS; done
Misalnya, jika alamat IPv6 yang ditetapkan adalah [2001:db8:1:1:1:1:1:1/96], perintahnya mirip dengan berikut ini:
while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]; done
Perhatikan teks yang ditampilkan oleh perintah
curl
. Nama VM backend yang membuat respons ditampilkan dalam teks tersebut—misalnya,Page served from: VM_NAME
. Respons hanya berasal dari instance dalam grup instanceig-us-tcp-80
.Jika respons di awal tidak berhasil, Anda mungkin perlu menunggu sekitar 30 detik agar konfigurasi dimuat sepenuhnya dan instance Anda dianggap responsif sebelum mencoba lagi.
Memverifikasi perilaku dengan permintaan TCP di port 8080
Buat permintaan web (melalui TCP di port 8080) ke load balancer menggunakan curl
untuk menghubungi alamat IP-nya.
Dari klien dengan konektivitas IPv4, jalankan perintah berikut:
while true; do curl -m1 IPV4_ADDRESS:8080; done
Dari klien dengan konektivitas IPv6, jalankan perintah berikut:
while true; do curl -m1 http://IPV6_ADDRESS; done
Misalnya, jika alamat IPv6 yang ditetapkan adalah [2001:db8:1:1:1:1:1:1/96], perintahnya mirip dengan berikut ini:
while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:8080; done
Perhatikan teks yang ditampilkan oleh perintah curl
. Respons hanya berasal dari instance dalam grup instance ig-us-l3-default
.
Hal ini menunjukkan bahwa setiap traffic yang dikirim ke alamat IP load balancer di port
8080 hanya ditangani oleh backend di grup instance
ig-us-l3-default
.
Memverifikasi perilaku dengan permintaan ICMP
Untuk memverifikasi perilaku dengan traffic ICMP, Anda merekam output dari perintah tcpdump
untuk mengonfirmasi bahwa hanya VM backend dalam grup instance ig-us-l3-default
yang menangani permintaan ICMP yang dikirim ke load balancer.
Gunakan SSH untuk terhubung ke VM backend.
Di konsol Google Cloud , buka halaman VM instances.
Dalam daftar instance virtual machine (VM), klik SSH di baris instance yang ingin Anda hubungkan.
Jalankan perintah berikut untuk menggunakan
tcpdump
guna mulai memproses traffic ICMP.sudo tcpdump icmp -w ~/icmpcapture.pcap -s0 -c 10000 tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
Biarkan jendela SSH tetap terbuka.
Ulangi langkah 1 dan 2 untuk keempat VM backend.
Buat permintaan ICMP ke load balancer.
Untuk menguji respons IPv4, gunakan
ping
untuk menghubungi alamat IPv4 load balancer.ping IPV4_ADDRESS
Untuk menguji respons IPv6, gunakan
ping6
untuk menghubungi alamat IPv6 load balancer.ping6 IPV6_ADDRESS
Misalnya, jika alamat IPv6 yang ditetapkan adalah [2001:db8:1:1:1:1:1:1/96], perintahnya mirip dengan berikut ini:
ping6 2001:db8:1:1:1:1:1:1
Kembali ke jendela SSH yang terbuka di setiap VM dan hentikan perintah
tcpdump
capture command. Anda dapat menggunakan Ctrl+C untuk melakukannya.Untuk setiap VM, periksa output perintah
tcpdump
dalam fileicmpcapture.pcap
.sudo tcpdump -r ~/icmpcapture.pcap -n
Untuk VM backend di grup instance
ig-us-l3-default
, Anda akan melihat entri file yang mirip dengan berikut ini:reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet) 22:13:07.814486 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 1, length 64 22:13:07.814513 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 1, length 64 22:13:08.816150 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 2, length 64 22:13:08.816175 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 2, length 64 22:13:09.817536 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 3, length 64 22:13:09.817560 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 3, length 64 ...
Untuk VM backend di grup instance
ig-us-tcp-80
, Anda akan melihat bahwa tidak ada paket yang diterima dan file kosong:reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
Opsi konfigurasi tambahan
Membuat aturan penerusan IPv6 dengan BYOIP
Load balancer yang dibuat pada langkah sebelumnya dikonfigurasi dengan aturan penerusan dengan IP version
sebagai IPv4
atau IPv6
. Bagian ini memberikan petunjuk untuk membuat aturan penerusan IPv6 dengan alamat bring your own IP (BYOIP).
Dengan Bawa alamat IP Anda sendiri, Anda dapat menyediakan dan menggunakan alamat IPv6 publik Anda sendiri untuk resource Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Menggunakan alamat IP Anda sendiri.
Sebelum mulai mengonfigurasi aturan penerusan IPv6 dengan alamat BYOIP, Anda harus menyelesaikan langkah-langkah berikut:
- Membuat awalan IPv6 yang diiklankan secara publik
- Membuat awalan yang didelegasikan publik
- Membuat sub-prefiks IPv6
- Mengumumkan awalan
Untuk membuat aturan penerusan baru, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud , buka halaman Load balancing.
- Klik nama load balancer yang ingin Anda ubah.
- Klik Edit.
- Klik Frontend configuration.
- Klik Add frontend IP and port.
- Di bagian New Frontend IP and port, tentukan berikut:
- Pilih Protocol yang Anda butuhkan.
- Di kolom IP version, pilih IPv6.
- Di kolom Sumber rentang IPv6, pilih BYOIP.
- Dalam daftar IP collection, pilih sub-prefix yang dibuat pada langkah sebelumnya dengan opsi aturan penerusan diaktifkan.
- Di kolom IPv6 range, masukkan rentang alamat IPv6. Awalan rentang alamat IPv6 harus cocok dengan panjang awalan yang dapat dialokasikan yang ditentukan oleh sub-awalan terkait.
- Di kolom Ports, masukkan nomor port.
- Klik Selesai.
- Klik Perbarui.
gcloud
Buat aturan penerusan menggunakan
perintah gcloud compute forwarding-rules create
:
gcloud compute forwarding-rules create FWD_RULE_NAME \ --load-balancing-scheme EXTERNAL \ --ip-protocol PROTOCOL \ --ports ALL \ --ip-version IPV6 \ --region REGION_A \ --address IPV6_CIDR_RANGE \ --backend-service BACKEND_SERVICE \ --ip-collection PDP_NAME
Ganti kode berikut:
FWD_RULE_NAME
: nama aturan penerusanPROTOCOL
: protokol IP untuk aturan penerusan. Defaultnya adalahTCP
. Untuk contoh ini, protokol IP dapat berupaTCP
atauL3_DEFAULT
.REGION_A
: region untuk aturan penerusanIPV6_CIDR_RANGE
: rentang alamat IPv6 yang dilayani oleh aturan penerusan. Awalan rentang alamat IPv6 harus cocok dengan panjang awalan yang dapat dialokasikan yang ditentukan oleh sub-awalan terkait.BACKEND_SERVICE
: nama layanan backendPDP_NAME
: nama awalan yang didelegasikan publik. PDP harus berupa sub-prefiks dalam mode EXTERNAL_IPV6_FORWARDING_RULE_CREATION
Langkah berikutnya
- Untuk mengonfigurasi Load Balancer Jaringan passthrough eksternal dengan backend NEG zona yang memungkinkan Anda meneruskan paket ke antarmuka jaringan non-
nic0
dari instance VM, lihat Menyiapkan Load Balancer Jaringan passthrough eksternal dengan NEG zona. - Untuk mengetahui informasi tentang cara kerja Load Balancer Jaringan passthrough eksternal dengan layanan backend, lihat Ringkasan Load Balancer Jaringan passthrough eksternal berbasis layanan backend.
- Untuk mempelajari cara mentransisikan Load Balancer Jaringan passthrough eksternal dari backend kumpulan target ke layanan backend regional, lihat Memigrasikan Load Balancer Jaringan passthrough eksternal dari kumpulan target ke layanan backend.
- Untuk mengonfigurasi perlindungan DDoS jaringan lanjutan untuk Load Balancer Jaringan passthrough eksternal menggunakan Google Cloud Armor, lihat Mengonfigurasi perlindungan DDoS jaringan lanjutan.
- Untuk menghapus resource, lihat Membersihkan penyiapan load balancer.