1. مقدمة
واجهة Private Service Connect هي مورد يتيح لشبكة السحابة الإلكترونية الافتراضية الخاصة (VPC) للمُنتِج بدء اتصالات بوجهات مختلفة في شبكة VPC الاستهلاكية. قد تكون شبكات الإنتاج والمستهلكين في مشاريع ومؤسسات مختلفة.
إذا قبل مرفق شبكة اتصالاً من واجهة Private Service Connect، تخصّص خدمة Google Cloud للواجهة عنوان IP من الشبكة الفرعية للمستهلك والتي حدّدها مرفق الشبكة. شبكتا المستهلك والمنتج متصلان ويمكنهما الاتصال باستخدام عناوين IP داخلية.
يتشابه الاتصال بين مرفق شبكة وواجهة Private Service Connect مع الاتصال بين نقطة نهاية Private Service Connect ومرفق خدمة، ولكن هناك نوعان مختلفان من الاتصال:
- يتيح مرفق الشبكة لشبكة المنتج بدء اتصالات بشبكة مستهلك (خروج خدمة مُدارة)، بينما تتيح نقطة النهاية لشبكة مستهلك بدء اتصالات بشبكة المنتج (دخول الخدمة المُدارة).
- اتصال واجهة Private Service Connect عملية انتقالية. وهذا يعني أنه يمكن لشبكة المنتجين الاتصال بشبكات أخرى متصلة بشبكة المستهلك.
ما الذي ستقوم ببنائه
عليك إنشاء مرفق واحد من نوع psc-network في شبكة VPC للمستهلك، ما يؤدي إلى إنشاء واجهتَي PSC كخلفيات لجهاز موازنة الحمل الداخلي من المستوى 4. من المنتج VPC tiger سيرسل ملتفة إلى cosmo في backend-vpc. في سحابة VPC الخاصة بمنتج المنتج، عليك إنشاء مسار ثابت إلى حركة بيانات الوجهة 192.168.20.0/28 في المرحلة التالية كجهاز موازنة الحمل الداخلي الذي سيستخدم الواجهة الخلفية وواجهات(واجهات) PSC اللاحقة لتوجيه حركة البيانات إلى الكون. انظر الشكل 1 للحصول على نظرة عامة.
يمكن استخدام النهج نفسه مع الخدمات المُدارة من Google والتي يتم تبادلها مع شبكة VPC الخاصة بالعميل عند استخدام الوصول إلى الخدمة الخاصة.
على شكل 1
المعلومات التي ستطّلع عليها
- كيفية إنشاء مرفق شبكة
- كيف يمكن للمنتج استخدام مرفق شبكة لإنشاء واجهة PSC كخلفيات
- كيفية التواصل من المنتج إلى المستهلك باستخدام حزمة ILB في المرحلة التالية
- كيفية السماح بالوصول من الجهاز الافتراضي (VM) الخاص بالمنتِج إلى الجهاز الافتراضي (cosmo) الخاص بالمستهلك من خلال تبادل المعلومات بين شبكات VPC
المتطلبات
- مشروع Google Cloud
- أذونات "إدارة الهوية وإمكانية الوصول"
- Compute Network Admin (مشرف الشبكة الحاسوبية) (roles/compute.networkAdmin)
- مشرف مثيلات الحوسبة (roles/compute.instanceAdmin)
- Compute Security Admin (roles/compute.securityAdmin)
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
إنشاء الشبكة الفرعية لمرفق الشبكة الخاصة بـ 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
إنشاء شبكة VPC الخلفية
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud compute networks create backend-vpc --project=$projectid --subnet-mode=custom
إنشاء الشبكات الفرعية لشبكة VPC الخلفية
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud compute networks subnets create cosmo-subnet-1 --project=$projectid --range=192.168.20.0/28 --network=backend-vpc --region=us-central1
إنشاء قواعد جدار الحماية لـ backend-vpc
في Cloud Shell، يمكنك إنشاء قاعدة دخول لعدد الزيارات من الشبكة الفرعية لمرفق psc-network إلى cosmo
gcloud compute firewall-rules create allow-ingress-to-cosmo \
--network=backend-vpc \
--action=ALLOW \
--rules=ALL \
--direction=INGRESS \
--priority=1000 \
--source-ranges="192.168.10.0/28" \
--destination-ranges="192.168.20.0/28" \
--enable-logging
إعدادات جهاز توجيه السحابة الإلكترونية وترجمة عنوان الشبكة (NAT)
يتم استخدام ترجمة عنوان الشبكة في السحابة الإلكترونية في البرنامج التعليمي لتثبيت حزمة البرامج لأن الجهاز الافتراضي (VM) ليس له عنوان IP عام. تُتيح آلية Cloud NAT (ترجمة عنوان الشبكة) للأجهزة الافتراضية (VM) التي لها عناوين IP خاصة بالوصول إلى الإنترنت.
أنشئ داخل Cloud Shell جهاز توجيه السحابة الإلكترونية.
gcloud compute routers create cloud-router-for-nat --network backend-vpc --region us-central1
داخل Cloud Shell، أنشئ بوابة NAT.
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. تفعيل الشراء داخل التطبيق
للسماح لعمليات الشراء داخل التطبيق بالاتصال بمثيلات الأجهزة الافتراضية، أنشِئ قاعدة جدار حماية تعمل على:
- ينطبق ذلك على جميع مثيلات الأجهزة الافتراضية التي تريد أن تتوفّر إمكانية الوصول إليها من خلال استخدام الشراء داخل التطبيق.
- يسمح بالزيارات الواردة من نطاق IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي يستخدمها بروتوكول IAP لإعادة توجيه بروتوكول التحكم بالنقل.
داخل Cloud Shell، أنشئ قاعدة جدار الحماية للشراء داخل التطبيق.
gcloud compute firewall-rules create ssh-iap-consumer \
--network backend-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
5- إنشاء مثيلات الأجهزة الافتراضية للمستهلك
داخل 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 cosmo's backend server !!' | tee /var/www/html/index.html
EOF"
الحصول على عناوين IP للمثيلات وتخزينها:
داخل Cloud Shell، أدخِل وصفًا لمثيلات cosmo VM.
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 الذي سيستخدمه المنتج عند إنشاء واجهات اتصال الخدمة الخاصة. المثال التالي:
user$ gcloud compute network-attachments describe psc-network-attachment --region=us-central1
connectionPreference: ACCEPT_MANUAL
creationTimestamp: '2023-06-07T11:27:33.116-07:00'
fingerprint: 8SDsvG6TfYQ=
id: '5014253525248340730'
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 بين المستهلك وشبكة VPC الخلفية
سيتم إنشاء اتصال تبادل المعلومات بين شبكة VPC بين المستهلك وVPC في الخلفية. يكرّر ذلك كيفية إنشاء Google للاتصال بخوادم VPC الخاصة بالعملاء للخدمات المُدارة، بالإضافة إلى تبادل المعلومات بين المؤسسات لتوفير إمكانية الاتصال بالشبكة. يجب ضبط تبادل المعلومات بين شبكات VPC من كل شبكة VPC.
تبادل المعلومات بين شبكات VPC للمستهلك وتبادل المعلومات بين الشبكات في الخلفية
إنشاء اتصال تبادل المعلومات بين شبكة VPC من المستهلك إلى شبكة VPC الخلفية
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud compute networks peerings create consumer-to-backend-vpc \
--network=consumer-vpc \
--peer-project=$projectid \
--peer-network=backend-vpc \
--stack-type=IPV4_ONLY
إنشاء اتصال تبادل المعلومات بين شبكة VPC من الخلفية إلى العميل الافتراضي
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud compute networks peerings create backend-to-consumer-vpc \
--network=backend-vpc \
--peer-project=$projectid \
--peer-network=consumer-vpc \
--stack-type=IPV4_ONLY
التحقّق من تفاصيل حالة تبادل المعلومات بين شبكات VPC
داخل Cloud Shell، تأكَّد من أنّ تبادل المعلومات بين شبكات VPC مضمَّن في الحالة "نشِط". و "متصل" الولاية.
gcloud compute networks peerings list
مثال:
user@cloudshell$ gcloud compute networks peerings list
NAME: backend-to-consumer-vpc
NETWORK: backend-vpc
PEER_PROJECT: $projectid
PEER_NETWORK: consumer-vpc
STACK_TYPE: IPV4_ONLY
PEER_MTU:
IMPORT_CUSTOM_ROUTES: False
EXPORT_CUSTOM_ROUTES: False
STATE: ACTIVE
STATE_DETAILS: [2023-06-07T11:42:27.634-07:00]: Connected.
NAME: consumer-to-backend-vpc
NETWORK: consumer-vpc
PEER_PROJECT: $projectid
PEER_NETWORK: backend-vpc
STACK_TYPE: IPV4_ONLY
PEER_MTU:
IMPORT_CUSTOM_ROUTES: False
EXPORT_CUSTOM_ROUTES: False
STATE: ACTIVE
STATE_DETAILS: [2023-06-07T11:42:27.634-07:00]: Connected.
8. إعداد أداة الإنتاج
إنشاء سحابة 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
داخل Cloud Shell، أنشئ الشبكة الفرعية المستخدَمة لنمر المثيل.
gcloud compute networks subnets create prod-subnet-2 --project=$projectid --range=10.30.1.0/28 --network=producer-vpc --region=us-central1
داخل Cloud Shell، أنشئ الشبكة الفرعية المستخدَمة لجهاز موازنة الحمل الداخلي.
gcloud compute networks subnets create prod-subnet-3 --project=$projectid --range=172.16.10.0/28 --network=producer-vpc --region=us-central1
إعدادات جهاز توجيه السحابة الإلكترونية وترجمة عنوان الشبكة (NAT)
يتم استخدام ترجمة عنوان الشبكة في السحابة الإلكترونية في البرنامج التعليمي لتثبيت حزمة البرامج لأن الجهاز الافتراضي (VM) ليس له عنوان IP عام. تُتيح آلية Cloud NAT (ترجمة عنوان الشبكة) للأجهزة الافتراضية (VM) التي لها عناوين IP خاصة بالوصول إلى الإنترنت.
أنشئ داخل Cloud Shell جهاز توجيه السحابة الإلكترونية.
gcloud compute routers create cloud-router-for-nat-producer --network producer-vpc --region us-central1
داخل Cloud Shell، أنشئ بوابة NAT.
gcloud compute routers nats create cloud-nat-us-central1-producer --router=cloud-router-for-nat-producer --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
تفعيل الشراء داخل التطبيق
للسماح لعمليات الشراء داخل التطبيق بالاتصال بمثيلات الأجهزة الافتراضية، أنشِئ قاعدة جدار حماية تعمل على:
- ينطبق ذلك على جميع مثيلات الأجهزة الافتراضية التي تريد أن تتوفّر إمكانية الوصول إليها من خلال استخدام الشراء داخل التطبيق.
- يسمح بالزيارات الواردة من نطاق IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي يستخدمها بروتوكول IAP لإعادة توجيه بروتوكول التحكم بالنقل.
داخل Cloud Shell، أنشئ قاعدة جدار الحماية للشراء داخل التطبيق.
gcloud compute firewall-rules create ssh-iap-producer \
--network producer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
إنشاء مثيلات الجهاز الافتراضي (VM) الخاصة بالمنتِ
داخل 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=prod-subnet-2 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump"
9. إنشاء قواعد جدار الحماية للمنتج
في سحابة VPC الخاصة بأداة المنتج، أنشئ قاعدة جدار حماية دخول تسمح بالاتصال من prod-subnet-2 إلى جميع الحالات في POLICY-vpc.
داخل Cloud Shell، أنشئ قاعدة جدار حماية المنتج.
gcloud compute --project=$projectid firewall-rules create allow-tiger-ingress --direction=INGRESS --priority=1000 --network=producer-vpc --action=ALLOW --rules=all --source-ranges=10.30.1.0/28 --enable-logging
10. إنشاء واجهة Private Service Connect
واجهة Private Service Connect هي مورد يتيح لشبكة السحابة الإلكترونية الافتراضية الخاصة (VPC) للمُنتِج بدء اتصالات بوجهات مختلفة في شبكة VPC الاستهلاكية. قد تكون شبكات الإنتاج والمستهلكين في مشاريع ومؤسسات مختلفة.
إذا قبل مرفق شبكة اتصالاً من واجهة Private Service Connect، تخصّص خدمة Google Cloud للواجهة عنوان IP من الشبكة الفرعية للمستهلك والتي حدّدها مرفق الشبكة. شبكتا المستهلك والمنتج متصلان ويمكنهما الاتصال باستخدام عناوين IP داخلية.
ستنشئ في البرنامج التعليمي حالتين باستخدام مرفق اتصال الشبكة الخاص الذي سيكون الخلفية لجهاز موازنة التحميل الداخلي.
داخل Cloud Shell، أنشِئ واجهة Private Service Connect (أرنب) وأدرِج عنوان URL الخاص بـ psc-network-attachment UR الذي تم تحديده سابقًا من مرفق الشبكة الخاص بالناتج.
gcloud compute instances create rabbit --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 --metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump
sudo apt-get install apache2 -y
sudo service apache2 restart"
داخل Cloud Shell، أنشِئ واجهة Private Service Connect (fox) وأدرِج psc-network-attachment URI الذي تم تحديده سابقًا من مرفق الشبكة الخاص بالمخرجات.
gcloud compute instances create fox --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 --metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump
sudo apt-get install apache2 -y
sudo service apache2 restart"
التحقّق من الصحة المتعددة
تحقَّق من ضبط واجهة PSC باستخدام عنوان IP المناسب. ستستخدم vNIC0 الشبكة الفرعية للمنتج (10.20.1.0/28) وستستخدم vNIC1 شبكة intf-subnet للمستهلك (192.168.10.0/28).
gcloud compute instances describe rabbit --zone=us-central1-a | grep networkIP:
gcloud compute instances describe fox --zone=us-central1-a | grep networkIP:
مثال:
user$ gcloud compute instances describe rabbit --zone=us-central1-a | grep networkIP:
networkIP: 10.20.1.2
networkIP: 192.168.10.2
user$ gcloud compute instances describe fox --zone=us-central1-a | grep networkIP:
networkIP: 10.20.1.3
networkIP: 192.168.10.3
11. إنشاء وإضافة الأرانب والثعلب إلى مجموعة مثيلات غير مُدارة
في القسم التالي، ستقوم بإنشاء مجموعة مثيلات غير مُدارة تتكون من مثيلات واجهة PSC أرنب وثعلب.
داخل Cloud Shell، أنشئ مجموعة المثيلات غير المُدارة.
gcloud compute instance-groups unmanaged create psc-interface-instances-ig --project=$projectid --zone=us-central1-a
داخل Cloud Shell، أضف ثعلبًا وأرانبًا إلى مجموعة المثيل.
gcloud compute instance-groups unmanaged add-instances psc-interface-instances-ig --project=$projectid --zone=us-central1-a --instances=fox,rabbit
12. إنشاء فحص سلامة TCP وخدمات الخلفية وقاعدة إعادة التوجيه جدار حماية
داخل Cloud Shell، أنشئ فحص سلامة الخلفية.
gcloud compute health-checks create http hc-http-80 --port=80
إنشاء خدمة الخلفية من خلال Cloud Shell
gcloud compute backend-services create psc-interface-backend --load-balancing-scheme=internal --protocol=tcp --region=us-central1 --health-checks=hc-http-80
gcloud compute backend-services add-backend psc-interface-backend --region=us-central1 --instance-group=psc-interface-instances-ig --instance-group-zone=us-central1-a
إنشاء قاعدة إعادة التوجيه داخل Cloud Shell
gcloud compute forwarding-rules create psc-ilb --region=us-central1 --load-balancing-scheme=internal --network=producer-vpc --subnet=prod-subnet-3 --address=172.16.10.10 --ip-protocol=TCP --ports=all --backend-service=psc-interface-backend --backend-service-region=us-central1
من Cloud Shell، يمكنك إنشاء قاعدة جدار حماية لتفعيل عمليات التحقّق من الصحة في الخلفية.
gcloud compute firewall-rules create ilb-health-checks --allow tcp:80,tcp:443 --network producer-vpc --source-ranges 130.211.0.0/22,35.191.0.0/16
13. إنشاء جداول linux IP لواجهة(واجهات) PSC - أرنب
من مثيل واجهة PSC، يمكنك إعداد جداول عنوان IP في نظام التشغيل Linux للسماح بتواصل المنتج إلى الشبكات الفرعية للمستهلكين.
ابحث عن اسم نظام تشغيل الضيف في واجهة Private Service Connect.
لضبط التوجيه، يجب معرفة اسم نظام تشغيل الضيف لواجهة Private Service Connect، والذي يختلف عن اسم الواجهة في Google Cloud.
سجّل الدخول إلى psc-interface vm، vm، باستخدام بروتوكول IAP في Cloud Shell.
gcloud compute ssh rabbit --project=$projectid --zone=us-central1-a --tunnel-through-iap
في Cloud Shell، يمكنك الحصول على عنوان IP لمثيل psc-interface
ip a
مثال:
user@rabbit:~$ 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 59396sec preferred_lft 59396sec
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 66782sec preferred_lft 66782sec
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@rabbit:~$ 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.
جدول التحقّق من المسار
التحقّق من صحة المسارات الحالية في Cloud Shell
ip route show
على سبيل المثال،
user@rabbit:~$ 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
في Cloud Shell، أضِف المسار إلى cosmo-subnet-1
sudo ip route add 192.168.20.0/28 via 192.168.10.1 dev ens5
جدول التحقّق من المسار
في Cloud Shell، يمكنك التحقّق من صحة المسارات المُضافة.
ip route show
على سبيل المثال،
user@rabbit:~$ 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
إنشاء قواعد جداول عناوين IP
في Cloud Shell، تحقّق من صحة جداول عناوين IP الحالية.
sudo iptables -t nat -L -n -v
مثال:
user@rabbit:~$ sudo iptables -t nat -L -n -v
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 OUTPUT (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
تعديل جداول عناوين IP في Cloud Shell
sudo iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE
sudo sysctl net.ipv4.ip_forward=1
في Cloud Shell، تحقّق من صحة جداول IP المعدّلة.
sudo iptables -t nat -L -n -v
مثال:
user@rabbit:~$ sudo iptables -t nat -L -n -v
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 OUTPUT (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
0 0 MASQUERADE all -- * ens5 0.0.0.0/0 0.0.0.0/0
14. إنشاء جداول linux IP لواجهة(واجهات) PSC - ثعلب
من مثيل واجهة PSC، يمكنك إعداد جداول عنوان IP في نظام التشغيل Linux للسماح بتواصل المنتج إلى الشبكات الفرعية للمستهلكين.
ابحث عن اسم نظام تشغيل الضيف في واجهة Private Service Connect.
لضبط التوجيه، يجب معرفة اسم نظام تشغيل الضيف لواجهة Private Service Connect، والذي يختلف عن اسم الواجهة في Google Cloud.
افتح علامة تبويب جديدة في Cloud Shell وعدِّل إعدادات مشروعك.
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
سجّل الدخول إلى psc-interface vm، fox، باستخدام IAP في Cloud Shell.
gcloud compute ssh fox --project=$projectid --zone=us-central1-a --tunnel-through-iap
في Cloud Shell، يمكنك الحصول على عنوان IP لمثيل psc-interface
ip a
مثال:
user@fox:~$ 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:03 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 10.20.1.3/32 brd 10.20.1.3 scope global dynamic ens4
valid_lft 65601sec preferred_lft 65601sec
inet6 fe80::4001:aff:fe14:103/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:03 brd ff:ff:ff:ff:ff:ff
altname enp0s5
inet 192.168.10.3/32 brd 192.168.10.3 scope global dynamic ens5
valid_lft 63910sec preferred_lft 63910sec
inet6 fe80::4001:c0ff:fea8:a03/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@fox:~$ 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.
جدول التحقّق من المسار
التحقّق من صحة المسارات الحالية في Cloud Shell
ip route show
على سبيل المثال،
user@fox:~$ 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
في Cloud Shell، أضِف المسار إلى cosmo-subnet-1
sudo ip route add 192.168.20.0/28 via 192.168.10.1 dev ens5
جدول التحقّق من المسار
في Cloud Shell، يمكنك التحقّق من صحة المسارات المُضافة.
ip route show
على سبيل المثال،
user@fox:~$ 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
إنشاء قواعد جداول عناوين IP
في Cloud Shell، تحقّق من صحة جداول عناوين IP الحالية.
sudo iptables -t nat -L -n -v
مثال:
user@fox:~$ sudo iptables -t nat -L -n -v
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 OUTPUT (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
في Cloud Shell، يمكنك تعديل جداول عناوين IP.
sudo iptables -t nat -A POSTROUTING -o ens5 -j MASQUERADE
sudo sysctl net.ipv4.ip_forward=1
في Cloud Shell، تحقّق من صحة جداول IP المعدّلة.
sudo iptables -t nat -L -n -v
مثال:
user@fox:~$ sudo iptables -t nat -L -n -v
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 OUTPUT (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
0 0 MASQUERADE all -- * ens5 0.0.0.0/0 0.0.0.0/0
15. تعديل جدول المسار
في prod-vpc، أنشأ مسارًا ثابتًا للشبكة الفرعية للمستهلكين 192.168.20.0/28، وهي القفزة التالية كجهاز موازنة الحمل الداخلي. بعد الإنشاء، سيتم توجيه أي حزمة (داخل POLICY-vpc) إلى الوجهة 192.168.20.0/28 إلى جهاز موازنة الحمل الداخلي.
افتح علامة تبويب جديدة في Cloud Shell وعدِّل إعدادات مشروعك.
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
في Cloud Shell، يمكنك تعديل جدول المسار product-vpc بمسار ثابت.
gcloud beta compute routes create producer-to-cosmo-subnet-1 --project=$projectid --network=producer-vpc --priority=1000 --destination-range=192.168.20.0/28 --next-hop-ilb=psc-ilb --next-hop-ilb-region=us-central1
16. التحقّق من الاتصال الناجح من tiger إلى cosmo
التحقّق من صحة تمويج الشعر
لنؤكّد أنّ مثيل الجهاز الافتراضي (VM) للمنتِج، tiger، يمكنه التواصل مع مثيل المستهلك، cosmo من خلال تنفيذ حلقة منعطف.
افتح علامة تبويب جديدة في Cloud Shell وعدِّل إعدادات مشروعك.
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
سجِّل الدخول إلى مثيل النمور باستخدام الشراء داخل التطبيق في Cloud Shell.
gcloud compute ssh tiger --project=$projectid --zone=us-central1-a --tunnel-through-iap
قم بإجراء دائرة حول عنوان IP الخاص بـ cosmo المحدد سابقًا في البرنامج التعليمي من مثيل النمور.
curl -v <cosmo's IP Address>
مثال:
user@tiger:~$ 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: Fri, 09 Jun 2023 03:49:42 GMT
< Server: Apache/2.4.56 (Debian)
< Last-Modified: Fri, 09 Jun 2023 03:28:37 GMT
< ETag: "27-5fda9f6ea060e"
< Accept-Ranges: bytes
< Content-Length: 39
< Content-Type: text/html
<
Welcome to cosmo's backend server !!
تهانينا!! لقد تحققت بنجاح من الاتصال من POLICY-vpc إلى backend-vpc من خلال تنفيذ الأمر curl.
17. تَنظيم
من Cloud Shell، احذف مكوّنات الدليل التوجيهي.
gcloud compute instances delete cosmo --zone=us-central1-a --quiet
gcloud compute instances delete rabbit --zone=us-central1-a --quiet
gcloud compute instances delete fox --zone=us-central1-a --quiet
gcloud compute instances delete tiger --zone=us-central1-a --quiet
gcloud compute network-attachments delete psc-network-attachment --region=us-central1 --quiet
gcloud compute firewall-rules delete allow-ingress-to-cosmo allow-tiger-ingress ilb-health-checks ssh-iap-consumer ssh-iap-producer --quiet
gcloud beta compute routes delete producer-to-cosmo-subnet-1 --quiet
gcloud compute forwarding-rules delete psc-ilb --region=us-central1 --quiet
gcloud compute backend-services delete psc-interface-backend --region=us-central1 --quiet
gcloud compute instance-groups unmanaged delete psc-interface-instances-ig --zone=us-central1-a --quiet
gcloud compute health-checks delete hc-http-80 --quiet
gcloud compute networks subnets delete cosmo-subnet-1 prod-subnet prod-subnet-2 prod-subnet-3 intf-subnet --region=us-central1 --quiet
gcloud compute routers delete cloud-router-for-nat --region=us-central1 --quiet
gcloud compute routers delete cloud-router-for-nat-producer --region=us-central1 --quiet
gcloud compute networks delete consumer-vpc --quiet
gcloud compute networks delete producer-vpc --quiet
gcloud compute networks delete backend-vpc --quiet
18 تهانينا
تهانينا، لقد نجحت في إعداد والتحقّق من صحة واجهة اتصال الخدمة الخاصة، كما تم التحقّق من إمكانية اتصال المستهلك والمنتج من خلال تبادل المعلومات بين شبكات VPC.
لقد أنشأت البنية الأساسية للمستهلك، وأضفت مرفق شبكة سمح للمنتِج بإنشاء جهاز افتراضي متعدد المستويات للتواصل بين المستهلكين والمنتجين. لقد تعلّمت كيف يمكن استخدام واجهة PSC للاتصال بخدمات 1P/3P من خلال تبادل المعلومات بين الشبكات باستخدام تبادل المعلومات بين الشبكات باستخدام جهاز موازنة حمل داخلي ومسار ثابت في vpc الخاص بالمنتج.
يعتبر تطبيق Cosmopup الفيديوهات التعليمية رائعة.
الخطوات التالية
اطّلع على بعض هذه البرامج التعليمية...
- استخدام Private Service Connect لنشر الخدمات واستخدامها من خلال GKE
- استخدام Private Service Connect لنشر الخدمات واستخدامها
- الاتصال بالخدمات في مقر الشركة عبر الاتصال المختلط باستخدام Private Service Connect وجهاز موازنة حمل خادم وكيل TCP الداخلي
تعزيز القراءة الفيديوهات
- نظرة عامة حول Private Service Connect
- ما هو Private Service Connect؟
- أنواع أجهزة موازنة الحمل المتوافقة