Dokumen ini berisi petunjuk untuk mengonfigurasi penerusan protokol untuk penerusan protokol internal dan eksternal. Sebelum mengonfigurasi penerusan protokol, baca Ringkasan penerusan protokol.
Menyiapkan penerusan protokol eksternal
Bagian ini menunjukkan cara menyiapkan penerusan protokol eksternal menggunakan aturan penerusan untuk meneruskan traffic TCP ke satu instance target. Ada petunjuk terpisah untuk traffic khusus IPv4, dual-stack, dan IPv6 saja.
Untuk menyiapkan penerusan protokol eksternal, Anda membuat instance target yang berisi satu instance VM. Kemudian, Anda membuat aturan penerusan regional eksternal yang meneruskan traffic ke instance target.
Khusus IPv4
Untuk mempermudah, contoh ini menggunakan jaringan dan subnet default.
Buat aturan firewall yang mengizinkan traffic eksternal menjangkau instance target.
gcloud compute firewall-rules create ALLOW_IPV4_FIREWALL_RULE_NAME \ --target-tags=allow-ipv4-ext \ --allow=tcp:80 \ --source-ranges=0.0.0.0/0
Buat VM. Untuk contoh ini, Anda menyiapkan server Apache di VM.
gcloud compute instances create VM_INSTANCE_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv4-ext \ --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://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sudo systemctl restart apache2'
Buat instance target yang berisi VM yang dibuat pada langkah sebelumnya. Anda harus membuat instance target sebelum dapat membuat objek aturan penerusan karena aturan penerusan harus mereferensikan resource target yang ada.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --zone=ZONE
Cadangkan alamat IPv4 eksternal statis.
gcloud compute addresses create IPV4_ADDRESS \ --region=REGION
Buat aturan penerusan yang meneruskan traffic TCP ke instance target. Aturan penerusan harus dibuat di region yang sama dengan tempat instance target dibuat.
gcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --region=REGION \ --ip-protocol=TCP \ --address=IPV4_ADDRESS \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE
Uji penyiapan Anda.
Dapatkan alamat IP aturan penerusan Anda.
gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \ --region=REGION
Buat permintaan web ke load balancer menggunakan curl untuk menghubungi alamat IP-nya. Ganti
IP_ADDRESS
dengan alamat IP dari langkah sebelumnya.while true; do curl -m1 IP_ADDRESS; done
Outputnya mirip dengan berikut ini, dengan nama VM backend yang menghasilkan respons ditampilkan.
Page served from: VM_INSTANCE_NAME.
Stack ganda
Menangani traffic IPv4 dan IPv6 memerlukan subnet dual-stack dengan instance VM dual-stack untuk backend instance target.
Buat jaringan VPC mode kustom.
gcloud compute networks create VPC_NAME \ --subnet-mode=custom
Dalam jaringan VPC, buat subnet stack ganda.
gcloud compute networks subnets create SUBNET_NAME \ --network=VPC_NAME \ --range=IPV4_ADDRESS_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=EXTERNAL \ --region=REGION
Untuk IPV4_ADDRESS_RANGE, Anda dapat memasukkan rentang IPv4 utama untuk subnet baru, dalam notasi CIDR. Contoh,
192.168.11.0/24
. Untuk mengetahui informasi selengkapnya, lihat Rentang subnet IPv4.Buat aturan firewall yang mengizinkan traffic eksternal menjangkau instance target.
gcloud compute firewall-rules create ALLOW_IPV6_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ipv6-ext \ --allow=tcp:80 \ --source-ranges=::/0
Buat VM stack ganda.
gcloud compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv6-ext \ --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'
Buat instance target yang berisi VM yang dibuat pada langkah sebelumnya.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --network=VPC_NAME \ --zone=ZONE
Cadangkan alamat IPv4 eksternal statis.
gcloud compute addresses create IPV4_ADDRESS \ --region=REGION
Buat aturan penerusan IPv4 yang meneruskan traffic TCP ke instance target. Aturan penerusan harus dibuat di region yang sama dengan tempat instance target dibuat.
gcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --region=REGION \ --ip-protocol=TCP \ --address=IPV4_ADDRESS \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE
Cadangkan rentang alamat IPv6 eksternal statis.
gcloud compute addresses create IPV6_ADDRESS \ --region=REGION \ --subnet=SUBNET_NAME \ --ip-version=IPV6 \ --endpoint-type=NETLB
Buat aturan penerusan IPv6 yang meneruskan traffic TCP ke instance target. Aturan penerusan harus dibuat di region yang sama dengan tempat instance target dibuat.
gcloud compute forwarding-rules create IPV6_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --subnet=SUBNET_NAME \ --ip-version=IPV6 \ --region=REGION \ --address=IPV6_ADDRESS \ --network-tier=PREMIUM \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE \ --ip-protocol=TCP \ --ports=80
Uji penyiapan Anda.
Dapatkan alamat IP aturan penerusan.
gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \ --region=REGION
gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
Buat permintaan web ke load balancer menggunakan curl untuk menghubungi alamat IP-nya. Ganti
IP_ADDRESS
dengan alamat IP dari langkah sebelumnya.Untuk traffic IPv4:
while true; do curl -m1 IP_ADDRESS; done
Untuk traffic IPv6:
curl -6 'http://[IP_ADDRESS]:80'
Outputnya mirip dengan berikut ini, dengan nama VM backend yang menghasilkan respons ditampilkan.
Page served from: VM_INSTANCE_NAME.
Khusus IPv6
Menangani traffic IPv6 saja memerlukan subnet khusus IPv6 dengan instance VM khusus IPv6 untuk backend instance target.
Buat jaringan VPC mode kustom.
gcloud beta compute networks create VPC_NAME \ --subnet-mode=custom
Dalam jaringan VPC, buat subnet khusus IPv6.
gcloud beta compute networks subnets create SUBNET_NAME \ --network=VPC_NAME \ --stack-type=IPV6_ONLY \ --ipv6-access-type=EXTERNAL \ --region=REGION
Buat aturan firewall yang mengizinkan traffic eksternal menjangkau instance target.
gcloud beta compute firewall-rules create ALLOW_IPV6_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ipv6-ext \ --allow=tcp:80 \ --source-ranges=::/0
Buat VM khusus IPv6.
gcloud beta compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV6_ONLY \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv6-ext \ --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'
Buat instance target yang berisi VM yang dibuat pada langkah sebelumnya.
gcloud beta compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --network=VPC_NAME \ --zone=ZONE
Cadangkan rentang alamat IPv6 eksternal statis.
gcloud beta compute addresses create IPV6_ADDRESS \ --region=REGION \ --subnet=SUBNET_NAME \ --ip-version=IPV6 \ --endpoint-type=NETLB
Buat aturan penerusan IPv6 yang meneruskan traffic TCP ke instance target. Aturan penerusan harus dibuat di region yang sama dengan tempat instance target dibuat.
gcloud beta compute forwarding-rules create IPV6_FORWARDING_RULE_NAME \ --load-balancing-scheme=EXTERNAL \ --subnet=SUBNET_NAME \ --ip-version=IPV6 \ --region=REGION \ --address=IPV6_ADDRESS \ --network-tier=PREMIUM \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE \ --ip-protocol=TCP \ --ports=80
Uji penyiapan Anda.
Dapatkan alamat IP aturan penerusan.
gcloud beta compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
Buat permintaan web ke load balancer menggunakan curl untuk menghubungi alamat IP-nya. Ganti
IPV6_ADDRESS
dengan alamat IP dari langkah sebelumnya.curl -6 'http://[IPV6_ADDRESS]:80'
Outputnya mirip dengan berikut ini, dengan nama VM backend yang menghasilkan respons ditampilkan.
Page served from: VM_INSTANCE_NAME.
Menyiapkan penerusan protokol internal
Bagian ini menunjukkan cara menyiapkan penerusan protokol internal menggunakan aturan penerusan untuk meneruskan traffic TCP ke satu instance target. Ada petunjuk terpisah untuk traffic khusus IPv4, dual-stack, dan khusus IPv6.
Untuk contoh ini, Anda membuat instance target yang berisi satu instance VM dengan server Apache yang diinstal di dalamnya. Kemudian, Anda membuat aturan penerusan regional internal yang meneruskan traffic ke instance target.
Khusus IPv4
Untuk memudahkan, contoh ini menggunakan jaringan dan subnet default untuk menyiapkan penerusan protokol internal.
Buat aturan firewall yang mengizinkan traffic internal menjangkau instance target.
gcloud compute firewall-rules create ALLOW_IPV4_FIREWALL_RULE_NAME \ --target-tags=allow-ipv4-int \ --allow=tcp \ --source-ranges=0.0.0.0/0
Buat aturan firewall untuk mengizinkan konektivitas SSH ke VM dengan tag jaringan
allow-ssh
. Ini digunakan untuk membuat koneksi SSH ke VM klien.gcloud compute firewall-rules create ALLOW_SSH_FIREWALL_RULE_NAME \ --target-tags=allow-ssh \ --allow=tcp:22 \ --source-ranges=0.0.0.0/0
Buat VM.
gcloud compute instances create VM_INSTANCE_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv4-int \ --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://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html sudo systemctl restart apache2'
Buat instance target yang berisi VM yang dibuat pada langkah sebelumnya. Anda harus membuat instance target sebelum dapat membuat objek aturan penerusan karena aturan penerusan harus mereferensikan resource target yang ada.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --zone=ZONE
Buat aturan penerusan yang meneruskan traffic TCP ke instance target. Aturan penerusan harus dibuat di region yang sama dengan tempat instance target dibuat.
gcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --network-tier=PREMIUM \ --region=REGION \ --ip-protocol=TCP \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE
Buat VM klien pengujian.
gcloud compute instances create CLIENT_VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh
Sekarang Anda dapat menguji konfigurasi penerusan protokol dengan mengirimkan traffic dari VM klien ini ke alamat IP aturan penerusan.
Uji penyiapan Anda.
Dapatkan alamat IP aturan penerusan Anda.
gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \ --region=REGION
Buat koneksi SSH ke VM klien.
gcloud compute ssh CLIENT_VM_NAME \ --zone=ZONE
Buat permintaan ke load balancer menggunakan curl untuk menghubungi alamat IP-nya.
while true; do curl -m1 IP_ADDRESS; done
Outputnya mirip dengan berikut ini, dengan nama VM backend yang menghasilkan respons ditampilkan.
Page served from: VM_INSTANCE_NAME.
Stack ganda
Menangani traffic IPv4 dan IPv6 memerlukan subnet dual-stack dengan instance VM dual-stack untuk backend instance target.
Buat jaringan VPC mode kustom dengan tanda
--enable-ula-internal-ipv6
untuk mengonfigurasi rentang IPv6 internal di subnet mana pun di jaringan ini.gcloud compute networks create VPC_NAME \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Dalam jaringan VPC, buat subnet stack ganda.
gcloud compute networks subnets create SUBNET_NAME \ --network=VPC_NAME \ --range=IPV4_ADDRESS_RANGE \ --region=REGION \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=INTERNAL
Untuk IPV4_ADDRESS_RANGE, Anda dapat memasukkan rentang IPv4 utama untuk subnet baru, dalam notasi CIDR. Contoh,
192.168.11.0/24
. Untuk mengetahui informasi selengkapnya, lihat Rentang subnet IPv4.Buat aturan firewall yang mengizinkan traffic internal menjangkau instance target.
gcloud compute firewall-rules create ALLOW_IPV6_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ipv6-int \ --allow=tcp \ --source-ranges=::/0
Buat aturan firewall untuk mengizinkan konektivitas SSH ke VM menggunakan tag jaringan
allow-ssh
.gcloud compute firewall-rules create ALLOW_SSH_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ssh \ --allow=tcp:22 \ --source-ranges=0.0.0.0/0
Aturan firewall ini diterapkan ke VM klien (dibuat di salah satu langkah berikut) yang Anda hubungkan menggunakan SSH untuk mengirim traffic HTTP ke alamat IP aturan penerusan.
Buat VM stack ganda.
gcloud compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv6-int \ --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'
Buat instance target yang berisi VM yang dibuat pada langkah sebelumnya.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --network=VPC_NAME \ --zone=ZONE
Buat aturan penerusan IPv4 yang meneruskan traffic TCP ke instance target. Aturan penerusan harus dibuat di region yang sama dengan tempat instance target dibuat.
gcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --network-tier=PREMIUM \ --region=REGION \ --ip-protocol=TCP \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE
Buat aturan penerusan IPv6 yang meneruskan traffic TCP ke instance target. Aturan penerusan harus dibuat di region yang sama dengan tempat instance target dibuat.
gcloud compute forwarding-rules create IPV6_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --network-tier=PREMIUM \ --network=VPC_NAME \ --subnet=SUBNET_NAME \ --region=REGION \ --ip-protocol=TCP \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE \ --ip-version=IPV6
Buat VM klien.
gcloud compute instances create CLIENT_VM_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh
Uji penyiapan Anda.
Dapatkan alamat IP aturan penerusan.
gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \ --region=REGION
gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
Buat koneksi SSH ke VM klien.
gcloud compute ssh CLIENT_VM_NAME \ --zone=ZONE
Buat permintaan HTTP ke alamat IP aturan penerusan menggunakan curl.
Untuk traffic IPv4:
while true; do curl -m1 IP_ADDRESS; done
Untuk traffic IPv6:
curl -6 'http://[FORWARDING_RULE_IP_ADDRESS]:80'
Outputnya mirip dengan berikut ini, dengan nama VM backend yang menghasilkan respons ditampilkan dalam teks.
Page served from: VM_INSTANCE_NAME.
Khusus IPv6
Menangani traffic IPv6 saja memerlukan subnet khusus IPv6 dengan instance VM khusus IPv6 untuk backend instance target.
Buat jaringan VPC mode kustom dengan tanda
--enable-ula-internal-ipv6
untuk mengonfigurasi rentang IPv6 internal di subnet mana pun di jaringan ini.gcloud beta compute networks create VPC_NAME \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Dalam jaringan VPC, buat subnet khusus IPv6.
gcloud beta compute networks subnets create SUBNET_NAME \ --network=VPC_NAME \ --region=REGION \ --stack-type=IPV6_ONLY \ --ipv6-access-type=INTERNAL
Buat aturan firewall yang mengizinkan traffic internal menjangkau instance target.
gcloud beta compute firewall-rules create ALLOW_IPV6_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ipv6-int \ --allow=tcp \ --source-ranges=::/0
Buat aturan firewall untuk mengizinkan konektivitas SSH ke VM menggunakan tag jaringan
allow-ssh
.gcloud beta compute firewall-rules create ALLOW_SSH_FIREWALL_RULE_NAME \ --network=VPC_NAME \ --target-tags=allow-ssh \ --allow=tcp:22 \ --source-ranges=0.0.0.0/0
Aturan firewall ini diterapkan ke VM klien (dibuat di salah satu langkah berikut) yang Anda hubungkan menggunakan SSH untuk mengirim traffic HTTP ke alamat IP aturan penerusan.
Buat VM khusus IPv6.
gcloud beta compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV6_ONLY \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ipv6-int \ --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'
Buat instance target yang berisi VM yang dibuat pada langkah sebelumnya.
gcloud beta compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --network=VPC_NAME \ --zone=ZONE
Buat aturan penerusan IPv6 yang meneruskan traffic TCP ke instance target. Aturan penerusan harus dibuat di region yang sama dengan tempat instance target dibuat.
gcloud beta compute forwarding-rules create IPV6_FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --network-tier=PREMIUM \ --network=VPC_NAME \ --subnet=SUBNET_NAME \ --region=REGION \ --ip-protocol=TCP \ --ports=80 \ --target-instance=TARGET_INSTANCE_NAME \ --target-instance-zone=ZONE \ --ip-version=IPV6
Buat VM klien.
gcloud beta compute instances create CLIENT_VM_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV6_ONLY \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh
Uji penyiapan Anda.
Dapatkan alamat IP aturan penerusan.
gcloud beta compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
Buat koneksi SSH ke VM klien.
gcloud beta compute ssh CLIENT_VM_NAME \ --zone=ZONE
Buat permintaan HTTP ke alamat IP aturan penerusan menggunakan curl.
curl -6 'http://[FORWARDING_RULE_IP_ADDRESS]:80'
Outputnya mirip dengan berikut ini, dengan nama VM backend yang menghasilkan respons ditampilkan dalam teks.
Page served from: VM_INSTANCE_NAME.