Codelab เกี่ยวกับเส้นทางตามนโยบาย (PBR)

1. บทนำ

เส้นทางตามนโยบาย

เส้นทางตามนโยบายจะช่วยให้คุณเลือกการ Hop ถัดไปโดยอิงตามที่อยู่ IP ปลายทางของแพ็กเกตได้มากกว่า คุณสามารถจับคู่การเข้าชมตามโปรโตคอลและที่อยู่ IP ต้นทางได้เช่นกัน ระบบจะเปลี่ยนเส้นทางการรับส่งข้อมูลที่ตรงกันไปยังตัวจัดสรรภาระงานเครือข่ายภายใน การดำเนินการนี้จะช่วยคุณแทรกอุปกรณ์ เช่น ไฟร์วอลล์ ลงในเส้นทางการจราจรของข้อมูลในเครือข่ายได้

เมื่อสร้างเส้นทางตามนโยบาย คุณจะเลือกทรัพยากรที่สามารถประมวลผลการรับส่งข้อมูลของเส้นทางนั้นได้ เส้นทางนี้ใช้ได้กับสิ่งต่อไปนี้

  • เครือข่ายทั้งหมด: อินสแตนซ์เครื่องเสมือน (VM), เกตเวย์ VPN และการเชื่อมต่อถึงกันทั้งหมด
  • การใช้แท็กเครือข่าย: เลือกอินสแตนซ์ VM ใน VPC
  • ภูมิภาคการเชื่อมต่อถึงกัน: การรับส่งข้อมูลทั้งหมดที่เข้าสู่เครือข่าย VPC โดยใช้ไฟล์แนบ VLAN สำหรับภูมิภาค

ฮอพถัดไปของเส้นทางตามนโยบายต้องเป็นตัวจัดสรรภาระงานเครือข่ายภายในที่ถูกต้อง ซึ่งอยู่ในเครือข่าย VPC เดียวกับเส้นทางตามนโยบาย

ตัวจัดสรรภาระงานเครือข่ายภายในใช้การแฮชแบบสมมาตรโดยค่าเริ่มต้น ดังนั้นการรับส่งข้อมูลจึงเข้าถึงอุปกรณ์เดียวกันได้ในเส้นทางขาออกและพาธกลับโดยไม่ต้องกำหนดค่า NAT ของต้นทาง

เส้นทางตามนโยบายจะมีลำดับความสำคัญสูงกว่าเส้นทางประเภทอื่น ยกเว้นเส้นทางส่งกลับแบบพิเศษ

หากเส้นทางที่อิงตามนโยบาย 2 เส้นทางมีลำดับความสำคัญเหมือนกัน Google Cloud จะใช้อัลกอริทึมภายในเชิงกำหนดเพื่อเลือกเส้นทางตามนโยบายเดียว โดยจะละเว้นเส้นทางอื่นๆ ที่มีลำดับความสำคัญเท่ากัน เส้นทางตามนโยบายจะไม่ใช้การจับคู่คำนำหน้าที่ยาวที่สุด และเลือกเฉพาะเส้นทางที่มีลำดับความสำคัญสูงสุด

คุณสามารถสร้างกฎเดียวสำหรับการเข้าชมทางเดียวหรือหลายกฎเพื่อจัดการการเข้าชมแบบ 2 ทิศทาง

หากต้องการใช้เส้นทางตามนโยบายกับ Cloud Interconnect เส้นทางดังกล่าวต้องใช้กับการเชื่อมต่อ Cloud Interconnect ทั้งหมดทั่วทั้งภูมิภาค เส้นทางตามนโยบายจะใช้ไม่ได้กับการเชื่อมต่อ Cloud Interconnect แต่ละรายการเท่านั้น

อินสแตนซ์ VM ที่ได้รับการรับส่งข้อมูลจากเส้นทางตามนโยบายต้องเปิดใช้การส่งต่อ IP

ข้อควรพิจารณาเกี่ยวกับ PBR

จำเป็นต้องมีการกำหนดค่าพิเศษเพื่อใช้เส้นทางตามนโยบายในลักษณะต่อไปนี้

เช่น การใช้ PBR กับ GKE, PSC หรือกับ PGA/PSA

ดูรายละเอียดเพิ่มเติมเกี่ยวกับ PBR ที่ใช้ GKE ได้ที่นี่ และส่วนข้อจำกัดทั่วไปของ PBR ได้ที่นี่

สิ่งที่คุณจะได้เรียนรู้

  • วิธีกำหนดค่าเส้นทางตามนโยบาย

สิ่งที่ต้องมี

  • ความรู้ในการทำให้อินสแตนซ์ใช้งานได้และการกำหนดค่าคอมโพเนนต์เครือข่าย
  • ความรู้เกี่ยวกับการกำหนดค่าไฟร์วอลล์ VPC

2. สภาพแวดล้อมการทดสอบ

Codelab นี้จะใช้ประโยชน์จาก VPC เดี่ยว ในสภาพแวดล้อมนี้จะมีทรัพยากรในการประมวลผล 2 รายการคือ Clienta และ Clientb ในสภาพแวดล้อมนี้ซึ่งจะส่งแพ็กเก็ตไปยังทรัพยากรเซิร์ฟเวอร์อื่น การใช้ PBR และตัวกรองเราจะบังคับการรับส่งข้อมูลจากไคลเอ็นต์ผ่านทรัพยากรการประมวลผลอื่นสำหรับการบังคับใช้ไฟร์วอลล์ ขณะที่การรับส่งข้อมูลของไคลเอ็นต์จะไปที่เซิร์ฟเวอร์โดยตรง แผนภาพด้านล่างจะแสดงเส้นทาง

bff32b01ada8e9ad.png

ในแผนภาพด้านบน ในทางเทคนิค ควรมี ILB (ตัวจัดสรรภาระงานภายในเครือข่าย) สำหรับเส้นทาง PBR ส่วนนี้ถูกตัดออกเพื่อให้แผนภาพดูง่ายขึ้น

3. ก่อนเริ่มต้น

Codelab ต้องใช้โปรเจ็กต์เดียว

จาก Cloudshell:

export project_id=`gcloud config list --format="value(core.project)"`
export region=us-central1
export zone=us-central1-a
export prefix=codelab-pbr

4. เปิดใช้ API

หากยังไม่ได้ดำเนินการ ให้เปิดใช้ API เพื่อใช้ผลิตภัณฑ์

จาก Cloudshell:

gcloud services enable compute.googleapis.com
gcloud services enable networkconnectivity.googleapis.com

5. สร้างเครือข่าย VPC และซับเน็ต

เครือข่าย VPC

สร้าง VPC ของ Codelab-pbr-vpc:

จาก Cloudshell:

gcloud compute networks create $prefix-vpc --subnet-mode=custom 

ซับเน็ต

สร้างเครือข่ายย่อยที่เกี่ยวข้องในภูมิภาคที่เลือก:

จาก Cloudshell:

gcloud compute networks subnets create $prefix-vpc-subnet \
   --range=10.10.10.0/24 --network=$prefix-vpc --region=${region}

6. สร้างกฎไฟร์วอลล์

หากต้องการอนุญาตให้ IAP เชื่อมต่อกับอินสแตนซ์ VM ให้สร้างกฎของไฟร์วอลล์ที่มีลักษณะดังนี้

  • ใช้กับอินสแตนซ์ VM ทั้งหมดที่คุณต้องการให้เข้าถึงได้โดยใช้ IAP
  • อนุญาตการรับส่งข้อมูลขาเข้าจากช่วง IP 35.235.240.0/20 ช่วงนี้ประกอบด้วยที่อยู่ IP ทั้งหมดที่ IAP ใช้สำหรับการส่งต่อ TCP

จาก Cloudshell:

gcloud compute firewall-rules create $prefix-allow-iap-proxy \
--direction=INGRESS \
--priority=1000 \
--network=$prefix-vpc \
--action=ALLOW \
--rules=tcp:22 \
--source-ranges=35.235.240.0/20

วิธีอนุญาตพอร์ต HTTP มาตรฐาน (TCP 80) และโปรโตคอล ICMP ไปยังเซิร์ฟเวอร์

  • ใช้กับทรัพยากรที่มีแท็กเครือข่าย "เซิร์ฟเวอร์"
  • อนุญาตข้อมูลขาเข้าจากทุกต้นทาง

จาก Cloudshell:

gcloud compute firewall-rules create $prefix-allow-http-icmp \
--direction=INGRESS \
--priority=1000 \
--network=$prefix-vpc \
--action=ALLOW \
--rules=tcp:80,icmp \
--source-ranges=0.0.0.0/0 \
--target-tags=server

หากต้องการให้ FW รับแพ็กเก็ตได้ ให้อนุญาตการรับส่งข้อมูลขาเข้าในโปรโตคอลและพอร์ตทั้งหมด

  • ใช้กับทรัพยากรที่มีแท็กเครือข่าย "fw"
  • อนุญาตข้อมูลขาเข้าจากต้นทาง 10.10.10.0/24

จาก Cloudshell:

gcloud compute firewall-rules create $prefix-fw-allow-ingress \
--direction=INGRESS \
--priority=1000 \
--network=$prefix-vpc \
--action=ALLOW \
--rules=all \
--source-ranges=10.10.10.0/24 \
--target-tags=fw

เพื่ออนุญาตการตรวจสอบประสิทธิภาพการทำงาน

  • ใช้กับทรัพยากรที่มีแท็กเครือข่าย "fw"
  • อนุญาตข้อมูลขาเข้าจากช่วงการตรวจสอบประสิทธิภาพการทำงาน

จาก Cloudshell:

gcloud compute firewall-rules create $prefix-allow-hc-ingress \
--direction=INGRESS \
--priority=1000 \
--network=$prefix-vpc \
--action=ALLOW \
--rules=tcp:80 \
--source-ranges=130.211.0.0/22,35.191.0.0/16 \
--target-tags=fw

7. สร้าง Cloud Router และ Cloud NAT

วัตถุประสงค์ของส่วนนี้คือให้เครื่องเสมือนส่วนตัวดาวน์โหลดแพ็กเกจซอฟต์แวร์ที่เหมาะสมจากอินเทอร์เน็ต

สร้างเราเตอร์ระบบคลาวด์

จาก Cloudshell:

gcloud compute routers create ${prefix}-cr \
--region=${region} \
--network=${prefix}-vpc

สร้างเกตเวย์ Cloud NAT

จาก Cloudshell:

gcloud compute routers nats create ${prefix}-nat-gw-${region} \
--router=${prefix}-cr \
--router-region=${region} \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges

8. สร้างอินสแตนซ์การประมวลผล

สร้างอินสแตนซ์การประมวลผล ClientA, ClientB, FW และเซิร์ฟเวอร์ดังนี้

จาก Cloudshell:

gcloud compute instances create clienta \
   --subnet=$prefix-vpc-subnet \
   --no-address \
   --private-network-ip=10.10.10.10 \
   --zone $zone \
   --tags client \
   --metadata startup-script='#! /bin/bash
apt-get update'

จาก Cloudshell:

gcloud compute instances create clientb \
   --subnet=$prefix-vpc-subnet \
   --no-address \
   --private-network-ip=10.10.10.11 \
   --zone $zone \
   --tags client \
   --metadata startup-script='#! /bin/bash
apt-get update'

จาก Cloudshell:

gcloud compute instances create server \
   --subnet=$prefix-vpc-subnet \
   --no-address \
   --private-network-ip=10.10.10.200 \
   --zone $zone \
   --tags server \
   --metadata startup-script='#! /bin/bash
sudo su
apt-get update
apt-get -y install tcpdump
apt-get -y install nginx
cat > /var/www/html/index.html << EOF
<html><body><p>Server</p></body></html>
EOF'

จาก Cloudshell:

gcloud compute instances create fw \
   --subnet=$prefix-vpc-subnet \
   --can-ip-forward \
   --no-address \
   --private-network-ip=10.10.10.75 \
   --zone $zone \
   --tags fw \
   --metadata startup-script='#! /bin/bash
apt-get update
sudo apt-get -y install tcpdump
sudo apt-get -y install nginx
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -I FORWARD -d 10.10.10.200 -j REJECT'

9. ทดสอบการเชื่อมต่อโดยไม่ใช้ PBR

SSH ไปยัง VM การประมวลผลของไคลเอ็นต์ที่เราเพิ่งสร้างและยืนยันการเชื่อมต่อจากทั้ง 2 ไคลเอ็นต์ไปยังเซิร์ฟเวอร์

จาก cloudshell1 ลงชื่อเข้าสู่ระบบไปยัง clienta:

gcloud compute ssh clienta --zone=$zone --tunnel-through-iap

เรียกใช้คำสั่งต่อไปนี้

ping 10.10.10.200 -c 5
curl 10.10.10.200/index.html

การใช้คำสั่ง ping และ curl จะต้องเสร็จสมบูรณ์

เอาต์พุต:

root@clienta:~$ ping 10.10.10.200 -c 5
PING 10.10.10.200 (10.10.10.200) 56(84) bytes of data.
64 bytes from 10.10.10.200: icmp_seq=1 ttl=64 time=1.346 ms
64 bytes from 10.10.10.200: icmp_seq=2 ttl=64 time=0.249 ms
64 bytes from 10.10.10.200: icmp_seq=3 ttl=64 time=0.305 ms
64 bytes from 10.10.10.200: icmp_seq=4 ttl=64 time=0.329 ms
64 bytes from 10.10.10.200: icmp_seq=5 ttl=64 time=0.240 ms
root@clienta:~$ curl 10.10.10.200/index.html
<html><body><p>Server</p></body></html>

เปิดแท็บ Cloudshell เพิ่มเติมโดยคลิก +

3722d8574c3812b1.png

จากตัวแปรตั้งค่า cloudshell2 สำหรับการใช้งาน:

export project_id=`gcloud config list --format="value(core.project)"`
export region=us-central1
export zone=us-central1-a
export prefix=codelab-pbr

จาก cloudshell2 SSH ไปยังไคลเอ็นต์:

gcloud compute ssh clientb --zone=$zone --tunnel-through-iap

เรียกใช้คำสั่งต่อไปนี้

ping 10.10.10.200 -c 5
curl 10.10.10.200/index.html

การใช้คำสั่ง ping และ curl จะต้องเสร็จสมบูรณ์

เอาต์พุต:

root@clientb:~$ ping 10.10.10.200 -c 5
PING 10.10.10.200 (10.10.10.200) 56(84) bytes of data.
64 bytes from 10.10.10.200: icmp_seq=1 ttl=64 time=1.346 ms
64 bytes from 10.10.10.200: icmp_seq=2 ttl=64 time=0.249 ms
64 bytes from 10.10.10.200: icmp_seq=3 ttl=64 time=0.305 ms
64 bytes from 10.10.10.200: icmp_seq=4 ttl=64 time=0.329 ms
64 bytes from 10.10.10.200: icmp_seq=5 ttl=64 time=0.240 ms
root@clientb:~$ curl 10.10.10.200/index.html
<html><body><p>Server</p></body></html>

จากนั้นออกจากเทอร์มินัล VM แล้วกลับไปที่ Cloudshell

10. สร้างกลุ่มอินสแตนซ์

สร้างกลุ่มอินสแตนซ์ที่ไม่มีการจัดการสำหรับ VM เฟิร์มแวร์

จาก Cloudshell:

gcloud compute instance-groups unmanaged create pbr-uig --zone=$zone

เพิ่มอินสแตนซ์ fw ลงในกลุ่มอินสแตนซ์ที่ไม่มีการจัดการ

จาก Cloudshell:

gcloud compute instance-groups unmanaged add-instances pbr-uig --instances=fw --zone=$zone

11. สร้างการตรวจสอบประสิทธิภาพการทำงาน

สร้างการตรวจสอบประสิทธิภาพการทำงานสำหรับบริการแบ็กเอนด์ เราจะดำเนินการตรวจสอบประสิทธิภาพการทำงานของพอร์ต TCP 80 อย่างง่าย

จาก Cloudshell:

gcloud compute health-checks create tcp $prefix-hc-tcp-80 --region=$region --port 80

12. สร้างบริการแบ็กเอนด์

สร้างบริการแบ็กเอนด์เพื่อแนบกับกฎการส่งต่อ

จาก Cloudshell:

gcloud compute backend-services create be-pbr --load-balancing-scheme=internal --protocol=tcp --region=$region --health-checks=$prefix-hc-tcp-80 --health-checks-region=$region

ตอนนี้ให้เพิ่มกลุ่มอินสแตนซ์ลงในบริการแบ็กเอนด์

จาก Cloudshell:

gcloud compute backend-services add-backend be-pbr --region=$region --instance-group=pbr-uig --instance-group-zone=$zone

13. สร้างกฎการส่งต่อ

จาก Cloudshell:

gcloud compute forwarding-rules create fr-pbr --region=$region --load-balancing-scheme=internal --network=$prefix-vpc --subnet=$prefix-vpc-subnet --ip-protocol=TCP --ports=ALL --backend-service=be-pbr --backend-service-region=$region --address=10.10.10.25 --network-tier=PREMIUM

14. สร้างกฎ PBR

กฎ PBR นี้จะมีผลกับไคลเอ็นต์ และจะกำหนดเส้นทางการรับส่งข้อมูล IPv4 ทั้งหมดไปยังกฎการส่งต่อ 10.10.10.25 หาก IP ต้นทางคือ 10.10.10.10/32 (ที่อยู่ของไคลเอ็นต์) และ IP ปลายทางคือ 10.10.10.0/24

ซึ่งหมายความว่า Clienta จะจับคู่ PBR และ ไม่ใช่ clientb

จาก Cloudshell:

gcloud network-connectivity policy-based-routes create pbr-client \
   --network=projects/$project_id/global/networks/$prefix-vpc \
   --next-hop-ilb-ip=10.10.10.25 \
   --source-range=10.10.10.10/32 \
   --destination-range=10.10.10.0/24 \
   --protocol-version=IPv4 \
   --priority=1000 \
   --tags=client

กฎ PBR นี้จะมีผลกับเซิร์ฟเวอร์ และจะกำหนดเส้นทางการรับส่งข้อมูลแบบ IPv4 ทั้งหมดไปยังกฎการส่งต่อ 10.10.10.25 หาก IP ต้นทางเป็น 10.10.10.200/32 และ IP ปลายทางคือ 10.10.10.10/32

จาก Cloudshell:

gcloud network-connectivity policy-based-routes create pbr-server \
   --network=projects/$project_id/global/networks/$prefix-vpc \
   --next-hop-ilb-ip=10.10.10.25 \
   --source-range=10.10.10.200/32 \
   --destination-range=10.10.10.10/32 \
   --protocol-version=IPv4 \
   --priority=2000 \
   --tags=server

15. ทดสอบการเชื่อมต่อกับ PBR

ตอนนี้เราจะยืนยันฟังก์ชันการทำงาน PBR "ส่งต่อ" อินสแตนซ์ได้รับการกำหนดค่าด้วย iptables เพื่อปฏิเสธคำขอที่ส่งไปยังเซิร์ฟเวอร์ หาก PBR ใช้งานได้ คำขอที่เคยใช้งานใน clienta ก่อนหน้านี้จะล้มเหลวขณะที่ Clientb ยังคงทํางานสําเร็จ

SSH ไปยัง VM ประมวลผลของไคลเอ็นต์ และทำการทดสอบเดียวกัน

จาก Cloudshell1:

gcloud compute ssh clienta --zone=$zone --tunnel-through-iap

เรียกใช้คำสั่งต่อไปนี้

ping 10.10.10.200 -c 5
curl 10.10.10.200/index.html

เอาต์พุต:

root@clienta:~$ ping 10.10.10.200 -c 5
PING 10.10.10.200 (10.10.10.200) 56(84) bytes of data.
From 10.10.10.75 icmp_seq=1 Destination Port Unreachable
From 10.10.10.75 icmp_seq=2 Destination Port Unreachable
From 10.10.10.75 icmp_seq=3 Destination Port Unreachable
From 10.10.10.75 icmp_seq=4 Destination Port Unreachable
From 10.10.10.75 icmp_seq=5 Destination Port Unreachable
root@clienta:~$ curl 10.10.10.200/index.html
curl: (7) Failed to connect to 10.10.10.200 port 80: Connection refused

เนื่องจากคำขอล้มเหลว เราจึงยืนยันได้ว่า PBR กำลังกำหนดเส้นทางการรับส่งข้อมูลสำหรับไคลเอ็นต์ไปยังอินสแตนซ์ fw ซึ่งกำหนดค่าไว้ให้บล็อกการรับส่งข้อมูลนี้

SSH ไปยังไคลเอ็นต์และทำการทดสอบการเชื่อมต่อเดียวกัน

จาก Cloudshell2:

gcloud compute ssh clientb --zone=$zone --tunnel-through-iap

เรียกใช้คำสั่งต่อไปนี้

ping 10.10.10.200 -c 5
curl 10.10.10.200/index.html

เอาต์พุต:

root@clientb:~$ ping 10.10.10.200 -c 5
PING 10.10.10.200 (10.10.10.200) 56(84) bytes of data.
64 bytes from 10.10.10.200: icmp_seq=1 ttl=63 time=0.361 ms
64 bytes from 10.10.10.200: icmp_seq=2 ttl=63 time=0.475 ms
64 bytes from 10.10.10.200: icmp_seq=3 ttl=63 time=0.379 ms
root@clientb:~$ curl 10.10.10.200
<html><body><p>Server</p></body></html>

ดังที่คุณเห็น คำขอจากไคลเอ็นต์ไปยังเซิร์ฟเวอร์ดำเนินการสำเร็จ เนื่องจากคำขอไม่ตรงกับกฎ PBR สำหรับ IP ต้นทาง

16. [ไม่บังคับ] การตรวจสอบด้วยการจับภาพบนไฟร์วอลล์

ในส่วนที่ไม่บังคับนี้ คุณมีโอกาสตรวจสอบ PBR โดยรับการบันทึกแพ็กเก็ตบน VM ของไฟร์วอลล์

คุณควรยังคงมีการเชื่อมต่อ SSH ใน cloudshell1 และ cloudshell2 กับไคลเอ็นต์และไคลเอ็นต์

เปิดแท็บ Cloudshell เพิ่มเติมโดยคลิก +

5eb3a9956f7e41a2.png

จาก cloudshell3 ให้ตั้งค่าตัวแปรดังนี้

export project_id=`gcloud config list --format="value(core.project)"`
export region=us-central1
export zone=us-central1-a
export prefix=codelab-pbr

SSH ไปยังส่งต่อ:

gcloud compute ssh fw --zone=$zone --tunnel-through-iap

เรียกใช้คำสั่งต่อไปนี้ใน fw (cloudshell3)

sudo tcpdump -i any icmp -nn

จาก clienta (cloudshell1) ให้ทําการทดสอบ ping

ping 10.10.10.200 -c 5

จาก clientb (cloudshell2) ให้ทําการทดสอบ ping

ping 10.10.10.200 -c 5

เอาต์พุตใน fw (cloudshell 3):

root@fw:~$ sudo tcpdump -i any icmp -nn
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
17:07:42.215297 ens4  In  IP 10.10.10.10 > 10.10.10.200: ICMP echo request, id 25362, seq 1, length 64
17:07:42.215338 ens4  Out IP 10.10.10.75 > 10.10.10.10: ICMP 10.10.10.200 protocol 1 port 51064 unreachable, length 92
17:07:43.216122 ens4  In  IP 10.10.10.10 > 10.10.10.200: ICMP echo request, id 25362, seq 2, length 64
17:07:43.216158 ens4  Out IP 10.10.10.75 > 10.10.10.10: ICMP 10.10.10.200 protocol 1 port 30835 unreachable, length 92
17:07:44.219064 ens4  In  IP 10.10.10.10 > 10.10.10.200: ICMP echo request, id 25362, seq 3, length 64
17:07:44.219101 ens4  Out IP 10.10.10.75 > 10.10.10.10: ICMP 10.10.10.200 protocol 1 port 2407 unreachable, length 92

คุณจะไม่เห็นแพ็กเก็ตใดๆ ใน tcpdump จากไคลเอ็นต์ (10.10.10.11) เนื่องจาก PBR ไม่เกี่ยวข้อง

ออกจาก Cloud Shell เพื่อล้างข้อมูลทรัพยากร

17. ขั้นตอนการทำความสะอาด

จาก Cloud Shell ให้นำกฎ PBR, กฎการส่งต่อ, บริการแบ็กเอนด์, การตรวจสอบประสิทธิภาพการทำงาน, อินสแตนซ์, อินสแตนซ์การประมวลผล, NAT, Cloud Router และกฎไฟร์วอลล์ออก

gcloud -q network-connectivity policy-based-routes delete pbr-client

gcloud -q network-connectivity policy-based-routes delete pbr-server

gcloud -q compute forwarding-rules delete fr-pbr --region=$region

gcloud -q compute backend-services delete be-pbr --region=$region

gcloud -q compute health-checks delete $prefix-hc-tcp-80 --region=$region

gcloud -q compute instance-groups unmanaged delete pbr-uig --zone=$zone

gcloud -q compute instances delete clienta --zone=$zone
gcloud -q compute instances delete clientb --zone=$zone
gcloud -q compute instances delete server --zone=$zone
gcloud -q compute instances delete fw --zone=$zone


gcloud -q compute routers nats delete ${prefix}-nat-gw-${region} \
--router=$prefix-cr --router-region=$region

gcloud -q compute routers delete $prefix-cr --region=$region

gcloud -q compute firewall-rules delete $prefix-allow-iap-proxy
gcloud -q compute firewall-rules delete $prefix-allow-http-icmp
gcloud -q compute firewall-rules delete $prefix-fw-allow-ingress
gcloud -q compute firewall-rules delete $prefix-allow-hc-ingress

นำซับเน็ตและ VPC ออก:

gcloud -q compute networks subnets delete $prefix-vpc-subnet \
    --region $region

gcloud -q compute networks delete $prefix-vpc

18. ยินดีด้วย

ขอแสดงความยินดีที่เรียน Codelab จนจบ

สรุปประเด็นที่ได้พูดถึง

  • เส้นทางตามนโยบาย