Dokumen ini berisi petunjuk untuk mengonfigurasi penerusan protokol untuk penerusan protokol internal dan eksternal. Sebelum mengonfigurasi penerusan protokol, baca bagian 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 instruksi terpisah untuk lalu lintas IPv4 dan IPv6.
Untuk menyiapkan penerusan protokol eksternal, buat sebuah instance target yang berisi satu instance VM. Anda kemudian membuat aturan penerusan regional eksternal yang meneruskan traffic ke instance target.
IPv4
Untuk mempermudah, contoh ini menggunakan jaringan dan subnet default.
Buat aturan firewall yang memungkinkan traffic eksternal mencapai 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, kita menyiapkan server Apache di VM.
gcloud compute instances create VM_INSTANCE_NAME \ --zone=ZONE \ --image-family=debian-10 \ --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 di 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 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, di mana nama VM backend yang menghasilkan respons akan ditampilkan.
Page served from: VM_INSTANCE_NAME.
IPv6
Penanganan traffic IPv6 memerlukan subnet dual stack dengan instance VM dual stack untuk backend instance target.
Membuat jaringan VPC mode kustom.
gcloud compute networks create VPC_NAME \ --subnet-mode=custom
Dalam jaringan VPC, buat subnet dual stack.
gcloud compute networks subnets create SUBNET_NAME \ --network=VPC_NAME \ --range=192.168.11.0/24 \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=EXTERNAL \ --region=REGION
Rentang
192.168.11.0/24
hanya merupakan contoh rentang IPv4. Anda dapat memasukkan rentang IPv4 utama apa pun untuk subnet baru, dalam notasi CIDR. Untuk mengetahui informasi selengkapnya, lihat Rentang subnet IPv4.Buat aturan firewall yang memungkinkan traffic eksternal mencapai 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
Membuat VM dual stack.
gcloud compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-10 \ --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 di langkah sebelumnya.
gcloud compute target-instances create TARGET_INSTANCE_NAME \ --instance=VM_INSTANCE_NAME \ --network=VPC_NAME \ --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 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.
Mendapatkan alamat IP aturan penerusan.
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
IPV6_ADDRESS
dengan alamat IP dari langkah sebelumnya.curl -6 'http://[IPV6_ADDRESS]:80'
Outputnya mirip dengan berikut ini, di mana nama VM backend yang menghasilkan respons akan 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 instruksi terpisah untuk lalu lintas IPv4 dan IPv6.
Untuk contoh ini, Anda membuat instance target yang berisi satu instance VM dengan server Apache terinstal di dalamnya. Anda kemudian membuat aturan penerusan regional internal yang meneruskan traffic ke instance target.
IPv4
Untuk mempermudah, contoh ini menggunakan jaringan dan subnet default.
Buat aturan firewall yang memungkinkan traffic internal mencapai 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-10 \ --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 di 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 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-10 \ --image-project=debian-cloud \ --tags=allow-ssh
Kini 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
Membuat koneksi SSH ke VM klien.
gcloud compute ssh CLIENT_VM_NAME \ --zone=ZONE
Buat permintaan ke load balancer dengan menggunakan curl untuk menghubungi alamat IP-nya.
$ while true; do curl -m1 IP_ADDRESS; done
Outputnya mirip dengan berikut ini, di mana nama VM backend yang menghasilkan respons akan ditampilkan.
Page served from: VM_INSTANCE_NAME.
IPv6
Penanganan traffic IPv6 memerlukan subnet dual stack dengan instance VM dual stack untuk backend instance target.
Buat jaringan VPC mode kustom dengan flag
--enable-ula-internal-ipv6
untuk mengonfigurasi rentang IPv6 internal pada setiap subnet dalam jaringan ini.gcloud compute networks create VPC_NAME \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Dalam jaringan VPC, buat subnet dual stack.
gcloud compute networks subnets create SUBNET_NAME \ --network=VPC_NAME \ --range=192.168.11.0/24 \ --region=REGION \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=INTERNAL
Rentang
192.168.11.0/24
hanya merupakan contoh rentang IPv4. Anda dapat memasukkan rentang IPv4 utama apa pun untuk subnet baru, dalam notasi CIDR. Untuk mengetahui informasi selengkapnya, lihat Rentang subnet IPv4.Buat aturan firewall yang memungkinkan traffic internal mencapai 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 dalam salah satu langkah berikut) yang terhubung dengan Anda menggunakan SSH untuk mengirim traffic HTTP ke alamat IP aturan penerusan.
Membuat VM dual stack.
gcloud compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-10 \ --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 di langkah sebelumnya.
gcloud 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 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-10 \ --image-project=debian-cloud \ --tags=allow-ssh
Uji penyiapan Anda.
Mendapatkan alamat IP aturan penerusan.
gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
Membuat koneksi SSH ke VM klien.
gcloud 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'
Output-nya akan mirip dengan berikut ini, di mana nama VM backend yang menghasilkan respons ditampilkan dalam teks.
Page served from: VM_INSTANCE_NAME.