Panduan ini memberikan petunjuk untuk membuat Network Load Balancer passthrough eksternal berbasis layanan backend yang melakukan load balancing pada traffic TCP, UDP, ESP, GRE, ICMP, dan ICMPv6. Anda dapat menggunakan konfigurasi tersebut jika ingin 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 disetel ke
UNSPECIFIED
.
Dalam contoh ini, kami menggunakan dua Load Balancer Jaringan passthrough eksternal untuk mendistribusikan traffic di seluruh VM backend dalam dua grup instance terkelola zonal 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 di 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 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 yang terkait dengan load balancing di referensi API dan gcloud.
Jika Anda belum menjalankan gcloud CLI sebelumnya, jalankan terlebih dahulu
perintah gcloud init
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
. Anda dapat menggunakan jaringan VPC mode otomatis jika hanya ingin menangani traffic IPv4.
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 ke alamat IPv4 eksternal dan alamat IPv6 eksternal.
Backend dan komponen load balancer yang digunakan untuk contoh ini berada di region dan subnet ini:
- Region:
us-central1
- Subnet:
lb-subnet
, dengan rentang alamat IPv4 utama10.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, gunakan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Masukkan Nama
lb-network
.Di bagian Subnet:
- Setel Subnet creation mode ke Custom.
- Di bagian New subnet, konfigurasikan 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 ukuran tetap (/64). - Jenis akses IPv6: Eksternal
- Nama:
Klik Create.
Untuk mendukung hanya traffic IPv4, gunakan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman jaringan VPC.
Klik Create VPC network.
Masukkan Nama
lb-network
.Di bagian Subnet:
- Setel Subnet creation mode ke Custom.
- Di bagian New subnet, konfigurasikan 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 Create.
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 dual-stack:
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
Membuat grup instance terkelola zona
Untuk skenario load balancing ini, Anda akan membuat dua grup instance terkelola zona Compute Engine dan menginstal server web Apache di setiap instance.
Untuk menangani traffic IPv4 dan IPv6, konfigurasikan VM backend 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 detail selengkapnya tentang persyaratan IPv6, lihat Ringkasan Load Balancer Jaringan passthrough eksternal: Aturan penerusan.
Untuk menggunakan VM yang ada sebagai backend, update VM menjadi dual-stack 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.
Membuat 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 Create.
Membuat grup instance terkelola. Buka halaman Grup instance di konsol Google Cloud.
- Klik Create instance group.
- Pilih New managed instance group (stateless). Untuk 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 Create.
gcloud
Petunjuk gcloud
dalam panduan ini mengasumsikan bahwa Anda menggunakan Cloud
Shell atau lingkungan lain dengan bash yang diinstal.
Buat template instance VM dengan server HTTP dengan 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 khusus traffic IPv4, 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" \ http://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
Membuat 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 port
8080
, bukan port80
.#! /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 Create.
Membuat grup instance terkelola. Buka halaman Grup instance di konsol Google Cloud.
- Klik Create instance group.
- Pilih New managed instance group (stateless). Untuk 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 Create.
gcloud
Petunjuk gcloud
dalam panduan ini mengasumsikan bahwa Anda menggunakan Cloud
Shell atau lingkungan lain dengan bash yang diinstal.
Buat template instance VM dengan server HTTP dengan perintah
gcloud compute instance-templates create
.Skrip startup juga mengonfigurasi server Apache untuk memproses port
8080
, bukan port80
.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 ingin menangani hanya 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 menjangkau instance
backend di 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 semua rentang sumber untuk menjangkau instance backend Anda di port yang dikonfigurasi. Jika Anda ingin membuat aturan firewall terpisah khusus untuk probe health check, gunakan rentang alamat IP sumber yang didokumentasikan dalam Ringkasan health check: Memeriksa rentang IP dan aturan firewall.
Konsol
- Pada konsol Google Cloud, buka halaman Kebijakan Firewall.
Buka Kebijakan firewall - Untuk mengizinkan traffic TCP IPv4 menjangkau backend di grup instance
ig-us-tcp-80
, buat aturan firewall berikut.- Klik Create firewall rule.
- Masukkan Nama
allow-network-lb-tcp-80-ipv4
. - Pilih Jaringan tempat aturan firewall diterapkan (Default).
- Di bagian Target, pilih Tag target yang ditentukan.
- Di kolom Tag target, 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 probe health check untuk menjangkau instance backend. - Di bagian Protocols and ports, pilih Specified protocols and
ports. Kemudian, pilih kotak centang TCP dan masukkan
80
. - Klik Create. 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 menjangkau 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 Jaringan tempat aturan firewall diterapkan (Default).
- Di bagian Target, pilih Tag target yang ditentukan.
- Di kolom Tag target, 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 probe health check untuk menjangkau instance backend. - Di bagian Protocols and ports, pilih Specified protocols and
ports.
- Pilih kotak centang TCP, lalu masukkan
8080
. - Centang kotak UDP.
- Centang kotak Lainnya dan masukkan
esp, icmp
.
- Pilih kotak centang TCP, lalu masukkan
- Klik Create. 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 menjangkau backend di grup instance
ig-us-tcp-80
, buat aturan firewall berikut.- Klik Create firewall rule.
- Masukkan Nama
allow-network-lb-tcp-80-ipv6
. - Pilih Jaringan tempat aturan firewall diterapkan (Default).
- Di bagian Target, pilih Tag target yang ditentukan.
- Di kolom Tag target, masukkan
network-lb-tcp-80
. - Tetapkan Source filter ke Rentang IPv6.
- Tetapkan Source IPv6 ranges ke
::/0
, yang mengizinkan traffic dari sumber mana pun. Hal ini memungkinkan traffic eksternal dan probe health check untuk menjangkau instance backend. - Di bagian Protocols and ports, pilih Specified protocols and
ports. Klik kotak centang di samping TCP, lalu masukkan
80
. - Klik Create. 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 menjangkau 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 Jaringan tempat aturan firewall diterapkan (Default).
- Di bagian Target, pilih Tag target yang ditentukan.
- Di kolom Tag target, masukkan
network-lb-l3-default
. - Tetapkan Source filter ke Rentang IPv6.
- Tetapkan Source IPv6 ranges ke
::/0
, yang mengizinkan traffic dari sumber mana pun. Hal ini memungkinkan traffic eksternal dan probe health check untuk menjangkau instance backend. - Di bagian Protocols and ports, pilih Specified protocols and
ports.
- Klik kotak centang di samping TCP, lalu masukkan
8080
. - Klik kotak centang di samping UDP.
- Centang kotak di samping Lainnya dan masukkan
esp, 58
.
- Klik kotak centang di samping TCP, lalu masukkan
- Klik Create. 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 menjangkau backend di 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 menjangkau 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 menjangkau backend di 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 menjangkau 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. Konfigurasikan 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
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
Memulai 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 Konfigurasikan.
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. - Dalam 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 ada 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, gunakan 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 Port, pilih Single. Di kolom Nomor port, masukkan
80
. - Klik Done.
Untuk menangani traffic IPv6, gunakan langkah-langkah berikut:
- Untuk IP version, pilih IPv6.
- Untuk Subnetwork, pilih lb-subnet.
- Dalam daftar IPv6 range, pilih Create IP address.
- Di kolom Name, masukkan
network-lb-ipv6
. - Klik Reserve.
- Di kolom Name, masukkan
- Untuk Port, pilih Single. Di kolom Nomor port, masukkan
80
. - Klik Done.
Lingkaran biru dengan tanda centang di sebelah kiri Konfigurasi frontend menunjukkan penyiapan yang 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 Create.
Di halaman load balancing, di kolom Backend untuk load balancer baru, Anda akan melihat tanda centang hijau yang menunjukkan bahwa load balancer baru berfungsi dengan baik.
Membuat load balancer kedua
Memulai 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 Konfigurasikan.
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).
- Dalam 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 ada 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, gunakan 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 Protokol, pilih L3 (Beberapa protokol).
- Untuk Port, pilih All.
- Klik Done.
Untuk menangani traffic IPv6, gunakan langkah-langkah berikut:
- Untuk IP version, pilih IPv6.
- Untuk Subnetwork, pilih lb-subnet.
- Dalam daftar IPv6 range, pilih Create IP address.
- Di kolom Name, masukkan
network-lb-ipv6
. - Klik Reserve.
- Di kolom Name, masukkan
- Di kolom Protocol, pilih L3 (Multiple protocols).
- Untuk Port, pilih All.
- Klik Done.
Lingkaran biru dengan tanda centang di sebelah kiri Konfigurasi frontend menunjukkan penyiapan yang 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 Create.
Di halaman load balancing, di kolom Backend untuk load balancer baru, Anda akan melihat tanda centang hijau yang menunjukkan bahwa load balancer baru berfungsi dengan baik.
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 di grup instanceig-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 di grup instanceig-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 di 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 di port
80
ke layanan backend.TCP
adalah protokol aturan penerusan default dan tidak perlu ditetapkan secara eksplisit.Gunakan rentang alamat IPv6 yang dicadangkan di 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 TCP di port
8080
, UDP, ESP, dan traffic 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 lainnya (TCP di port8080
, 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 lainnya (TCP di port8080
, UDP, ESP, dan ICMP). Semua port harus dikonfigurasi dengan aturan penerusanL3_DEFAULT
.Gunakan rentang alamat IPv6 yang dicadangkan di 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.
Mencari alamat IP eksternal load balancer
Konsol
- Di halaman load balancing Lanjutan, buka tab Aturan Penerusan.
Buka tab Aturan Penerusan - Temukan aturan penerusan yang digunakan oleh load balancer.
- Di kolom Alamat IP, perhatikan 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 akan 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 akan berfungsi.
Mengirim traffic ke load balancer
Prosedur ini mengirim traffic eksternal ke load balancer. Jalankan pengujian
berikut untuk memastikan bahwa traffic TCP di port 80 sedang di-load balancing oleh
grup instance ig-us-tcp-80
, sedangkan semua traffic lainnya (TCP di port 8080, UDP, ESP,
dan ICMP) sedang 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 akan terlihat seperti:$ 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 menghasilkan respons ditampilkan dalam teks tersebut; misalnya:Page served from: VM_NAME
. Respons hanya boleh 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 akan terlihat seperti:$ 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 boleh 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
ditangani oleh backend di grup instance
ig-us-l3-default
saja.
Memverifikasi perilaku dengan permintaan ICMP
Untuk memverifikasi perilaku dengan traffic ICMP, Anda mengambil 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.
SSH ke VM backend.
Di konsol Google Cloud, buka halaman Instance VM.
Buka halaman instance VMDalam daftar instance virtual machine, klik SSH di baris instance yang ingin Anda hubungkan.
Jalankan perintah berikut untuk menggunakan
tcpdump
agar dapat 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 akan terlihat seperti:ping6 2001:db8:1:1:1:1:1:1
Kembali ke setiap jendela SSH yang terbuka di VM dan hentikan perintah pengambilan
tcpdump
. 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 seperti: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 harus 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 telah dikonfigurasi dengan
aturan penerusan dengan IP version
sebagai IPv4
atau IPv6
. Bagian ini memberikan
petunjuk untuk membuat aturan penerusan IPv6 dengan alamat bawa IP Anda sendiri (BYOIP).
Dengan Bawa alamat IP Anda sendiri, Anda dapat menyediakan dan menggunakan alamat IPv6 publik Anda sendiri untuk resource Google Cloud. Untuk 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-awalan 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 diubah.
- Klik Edit.
- Klik Frontend configuration.
- Klik Add frontend IP and port.
- Di bagian New Frontend IP and port, tentukan hal berikut:
- Protocol adalah TCP.
- Di kolom IP version, pilih IPv6.
- Di kolom Sumber rentang IPv6, pilih BYOIP.
- Dalam daftar IP collection, pilih sub-awalan yang dibuat di langkah sebelumnya dengan opsi aturan penerusan diaktifkan.
- Di kolom Rentang IPv6, masukkan rentang alamat IPv6. Rentang alamat IPv6 harus mematuhi spesifikasi sub-awalan IPv6.
- Di kolom Port, masukkan nomor port.
- Klik Done.
- Klik Add frontend IP and port.
- Di bagian New Frontend IP and port, tentukan hal berikut:
- Protokol adalah L3 (Beberapa protokol).
- Di kolom IP version, pilih IPv6.
- Di kolom Sumber rentang IPv6, pilih BYOIP.
- Dalam daftar IP collection, pilih sub-awalan yang dibuat di langkah sebelumnya dengan opsi aturan penerusan diaktifkan.
- Di kolom Rentang IPv6, masukkan rentang alamat IPv6. Rentang alamat IPv6 harus mematuhi spesifikasi sub-awalan IPv6.
- Di kolom Ports, pilih All.
- Klik Done.
- Klik Perbarui.
Google Cloud CLI
Buat aturan penerusan menggunakan
perintah gcloud compute forwarding-rules create
:
gcloud compute forwarding-rules create FWD_RULE_NAME \ --load-balancing-scheme EXTERNAL \ --ip-protocol L3_DEFAULT \ --ports ALL \ --ip-version IPV6 \ --region REGION_A \ --address IPV6_CIDR_RANGE \ --backend-service BACKEND_SERVICE \ --ip-collection PDP_NAME
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 penerusanREGION_A
: region untuk aturan penerusanIPV6_CIDR_RANGE
: rentang alamat IPv6 yang ditayangkan oleh aturan penerusan. Rentang alamat IPv6 harus mematuhi spesifikasi sub-awalan IPv6.BACKEND_SERVICE
: nama layanan backendPDP_NAME
: nama awalan yang didelegasikan publik. PDP harus berupa sub-awalan dalam mode EXTERNAL_IPV6_FORWARDING_RULE_CREATION
Langkah selanjutnya
- 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.