Menyiapkan Load Balancer Jaringan passthrough internal sebagai next hop (dengan tag)

Tutorial ini menggunakan contoh untuk menunjukkan cara men-deploy Load Balancer Jaringan passthrough internal sebagai next hop ke mana paket diteruskan di sepanjang jalur ke tujuan akhir. Anda menggunakan tag jaringan untuk mengonfigurasi instance klien tertentu yang memberlakukan rute.

Panduan ini mengasumsikan bahwa Anda telah memahami cara kerja Load Balancer Jaringan passthrough internal, komponen terkaitnya seperti aturan firewall dan health check, serta cara Load Balancer Jaringan passthrough internal digunakan sebagai hop berikutnya untuk meneruskan paket pada suatu rute.

Dengan Load Balancer Jaringan passthrough internal sebagai fitur next hop, Anda dapat mengintegrasikan peralatan pihak ketiga dengan cara yang sangat tersedia dan diskalakan. Untuk melakukannya, Anda harus mengonfigurasi rute statis kustom dan menetapkan hop berikutnya ke load balancer, yang akan mendistribusikan traffic untuk awalan tujuan ke kumpulan peralatan VM pihak ketiga yang telah diperiksa kondisinya. Anda memiliki beberapa opsi saat memilih hop berikutnya untuk mendukung ketersediaan tinggi peralatan pihak ketiga ini:

  • Menentukan alamat IP sebagai next hop: Gunakan alamat IP internal yang terkait dengan aturan penerusan sebagai next hop. Alamat IP virtual load balancer ini dapat dipelajari antar-peer tanpa harus mengekspor rute kustom melalui peer-nya.
  • Gunakan tag jaringan: Anda dapat menentukan tag jaringan sehingga Load Balancer Jaringan passthrough internal sebagai rute hop berikutnya hanya berlaku untuk instance klien yang telah dikonfigurasi dengan tag tersebut. Dengan begitu, Anda dapat memilih instance klien mana yang akan diisi dengan Load Balancer Jaringan passthrough internal yang diberi tag sebagai rute hop berikutnya, dan kumpulan peralatan untuk merutekan traffic Anda. Anda tidak perlu memisahkan instance klien yang berbeda ke dalam VPC yang terpisah, karena masing-masing akan mengarah ke Load Balancer Jaringan passthrough internal pilihannya di depan kumpulan peralatan. Rute yang diberi tag tidak diekspor atau diimpor melalui Peering Jaringan VPC.
  • Mengonfigurasi beberapa rute ke awalan tujuan yang sama: Dengan tag, Anda dapat menentukan beberapa rute ke tujuan yang sama dengan load balancer internal yang berbeda seperti hop berikutnya. Meskipun ECMP tidak didukung (awalan tujuan yang sama, tag yang sama, next hop yang berbeda), Anda dapat menggunakan tag yang berbeda atau prioritas yang berbeda untuk rute tujuan yang sama.

Ringkasan penyiapan

Grup instance terkelola yang menggunakan VM dengan satu NIC ditentukan di region yang berbeda, dengan instance Linux yang dikonfigurasi untuk menerjemahkan semua traffic keluar ke internet (aliran traffic keluar Utara-Selatan). Failover regional dipicu secara manual. Tutorial ini juga menunjukkan konektivitas East-West dengan hashing simetris menggunakan Load Balancer Jaringan passthrough internal sebagai next hop.

Langkah-langkah di bagian ini menjelaskan cara mengonfigurasi hal berikut:

  1. Contoh jaringan VPC dengan subnet kustom
  2. Aturan firewall yang mengizinkan koneksi masuk ke VM backend
  3. Grup instance terkelola backend yang men-deploy gateway NAT
  4. VM klien untuk menguji koneksi
  5. Komponen Load Balancer Jaringan passthrough internal berikut:
    • Health check untuk layanan backend
    • Layanan backend internal
    • Aturan penerusan internal dan alamat IP untuk frontend load balancer

Arsitektur untuk contoh ini terlihat seperti ini:

Load Balancer Jaringan passthrough internal sebagai konfigurasi next hop
Load Balancer Jaringan passthrough internal sebagai konfigurasi next hop (klik untuk memperbesar)

Saat mengikuti langkah-langkah dalam tutorial ini, ganti REGION_A dan REGION_B dengan wilayah masing-masing yang ingin Anda gunakan untuk contoh ini.

Membuat subnet dan jaringan VPC

  1. Buat jaringan VPC bernama hub-vpc.

    gcloud compute networks create hub-vpc --subnet-mode custom
    
  2. Buat subnet di hub-vpc di REGION_A.

    gcloud compute networks subnets create hub-subnet-a \
        --network hub-vpc \
        --range 10.0.0.0/24 \
        --region REGION_A
    
  3. Buat subnet di hub-vpc di region B.

    gcloud compute networks subnets create hub-subnet-b \
        --network hub-vpc \
        --range 10.0.1.0/24 \
        --region REGION_B
    
  4. Buat jaringan VPC bernama spoke1-vpc.

    gcloud compute networks create spoke1-vpc --subnet-mode custom
    
  5. Buat subnet di spoke1-vpc.

    gcloud compute networks subnets create spoke1-subnet1 \
        --network spoke1-vpc \
        --range 192.168.0.0/24 \
        --region REGION_A
    
  6. Buat jaringan VPC bernama spoke2-vpc.

    gcloud compute networks create spoke2-vpc --subnet-mode custom
    
  7. Buat subnet di spoke2-vpc.

    gcloud compute networks subnets create spoke2-subnet1 \
        --network spoke2-vpc \
        --range 192.168.1.0/24 \
        --region REGION_A
    

Mengonfigurasi aturan firewall

  1. Konfigurasikan aturan firewall berikut untuk mengizinkan traffic TCP, UDP, dan ICMP menjangkau instance dari rentang sumber yang ditentukan.

    gcloud compute firewall-rules create hub-vpc-web-ping-dns \
        --network hub-vpc \
        --allow tcp:80,tcp:443,icmp,udp:53 \
        --source-ranges 10.0.0.0/24,10.0.1.0/24,192.168.0.0/24,192.168.1.0/24
    
    gcloud compute firewall-rules create spoke1-vpc-web-ping-dns \
        --network spoke1-vpc \
        --allow tcp:80,tcp:443,icmp,udp:53 \
        --source-ranges 10.0.0.0/24,10.0.1.0/24,192.168.0.0/24,192.168.1.0/24
    
    gcloud compute firewall-rules create spoke2-vpc-web-ping-dns \
        --network spoke2-vpc \
        --allow tcp:80,tcp:443,icmp,udp:53 \
        --source-ranges 10.0.0.0/24,10.0.1.0/24,192.168.0.0/24,192.168.1.0/24
    
  2. Buat aturan firewall untuk mengizinkan petugas health check mengakses instance di hub-vpc.

    gcloud compute firewall-rules create hub-vpc-health-checks \
        --network hub-vpc \
        --allow tcp:80 \
        --target-tags natgw \
        --source-ranges 130.211.0.0/22,35.191.0.0/16
    
  3. Buat aturan firewall untuk mengizinkan akses SSH untuk instance di semua subnet. Jika Anda memilih menggunakan Identity-Aware Proxy untuk penerusan TCP (direkomendasikan), ikuti langkah-langkah berikut untuk mengaktifkan SSH.

    gcloud compute firewall-rules create hub-vpc-allow-ssh \
        --network hub-vpc \
        --allow tcp:22
    
    gcloud compute firewall-rules create spoke1-vpc-allow-ssh \
        --network spoke1-vpc \
        --allow tcp:22
    
    gcloud compute firewall-rules create spoke2-vpc-allow-ssh \
        --network spoke2-vpc \
        --allow tcp:22
    

Mengonfigurasi Peering Jaringan VPC

  1. Buat peering dari hub-vpc ke spoke1-vpc.

    gcloud compute networks peerings create hub-to-spoke1 \
        --network hub-vpc \
        --peer-network spoke1-vpc \
        --peer-project PROJECT_ID \
        --export-custom-routes
        
  2. Buat peering dari spoke1-vpc ke hub-vpc.

    gcloud compute networks peerings create spoke1-to-hub \
        --network spoke1-vpc \
        --peer-network hub-vpc \
        --peer-project PROJECT_ID \
        --import-custom-routes
    
  3. Buat peering dari hub-vpc ke spoke2-vpc.

    gcloud compute networks peerings create hub-to-spoke2 \
        --network hub-vpc \
        --peer-network spoke2-vpc \
        --peer-project PROJECT_ID \
        --export-custom-routes
    
  4. Buat peering dari spoke2-vpc ke hub-vpc.

    gcloud compute networks peerings create spoke2-to-hub \
        --network spoke2-vpc \
        --peer-network hub-vpc \
        --peer-project PROJECT_ID \
        --import-custom-routes
    

Membuat VM gateway NAT dan resource load balancing di region A

Membuat backend grup instance terkelola di REGION_A. Kemudian, buat resource load balancing dan rute next hop.

Membuat grup instance terkelola

  1. Buat template instance untuk men-deploy gateway NAT di region A.

    gcloud compute instance-templates create hub-natgw-region-a-template \
        --network hub-vpc \
        --subnet hub-subnet-a \
        --region REGION_A \
        --machine-type n1-standard-2 \
        --can-ip-forward \
        --tags natgw \
        --metadata startup-script='#! /bin/bash
    # Enable IP forwarding:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/20-iptables.conf
    # iptables configuration
    iptables -t nat -F
    sudo iptables -t nat -A POSTROUTING ! -d 192.168.0.0/16 -j MASQUERADE
    iptables-save
    # Use a web server to pass the health check for this example.
    # You should use a more complete test in production.
    apt-get update
    apt-get install apache2 tcpdump -y
    a2ensite default-ssl
    a2enmod ssl
    echo "Example web page to pass health check" | \
    tee /var/www/html/index.html \
    systemctl restart apache2'
    
  2. Buat grup instance di REGION_A.

    gcloud compute instance-groups managed create hub-natgw-region-a-mig \
        --region REGION_A \
        --size=2 \
        --template=hub-natgw-region-a-template
    

Membuat load balancer

Lakukan langkah-langkah berikut untuk membuat load balancer di REGION_A.

  1. Membuat health check.

    gcloud compute health-checks create http natgw-ilbnhop-health-check \
        --port=80
    
  2. Membuat layanan backend.

    gcloud compute backend-services create hub-natgw-region-a-be \
        --load-balancing-scheme=internal \
        --protocol tcp \
        --region REGION_A\
        --health-checks=natgw-ilbnhop-health-check
    
  3. Tambahkan grup instance terkelola sebagai backend.

    gcloud compute backend-services add-backend hub-natgw-region-a-be \
        --instance-group=hub-natgw-region-a-mig \
        --instance-group-region=REGION_A
    
  4. Membuat aturan penerusan.

    gcloud compute forwarding-rules create hub-natgw-region-a \
        --load-balancing-scheme=internal \
        --network=hub-vpc \
        --subnet=hub-subnet-a \
        --address=10.0.0.10 \
        --ip-protocol=TCP \
        --ports=all \
        --allow-global-access \
        --backend-service=hub-natgw-region-a-be \
        --backend-service-region=REGION_A
    

Membuat rute hop berikutnya

Buat Load Balancer Jaringan passthrough internal sebagai rute next hop dengan tag jaringan yang telah ditentukan ilbanh-region-a.

gcloud compute routes create spoke1-natgw-region-a \
    --network=spoke1-vpc \
    --destination-range=0.0.0.0/0 \
    --next-hop-ilb=10.0.0.10 \
    --tags=ilbanh-region-a \
    --priority 800
gcloud compute routes create spoke2-natgw-region-a \
    --network=spoke2-vpc \
    --destination-range=0.0.0.0/0 \
    --next-hop-ilb=10.0.0.10 \
    --tags=ilbanh-region-a \
    --priority 800

Menguji konektivitas

Buat instance klien untuk menguji konektivitas.

  1. Buat instance klien pengujian di spoke1-vpc.

    gcloud compute instances create spoke1-client \
        --subnet=spoke1-subnet1 --no-address --zone ZONE_A \
        --tags=ilbanh-region-a \
        --metadata startup-script='#! /bin/bash
    apt-get update
    apt-get install tcpdump -y'
    
  2. Buat instance klien pengujian di spoke2-vpc.

    gcloud compute instances create spoke2-client \
        --subnet=spoke2-subnet1 --no-address --zone ZONE_A \
        --tags=ilbanh-region-a \
        --metadata startup-script='#! /bin/bash
    apt-get update
    apt-get install tcpdump -y'
    

Memvalidasi arus lalu lintas Utara-Selatan dan Timur-Barat

  1. Pastikan VM gateway NAT berjalan, dan tuliskan alamat IP eksternal yang ditetapkan:

    gcloud compute instances list --filter="status:RUNNING AND name~natgw"
    
  2. Pastikan load balancer responsif dan rute telah dibuat seperti yang diharapkan:

    gcloud compute backend-services get-health hub-natgw-region-a-be --region REGION_A
    
    backend: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/regions/us-central1/instanceGroups/hub-natgw-region-a-mig
    status:
      healthStatus:
      - forwardingRule: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/regions/us-central1/forwardingRules/hub-natgw-region-a
        forwardingRuleIp: 10.0.0.10
        healthState: HEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/zones/us-central1-b/instances/<INSTANCE_NAME>
        ipAddress: 10.0.0.5
        port: 80
      - forwardingRule: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/regions/us-central1/forwardingRules/hub-natgw-region-a
        forwardingRuleIp: 10.0.0.10
        healthState: HEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/zones/us-central1-f/instances/<INSTANCE_NAME>
        ipAddress: 10.0.0.6
        port: 80
      kind: compute#backendServiceGroupHealth
    
  3. Pastikan Load Balancer Jaringan passthrough internal sebagai rute next hop ditambahkan ke VPC spoke dengan prioritas yang diharapkan dan menargetkan alamat IP Load Balancer Jaringan passthrough internal:

    gcloud compute routes list --filter="name~natgw"
    
  4. Buka Konsol Google Cloud dan buat koneksi SSH ke VM gateway NAT di berbagai tab.

  5. Mulai tcpdump di setiap sesi SSH tersebut dengan menggunakan perintah berikut:

    sudo tcpdump -n net 192.168.0.0/16
    
  6. Buka Konsol Google Cloud dan buat koneksi SSH baru ke VM spoke1-client. Lalu, gunakan perintah berikut untuk mem-ping alamat IP internal spoke2-client.

    ping SPOKE2_CLIENT_INTERNAL_IP
    
  7. Beralihlah ke jendela SSH gateway NAT dan pastikan Anda dapat melihat paket ICMP sebagai berikut:

    16:51:28.411260 IP 192.168.0.2 > 192.168.1.2: ICMP echo request, id 1684, seq 492, length 64
    16:51:28.411676 IP 192.168.1.2 > 192.168.0.2: ICMP echo reply, id 1684, seq 492, length 64
    

    Anda akan berhasil melakukan ping ke VM klien, yang menunjukkan hal berikut:

  8. Hentikan output tcpdump di VM gateway NAT dan pantau statistik iptables:

    watch sudo iptables -t nat -nvL
    
  9. Pindah kembali ke VM spoke1-client dan jalankan perintah berikut beberapa kali. Output-nya menampilkan alamat IP sumber publik yang digunakan untuk terhubung ke situs.

    curl ifconfig.io
    

    Anda akan melihat alamat IP kedua VM gateway NAT ditampilkan sebagai alamat IP sumber. Hal ini menunjukkan bahwa Load Balancer Jaringan passthrough internal mendistribusikan traffic berdasarkan afinitas default (hashing 5-tuple).

  10. Beralihlah kembali ke VM gateway NAT untuk mengonfirmasi bahwa penghitung paket telah meningkat.

    Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
      105 11442 MASQUERADE  all  --  *      *       0.0.0.0/0           !192.168.0.0/16
    
    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
    

Membuat VM gateway NAT dan resource load balancing di region B

Membuat backend grup instance terkelola di region B. Kemudian, buat resource load balancing dan rute next hop.

Membuat grup instance terkelola

  1. Buat template instance untuk men-deploy gateway NAT di region B.

    gcloud compute instance-templates create hub-natgw-region-b-template \
        --network hub-vpc \
        --subnet hub-subnet-b --region REGION_B \
        --machine-type n1-standard-2 --can-ip-forward \
        --tags natgw \
        --metadata startup-script='#! /bin/bash
    # Enable IP forwarding:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/20-iptables.conf
    # iptables configuration
    iptables -t nat -F
    sudo iptables -t nat -A POSTROUTING ! -d 192.168.0.0/16 -j MASQUERADE
    iptables-save
    # Use a web server to pass the health check for this example.
    # You should use a more complete test in production.
    apt-get update
    apt-get install apache2 tcpdump -y
    a2ensite default-ssl
    a2enmod ssl
    echo "Example web page to pass health check" | \
    tee /var/www/html/index.html \
    systemctl restart apache2'
    
  2. Buat grup instance di region B.

    gcloud compute instance-groups managed create hub-natgw-region-b-mig \
        --region REGION_B \
        --size=2 \
        --template=hub-natgw-region-b-template
    

Membuat load balancer

Lakukan langkah-langkah berikut untuk membuat load balancer di region B.

  1. Membuat layanan backend.

    gcloud compute backend-services create hub-natgw-region-b-be \
        --load-balancing-scheme=internal \
        --protocol tcp \
        --region REGION_B\
        --health-checks=natgw-ilbnhop-health-check
    
  2. Tambahkan grup instance terkelola sebagai backend.

    gcloud compute backend-services add-backend hub-natgw-region-b-be \
        --instance-group=hub-natgw-region-b-mig \
        --instance-group-region=REGION_B
    
  3. Membuat aturan penerusan.

    gcloud compute forwarding-rules create hub-natgw-region-b \
        --load-balancing-scheme=internal \
        --network=hub-vpc \
        --subnet=hub-subnet-b \
        --address=10.0.1.10 \
        --ip-protocol=TCP \
        --ports=all \
        --allow-global-access \
        --backend-service=hub-natgw-region-b-be \
        --backend-service-region=REGION_B
    

Membuat rute hop berikutnya

Buat Load Balancer Jaringan passthrough internal sebagai rute next hop dengan tag jaringan yang telah ditentukan ilbanh-region-a.

gcloud compute routes create spoke1-natgw-region-b \
    --network=spoke1-vpc \
    --destination-range=0.0.0.0/0 \
    --next-hop-ilb=10.0.1.10 \
    --tags=ilbanh-region-a \
    --priority 900
gcloud compute routes create spoke2-natgw-region-b \
    --network=spoke2-vpc \
    --destination-range=0.0.0.0/0 \
    --next-hop-ilb=10.0.1.10 \
    --tags=ilbanh-region-a \
    --priority 900

Validasi failover regional

  1. Pastikan VM gateway NAT berjalan, dan tuliskan IP eksternal yang ditetapkan:

    gcloud compute instances list --filter="status:RUNNING AND name~natgw"
    
  2. Pastikan load balancer responsif dan rute dibuat seperti yang diharapkan:

    gcloud compute backend-services get-health hub-natgw-region-b-be --region REGION_B
    
    backend: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/regions/us-west2/instanceGroups/hub-natgw-region-b-mig
    status:
      healthStatus:
      - forwardingRule: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/regions/us-west2/forwardingRules/hub-natgw-region-b
        forwardingRuleIp: 10.0.1.10
        healthState: HEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/zones/us-west2-a/instances/<INSTANCE_NAME>
        ipAddress: 10.0.1.3
        port: 80
      - forwardingRule: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/regions/us-west2/forwardingRules/hub-natgw-region-b
        forwardingRuleIp: 10.0.1.10
        healthState: HEALTHY
        instance: https://www.googleapis.com/compute/v1/projects/<PROJECT_ID>/zones/us-west2-b/instances/<INSTANCE_NAME>
        ipAddress: 10.0.1.2
        port: 80
      kind: compute#backendServiceGroupHealth
    
  3. Pastikan Load Balancer Jaringan passthrough internal sebagai rute next hop ditambahkan ke VPC spoke dengan prioritas yang diharapkan dan menargetkan alamat IP Load Balancer Jaringan passthrough internal:

    gcloud compute routes list --filter="name~natgw"
    
  4. Kini Anda dapat memvalidasi failover regional dengan menghapus rute berprioritas tinggi dan mencatat apa yang terjadi. Beralihlah ke VM spoke1-client dan jalankan perintah berikut untuk mengirim permintaan curl setiap detik. Perintah ini juga melaporkan alamat IP eksternal yang digunakan:

    while true; do echo -n `date` && echo -n ' - ' && curl ifconfig.io --connect-timeout 1; done
    

    Hanya alamat IP eksternal yang ditetapkan ke gateway NAT di region A yang akan ditampilkan, karena merupakan rute prioritas tinggi. Biarkan perintah curl berjalan dan beralihlah ke Cloud Shell untuk menghapus rute ke Load Balancer Jaringan passthrough internal di region A untuk memverifikasi hasilnya:

    gcloud -q compute routes delete spoke1-natgw-region-a
    

    Di region B, alamat IP eksternal yang ditetapkan ke VM gateway NAT akan muncul, kemungkinan dengan periode nonaktif minimal, yang menunjukkan bahwa failover regional berhasil.

Membersihkan resource

  1. Hapus Load Balancer Jaringan passthrough internal sebagai rute hop berikutnya:

    gcloud -q compute routes delete spoke1-natgw-region-b
    
    gcloud -q compute routes delete spoke2-natgw-region-a
    
    gcloud -q compute routes delete spoke2-natgw-region-b
    
  2. Hapus resource dan backend Load Balancer Jaringan passthrough internal:

    gcloud -q compute forwarding-rules delete hub-natgw-region-a \
      --region REGION_A
    
    gcloud -q compute backend-services delete hub-natgw-region-a-be \
      --region REGION_A
    
    gcloud -q compute instance-groups managed delete hub-natgw-region-a-mig \
      --region REGION_A
    
    gcloud -q compute instance-templates delete hub-natgw-region-a-template
    
    gcloud -q compute forwarding-rules delete hub-natgw-region-b \
      --region REGION_B
    
    gcloud -q compute backend-services delete hub-natgw-region-b-be \
      --region REGION_B
    
    gcloud -q compute instance-groups managed delete hub-natgw-region-b-mig \
      --region REGION_B
    
    gcloud -q compute instance-templates delete hub-natgw-region-b-template
    
    gcloud -q compute health-checks delete natgw-ilbnhop-health-check
    
  3. Hapus VM klien:

    gcloud -q compute instances delete spoke1-client \
      --zone=ZONE_A
    
    gcloud -q compute instances delete spoke2-client \
      --zone=ZONE_A
    
  4. Hapus Peering Jaringan VPC, aturan firewall, subnet, dan VPC:

    gcloud -q compute networks peerings delete spoke2-to-hub \
      --network spoke2-vpc
    
    gcloud -q compute networks peerings delete spoke1-to-hub \
      --network spoke1-vpc
    
    gcloud -q compute networks peerings delete hub-to-spoke1 \
      --network hub-vpc
    
    gcloud -q compute networks peerings delete hub-to-spoke2 \
      --network hub-vpc
    
    gcloud -q compute firewall-rules delete spoke2-vpc-web-ping-dns
    
    gcloud -q compute firewall-rules delete spoke1-vpc-web-ping-dns
    
    gcloud -q compute firewall-rules delete hub-vpc-web-ping-dns
    
    gcloud -q compute firewall-rules delete hub-vpc-health-checks
    
    gcloud -q compute firewall-rules delete hub-vpc-allow-ssh
    
    gcloud -q compute firewall-rules delete spoke1-vpc-allow-ssh
    
    gcloud -q compute firewall-rules delete spoke2-vpc-allow-ssh
    
    gcloud -q compute networks subnets delete spoke1-subnet1 \
      --region REGION_A
    
    gcloud -q compute networks subnets delete spoke2-subnet1 \
      --region REGION_A
    
    gcloud -q compute networks subnets delete hub-subnet-a \
      --region REGION_A
    
    gcloud -q compute networks subnets delete hub-subnet-b \
      --region REGION_B
    
    gcloud -q compute networks delete spoke1-vpc
    
    gcloud -q compute networks delete spoke2-vpc
    
    gcloud -q compute networks delete hub-vpc
    

Langkah selanjutnya