เชื่อมต่อกับบริการภายในองค์กรผ่านเครือข่ายแบบผสมโดยใช้ Private Service Connect และพร็อกซี NEG TCP แบบผสม

1. บทนำ

ตัวจัดสรรภาระงานพร็อกซี TCP ภายในระดับภูมิภาคที่มีการเชื่อมต่อแบบผสมช่วยให้คุณสร้างบริการที่โฮสต์ภายในองค์กรหรือสภาพแวดล้อมระบบคลาวด์อื่นๆ ที่พร้อมใช้งานสำหรับไคลเอ็นต์ในเครือข่าย VPC ของคุณได้

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

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

ใน Codelab นี้ คุณจะสร้างตัวจัดสรรภาระงานพร็อกซี TCP ภายในที่มีการเชื่อมต่อแบบไฮบริดกับบริการภายในองค์กรโดยใช้กลุ่มปลายทางของเครือข่าย ผู้ใช้จาก VPC ผู้บริโภคจะสื่อสารกับบริการภายในองค์กรได้

a4fa0e406e7232fa.png

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

  • วิธีสร้าง ILB ของพร็อกซี TCP ที่มีบริการแบ็กเอนด์ NEG แบบไฮบริด
  • วิธีสร้าง Private Service Connect Producer (ไฟล์แนบบริการ) และ Consumer (กฎการส่งต่อ)
  • วิธีทดสอบและตรวจสอบการสื่อสารระหว่างผู้บริโภคกับผู้ผลิต

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

  • การสร้างเครือข่ายแบบผสม เช่น HA VPN, การเชื่อมต่อถึงกัน, SW-WAN
  • โปรเจ็กต์ Google Cloud

สร้างการเชื่อมต่อแบบผสม

Google Cloud และสภาพแวดล้อมภายในองค์กรหรือสภาพแวดล้อมระบบคลาวด์อื่นๆ ต้องเชื่อมต่อผ่านการเชื่อมต่อแบบผสม โดยใช้ไฟล์แนบ VLAN ของ Cloud Interconnect หรืออุโมงค์ข้อมูล Cloud VPN กับ Cloud Router เราขอแนะนำให้ใช้การเชื่อมต่อความพร้อมใช้งานสูง

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

เครือข่าย Google Cloud VPC ที่คุณใช้เพื่อกำหนดค่า Cloud Interconnect หรือ Cloud VPN เป็นเครือข่ายเดียวกับที่คุณใช้กำหนดค่าการทำให้การจัดสรรภาระงานแบบผสมใช้งานได้ ตรวจสอบว่าช่วง CIDR ของซับเน็ตของเครือข่าย VPC ไม่ขัดแย้งกับช่วง CIDR ระยะไกล เมื่อที่อยู่ IP ทับซ้อนกัน เส้นทางซับเน็ตจะมีความสำคัญมากกว่าการเชื่อมต่อระยะไกล

โปรดดูวิธีการที่หัวข้อต่อไปนี้

โฆษณาเส้นทางที่กำหนดเอง

ซับเน็ตด้านล่างต้องมีโฆษณาที่กำหนดเองจาก Cloud Router ไปยังเครือข่ายภายในองค์กรเพื่อให้แน่ใจว่าได้อัปเดตกฎไฟร์วอลล์ภายในองค์กรแล้ว

ซับเน็ต

คำอธิบาย

172.16.0.0/23

ซับเน็ตพร็อกซี TCP ที่ใช้สื่อสารกับบริการภายในองค์กรโดยตรง

22, 35.191.0.0/16

การตรวจสอบประสิทธิภาพการทำงานของ Google Cloud

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

อัปเดตโปรเจ็กต์เพื่อรองรับ Codelab

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

Inside Cloud Shell จะดำเนินการต่อไปนี้

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

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

สร้าง VPC ของ Producer

Inside Cloud Shell จะดำเนินการต่อไปนี้

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

สร้างซับเน็ต Producer

Inside Cloud Shell จะดำเนินการต่อไปนี้

gcloud compute networks subnets create subnet-201 --project=$psclab --range=10.10.1.0/24 --network=producer-vpc --region=us-central1

สร้างซับเน็ตของพร็อกซี TCP

การจัดสรรพร็อกซีจะอยู่ที่ระดับ VPC ไม่ใช่ระดับตัวจัดสรรภาระงาน คุณต้องสร้างซับเน็ตเฉพาะพร็อกซี 1 รายการในแต่ละภูมิภาคของเครือข่ายเสมือน (VPC) ที่คุณใช้ตัวจัดสรรภาระงานที่อิงตาม Envoy หากคุณทำให้ตัวจัดสรรภาระงานหลายรายการใช้งานได้ในภูมิภาคและเครือข่าย VPC เดียวกัน ตัวจัดสรรภาระงานดังกล่าวจะแชร์ซับเน็ตเฉพาะพร็อกซีเดียวกันสำหรับการจัดสรรภาระงาน

  1. ไคลเอ็นต์จะเชื่อมต่อกับที่อยู่ IP และพอร์ตของกฎการส่งต่อของตัวจัดสรรภาระงาน
  2. พร็อกซีแต่ละรายการจะรอฟังที่อยู่ IP และพอร์ตที่ระบุโดยกฎการส่งต่อของตัวจัดสรรภาระงานที่เกี่ยวข้อง พร็อกซีรายการใดรายการหนึ่งได้รับและสิ้นสุดการเชื่อมต่อเครือข่ายของไคลเอ็นต์
  3. พร็อกซีจะสร้างการเชื่อมต่อกับ VM หรือปลายทางแบ็กเอนด์ที่เหมาะสมใน NEG ตามที่กำหนดโดยแมป URL และบริการแบ็กเอนด์ของตัวจัดสรรภาระงาน

คุณต้องสร้างซับเน็ตเฉพาะพร็อกซี ไม่ว่าเครือข่ายของคุณจะใช้โหมดอัตโนมัติหรือที่กำหนดเองก็ตาม ซับเน็ตเฉพาะพร็อกซีต้องระบุที่อยู่ IP อย่างน้อย 64 รายการ ซึ่งสอดคล้องกับความยาวของคำนำหน้า /26 หรือสั้นกว่า ขนาดซับเน็ตที่แนะนำคือ /23 (ที่อยู่เฉพาะพร็อกซี 512)

Inside Cloud Shell จะดำเนินการต่อไปนี้

gcloud compute networks subnets create proxy-subnet-us-central \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=us-central1 \
  --network=producer-vpc \
  --range=172.16.0.0/23

สร้างซับเน็ต NAT ของ Private Service Connect

สร้างซับเน็ตเฉพาะอย่างน้อย 1 รายการเพื่อใช้กับ Private Service Connect หากใช้ Google Cloud Console เพื่อเผยแพร่บริการ คุณจะสร้างซับเน็ตได้ในระหว่างกระบวนการนี้ สร้างซับเน็ตในภูมิภาคเดียวกันกับตัวจัดสรรภาระงานของบริการ คุณแปลงซับเน็ตปกติเป็นซับเน็ตของ Private Service Connect ไม่ได้

Inside Cloud Shell จะดำเนินการต่อไปนี้

gcloud compute networks subnets create psc-nat-subnet --network=producer-vpc --region=us-central1 --range=100.100.10.0/24 --purpose=private-service-connect

สร้างกฎไฟร์วอลล์ของ Producer

กำหนดค่า กฎไฟร์วอลล์เพื่ออนุญาตการรับส่งข้อมูลระหว่างปลายทาง Private Service Connect กับไฟล์แนบของบริการ ใน Codelab ได้สร้างกฎไฟร์วอลล์ขาเข้าเพื่อให้ซับเน็ต 100.100.10.0/24 ของ NAT มีสิทธิ์เข้าถึงไฟล์แนบของบริการเชื่อมต่อบริการส่วนตัว (ตัวจัดสรรภาระงานภายใน)

Inside Cloud Shell จะดำเนินการต่อไปนี้

gcloud compute --project=$psclab firewall-rules create allow-to-ingress-nat-subnet --direction=INGRESS --priority=1000 --network=producer-vpc --action=ALLOW --rules=all --source-ranges=100.100.10.0/24

ภายใน Cloud Shell สร้างกฎการตรวจสอบประสิทธิภาพการทำงานของ fw-allow-health เพื่ออนุญาตให้การตรวจสอบประสิทธิภาพการทำงานของ Google Cloud เข้าถึงบริการภายในองค์กร (บริการแบ็กเอนด์) บนพอร์ต TCP 80

gcloud compute firewall-rules create fw-allow-health-check \
    --network=producer-vpc \
    --action=allow \
    --direction=ingress \
    --source-ranges=130.211.0.0/22,35.191.0.0/16 \
    --rules=tcp:80

สร้างกฎไฟร์วอลล์ขาเข้าที่อนุญาตให้บริการภายในองค์กรสื่อสารกับซับเน็ตของพร็อกซีบนพอร์ต 80

gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
    --network=producer-vpc \
    --action=allow \
    --direction=ingress \
    --source-ranges=172.16.0.0/23 \
    --rules=tcp:80

ตั้งค่า NEG การเชื่อมต่อแบบผสม

เมื่อสร้าง NEG ให้ใช้ ZONE ที่ลดระยะห่างทางภูมิศาสตร์ระหว่าง Google Cloud กับสภาพแวดล้อมภายในองค์กรหรือสภาพแวดล้อมระบบคลาวด์อื่น เช่น หากโฮสต์บริการในสภาพแวดล้อมภายในองค์กรที่แฟรงก์เฟิร์ต เยอรมนี คุณสามารถระบุโซน europe-west3-a ของ Google Cloud เมื่อสร้าง NEG

นอกจากนี้ หากใช้ Cloud Interconnect อยู่ ZONE ที่ใช้สร้าง NEG ควรอยู่ในภูมิภาคเดียวกับที่มีการกำหนดค่าไฟล์แนบ Cloud Interconnect ไว้

สำหรับภูมิภาคและโซนที่ใช้ได้ โปรดดูเอกสารประกอบของ Compute Engine: ภูมิภาคและโซนที่ใช้ได้

ภายใน Cloud Shell สร้าง NEG การเชื่อมต่อแบบไฮบริดโดยใช้คำสั่ง gcloud compute network-endpoint-groups create

gcloud compute network-endpoint-groups create on-prem-service-neg \
    --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
    --zone=us-central1-a \
    --network=producer-vpc

ภายใน Cloud Shell เพิ่มปลายทาง IP:Port ภายในองค์กรไปยัง NEG แบบไฮบริด

gcloud compute network-endpoint-groups update on-prem-service-neg \
    --zone=us-central1-a \
    --add-endpoint="ip=192.168.1.5,port=80"

กำหนดค่าตัวจัดสรรภาระงาน

ในขั้นตอนต่อไปนี้ คุณจะต้องกำหนดค่าตัวจัดสรรภาระงาน (กฎการส่งต่อ) และ เชื่อมโยงกับกลุ่มปลายทางของเครือข่าย

ภายใน Cloud Shell สร้างการตรวจสอบประสิทธิภาพการทำงานระดับภูมิภาคที่ส่งไปยังบริการภายในองค์กร

gcloud compute health-checks create tcp on-prem-service-hc \
    --region=us-central1 \
    --use-serving-port

ภายใน Cloud Shell สร้างบริการแบ็กเอนด์สำหรับแบ็กเอนด์ภายในองค์กร

gcloud compute backend-services create on-premise-service-backend \
   --load-balancing-scheme=INTERNAL_MANAGED \
   --protocol=TCP \
   --region=us-central1 \
   --health-checks=on-prem-service-hc \
   --health-checks-region=us-central1

ภายใน Cloud Shell ให้เพิ่มแบ็กเอนด์ NEG แบบไฮบริดลงในบริการแบ็กเอนด์ สำหรับ MAX_CONNECTIONS ให้ป้อนการเชื่อมต่อที่เกิดขึ้นพร้อมกันสูงสุดที่แบ็กเอนด์ควรจัดการ

gcloud compute backend-services add-backend on-premise-service-backend \
   --network-endpoint-group=on-prem-service-neg \
   --network-endpoint-group-zone=us-central1-a \
   --region=us-central1 \
   --balancing-mode=CONNECTION \
   --max-connections=100

สร้างพร็อกซีเป้าหมายภายใน Cloud Shell

gcloud compute target-tcp-proxies create on-premise-svc-tcpproxy \
   --backend-service=on-premise-service-backend \
   --region=us-central1

ภายใน Cloud Shell สร้างกฎการส่งต่อ (ILB)

สร้างกฎการส่งต่อโดยใช้คำสั่ง gcloud compute forward-rules create เลย

แทนที่ FWD_RULE_PORT ด้วยหมายเลขพอร์ตเดียวตั้งแต่ 1-65535 กฎการส่งต่อจะส่งต่อแพ็กเกตที่มีพอร์ตปลายทางที่ตรงกันเท่านั้น

gcloud compute forwarding-rules create tcp-ilb-psc \
   --load-balancing-scheme=INTERNAL_MANAGED \
   --network=producer-vpc \
   --subnet=subnet-201 \
   --ports=80 \
   --region=us-central1 \
   --target-tcp-proxy=on-premise-svc-tcpproxy \
   --target-tcp-proxy-region=us-central1

รับที่อยู่ IP ของตัวจัดสรรภาระงานภายใน

gcloud compute forwarding-rules describe tcp-ilb-psc --region=us-central1 | grep -i IPAddress:

Example output:
gcloud compute forwarding-rules describe tcp-ilb-psc --region=us-central1 | grep -i IPAddress:
IPAddress: 10.10.1.2

4. ตรวจสอบตัวจัดสรรภาระงาน

จาก Cloud Console ให้ไปที่บริการเครือข่าย → การจัดสรรภาระงาน → ตัวจัดสรรภาระงาน โปรดทราบว่า NEG 1 คือ "สีเขียว" ซึ่งบ่งบอกว่าตรวจสอบประสิทธิภาพการทำงานของบริการภายในองค์กรเรียบร้อยแล้ว

c16a93d1e185336b.png

การเลือก ‘on-premise-service-backend' จะให้ที่อยู่ IP ของส่วนหน้า

26db2d30747fd40a.png

5. ดูเส้นทางที่เรียนรู้จากภายในองค์กร

ไปที่เครือข่าย VPC → เส้นทาง โปรดทราบว่าซับเน็ต 192.168.1.0/27 ของบริการภายในองค์กรที่เรียนรู้

bae85fdc418f9811.png

6. ตรวจสอบการเชื่อมต่อกับบริการภายในองค์กร

เราจะสร้าง VM จาก Producer เพื่อทดสอบการเชื่อมต่อกับบริการภายในองค์กรหลังจากกำหนดค่าไฟล์แนบบริการเป็นรายการถัดไป

ภายใน Cloud Shell สร้างอินสแตนซ์ทดสอบใน VPN ของผู้ผลิต

gcloud compute instances create test-box-us-central1 \
    --zone=us-central1-a \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --subnet=subnet-201 \
    --no-address

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

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

ภายใน Cloud Shell สร้างอินสแตนซ์ทดสอบใน VPN ของผู้ผลิต

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

เข้าสู่ระบบ test-box-us-central1 โดยใช้ IAP ใน Cloud Shell เพื่อตรวจสอบการเชื่อมต่อกับบริการภายในองค์กรโดยสร้าง URL กับที่อยู่ IP ของยอดคงเหลือสำหรับภาระงาน โปรดลองอีกครั้งหากหมดเวลา

gcloud compute ssh test-box-us-central1 --project=$psclab --zone=us-central1-a --tunnel-through-iap

ทำการตรวจสอบการเชื่อมต่อด้วย Curl กับบริการภายในองค์กร เมื่อออกจาก VM ที่ตรวจสอบแล้วโดยกลับไปยังข้อความแจ้งของ Cloud Shell แทนที่ IP ของตัวจัดสรรภาระงานภายในตามผลลัพธ์ที่ระบุไว้ในขั้นตอนที่ 3 และ 4

deepakmichael@test-box-us-central1:~$ curl -v 10.10.1.2
* Expire in 0 ms for 6 (transfer 0x55b9a6b2f0f0)
*   Trying 10.10.1.2...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55b9a6b2f0f0)
* Connected to 10.10.1.2 (10.10.1.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.10.1.2
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Accept-Ranges: bytes
< ETag: "3380914763"
< Last-Modified: Mon, 05 Dec 2022 15:10:56 GMT
< Expires: Mon, 05 Dec 2022 15:42:38 GMT
< Cache-Control: max-age=0
< Content-Length: 37
< Date: Mon, 05 Dec 2022 15:42:38 GMT
< Server: lighttpd/1.4.53
< 
Welcome to my on-premise service!!

7. สร้างไฟล์แนบบริการ Private Service Connect

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

สร้างไฟล์แนบบริการ

Inside Cloud Shell สร้างไฟล์แนบบริการ

gcloud compute service-attachments create service-1 --region=us-central1 --producer-forwarding-rule=tcp-ilb-psc --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=psc-nat-subnet

ไม่บังคับ: หากใช้ VPC ที่แชร์ ให้สร้างไฟล์แนบบริการในโปรเจ็กต์บริการ

gcloud compute service-attachments create service-1 --region=us-central1 --producer-forwarding-rule=tcp-ilb-psc --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=projects/<hostproject>/regions/<region>/subnetworks/<natsubnet>

ตรวจสอบไฟล์แนบบริการ TCP

gcloud compute service-attachments describe service-1 --region us-central1

8. ไม่บังคับ: ไปที่ Network Services → Private Service Connect เพื่อดูไฟล์แนบบริการที่สร้างใหม่

bddc23a10d38d981.png

การเลือก Service-1 จะแสดงรายละเอียดที่มากขึ้น รวมถึง URI ของไฟล์แนบบริการที่ใช้โดยผู้บริโภคเพื่อสร้างการเชื่อมต่อบริการส่วนตัว จดบันทึก URI ไว้เนื่องจากจะใช้ในขั้นตอนถัดไป

5c0a74874536909d.png

รายละเอียดไฟล์แนบบริการ: projects/<projectname>/region/us-central1/serviceattachs/service-1

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

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

Inside Cloud Shell จะดำเนินการต่อไปนี้

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

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

สร้างซับเน็ต GCE ภายใน Cloud Shell

gcloud compute networks subnets create subnet-101 --project=$psclab --range=10.100.1.0/24 --network=consumer-vpc --region=us-central1

Inside Cloud Shell สร้างซับเน็ตปลายทางสำหรับผู้บริโภค

gcloud compute networks subnets create subnet-102 --project=$psclab --range=10.100.2.0/24 --network=consumer-vpc --region=us-central1

สร้างปลายทางของผู้บริโภค (กฎการส่งต่อ)

ภายใน Cloud Shell สร้างที่อยู่ IP แบบคงที่ที่จะใช้เป็นปลายทางของผู้บริโภค

gcloud compute addresses create psc-consumer-ip-1 --region=us-central1 --subnet=subnet-102 --addresses 10.100.2.10

มาใช้ URI ของไฟล์แนบบริการที่สร้างขึ้นก่อนหน้านี้เพื่อสร้างปลายทางสำหรับผู้บริโภค

สร้างปลายทางสำหรับผู้บริโภค Inside Cloud Shell

gcloud compute forwarding-rules create psc-consumer-1 --region=us-central1 --network=consumer-vpc --address=psc-consumer-ip-1 --target-service-attachment=projects/$psclab/regions/us-central1/serviceAttachments/service-1

10. ตรวจสอบ Consumer Private Service Connect - VPC ของผู้บริโภค

จาก VPC ของผู้บริโภค ให้ยืนยันว่าการเชื่อมต่อบริการส่วนตัวสำเร็จโดยไปที่บริการเครือข่าย → Private Service Connect → ปลายทางที่เชื่อมต่อ จดบันทึกการเชื่อมต่อ psc-consumer-1 และที่อยู่ IP ที่เกี่ยวข้องซึ่งเราสร้างไว้ก่อนหน้านี้

629d4cea87293a42.png

เมื่อเลือก psc-consumer-1 จะมีรายละเอียดการเพิ่มรวมถึง URI ของไฟล์แนบบริการ

18b132b458f698b4.png

11. ตรวจสอบ Consumer Private Service Connect - Producer VPC

จาก Producer VPC ให้ยืนยันว่าการเชื่อมต่อบริการส่วนตัวสำเร็จโดยไปที่บริการเครือข่าย → Private Service Connectบริการที่เผยแพร่ โปรดทราบว่าตอนนี้การเชื่อมต่อ Service-1 ที่เผยแพร่จะระบุกฎการส่งต่อ 1 รายการ (ปลายทางการเชื่อมต่อ)

3387b170742d7d8d.png

12. สร้างโซน DNS ส่วนตัวและ ระเบียน A

สร้างโซน DNS ส่วนตัวที่แมปกับปลายทางการเชื่อมต่อ PSC ซึ่งจะช่วยให้เข้าถึง Producer จากโฮสต์ภายใน VPC ได้อย่างราบรื่น

จาก Cloud Shell

gcloud dns --project=$psclab managed-zones create codelab-zone --description="" --dns-name="codelab.net." --visibility="private" --networks="consumer-vpc"

gcloud dns --project=$psclab record-sets create service1.codelab.net. --zone="codelab-zone" --type="A" --ttl="300" --rrdatas="10.100.2.10"

13. ตรวจสอบสิทธิ์เข้าถึงบริการ Producer ของผู้บริโภคโดยใช้ VM

เราจะสร้าง VM จาก VPC สำหรับผู้บริโภคเพื่อทดสอบการเชื่อมต่อกับบริการภายในองค์กรโดยการเข้าถึง service1.codelabs.net ซึ่งเป็นปลายทางของผู้บริโภค

ภายใน Cloud Shell สร้างอินสแตนซ์ทดสอบใน VPC ของผู้บริโภค

gcloud compute instances create consumer-vm \
    --zone=us-central1-a \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --subnet=subnet-101 \
    --no-address

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

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

ภายใน Cloud Shell สร้างอินสแตนซ์ทดสอบใน VPC ของผู้บริโภค

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

ลงชื่อเข้าสู่ระบบ Consumer-vm โดยใช้ IAP ใน Cloud Shell เพื่อตรวจสอบการเชื่อมต่อกับบริการภายในองค์กรโดยทำการ curl กับ dns FQDN service1.codelab.net โปรดลองอีกครั้งหากหมดเวลา

gcloud compute ssh consumer-vm --project=$psclab --zone=us-central1-a --tunnel-through-iap

ทำการตรวจสอบการเชื่อมต่อด้วย Curl กับบริการภายในองค์กร เมื่อออกจาก VM ที่ผ่านการตรวจสอบแล้วขณะกลับไปยังข้อความแจ้งของ Cloud Shell

ภายใน Cloud Shell ดำเนินการ Curl

$ curl -v service1.codelab.net
*   Trying 10.100.2.10...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x5650fc3390f0)
* Connected to service1.codelab.net (10.100.2.10) port 80 (#0)
> GET / HTTP/1.1
> Host: service1.codelab.net
> User-Agent: curl/7.64.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Type: text/html; charset=utf-8
< Accept-Ranges: bytes
< ETag: "3380914763"
< Last-Modified: Mon, 05 Dec 2022 15:10:56 GMT
< Expires: Mon, 05 Dec 2022 15:15:41 GMT
< Cache-Control: max-age=0
< Content-Length: 37
< Date: Mon, 05 Dec 2022 15:15:41 GMT
< Server: lighttpd/1.4.53
< 
Welcome to my on-premise service!!

ด้านล่างนี้เป็นตัวอย่างการบันทึกจากบริการภายในองค์กร โปรดทราบว่าที่อยู่ IP ต้นทาง 172.16.0.2 มาจากช่วงซับเน็ตของพร็อกซี TCP 172.16.0.0/23

6dafe24917c937cb.png

14. การล้างข้อมูลจากผู้ผลิต

ลบคอมโพเนนต์ Producer

ภายใน Cloud Shell จะลบคอมโพเนนต์ของผู้ผลิต

gcloud compute instances delete test-box-us-central1 --zone=us-central1-a --quiet

gcloud compute service-attachments delete service-1 --region=us-central1 --quiet 

gcloud compute forwarding-rules delete tcp-ilb-psc --region=us-central1 --quiet

gcloud compute target-tcp-proxies delete on-premise-svc-tcpproxy --region=us-central1 --quiet

gcloud compute backend-services delete on-premise-service-backend --region=us-central1 --quiet

gcloud compute network-endpoint-groups delete on-prem-service-neg --zone=us-central1-a --quiet

gcloud compute networks subnets delete psc-nat-subnet subnet-201 proxy-subnet-us-central --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap fw-allow-proxy-only-subnet allow-to-ingress-nat-subnet fw-allow-health-check --quiet

gcloud compute health-checks delete on-prem-service-hc --region=us-central1 --quiet

gcloud compute networks delete producer-vpc --quiet

15. การจัดระเบียบลูกค้า

ลบคอมโพเนนต์ผู้บริโภค

Inside Cloud Shell จะลบคอมโพเนนต์ของผู้บริโภค

gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-1 --region=us-central1 --quiet

gcloud compute addresses delete psc-consumer-ip-1 --region=us-central1 --quiet

gcloud compute networks subnets delete subnet-101 subnet-102 --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --quiet

gcloud dns record-sets delete service1.codelab.net --type=A --zone=codelab-zone --quiet

gcloud dns managed-zones delete codelab-zone --quiet 

gcloud compute networks delete consumer-vpc --quiet 

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

ขอแสดงความยินดี คุณได้กำหนดค่าและตรวจสอบ Private Service Connect กับพร็อกซี TCP เรียบร้อยแล้ว

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

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

ลองดู Codelab เหล่านี้...

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

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