1. مقدمة
تحدث خدمة Private Service Connect ثورة في طريقة استهلاك المؤسسات للخدمات ضِمن منظومة Google Cloud المتكاملة، إذ توفّر دعمًا كاملاً لعناوين الإصدار السادس من بروتوكول الإنترنت (IPv6) إلى جانب الإصدار الرابع من بروتوكول الإنترنت (IPv4). يجمع هذا الحلّ بين الأمان المحسّن والاتصال المبسّط والأداء المحسّن والإدارة المركزية، ما يجعله حلاً مثاليًا للمؤسسات التي تبحث عن نموذج قوي وموثوق وفعّال لاستهلاك الخدمات وجاهز لمستقبل الشبكات. سواء كنت بصدد إنشاء سحابة إلكترونية مختلطة أو مشاركة الخدمات في مؤسستك أو الوصول إلى خدمات تابعة لجهات خارجية، توفّر PSC مسارًا سلسًا وآمنًا للاستفادة من إمكانات Google Cloud الكاملة، مع الاستفادة من مزايا IPv6.
ما ستتعلمه
- المزايا الرئيسية لمعيار PSC 64
- الترجمة المتاحة في Private Service Connect 64
- نظرة عامة على Dual Stack ULA
- متطلبات الشبكة
- إنشاء خدمة مقدّم في Private Service Connect
- إنشاء نقطة نهاية Private Service Connect
- تأسيس اتصال بنقطة نهاية Private Service Connect من جهاز افتراضي IPv4
- تأسيس اتصال بنقطة نهاية Private Service Connect من جهاز افتراضي يعمل بمكدس بروتوكول مزدوج
المتطلبات
- مشروع Google Cloud لديه أذونات المالك
2. ما ستنشئه
ستنشئ شبكة Producer لتفعيل خادم ويب Apache كخدمة منشورة من خلال Private Service Connect (PSC). بعد النشر، عليك اتّخاذ الإجراءات التالية للتحقّق من إمكانية الوصول إلى خدمة "المنتج":
- من شبكة VPC الخاصة بالمستهلك، استهدِف نقطة نهاية PSC التي تستخدم IPv4 للوصول إلى خدمة المنتج من خلال مثيل GCE الذي يستخدم IPv4.
- من شبكة VPC الخاصة بالمستهلك، استهدِف نقطة نهاية PSC التي تستخدم بروتوكول IPv6 للوصول إلى خدمة مقدّم الخدمة.
المزايا الرئيسية لبرنامج PSC 64
- التكامل السلس: تتكامل خدمة PSC بسلاسة مع شبكات VPC التي تم ضبطها لاستخدام IPv6، ما يتيح لك الاستفادة من مزايا عناوين IPv6 في اتصالات الخدمة.
- إتاحة استخدام بروتوكولَي IPv4 وIPv6: تتيح خدمة PSC عمليات الضبط التي تستخدم كلا البروتوكولَين، ما يتيح استخدام IPv4 وIPv6 في الوقت نفسه ضِمن شبكة VPC نفسها، ما يوفّر المرونة ويضمن توافق شبكتك مع المستقبل.
- عملية انتقال مبسطة: تسهّل خدمة PSC عملية الانتقال إلى IPv6 من خلال السماح لك بتبنّي IPv6 تدريجيًا إلى جانب البنية الأساسية الحالية لبروتوكول IPv4.
- دعم المنتج: لا يُشترط على المنتج استخدام حزمة مزدوجة، بل يمكن للمستهلك اختيار نشر نقطة نهاية PSC للإصدار الرابع من بروتوكول الإنترنت (IPv4) أو الإصدار السادس (IPv6).
3- الترجمة المتوافقة مع Private Service Connect 64 و66
اعتبارات المستهلكين
يمكن أن يكون إصدار IP لنقطة النهاية إما IPv4 أو IPv6، ولكن ليس كليهما. يمكن للمستهلكين استخدام عنوان IPv4 إذا كانت الشبكة الفرعية للعنوان مكدّسة بشكل فردي. يمكن للمستهلكين استخدام عنوان IPv4 أو IPv6 إذا كانت الشبكة الفرعية للعنوان ثنائية الحزمة. يمكن للمستهلكين ربط نقاط نهاية IPv4 وIPv6 بمرفق الخدمة نفسه، ما قد يكون مفيدًا لنقل الخدمات إلى IPv6.
اعتبارات خاصة بالمنتج
يحدّد إصدار IP لقاعدة إعادة التوجيه الخاصة بالمنتج إصدار IP لمرفق الخدمة وحركة البيانات التي تخرج من مرفق الخدمة. يمكن أن يكون إصدار IP لملحق الخدمة إما IPv4 أو IPv6، ولكن ليس كليهما. يمكن للمنتجين استخدام عنوان الإصدار الرابع من بروتوكول الإنترنت (IPv4) إذا كانت الشبكة الفرعية للعنوان ذات حزمة واحدة. يمكن للمنتجين استخدام عنوان IPv4 أو IPv6 إذا كانت الشبكة الفرعية للعنوان ثنائية الحزمة.
يجب أن يكون إصدار IP لعنوان IP الخاص بقاعدة إعادة التوجيه الخاصة بالمنتج متوافقًا مع نوع حزمة الشبكة الفرعية NAT الخاصة بربط الخدمة.
- إذا كانت قاعدة إعادة التوجيه الخاصة بالمنتج هي IPv4، يمكن أن تكون الشبكة الفرعية NAT ذات حزمة واحدة أو حزمة مزدوجة.
- إذا كانت قاعدة إعادة التوجيه الخاصة بالمنتج هي IPv6، يجب أن تكون الشبكة الفرعية NAT ذات حزمة مزدوجة.
يمكن استخدام المجموعات التالية في الإعدادات المتوافقة:
- نقطة نهاية IPv4 إلى مرفق خدمة IPv4
- نقطة نهاية IPv6 إلى مرفق خدمة IPv6
- نقطة نهاية IPv6 إلى مرفق خدمة IPv4 في هذا الإعداد، تترجم خدمة Private Service Connect تلقائيًا بين إصدارَي بروتوكول الإنترنت.
العناصر التالية غير متاحة:
لا تتيح خدمة Private Service Connect ربط نقطة نهاية IPv4 بمرفق خدمة IPv6. في هذه الحالة، يتعذّر إنشاء نقطة النهاية وتظهر رسالة الخطأ التالية:
لا يمكن أن تستهدف قاعدة إعادة التوجيه في Private Service Connect التي تتضمّن عنوان IPv4 مرفق خدمة IPv6.
4. نظرة عامة على Dual Stack ULA
تتيح Google Cloud إنشاء شبكات فرعية وأجهزة افتراضية خاصة بنظام IPv6 باستخدام عناوين ULA. يحدّد RFC 4193 نظام عناوين IPv6 للاتصال المحلي، وهو مثالي للاتصال داخل شبكة VPC. لا يمكن توجيه عناوين ULA على مستوى العالم، لذا تكون أجهزتك الافتراضية معزولة تمامًا عن الإنترنت، ما يوفّر سلوكًا مشابهًا لـ RFC-1918 باستخدام الإصدار السادس من بروتوكول الإنترنت (IPv6). تتيح Google Cloud إنشاء بادئات ULA لشبكة VPC /48، وبالتالي يتم تخصيص جميع الشبكات الفرعية IPv6 ULA /64 من نطاق شبكة VPC هذا.
على غرار عناوين الإصدار السادس من بروتوكول الإنترنت (IPv6) الخارجية الفريدة على مستوى العالم التي تتيحها Google Cloud، ستحصل كل شبكة فرعية مفعّلة لعنوان ULA IPv6 على شبكة فرعية /64 من نطاق ULA لشبكة سحابة VPC /48، وسيتم تخصيص عنوان /96 لكل جهاز افتراضي (VM) من تلك الشبكة الفرعية.
يحدّد RFC4193 مساحة عنوان IPv6 في النطاق fc00::/7. يمكن تخصيص عناوين ULA واستخدامها بحرية داخل الشبكات أو المواقع الخاصة. تخصّص Google Cloud جميع عناوين ULA من النطاق fd20::/20. يمكن توجيه هذه العناوين ضمن نطاق شبكات VPC فقط، ولا يمكن توجيهها في شبكة الإنترنت العالمية IPv6.
يُضمن أن تكون عناوين ULA التي يحددها Google Cloud فريدة في جميع شبكات السحابة الافتراضية الخاصة. تضمن Google Cloud عدم تعيين البادئة نفسها لعنوان ULA لشبكتَي VPC. يؤدي ذلك إلى حلّ مشكلة النطاقات المتداخلة في شبكات السحابة الإلكترونية الافتراضية (VPC).
يمكنك السماح لـ Google Cloud بتعيين /48 تلقائيًا لشبكتك أو يمكنك اختيار بادئة IPv6 معيّنة /48. إذا كان بادئة IPv6 المحدّدة معيّنة مسبقًا لشبكة VPC أخرى أو لشبكتك المحلية، يمكنك اختيار نطاق آخر.
5- متطلبات الشبكة
في ما يلي تفصيل لمتطلبات الشبكة لكلّ من شبكة المستهلك وشبكة المنتج:
شبكة المستهلكين (جميع المكوّنات التي تم نشرها في us-central1)
المكونات | الوصف |
VPC | تتطلّب الشبكات ذات الحزمة المزدوجة سحابة VPC في وضع مخصّص مع تفعيل ULA |
نقطة نهاية PSC |
|
الشبكات الفرعية | IPv4 وDual-stack |
GCE | IPv4 وDual-stack |
شبكة المنتج(جميع المكوّنات التي تم نشرها في us-central1)
المكونات | الوصف |
VPC | وضع VPC المخصّص، ULA غير مفعّل |
الشبكة الفرعية لترجمة عنوان الشبكة (NAT) في PSC | IPv4 تتم ترجمة الحِزم من شبكة VPC الخاصة بالمستهلك باستخدام SNAT، وذلك كي يتم تحويل عناوين IP المصدر الأصلية إلى عناوين IP المصدر من الشبكة الفرعية NAT في شبكة VPC الخاصة بالمنتج. |
قاعدة إعادة التوجيه في PSC | |
التحقّق من الصحة | قاعدة دخول تنطبق على المثيلات التي يتم موازنة حملها، وتسمح بزيارات من أنظمة فحص السلامة في Google Cloud (130.211.0.0/22 و35.191.0.0/16). |
خدمة الخلفية | تعمل خدمة الخلفية كجسر بين برنامج موازنة الحمل وموارد الخلفية. في البرنامج التعليمي، ترتبط خدمة الخلفية بمجموعة مثيلات غير مُدارة. |
مجموعة الأجهزة الافتراضية غير المُدارة | تتيح استخدام الأجهزة الافتراضية التي تتطلّب إعدادًا أو ضبطًا فرديًا. لا يتيح التوسيع التلقائي. |
6. بنية الدرس التطبيقي حول الترميز

7. الإعداد والمتطلبات
إعداد البيئة بالسرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.



- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديلها في أي وقت.
- رقم تعريف المشروع هو معرّف فريد في جميع مشاريع Google Cloud ولا يمكن تغييره بعد ضبطه. تنشئ Cloud Console تلقائيًا سلسلة فريدة، ولا يهمّك عادةً ما هي. في معظم دروس البرمجة، عليك الرجوع إلى رقم تعريف مشروعك (يُشار إليه عادةً باسم
PROJECT_ID). إذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم تعريف عشوائي آخر. يمكنك بدلاً من ذلك تجربة اسم من اختيارك ومعرفة ما إذا كان متاحًا. لا يمكن تغيير هذا الخيار بعد هذه الخطوة وسيظل ساريًا طوال مدة المشروع. - للعلم، هناك قيمة ثالثة، وهي رقم المشروع، تستخدمها بعض واجهات برمجة التطبيقات. يمكنك الاطّلاع على مزيد من المعلومات عن كل هذه القيم الثلاث في المستندات.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير، إن وُجدت أي تكلفة على الإطلاق. لإيقاف الموارد وتجنُّب تحمّل تكاليف فوترة تتجاوز هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج الفترة التجريبية المجانية بقيمة 300 دولار أمريكي.
بدء Cloud Shell
على الرغم من إمكانية تشغيل Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي حول الترميز Google Cloud Shell، وهي بيئة سطر أوامر تعمل في السحابة الإلكترونية.
من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات أعلى يسار الصفحة:

لن يستغرق توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. توفّر هذه الخدمة دليلًا منزليًا ثابتًا بسعة 5 غيغابايت، وتعمل على Google Cloud، ما يؤدي إلى تحسين أداء الشبكة والمصادقة بشكل كبير. يمكن إكمال جميع المهام في هذا الدرس العملي ضمن المتصفّح. لست بحاجة إلى تثبيت أي تطبيق.
8. قبل البدء
تفعيل واجهات برمجة التطبيقات
داخل Cloud Shell، تأكَّد من إعداد رقم تعريف مشروعك:
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] project=[YOUR-PROJECT-ID] region=us-central1 echo $project echo $region
فعِّل جميع الخدمات اللازمة:
gcloud services enable compute.googleapis.com
9- إنشاء شبكة VPC خاصة بالمنتج
شبكة VPC
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute networks create producer-vpc --subnet-mode custom
إنشاء شبكات فرعية
سيتم ربط الشبكة الفرعية لخدمة PSC بمرفق خدمة PSC بغرض ترجمة عناوين الشبكة. بالنسبة إلى حالات الاستخدام في مرحلة الإنتاج، يجب أن يكون حجم هذه الشبكة الفرعية مناسبًا لاستيعاب مقدار الزيارات الواردة من جميع نقاط نهاية PSC المرفقة. لمزيد من المعلومات، يمكنك الاطّلاع على مستندات تحديد حجم الشبكة الفرعية لترجمة عنوان الشبكة (NAT) في Private Service Connect.
في Cloud Shell، أنشئ الشبكة الفرعية لترجمة عناوين الشبكة (NAT) في Private Service Connect:
gcloud compute networks subnets create producer-psc-nat-subnet --network producer-vpc --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT
داخل Cloud Shell، أنشئ الشبكة الفرعية لقاعدة إعادة التوجيه الخاصة بالمنتج:
gcloud compute networks subnets create producer-psc-fr-subnet --network producer-vpc --range 172.16.20.0/28 --region $region --enable-private-ip-google-access
داخل Cloud Shell، أنشئ الشبكة الفرعية للجهاز الافتراضي الخاص بالمنتج:
gcloud compute networks subnets create producer-psc-vm-subnet --network producer-vpc --range 172.16.30.0/28 --region $region --enable-private-ip-google-access
إنشاء بوابة NAT العامة
يتطلّب الجهاز الظاهري للمنتج إمكانية الوصول إلى الإنترنت لتنزيل Apache، ولكن لا يتضمّن مثيل GCE عنوان IP خارجيًا، لذا ستوفّر خدمة Cloud NAT إمكانية الخروج من الإنترنت لتنزيل الحزمة.
داخل Cloud Shell، أنشئ Cloud Router:
gcloud compute routers create producer-cloud-router --network producer-vpc --region us-central1
داخل Cloud Shell، أنشئ بوابة Cloud NAT التي تتيح الخروج من الإنترنت:
gcloud compute routers nats create producer-nat-gw --router=producer-cloud-router --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
إنشاء سياسة جدار حماية بين الشبكات وقواعد جدار الحماية
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute network-firewall-policies create producer-vpc-policy --global gcloud compute network-firewall-policies associations create --firewall-policy producer-vpc-policy --network producer-vpc --name producer-vpc --global-firewall-policy
للسماح لميزة "الوصول إلى الأجهزة الافتراضية عبر الإنترنت" بالاتصال بأجهزة VM الافتراضية، أنشئ قاعدة جدار حماية تتضمّن ما يلي:
- ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد إتاحتها باستخدام IAP.
- يسمح بحركة البيانات الواردة من نطاق عناوين IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها خدمة IAP لإعادة توجيه بروتوكول TCP.
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy producer-vpc-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
تسمح قاعدة جدار الحماية التالية بنقل البيانات من نطاق اختبار الصحة إلى جميع المثيلات في الشبكة. في بيئة الإنتاج، يجب أن تقتصر قاعدة جدار الحماية هذه على المثيلات المرتبطة بخدمة المنتج المحدّدة فقط.
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute network-firewall-policies rules create 2000 --action ALLOW --firewall-policy producer-vpc-policy --description "allow traffic from health check probe range" --direction INGRESS --src-ip-ranges 130.211.0.0/22,35.191.0.0/16 --layer4-configs tcp:80 --global-firewall-policy
تسمح قاعدة جدار الحماية التالية بتدفّق الزيارات من نطاق الشبكة الفرعية لترجمة عناوين الشبكة (NAT) في PSC إلى جميع المثيلات في الشبكة. في بيئة الإنتاج، يجب أن تقتصر قاعدة جدار الحماية هذه على المثيلات المرتبطة بخدمة المنتج المحدّدة فقط.
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute network-firewall-policies rules create 2001 --action ALLOW --firewall-policy producer-vpc-policy --description "allow traffic from PSC NAT subnet" --direction INGRESS --src-ip-ranges 172.16.10.0/28 --global-firewall-policy --layer4-configs=tcp
إنشاء الجهاز الافتراضي الخاص بالمنتج
داخل Cloud Shell، أنشئ خادم ويب Apache على الجهاز الظاهري الخاص بالمنتج:
gcloud compute instances create producer-vm \
--project=$project \
--machine-type=e2-micro \
--image-family debian-12 \
--no-address \
--image-project debian-cloud \
--zone us-central1-a \
--subnet=producer-psc-vm-subnet \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo 'Welcome to Producer-VM !!' | tee /var/www/html/index.html
EOF"
داخل Cloud Shell، أنشئ مجموعة مثيلات غير مُدارة تتألف من مثيل producer-vm وعملية تحقّق من الصحة:
gcloud compute instance-groups unmanaged create producer-instance-group --zone=us-central1-a gcloud compute instance-groups unmanaged add-instances producer-instance-group --zone=us-central1-a --instances=producer-vm gcloud compute health-checks create http hc-http-80 --port=80
10. إنشاء خدمة منتِجة
إنشاء مكوّنات جهاز موازنة الحمل
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute backend-services create producer-backend-svc --load-balancing-scheme=internal --protocol=tcp --region=us-central1 --health-checks=hc-http-80 gcloud compute backend-services add-backend producer-backend-svc --region=us-central1 --instance-group=producer-instance-group --instance-group-zone=us-central1-a
في الصيغة التالية، أنشئ قاعدة إعادة توجيه (جهاز موازنة حمل الشبكة الداخلي) باستخدام عنوان IP محدّد مسبقًا 172.16.2.3 مرتبط بخدمة الخلفية، producer-backend-svc
في Cloud Shell، نفِّذ ما يلي:
gcloud compute forwarding-rules create producer-fr --region=us-central1 --load-balancing-scheme=internal --network=producer-vpc --subnet=producer-psc-fr-subnet --address=172.16.20.3 --ip-protocol=TCP --ports=all --backend-service=producer-backend-svc --backend-service-region=us-central1
إنشاء مرفق الخدمة
داخل Cloud Shell، أنشئ مرفق الخدمة:
gcloud compute service-attachments create ipv4-producer-svc-attachment --region=$region --producer-forwarding-rule=producer-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-psc-nat-subnet
بعد ذلك، احصل على "ملحق الخدمة" المُدرَج في معرّف الموارد المنتظم (URI) الخاص بـ selfLink الذي يبدأ بالمشاريع، ودوِّن هذا الملحق لإعداد نقطة نهاية PSC في بيئة المستهلك.
selfLink: projects/<your-project-id>/regions/us-central1/serviceAttachments/ipv4-producer-svc-attachment
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute service-attachments describe ipv4-producer-svc-attachment --region=$region
مثال على الناتج المتوقّع
user@cloudshell:~ (projectid)$ gcloud compute service-attachments describe ipv4-producer-svc-attachment --region=$region connectionPreference: ACCEPT_AUTOMATIC creationTimestamp: '2024-08-26T07:08:01.625-07:00' description: '' enableProxyProtocol: false fingerprint: USOMy1eQKyM= id: '1401660514263708334' kind: compute#serviceAttachment name: ipv4-producer-svc-attachment natSubnets: - https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1/subnetworks/producer-psc-nat-subnet pscServiceAttachmentId: high: '85245007652455400' low: '1401660514263708334' reconcileConnections: false region: https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1/serviceAttachments/ipv4-producer-svc-attachment targetService: https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1/forwardingRules/producer-fr
في Cloud Console، انتقِل إلى:
خدمات الشبكة → Private Service Connect → الخدمات المنشورة


11. إنشاء شبكة VPC للمستهلك
شبكة VPC
في Cloud Shell، أنشئ شبكة VPC الخاصة بالمستهلك مع تفعيل عناوين ULA للإصدار السادس من بروتوكول الإنترنت (IPv6):
gcloud compute networks create consumer-vpc \
--subnet-mode=custom \
--enable-ula-internal-ipv6
تخصّص Google شبكة فرعية /48 فريدة على مستوى العالم لشبكة VPC الخاصة بالمستهلك، ولعرض عملية التخصيص، اتّبِع الخطوات التالية:
في Cloud Console، انتقِل إلى:
شبكات VPC

إنشاء شبكة فرعية
داخل Cloud Shell، أنشئ الشبكة الفرعية IPv4 GCE:
gcloud compute networks subnets create consumer-v4-subnet --network consumer-vpc --range=192.168.10.0/28 --region $region --enable-private-ip-google-access
داخل Cloud Shell، أنشئ الشبكة الفرعية لنقطة نهاية IPv4 PSC:
gcloud compute networks subnets create psc-ipv4-endpoint-subnet --network consumer-vpc --range=192.168.11.0/28 --region $region --enable-private-ip-google-access
داخل Cloud Shell، أنشئ الشبكة الفرعية GCE ذات الحزمة المزدوجة:
gcloud compute networks subnets create consumer-dual-stack-subnet --network consumer-vpc --range=192.168.20.0/28 --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL --region $region --enable-private-ip-google-access
في Cloud Shell، أنشئ الشبكة الفرعية لنقطة نهاية PSC التي تعمل بمكدّس بروتوكول مزدوج:
gcloud compute networks subnets create psc-dual-stack-endpoint-subnet --network consumer-vpc --range=192.168.21.0/28 --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL --region $region --enable-private-ip-google-access
إنشاء سياسة جدار حماية بين الشبكات وقواعد جدار الحماية
داخل Cloud Shell، اتّبِع الخطوات التالية:
gcloud compute network-firewall-policies create consumer-vpc-policy --global gcloud compute network-firewall-policies associations create --firewall-policy consumer-vpc-policy --network consumer-vpc --name consumer-vpc --global-firewall-policy gcloud compute network-firewall-policies rules create 1000 --action ALLOW --firewall-policy consumer-vpc-policy --description "SSH with IAP" --direction INGRESS --src-ip-ranges 35.235.240.0/20 --layer4-configs tcp:22 --global-firewall-policy
يجب استخدام بروتوكول النقل الآمن (SSH) من خلال خدمة "الوصول إلى الإنترنت عبر بروتوكول IAP" فقط لشبكة المستهلك.
12. إنشاء جهاز افتراضي ونقطة نهاية PSC واختبار الاتصال عبر IPv4
إنشاء جهاز افتراضي للاختبار
داخل Cloud Shell، أنشئ مثيل GCE لبروتوكول IPv4 في الشبكة الفرعية لبروتوكول IPv4:
gcloud compute instances create consumer-vm-ipv4 --zone=us-central1-a --subnet=consumer-v4-subnet --no-address
إنشاء عنوان IP ثابت لنقطة نهاية Private Service Connect
في Cloud Shell، أنشِئ عنوان IP ثابتًا لنقطة نهاية PSC.
gcloud compute addresses create psc-ipv4-endpoint-ip --region=$region --subnet=psc-ipv4-endpoint-subnet --addresses 192.168.11.13
إنشاء نقطة نهاية Private Service Connect (PSC) لبروتوكول IPv4
داخل Cloud Shell، أنشئ نقطة نهاية PSC من خلال تعديل معرّف الموارد المنتظم (URI) لمرفق الخدمة باستخدام معرّف الموارد المنتظم الذي تم تسجيله عند إنشاء مرفق الخدمة.
gcloud compute forwarding-rules create psc-ipv4-endpoint --region=$region --network=consumer-vpc --address=psc-ipv4-endpoint-ip --target-service-attachment=[SERVICE ATTACHMENT URI]
التحقّق من صحة نقطة نهاية PSC
لنؤكّد أنّ "المنتج" قد قبل نقطة نهاية PSC. في Cloud Console، انتقِل إلى:
خدمات الشبكة (Network Services) → خدمة Private Service Connect → نقاط النهاية المرتبطة (Connected Endpoints)

اختبار الاتصال
داخل Cloud Shell، سجِّل الدخول إلى مثيل GCE باستخدام بروتوكول SSH، consumer-vm-ipv4.
gcloud compute ssh --zone us-central1-a "consumer-vm-ipv4" --tunnel-through-iap --project $project
بعد تسجيل الدخول إلى مثيل GCE، نفِّذ عملية curl إلى نقطة نهاية psc، أي psc-ipv4-endpoint 192.168.11.13.
داخل مثيل GCE consumer-vm-ipv4، نفِّذ الأمر curl:
curl 192.168.11.13
الناتج المتوقّع:
user@consumer-vm-ipv4:~$ curl 192.168.11.13 Welcome to Producer-VM !!
داخل مثيل GCE consumer-vm-ipv4، سجِّل الخروج من المثيل عن طريق تنفيذ عملية خروج، ما يؤدي إلى إعادتك إلى Cloud Shell.
exit
الناتج المتوقّع:
user@consumer-vm-ipv4:~$ exit logout Connection to compute.6833450446005281720 closed.
13. إنشاء جهاز افتراضي ونقطة نهاية PSC واختبار إمكانية الاتصال عبر حزمة بروتوكولات مزدوجة
إنشاء جهاز افتراضي (VM) مزدوج الحزمة للاختبار
داخل Cloud Shell، أنشئ مثيل GCE المتوافق مع بروتوكولَي IPv4 وIPv6 في الشبكة الفرعية المتوافقة مع بروتوكولَي IPv4 وIPv6:
gcloud compute instances create consumer-vm-ipv4-ipv6 --zone=us-central1-a --subnet=consumer-dual-stack-subnet --no-address --stack-type=IPV4_IPV6
إنشاء عنوان IPv6 ثابت لنقطة نهاية Private Service Connect
داخل Cloud Shell، أنشئ عنوان IPv6 ثابتًا لنقطة نهاية PSC:
gcloud compute addresses create psc-ipv6-endpoint-ip --region=$region --subnet=psc-dual-stack-endpoint-subnet --ip-version=IPV6
الحصول على عنوان IPv6 الثابت لنقطة نهاية PSC
داخل Cloud Shell، احصل على عنوان IPv6 لخدمة PSC الذي ستستخدمه للوصول إلى خدمة "المزوّد":
gcloud compute addresses describe psc-ipv6-endpoint-ip --region=us-central1 | grep -i address:
مثال على الناتج:
user@cloudshell$ gcloud compute addresses describe psc-ipv6-endpoint-ip --region=us-central1 | grep -i address: address: 'fd20:2eb:7252:2::'
إنشاء نقطة نهاية PSC لبروتوكول IPv6
داخل Cloud Shell، أنشئ نقطة نهاية PSC من خلال تعديل معرّف الموارد المنتظم (URI) لمرفق الخدمة باستخدام معرّف الموارد المنتظم الذي تم تسجيله عند إنشاء مرفق الخدمة.
gcloud compute forwarding-rules create psc-ipv6-endpoint --region=$region --network=consumer-vpc --address=psc-ipv6-endpoint-ip --target-service-attachment=[SERVICE ATTACHMENT URI]
التحقّق من صحة نقطة نهاية PSC
لنؤكّد أنّ "المنتج" قد قبل نقطة نهاية PSC. في Cloud Console، انتقِل إلى:
خدمات الشبكة (Network Services) → Private Service Connect → نقاط النهاية المتصلة (Connected Endpoints)

اختبار الاتصال
داخل Cloud Shell، سجِّل الدخول إلى مثيل GCE ذي الحزمة المزدوجة، consumer-vm-ipv4-ipv6، ونفِّذ طلب curl إلى نقطة نهاية المستهلكين IPv6 في PSC، psc-ipv6-endpoint، للتحقّق من إمكانية الوصول إلى خدمة Producer.
gcloud compute ssh --zone us-central1-a "consumer-vm-ipv4-ipv6" --tunnel-through-iap --project $project
بعد تسجيل الدخول إلى آلة افتراضية GCE ثنائية الحزمة، نفِّذ عملية curl إلى نقطة نهاية psc، أي psc-dual-stack-endpoint، باستخدام عناوين الإصدار السادس من بروتوكول الإنترنت (IPv6) التي تم تحديدها في الخطوة السابقة.
داخل مثيل GCE consumer-vm-ipv4-ipv6، نفِّذ طلب curl إلى نقطة نهاية PSC التي تستخدم IPv6 الثابت والمحدّدة في الخطوة "الحصول على IPv6 الثابت لنقطة نهاية PSC".
curl -6 http://[insert-your-ipv6-psc-endpoint]
الناتج المتوقّع:
user@consumer-vm-ipv4-ipv6$ curl -6 http://[fd20:2eb:7252:2::] Welcome to Producer-VM !!
داخل مثيل GCE consumer-vm-ipv4-ipv6، سجِّل الخروج من المثيل عن طريق تنفيذ عملية خروج، ما يؤدي إلى إعادة توجيهك إلى Cloud Shell.
exit
الناتج المتوقّع:
user@consumer-vm-ipv4-ipv6:~$ exit logout Connection to compute.6162185519072639197 closed.
14. خطوات التنظيف
حذف مكوّنات المختبر من نافذة Cloud Shell واحدة
gcloud compute service-attachments delete ipv4-producer-svc-attachment --region=us-central1 -q gcloud compute forwarding-rules delete psc-ipv6-endpoint psc-ipv4-endpoint --region=us-central1 -q gcloud compute instances delete consumer-vm-ipv4 consumer-vm-ipv4-ipv6 --zone=us-central1-a -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy=consumer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=consumer-vpc-policy --name=consumer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete consumer-vpc-policy --global -q gcloud compute addresses delete psc-ipv4-endpoint-ip psc-ipv6-endpoint-ip --region=us-central1 -q gcloud compute networks subnets delete consumer-v4-subnet psc-ipv4-endpoint-subnet consumer-dual-stack-subnet psc-dual-stack-endpoint-subnet --region=us-central1 -q gcloud compute networks delete consumer-vpc -q gcloud compute forwarding-rules delete producer-fr --region=us-central1 -q gcloud compute backend-services delete producer-backend-svc --region=us-central1 -q gcloud compute health-checks delete hc-http-80 -q gcloud compute network-firewall-policies rules delete 2001 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 2000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies rules delete 1000 --firewall-policy producer-vpc-policy --global-firewall-policy -q gcloud compute network-firewall-policies associations delete --firewall-policy=producer-vpc-policy --name=producer-vpc --global-firewall-policy -q gcloud compute network-firewall-policies delete producer-vpc-policy --global -q gcloud compute instance-groups unmanaged delete producer-instance-group --zone=us-central1-a -q gcloud compute instances delete producer-vm --zone=us-central1-a -q gcloud compute routers nats delete producer-nat-gw --router=producer-cloud-router --router-region=us-central1 -q gcloud compute routers delete producer-cloud-router --region=us-central1 -q gcloud compute networks subnets delete producer-psc-fr-subnet producer-psc-vm-subnet producer-psc-nat-subnet --region=us-central1 -q gcloud compute networks delete producer-vpc -q
15. تهانينا
تهانينا، لقد نجحت في إعداد Private Service Connect 64 والتحقّق من صحته.
لقد أنشأت البنية الأساسية للمنتج، وتعرّفت على كيفية إنشاء نقطة نهاية للمستهلك IPv4 وIPv6 في شبكة VPC الخاصة بالمستهلك التي تتيح الاتصال بخدمة المنتج.
تعتقد Cosmopup أنّ الدروس التطبيقية حول الترميز رائعة!!

ما هي الخطوات التالية؟
اطّلِع على بعض دروس الترميز التطبيقية هذه...
- استخدام Private Service Connect لنشر الخدمات واستهلاكها مع GKE
- استخدام Private Service Connect لنشر الخدمات واستهلاكها
- الاتصال بالخدمات المحلية عبر شبكة مختلطة باستخدام خدمة Private Service Connect وجهاز موازنة الحمل الداخلي الذي يستخدم وكيل TCP
- الوصول إلى جميع دروس Private Service Connect البرمجية المنشورة