1. مقدمة
تُحدث خدمة Private Service Connect ثورة في طريقة استخدام المؤسسات للخدمات ضمن منظومة Google Cloud المتكاملة، ما يوفر دعمًا كاملاً لعناوين IPv6 إلى جانب IPv4. ويجمع هذا الحل بين الأمان المحسَّن وإمكانية الاتصال المبسّطة والأداء المحسَّن والإدارة المركزية، ما يجعله حلًا مثاليًا للأنشطة التجارية التي تبحث عن نموذج موثوق وفعّال وقوي لاستخدام الخدمات ومتوافق مع مستقبل الشبكات. سواء كنت بصدد إنشاء سحابة مختلطة أو مشاركة الخدمات في مؤسستك أو الوصول إلى خدمات تابعة لجهات خارجية، يوفّر لك "بروتوكول إدارة الخدمات" مسارًا سلسًا وآمنًا للاستفادة من الإمكانات الكاملة لخدمة Google Cloud، مع الاستفادة من مزايا IPv6.
ما ستتعرّف عليه
- المزايا الرئيسية لـ PSC 66
- الترجمة المتوافقة مع Private Service Connect 66
- نظرة عامة على ULA للبنية المزدوجة
- متطلبات الشبكة
- إنشاء خدمة منتج في Private Service Connect
- إنشاء نقطة نهاية Private Service Connect
- إنشاء اتصال بنقطة نهاية Private Service Connect من جهاز افتراضي ثنائي الحِزم
المتطلبات
- مشروع Google Cloud الذي يتضمّن أذونات المالك
2. ما ستُنشئه
ستُنشئ شبكة مُنتجين لنشر خادم ويب Apache كخدمة منشورة من خلال Private Service Connect (PSC). بعد نشر التطبيق، عليك اتّخاذ الإجراءات التالية للتحقّق من إمكانية الوصول إلى خدمة "صانع المحتوى":
- من "شبكة VPC للمستهلك"، استهدِف نقطة نهاية IPv6 PSC للوصول إلى خدمة المنتج من خلال جهاز GCE ثنائي الحِزم.
المزايا الرئيسية لـ PSC 66
- الدمج السلس: يمكن دمج PSC بسلاسة مع شبكات VPC التي تم ضبطها لبروتوكول IPv6، ما يتيح لك الاستفادة من مزايا عناوين IPv6 لاتصالات الخدمات.
- التوافق مع الحزمة المزدوجة: تتيح خدمة PSC إعدادات الحزمة المزدوجة، ما يتيح استخدام IPv4 وIPv6 في الوقت نفسه ضمن شبكة VPC نفسها، ما يوفر مرونة وإعدادات مناسبة للمستقبل لشبكتك.
- الانتقال المبسّط: تعمل ميزة "التوجيه المتقدّم للاتصالات" على تبسيط عملية الانتقال إلى IPv6 من خلال السماح لك بتبني IPv6 تدريجيًا إلى جانب البنية الأساسية الحالية لبروتوكول IPv4.
- توافق مع الأجهزة المُنتجة: يجب أن تتّبع الأجهزة المُنتجة تقنية الحزمة المزدوجة، ما يؤدي إلى إنشاء نقطة نهاية PSC لأجهزة المستهلكين تستخدم بروتوكول 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 لقاعدة إعادة توجيه المنتج متوافقًا مع نوع الحزمة لشبكة NAT الفرعية في مرفق الخدمة.
- إذا كانت قاعدة إعادة توجيه المنتج هي IPv4، يمكن أن تكون الشبكة الفرعية لبروتوكول تحويل العناوين (NAT) ذات حزمة واحدة أو حِزمتَين.
- إذا كانت قاعدة إعادة توجيه المنتج هي IPv6، يجب أن تكون الشبكة الفرعية لبروتوكول ترجمة عنوان الشبكة (NAT) ثنائية الحزمة.
يمكن استخدام التركيبات التالية للإعدادات المتوافقة:
- إرفاق نقطة نهاية IPv4 بخدمة IPv4
- إرفاق نقطة نهاية IPv6 بخدمة IPv6
- نقطة نهاية IPv6 إلى مرفق خدمة IPv4: في هذا الإعداد، تُجري خدمة Private Service Connect ترجمة تلقائية بين إصدارَي IP.
العناصر التالية غير متاحة:
لا تتوافق خدمة Private Service Connect مع ربط نقطة نهاية IPv4 بمرفق خدمة IPv6. في هذه الحالة، يتعذّر إنشاء نقطة النهاية مع ظهور رسالة الخطأ التالية:
لا يمكن لقاعدة إعادة توجيه "الاتصال بالخدمة الخاصة" التي تحتوي على عنوان IPv4 استهداف مرفق خدمة IPv6.
4. نظرة عامة على ULA للبنية المزدوجة
تتيح Google Cloud إنشاء عناوين IPv6 الخاصة للشبكات الفرعية وأجهزة الكمبيوتر الافتراضية في ULA. يحدِّد معيار 4193 من RFC مخطّط عناوين IPv6 للتواصل المحلي، وهو مثالي للتواصل داخل "شبكة VPC". لا يمكن توجيه عناوين ULA على مستوى العالم، لذا تكون أجهزة الكمبيوتر الافتراضية معزولة تمامًا عن الإنترنت، ما يوفر سلوكًا مشابهًا لـ RFC-1918 باستخدام IPv6. تسمح Google Cloud بإنشاء بادئات ULA لشبكة VPC /48 حتى يتم تخصيص جميع الشبكات الفرعية ULA لبروتوكول IPv6 /64 من نطاق شبكة VPC هذا.
على غرار عناوين IPv6 الخارجية الفريدة على مستوى العالم التي تتوافق مع Google Cloud، ستتلقّى كل شبكة فرعية مزوّدة بعناوين IPv6 من النوع ULA شبكة فرعية /64 من نطاق ULA لشبكة VPC /48، وسيتم تخصيص عنوان /96 لكل جهاز افتراضي من تلك الشبكة الفرعية.
يحدِّد معيار RFC4193 مساحة عناوين IPv6 في النطاق fc00::/7. يمكن تخصيص عناوين ULA واستخدامها بحرية داخل الشبكات/المواقع الإلكترونية الخاصة. تحدِّد Google Cloud جميع عناوين ULA من النطاق fd20::/20. لا يمكن توجيه هذه العناوين إلا ضمن نطاق شبكات VPC، ولا يمكن توجيهها في الإنترنت العام المستند إلى IPv6.
نضمن أن تكون عناوين ULA التي تحدّدها Google Cloud فريدة في جميع شبكات VPC. تضمن Google Cloud عدم تعيين بادئة ULA نفسها لأيّ شبكتَي VPC. ويؤدي ذلك إلى إزالة مشكلة التداخل في النطاقات في شبكات VPC.
يمكنك السماح لخدمة Google Cloud بتخصيص البادئة /48 لشبكتك تلقائيًا أو يمكنك اختيار بادئة IPv6 محددة /48. إذا سبق أن تم تخصيص بادئة IPv6 المحدّدة لشبكة VPC أخرى أو على شبكتك على الموقع، يمكنك اختيار نطاق آخر.
5- متطلبات الشبكة
في ما يلي تفاصيل متطلبات الشبكة لكلّ من شبكة المستهلكين وشبكة صنّاع المحتوى:
شبكة المستهلكين (جميع المكوّنات المنشورة في us-central1)
المكونات | الوصف |
VPC | تتطلّب شبكة الحزمة المزدوجة وضع VPC مخصّصًا مع تفعيل ULA. |
نقطة نهاية PSC | نقطة نهاية IPV6 PSC المستخدَمة للوصول إلى خدمة Producer |
الشبكات الفرعية | ثنائية الحزمة |
GCE | ثنائية الحزمة |
شبكة المنتجين(جميع المكوّنات المنشورة في us-central1)
المكونات | الوصف |
VPC | تتطلّب شبكة الحزمة المزدوجة وضع VPC مخصّصًا مع تفعيل ULA. |
الشبكة الفرعية لـ PSC NAT | تقنية الحزمة المزدوجة تتم ترجمة الحِزم الواردة من شبكة VPC للمستهلك باستخدام ترجمة عنوان الشبكة المصدر (SNAT) لكي يتم تحويل عناوين IP المصدر الأصلية إلى عناوين IP مصدر من الشبكة الفرعية لترجمة عنوان الشبكة في شبكة VPC الخاصة بالمنتج. |
قاعدة إعادة توجيه PSC | تقنية الحزمة المزدوجة جهاز موازنة حمل الشبكة الذي يستخدم نقطة مرور داخلية |
قاعدة دخول تنطبق على النُسخ التي تتم موازنة حملها، وتسمح بالزيارات الواردة من أنظمة التحقّق من الصحة في Google Cloud (2600:2d00:1:b029::/64). | |
خدمة الخلفية | تعمل خدمة الخلفية كجسر بين جهاز موازنة الحمل وموارد الخلفية. في البرنامج التعليمي، تكون خدمة الخلفية مرتبطة بمجموعة النُسخ غير المُدارة. |
مجموعة المثيلات غير المُدارة | تتيح الأجهزة الافتراضية التي تتطلّب ضبطًا أو إعدادًا فرديًا. لا تتيح إمكانية التوسيع التلقائي. |
6- طوبولوجيا الدرس التطبيقي حول الترميز
7- الإعداد والمتطلبات
إعداد البيئة حسب السرعة التي تناسبك
- سجِّل الدخول إلى Google Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.
- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها واجهات برمجة تطبيقات Google. ويمكنك تعديلها في أي وقت.
- يكون معرّف المشروع فريدًا في جميع مشاريع 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 --enable-ula-internal-ipv6
تخصص Google شبكة فرعية فريدة على مستوى العالم بسعة /48 لـ Consumer VPC. للاطّلاع على عملية التخصيص، عليك اتّباع الخطوات التالية:
في Cloud Console، انتقِل إلى:
شبكات VPC
إنشاء شبكات فرعية
سيتم ربط الشبكة الفرعية لـ PSC بمرفق خدمة PSC بغرض ترجمة عناوين الشبكة. بالنسبة إلى حالات الاستخدام في مرحلة الإنتاج، يجب تحديد حجم هذه الشبكة الفرعية بشكل مناسب لتلبية كمية الزيارات الواردة من جميع نقاط نهاية PSC المرتبطة. اطّلِع على مستندات تحديد حجم الشبكة الفرعية لبروتوكول تحويل العناوين (NAT) في "مركز عملائي" للحصول على مزيد من المعلومات.
داخل Cloud Shell، أنشئ شبكة فرعية لترجمة عنوان بروتوكول الإنترنت (NAT) في PSC:
gcloud compute networks subnets create producer-nat-dual-stack-subnet --network producer-vpc --range 172.16.10.0/28 --region $region --purpose=PRIVATE_SERVICE_CONNECT --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL
ستحتاج إلى الحصول على عنوان IPv6 الخاص بـ producer-nat-dual-stack-subnet وتسجيله في خطوة لاحقة لإنشاء قاعدة جدار حماية للدخول للسماح للشبكة الفرعية لتحويل عنوان IP في PSC بالوصول إلى الخلفية في جهاز موازنة الحمل.
داخل Cloud Shell، احصل على الشبكة الفرعية IPv6 لبروتوكول تحويل عنوان الإنترنت (NAT) في وحدة التحكّم في حدود الجلسة (PSC).
gcloud compute networks subnets describe producer-nat-dual-stack-subnet --region=us-central1 | grep -i internalIpv6Prefix:
النتيجة المتوقّعة:
user@cloudshell$ gcloud compute networks subnets describe producer-nat-dual-stack-subnet --region=us-central1 | grep -i internalIpv6Prefix: internalIpv6Prefix: fd20:b4a:ea9f:2:0:0:0:0/64
داخل Cloud Shell، أنشئ الشبكة الفرعية لقاعدة إعادة توجيه المنتج:
gcloud compute networks subnets create producer-dual-stack-fr-subnet --network producer-vpc --range 172.16.20.0/28 --region $region --enable-private-ip-google-access --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL
داخل Cloud Shell، أنشئ شبكة فرعية لوحدة المعالجة الافتراضية الخاصة بجهاز الإنتاج:
gcloud compute networks subnets create producer-dual-stack-vm-subnet --network producer-vpc --range 172.16.30.0/28 --region $region --enable-private-ip-google-access --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL
إنشاء بوابة NAT العامة
تتطلّب آلة الإنتاج الافتراضية إمكانية الوصول إلى الإنترنت لتنزيل Apache، ولكنّ مثيل GCE لا يتضمّن عنوان IP خارجيًا، وبالتالي، ستوفّر تقنية Cloud NAT إمكانية الخروج إلى الإنترنت لتنزيل الحِزم.
داخل Cloud Shell، أنشئ "راوتر السحابة":
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
للسماح لميزة "الشراء داخل التطبيق" بالاتصال بمثيلات الأجهزة الافتراضية، أنشئ قاعدة جدار حماية تستوفي الشروط التالية:
- ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد الوصول إليها باستخدام ميزة "الشراء داخل التطبيق".
- السماح بدخول الزيارات من نطاق 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 2600:2d00:1:b029::/64 --layer4-configs tcp:80 --global-firewall-policy
تسمح قاعدة جدار الحماية التالية بمرور الزيارات من نطاق الشبكة الفرعية لبروتوكول ترجمة عنوان الشبكة (NAT) في وحدة التحكّم في حدود الجلسة إلى جميع المثيلات في الشبكة. في بيئة الإنتاج، يجب أن تقتصر قاعدة جدار الحماية هذه على النُسخ المرتبطة بخدمة المنتج المحدّدة فقط.
عدِّل قاعدة جدار الحماية <insert-your-psc-nat-ipv6-subnet>
باستخدام الشبكة الفرعية لبروتوكول IPv6 PSC NAT التي تم الحصول عليها سابقًا في ورشة التعلم البرمجي.
في 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 <insert-your-psc-nat-ipv6-subnet> --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-dual-stack-vm-subnet \ --stack-type=IPV4_IPV6 \ --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، أنشئ مجموعة المثيلات غير المُدارة التي تتألف من مثيل جهاز افتراضي للمنتج وعملية التحقّق من الصحة:
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
تم تخصيص عنوان IPv6 لقاعدة إعادة توجيه المنتج (موازن تحميل الشبكة الداخلية).
في Cloud Shell، نفِّذ ما يلي:
gcloud compute addresses create producer-fr-ipv6-address \ --region=us-central1 \ --subnet=producer-dual-stack-fr-subnet \ --ip-version=IPV6
في البنية التالية، أنشئ قاعدة إعادة توجيه (جهاز موازنة حمل الشبكة الداخلية) باستخدام عنوان IPv6 محدّد مسبقًا producer-fr-ipv6-address
مرتبط بخدمة الخلفية، producer-backend-svc
في Cloud Shell، نفِّذ ما يلي:
gcloud compute forwarding-rules create producer-fr --region=us-central1 --load-balancing-scheme=internal --network=producer-vpc --subnet=producer-dual-stack-fr-subnet --address=producer-fr-ipv6-address --ip-protocol=TCP --ports=all --backend-service=producer-backend-svc --backend-service-region=us-central1 --ip-version=IPV6
إنشاء مرفق الخدمة
في Cloud Shell، أنشئ مرفق الخدمة:
gcloud compute service-attachments create ipv6-producer-svc-attachment --region=$region --producer-forwarding-rule=producer-fr --connection-preference=ACCEPT_AUTOMATIC --nat-subnets=producer-nat-dual-stack-subnet
بعد ذلك، احصل على مرفق الخدمة المدرَج في عنوان URL الخاص برابط selfLink، واحرص على تدوينه، بدءًا من المشاريع لضبط نقطة نهاية PSC في بيئة المستهلك.
selfLink: projects/<your-project-id>/regions/us-central1/serviceAttachments/ipv4-producer-svc-attachment
في Cloud Shell، نفِّذ ما يلي:
gcloud compute service-attachments describe ipv6-producer-svc-attachment --region=$region
مثال على الناتج المتوقّع
connectionPreference: ACCEPT_AUTOMATIC creationTimestamp: '2024-08-27T05:59:17.188-07:00' description: '' enableProxyProtocol: false fingerprint: EaultrFOzc4= id: '8752850315312657226' kind: compute#serviceAttachment name: ipv6-producer-svc-attachment natSubnets: - https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1/subnetworks/producer-nat-dual-stack-subnet pscServiceAttachmentId: high: '1053877600257000' low: '8752850315312657226' 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/ipv6-producer-svc-attachment targetService: https://www.googleapis.com/compute/v1/projects/projectid/regions/us-central1/forwardingRules/producer-fr
في Cloud Console، انتقِل إلى:
خدمات الشبكة → Private Service Connect → الخدمات المنشورة
11. إنشاء شبكة Consumer VPC
شبكة VPC
في Cloud Shell، أنشئ شبكة سحابة إلكترونية خاصة للمستهلك مع تفعيل عنوان IPv6 ULA:
gcloud compute networks create consumer-vpc \ --subnet-mode=custom \ --enable-ula-internal-ipv6
تخصص Google شبكة فرعية فريدة على مستوى العالم بسعة /48 لـ Consumer VPC. للاطّلاع على عملية التخصيص، عليك اتّباع الخطوات التالية:
في Cloud Console، انتقِل إلى:
شبكات VPC
إنشاء شبكة فرعية
داخل 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 واختبار إمكانية الاتصال بالبروتوكولَين
إنشاء جهاز افتراضي مزدوج الحزمة للاختبار
في Cloud Shell، أنشئ مثيل GCE ثنائي الحِزم في الشبكة الفرعية ثنائية الحِزم:
gcloud compute instances create consumer-vm-ipv4-ipv6 --zone=us-central1-a --subnet=consumer-dual-stack-subnet --no-address --stack-type=IPV4_IPV6
إنشاء عنوان IPv6 ثابت لنقطة نهاية PSC
في 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 الذي ستستخدمه للوصول إلى خدمة Producer:
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:799:4ea3:1::'
إنشاء نقطة نهاية PSC لبروتوكول IPv6
في Cloud Shell، أنشئ نقطة نهاية PSC من خلال تعديل معرّف الموارد المنتظم (URI) لـ SERVICE ATTACHMENT باستخدام معرّف الموارد المنتظم الذي تم تسجيله عند إنشاء مرفق الخدمة.
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، انتقِل إلى:
خدمات الشبكة → Private Service Connect → نقاط النهاية المتصلة
اختبار إمكانية الاتصال
داخل Cloud Shell، يمكنك استخدام بروتوكول النقل الآمن للملفات (SSH) للوصول إلى مثيل GCE ثنائي الحِزم، consumer-vm-ipv4-ipv6.
gcloud compute ssh --zone us-central1-a "consumer-vm-ipv4-ipv6" --tunnel-through-iap --project $project
بعد تسجيل الدخول إلى مثيل GCE ثنائي الحزمة، يمكنك تنفيذ أمر curl لنقطة نهاية psc، وهي psc-ipv6-endpoint، باستخدام عناوين IPv6 المحدّدة في الخطوة السابقة.
curl -6 http://[insert-your-ipv6-psc-endpoint]
الناتج المتوقّع:
user@consumer-vm-ipv4-ipv6$ curl -6 http://[fd20:799:4ea3:1::] Welcome to Producer-VM !!
داخل مثيل GCE consumer-vm-ipv4-ipv6، سجِّل الخروج من المثيل من خلال تنفيذ أمر الخروج، ما سيعيدك إلى Cloud Shell.
exit
الناتج المتوقّع:
user@consumer-vm-ipv4-ipv6:~$ exit logout Connection to compute.715101668351438678 closed.
13. خطوات إعادة الضبط
حذف مكوّنات المختبر من محطة طرفية واحدة في Cloud Shell
gcloud compute forwarding-rules delete psc-ipv6-endpoint --region=us-central1 -q gcloud compute instances delete 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-ipv6-endpoint-ip --region=us-central1 -q gcloud compute networks subnets delete consumer-dual-stack-subnet psc-dual-stack-endpoint-subnet --region=us-central1 -q gcloud compute networks delete consumer-vpc -q gcloud compute service-attachments delete ipv6-producer-svc-attachment --region=us-central1 -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 addresses delete producer-fr-ipv6-address --region=us-central1 -q gcloud compute networks subnets delete producer-dual-stack-fr-subnet producer-dual-stack-vm-subnet producer-nat-dual-stack-subnet --region=us-central1 -q gcloud compute networks delete producer-vpc -q
14. تهانينا
تهانينا، لقد نجحت في ضبط إعدادات Private Service Connect 64 والتحقّق منها.
لقد أنشأت البنية الأساسية للمنتج، وتعرّفت على كيفية إنشاء نقطة نهاية مستهلك IPv6 في شبكة VPC للمستهلك التي تسمح بالاتصال بخدمة IPv6 Producer.
يعتقد Cosmopup أنّ الدروس التطبيقية حول الترميز رائعة.
الخطوة التالية
اطّلِع على بعض هذه الدروس التطبيقية حول الترميز...
- استخدام Private Service Connect لنشر الخدمات واستخدامها باستخدام GKE
- استخدام Private Service Connect لنشر الخدمات واستخدامها
- الاتصال بالخدمات المستضافة على الموقع باستخدام "الشبكات المختلطة" باستخدام Private Service Connect وجهاز موازنة تحميل وكيل TCP داخلي
- الوصول إلى جميع مجموعات رموز Private Service Connect المنشورة