อินเทอร์เฟซ Private Service Connect

1. บทนำ

อินเทอร์เฟซ Private Service Connect เป็นทรัพยากรที่ช่วยให้เครือข่าย Virtual Private Cloud (VPC) ของผู้ผลิตเริ่มต้นการเชื่อมต่อกับปลายทางต่างๆ ในเครือข่าย VPC ของผู้บริโภค เครือข่ายผู้ผลิตและผู้บริโภคอาจอยู่ในโปรเจ็กต์และองค์กรที่แตกต่างกันได้

หากไฟล์แนบเครือข่ายยอมรับการเชื่อมต่อจากอินเทอร์เฟซ Private Service Connect แล้ว Google Cloud จะจัดสรรที่อยู่ IP ให้กับอินเทอร์เฟซจากซับเน็ตของผู้ใช้ซึ่งระบุโดยไฟล์แนบเครือข่าย เครือข่ายของผู้บริโภคและผู้ผลิตเชื่อมต่อกันและสามารถสื่อสารโดยใช้ที่อยู่ IP ภายในได้

การเชื่อมต่อระหว่างไฟล์แนบเครือข่ายและอินเทอร์เฟซ Private Service Connect คล้ายกับการเชื่อมต่อระหว่างปลายทาง Private Service Connect กับไฟล์แนบบริการ แต่มีความแตกต่าง 2 ประการดังนี้

  • ไฟล์แนบเครือข่ายช่วยให้เครือข่ายผู้ผลิตเริ่มต้นการเชื่อมต่อกับเครือข่ายผู้ใช้ทั่วไป (ข้อมูลขาออกของบริการที่มีการจัดการ) ได้ ในขณะที่ปลายทางช่วยให้เครือข่ายผู้บริโภคเริ่มการเชื่อมต่อกับเครือข่ายผู้ผลิต (ข้อมูลขาเข้าของบริการที่มีการจัดการ) ได้
  • การเชื่อมต่ออินเทอร์เฟซ Private Service Connect เป็นแบบทรานซิที ซึ่งหมายความว่าเครือข่ายผู้ผลิตสามารถสื่อสารกับเครือข่ายอื่นๆ ที่เชื่อมต่อกับเครือข่ายของผู้บริโภคได้

สิ่งที่คุณจะสร้าง

ในบทแนะนำนี้ คุณจะสร้างสถาปัตยกรรมอินเทอร์เฟซ Private Service Connect (PSC) ที่ครอบคลุมซึ่งใช้กฎของ Cloud ไฟร์วอลล์ เพื่ออนุญาตและปฏิเสธการเชื่อมต่อจากผู้ผลิตไปยังการประมวลผลของผู้ใช้ ดังที่แสดงในรูปที่ 1

รูปที่ 1

d39bf35e55bdf9e6.png

คุณจะสร้างไฟล์แนบเครือข่าย PSC รายการเดียวใน VPC ของผู้บริโภค ซึ่งทำให้เกิดกรณีการใช้งานต่อไปนี้

  1. สร้างกฎไฟร์วอลล์ของ Cloud เพื่ออนุญาตการเข้าถึงจากหมีถึงสิงโต
  2. สร้างกฎของ Cloud ไฟร์วอลล์ปฏิเสธการเข้าถึงจากหมีเป็นเสือ
  3. สร้างกฎการเก็บรักษาของ Cloud เพื่ออนุญาตการเข้าถึงจาก Cosmo ไปจนถึง Bear

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

  • วิธีการสร้างไฟล์แนบเครือข่าย
  • ผู้ผลิตสามารถใช้ไฟล์แนบเครือข่ายเพื่อสร้างอินเทอร์เฟซ PSC ได้อย่างไร
  • วิธีสร้างการสื่อสารจากผู้ผลิตไปยังผู้บริโภค
  • วิธีอนุญาตการเข้าถึงจาก VM ผู้ผลิต (หมี) ไปยัง VM สำหรับผู้บริโภค (สิงโต)
  • วิธีบล็อกการเข้าถึงจาก VM ผู้ผลิต (หมี) ไปยัง VM ของผู้บริโภค (Tiger)
  • วิธีอนุญาตการเข้าถึงจาก VM สำหรับผู้บริโภค (cosmo) ไปยัง VM ของผู้ผลิต (หมี)

สิ่งที่คุณต้องมี

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

อัปเดตโปรเจ็กต์เพื่อรองรับบทแนะนำ

บทแนะนำนี้ใช้ $variables เพื่อช่วยในการติดตั้งใช้งานการกำหนดค่า gcloud ใน Cloud Shell

ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

3. การตั้งค่าผู้บริโภค

สร้าง VPC ของผู้บริโภค

ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

สร้างซับเน็ตของผู้บริโภค

ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้

gcloud compute networks subnets create lion-subnet-1 --project=$projectid --range=192.168.20.0/28 --network=consumer-vpc --region=us-central1

ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้

gcloud compute networks subnets create tiger-subnet-1 --project=$projectid --range=192.168.30.0/28 --network=consumer-vpc --region=us-central1

ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้

gcloud compute networks subnets create cosmo-subnet-1 --project=$projectid --range=192.168.40.0/28 --network=consumer-vpc --region=us-central1

สร้างซับเน็ตของไฟล์แนบเครือข่าย Private Service Connect

ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้

gcloud compute networks subnets create intf-subnet --project=$projectid --range=192.168.10.0/28 --network=consumer-vpc --region=us-central1

การกำหนดค่า Cloud Router และ NAT

มีการใช้ Cloud NAT ในบทแนะนำสำหรับการติดตั้งแพ็กเกจซอฟต์แวร์เนื่องจากอินสแตนซ์ VM ไม่มีที่อยู่ IP สาธารณะ Cloud NAT ช่วยให้ VM ที่มีที่อยู่ IP ส่วนตัวเข้าถึงอินเทอร์เน็ตได้

สร้างเราเตอร์ระบบคลาวด์ใน Cloud Shell

gcloud compute routers create cloud-router-for-nat --network consumer-vpc --region us-central1

สร้างเกตเวย์ NAT ภายใน Cloud Shell

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-for-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

4. เปิดใช้ IAP

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

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

สร้างกฎไฟร์วอลล์ IAP ใน Cloud Shell

gcloud compute firewall-rules create ssh-iap-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

5. สร้างอินสแตนซ์ VM ของผู้บริโภค

ใน Cloud Shell ให้สร้างอินสแตนซ์ VM ของผู้บริโภค เช่น lion

gcloud compute instances create lion \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=lion-subnet-1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to the lion app server !!' | tee /var/www/html/index.html
      EOF"

ใน Cloud Shell ให้สร้างอินสแตนซ์ VM สำหรับผู้บริโภคชื่อ Tiger

gcloud compute instances create tiger \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=tiger-subnet-1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to the tiger app server !!' | tee /var/www/html/index.html
      EOF"

ใน Cloud Shell ให้สร้างอินสแตนซ์ VM สำหรับผู้บริโภคชื่อ cosmo

gcloud compute instances create cosmo \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=cosmo-subnet-1 \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump
      sudo apt-get install apache2 -y
      sudo service apache2 restart
      echo 'Welcome to the cosmo app server !!' | tee /var/www/html/index.html
      EOF"

รับและจัดเก็บที่อยู่ IP ของอินสแตนซ์:

ภายใน Cloud Shell ให้ดำเนินการอธิบายอินสแตนซ์ VM ของ Lion และ Tiger

gcloud compute instances describe lion --zone=us-central1-a | grep  networkIP:

gcloud compute instances describe tiger --zone=us-central1-a | grep  networkIP:

gcloud compute instances describe cosmo --zone=us-central1-a | grep  networkIP:

6. ไฟล์แนบเครือข่ายของ Private Service Connect

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

สร้างไฟล์แนบเครือข่าย

สร้างไฟล์แนบเครือข่ายภายใน Cloud Shell

gcloud compute network-attachments create psc-network-attachment \
    --region=us-central1 \
    --connection-preference=ACCEPT_MANUAL \
    --producer-accept-list=$projectid \
    --subnets=intf-subnet

แสดงรายการไฟล์แนบของเครือข่าย

แสดงรายการไฟล์แนบเครือข่ายใน Cloud Shell

gcloud compute network-attachments list

อธิบายไฟล์แนบของเครือข่าย

อธิบายไฟล์แนบของเครือข่ายใน Cloud Shell

gcloud compute network-attachments describe psc-network-attachment --region=us-central1

จดบันทึก URI ของ psc-network-attachment ที่ผู้ผลิตจะใช้เมื่อสร้างอินเทอร์เฟซ Private Service Connect ตัวอย่างด้านล่าง

user@cloudshell$ gcloud compute network-attachments describe psc-network-attachment --region=us-central1 
connectionPreference: ACCEPT_MANUAL
creationTimestamp: '2023-06-06T20:57:12.623-07:00'
fingerprint: 4Yq6xAfaRO0=
id: '3235195049527328503'
kind: compute#networkAttachment
name: psc-network-attachment
network: https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/consumer-vpc
producerAcceptLists:
- $projectid
region: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/networkAttachments/psc-network-attachment
subnetworks:
- https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/subnetworks/intf-subnet

7. การตั้งค่าผู้ผลิต

สร้างเครือข่าย VPC ผู้ผลิต

ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้

gcloud compute networks create producer-vpc --project=$projectid --subnet-mode=custom

สร้างซับเน็ตผู้ผลิต

ภายใน Cloud Shell ให้สร้างซับเน็ตที่ใช้สำหรับ vNIC0 ของอินเทอร์เฟซ psc

gcloud compute networks subnets create prod-subnet --project=$projectid --range=10.20.1.0/28 --network=producer-vpc --region=us-central1

8. เปิดใช้ IAP

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

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

สร้างกฎไฟร์วอลล์ IAP ใน Cloud Shell

gcloud compute firewall-rules create ssh-iap-producer \
    --network producer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

9. สร้างอินเทอร์เฟซ Private Service Connect

อินเทอร์เฟซ Private Service Connect เป็นทรัพยากรที่ช่วยให้เครือข่าย Virtual Private Cloud (VPC) ของผู้ผลิตเริ่มต้นการเชื่อมต่อกับปลายทางต่างๆ ในเครือข่าย VPC ของผู้บริโภค เครือข่ายผู้ผลิตและผู้บริโภคอาจอยู่ในโปรเจ็กต์และองค์กรที่แตกต่างกันได้

หากไฟล์แนบเครือข่ายยอมรับการเชื่อมต่อจากอินเทอร์เฟซ Private Service Connect แล้ว Google Cloud จะจัดสรรที่อยู่ IP ให้กับอินเทอร์เฟซจากซับเน็ตของผู้ใช้ซึ่งระบุโดยไฟล์แนบเครือข่าย เครือข่ายของผู้บริโภคและผู้ผลิตเชื่อมต่อกันและสามารถสื่อสารโดยใช้ที่อยู่ IP ภายในได้

Inside Cloud Shell ให้สร้างอินเทอร์เฟซ Private Service Connect (หมี) แล้วแทรก psc-network-attachment URI ที่ระบุก่อนหน้านี้จากเอาต์พุตอธิบายไฟล์แนบเครือข่าย

gcloud compute instances create bear --zone us-central1-a --machine-type=f1-micro --can-ip-forward --network-interface subnet=prod-subnet,network=producer-vpc,no-address --network-interface network-attachment=https://www.googleapis.com/compute/v1/projects/$projectid/regions/us-central1/networkAttachments/psc-network-attachment

การตรวจสอบความถูกต้องแบบหลายเทคนิค

ตรวจสอบความถูกต้องของอินเทอร์เฟซ PSC ที่กำหนดค่าด้วยที่อยู่ IP ที่เหมาะสม vNIC0 จะใช้ prod-subnet ของผู้สร้าง (10.20.1.0/28) และ vNIC1 จะใช้ intf-subnet ของผู้บริโภค (192.168.10.0/28)

gcloud compute instances describe bear --zone=us-central1-a | grep networkIP:

ตัวอย่าง

user$ gcloud compute instances describe bear --zone=us-central1-a | grep networkIP:
  networkIP: 10.20.1.2
  networkIP: 192.168.10.2

10. อัปเดตกฎไฟร์วอลล์ของผู้บริโภค

สร้างกฎไฟร์วอลล์ของ Cloud เพื่ออนุญาตการเข้าถึงจากหมีถึงสิงโต

ใน Cloud Shell ให้สร้างกฎลำดับความสำคัญที่สูงขึ้นซึ่งอนุญาตข้อมูลขาออกจากช่วงที่อยู่ IP ของซับเน็ตไฟล์แนบ (intf-subnet) ไปยังปลายทางในช่วงที่อยู่ของ lion-subnet-1

gcloud compute firewall-rules create allow-limited-egress-to-lion \
    --network=consumer-vpc \
    --action=ALLOW \
    --rules=ALL \
    --direction=EGRESS \
    --priority=1000 \
    --source-ranges="192.168.10.0/28" \
    --destination-ranges="192.168.20.0/28" \
    --enable-logging

ใน Cloud Shell ให้สร้างกฎการอนุญาตขาเข้าที่ลบล้างกฎข้อมูลขาเข้าที่ปฏิเสธโดยนัยสำหรับการรับส่งข้อมูลจากซับเน็ต psc-network-attachment

gcloud compute firewall-rules create allow-ingress \
--network=consumer-vpc \
--action=ALLOW \
--rules=ALL \
--direction=INGRESS \
--priority=1000 \
--source-ranges="192.168.10.0/28" \
--enable-logging

สร้างกฎของ Cloud ไฟร์วอลล์ปฏิเสธการเข้าถึงทุกช่วงจากหมี (รวมเสือ)

ใน Cloud Shell ให้สร้างกฎที่มีลำดับความสำคัญต่ำที่ปฏิเสธการรับส่งข้อมูลขาออกทั้งหมดจากช่วงที่อยู่ IP ของซับเน็ตของไฟล์แนบเครือข่าย

gcloud compute firewall-rules create deny-all-egress \
    --network=consumer-vpc \
    --action=DENY \
    --rules=ALL \
    --direction=EGRESS \
    --priority=65534 \
    --source-ranges="192.168.10.0/28" \
    --destination-ranges="0.0.0.0/0" \
    --enable-logging

สร้างกฎการเก็บรักษาของ Cloud เพื่ออนุญาตการเข้าถึงจาก Cosmo ไปจนถึง Bear

ใน Cloud Shell ให้สร้างกฎการอนุญาตขาเข้าที่ลบล้างกฎข้อมูลขาเข้าที่ปฏิเสธโดยนัยสำหรับการรับส่งข้อมูลจากซับเน็ต psc-network-attachment

gcloud compute firewall-rules create vm-subnet-allow-ingress \
    --network=consumer-vpc \
    --action=ALLOW \
    --rules=ALL \
    --direction=INGRESS \
    --priority=1000 \
    --source-ranges="192.168.40.0/28" \
    --destination-ranges="192.168.10.0/28" \
    --enable-logging

11. สร้างเส้นทาง Linux สำหรับอินเทอร์เฟซ PSC

จากอินสแตนซ์อินเทอร์เฟซ PSC ให้กำหนดค่าเส้นทาง Linux เพื่ออนุญาตการสื่อสารของผู้ผลิตกับซับเน็ตของผู้บริโภค

ค้นหาชื่อระบบปฏิบัติการของผู้เข้าร่วมของอินเทอร์เฟซ Private Service Connect

หากต้องการกำหนดค่าการกำหนดเส้นทาง คุณต้องทราบชื่อระบบปฏิบัติการของผู้เข้าร่วมของอินเทอร์เฟซ Private Service Connect ซึ่งแตกต่างจากชื่ออินเทอร์เฟซใน Google Cloud

Inside Cloud Shell ให้เปิดแท็บใหม่และดำเนินการต่อไปนี้

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

เข้าสู่ระบบ VM ของอินเทอร์เฟซ PSC โดยใช้ IAP ใน Cloud Shell

gcloud compute ssh bear --project=$projectid --zone=us-central1-a --tunnel-through-iap

รับที่อยู่ IP ของอินสแตนซ์อินเทอร์เฟซ psc ใน Cloud Shell

ip a

ตัวอย่าง

user@bear:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:0a:14:01:02 brd ff:ff:ff:ff:ff:ff
    altname enp0s4
    inet 10.20.1.2/32 brd 10.20.1.2 scope global dynamic ens4
       valid_lft 85991sec preferred_lft 85991sec
    inet6 fe80::4001:aff:fe14:102/64 scope link 
       valid_lft forever preferred_lft forever
3: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 42:01:c0:a8:0a:02 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    inet 192.168.10.2/32 brd 192.168.10.2 scope global dynamic ens5
       valid_lft 85991sec preferred_lft 85991sec
    inet6 fe80::4001:c0ff:fea8:a02/64 scope link 
       valid_lft forever preferred_lft forever

ค้นหา IP เกตเวย์ของอินเทอร์เฟซ PSC

ในรายการอินเทอร์เฟซเครือข่าย ให้ค้นหาและจัดเก็บชื่ออินเทอร์เฟซที่เชื่อมโยงกับที่อยู่ IP ของอินเทอร์เฟซ Private Service Connect เช่น ens5 (vNIC1)

หากต้องการกำหนดค่าการกำหนดเส้นทาง คุณต้องทราบที่อยู่ IP ของเกตเวย์เริ่มต้นของอินเทอร์เฟซ Private Service Connect

ใน Cloud Shell เราจะใช้ 1 เนื่องจากอินเทอร์เฟซ PSC เชื่อมโยงกับ vNIC1

curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo

ตัวอย่างเช่น สร้าง gw 192.168.10.1 เริ่มต้น

user@bear:~$ curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/1/gateway -H "Metadata-Flavor: Google" && echo
192.168.10.1

เพิ่มเส้นทางสำหรับซับเน็ตของผู้บริโภค

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

ในอินสแตนซ์หมี ให้เพิ่มเส้นทางไปยังซับเน็ตของผู้บริโภค

sudo ip route add 192.168.20.0/28 via 192.168.10.1 dev ens5
sudo ip route add 192.168.30.0/28 via 192.168.10.1 dev ens5
sudo ip route add 192.168.40.0/28 via 192.168.10.1 dev ens5

ตรวจสอบตารางเส้นทาง

ใน Cloud Shell ให้ตรวจสอบเส้นทางที่เพิ่มใหม่

ip route show

ตัวอย่างเช่น

user@bear:~$ ip route show
default via 10.20.1.1 dev ens4 
10.20.1.0/28 via 10.20.1.1 dev ens4 
10.20.1.1 dev ens4 scope link 
192.168.10.0/28 via 192.168.10.1 dev ens5 
192.168.10.1 dev ens5 scope link 
192.168.20.0/28 via 192.168.10.1 dev ens5 
192.168.30.0/28 via 192.168.10.1 dev ens5 
192.168.40.0/28 via 192.168.10.1 dev ens5 

12. ดูการเชื่อมต่อ "หมีกับสิงโต" ที่ประสบความสำเร็จ

ขอยืนยันว่าอินสแตนซ์ VM ของผู้ผลิตหมีสามารถสื่อสารกับอินสแตนซ์ของผู้บริโภคอย่าง lion โดยใช้การเล่น curl

จากตัวอย่างหมี ให้ทำการขดดูที่อยู่ IP ของสิงโตที่ระบุก่อนหน้านี้ในบทแนะนำจากตัวอย่างหมี

curl -v <lions IP Address>

ตัวอย่าง

user@bear:~$ curl -v 192.168.20.2
*   Trying 192.168.20.2:80...
* Connected to 192.168.20.2 (192.168.20.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 192.168.20.2
> User-Agent: curl/7.74.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Tue, 06 Jun 2023 03:53:08 GMT
< Server: Apache/2.4.56 (Debian)
< Last-Modified: Mon, 05 Jun 2023 19:41:26 GMT
< ETag: "1e-5fd6716a1e11b"
< Accept-Ranges: bytes
< Content-Length: 30
< Content-Type: text/html
< 
Welcome to lion app server !!
* Connection #0 to host 192.168.20.2 left intact

13. ตรวจสอบการเชื่อมต่อ "หมีกับเสือ" ถูกบล็อก

โปรดยืนยันว่ากฎไฟร์วอลล์ขาออกกำลังบล็อกการเข้าถึงจากหมีจนถึงเสือโดยการดูบันทึกไฟร์วอลล์

จากเซสชัน Cloud Console ใหม่ ให้ไปที่การบันทึก → เครื่องมือสำรวจบันทึก → เลือกแสดงการค้นหา

2ae597e6d970cddf.png

วางสตริงการค้นหาด้านล่างในช่องค้นหา แล้วเลือกสตรีม

jsonPayload.rule_details.reference=&quot;network:consumer-vpc/firewall:deny-all-egress&quot;

30d7bfae315f2ee3.png

จากตัวอย่างหมี ให้ทำการขดดูที่อยู่ IP ของเสือที่ระบุไว้ก่อนหน้านี้ในบทแนะนำจากตัวอย่างหมี เคอร์ลิงจะหมดเวลาในที่สุด

curl -v <tiger's IP Address>

ตัวอย่าง

user@bear:~$ curl -v 192.168.30.2 
*   Trying 192.168.30.2:80...
* connect to 192.168.30.2 port 80 failed: Connection timed out
* Failed to connect to 192.168.30.2 port 80: Connection timed out
* Closing connection 0
curl: (28) Failed to connect to 192.168.30.2 port 80: Connection timed out

ตรวจสอบว่า Log Explorer ได้บันทึกบันทึกไฟร์วอลล์ที่ถูกปฏิเสธ เลือกรายการบันทึกและขยายช่องที่ซ้อนกันเพื่อดูข้อมูลเมตา

5c42a6587300be55.png

14. ตรวจสอบการเชื่อมต่อ Cosmo to Bear ว่าประสบความสำเร็จ

เปิดแท็บ Cloud Shell ใหม่และอัปเดตการตั้งค่าโปรเจ็กต์

ภายใน Cloud Shell ให้ดำเนินการต่อไปนี้

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

เข้าสู่ระบบอินสแตนซ์ Cosmo โดยใช้ IAP ใน Cloud Shell

gcloud compute ssh cosmo --project=$projectid --zone=us-central1-a --tunnel-through-iap

ใน Cloud Shell ให้ทำคำสั่ง ping กับที่อยู่ IP vNIV1 ของหมีที่ระบุก่อนหน้านี้ในบทแนะนำ

ping <bears vNIC1 IP Address>

ตัวอย่าง

user@cosmo:~$ ping 192.168.10.2 -c 5
PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=0.277 ms
64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=0.288 ms
64 bytes from 192.168.10.2: icmp_seq=3 ttl=64 time=0.265 ms
64 bytes from 192.168.10.2: icmp_seq=4 ttl=64 time=0.264 ms
64 bytes from 192.168.10.2: icmp_seq=5 ttl=64 time=0.366 ms

15. ล้างข้อมูล

ลบคอมโพเนนต์บทแนะนำจาก Cloud Shell

gcloud compute instances delete bear --zone=us-central1-a --quiet

gcloud compute instances delete lion --zone=us-central1-a --quiet

gcloud compute instances delete tiger --zone=us-central1-a --quiet

gcloud compute instances delete cosmo --zone=us-central1-a --quiet

gcloud compute network-attachments delete psc-network-attachment --region=us-central1 --quiet

gcloud compute firewall-rules delete allow-ingress allow-limited-egress-to-lion deny-all-egress ssh-iap-consumer ssh-iap-producer vm-subnet-allow-ingress --quiet

gcloud compute networks subnets delete cosmo-subnet-1 intf-subnet lion-subnet-1 prod-subnet tiger-subnet-1 --region=us-central1 --quiet

gcloud compute routers delete cloud-router-for-nat --region=us-central1 --quiet 

gcloud compute networks delete consumer-vpc --quiet

gcloud compute networks delete producer-vpc --quiet

16. ขอแสดงความยินดี

ขอแสดงความยินดี คุณได้กำหนดค่าและตรวจสอบอินเทอร์เฟซ Private Service Connect รวมถึงการเชื่อมต่อของผู้ใช้และผู้ผลิตเรียบร้อยแล้วด้วยการใช้ไฟร์วอลล์

คุณสร้างโครงสร้างพื้นฐานของผู้บริโภค และเพิ่มไฟล์แนบเครือข่ายที่อนุญาตให้ผู้ผลิตสร้าง VM แบบมัลตินิกเพื่อเชื่อมการสื่อสารระหว่างผู้บริโภคและผู้ผลิต คุณได้เรียนรู้วิธีสร้างกฎไฟร์วอลล์ในเครือข่าย VPC ของผู้บริโภคที่อนุญาตให้เชื่อมต่อกับอินสแตนซ์ใน VPC ของผู้บริโภคและผู้ผลิตแล้ว

Cosmopup คิดว่าบทแนะนำยอดเยี่ยม!!

e6d3675ca7c6911f.jpeg

สิ่งที่ต้องทำต่อไป

ดูบทแนะนำบางส่วนเหล่านี้...

อ่านเพิ่มเติมและ วิดีโอ

เอกสารอ้างอิง