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/0Buat 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 ; doneOutputnya 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=customDalam 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=::/0Buat 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=NETLBBuat 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=80Uji 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 ; doneUntuk 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=customDalam 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=::/0Buat 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=NETLBBuat 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=80Uji 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/0Buat 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/0Buat 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-sshSekarang 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 ; doneOutputnya 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-ipv6Dalam 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=INTERNALUntuk 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=::/0Buat 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/0Aturan 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=IPV6Buat 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-sshUji 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 ; doneUntuk 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-ipv6Dalam 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=INTERNALBuat 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=::/0Buat 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/0Aturan 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=IPV6Buat 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-sshUji 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 .