1. مقدمة
نظرة عامة
في هذا التمرين المعملي، سيستكشف المستخدمون كيف يمكن استخدام مركز الاتصال بالشبكات(NCC) لإنشاء اتصال بين شبكات VPC على نطاق واسع من خلال دعم VPC Spoke. عندما يُعرِّف المستخدمون شبكة VPC على أنها وحدة VPC، يمكِّنهم ذلك من توصيلها بشبكات VPC متعددة معًا عبر مركز NCC. يحد كل من "NCC" مع إعداد مكبر الصوت VPC من التعقيد التشغيلي لإدارة الاتصال المزدوج بين شبكات VPC من خلال تبادل المعلومات بين شبكات VPC، بدلاً من استخدام نموذج مركزي لإدارة الاتصال.
تذكر أن "مركز الاتصال بالشبكة" (NCC) هو نموذج مستوى تحكُّم في الموزع أو مكبّر الصوت لإدارة اتصال الشبكة في Google Cloud. يوفّر مورد الموزع نموذجًا مركزيًا لإدارة إمكانية الاتصال لتوصيل السماعات.
ما الذي ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستنشئ محورًا منطقيًا وطوبولوجيا شفهية باستخدام مركز NCC الذي سينفذ شبكة اتصال بشبكة VPC متداخلة بالكامل عبر ثلاث شبكات VPC مميزة.
المعلومات التي ستطّلع عليها
- إمكانية الاتصال بشبكة VPC بالكامل مع NCC
- ترجمة عنوان الشبكة الخاصة عبر سحابة VPC الخاصة
المتطلبات
- الإلمام بشبكة VPC في Google Cloud Platform
- الإلمام بخدمة "جهاز التوجيه السحابي" و"توجيه بروتوكول BGP"
- مشروعان منفصلان على Google Cloud Platform
- يتطلّب هذا الدرس التطبيقي حول الترميز 5 سحابة VPC. يجب وضع إحدى شبكات VPC هذه في مشروع منفصل عن مشروع NCC.
- راجع الحصة:الشبكات وطلب الشبكات الإضافية إذا لزم الأمر، ولقطة الشاشة أدناه:
الأهداف
- إعداد بيئة Google Cloud Platform
- ضبط "مركز الاتصال بالشبكة" مع "سحابة VPC" حسب التحدّث
- التحقق من صحة مسار البيانات
- استكشاف ميزات قابلية الاستخدام في NCC
- إخلاء الموارد المستخدمة
قبل البدء
Google Cloud Console وCloud Shell
وللتفاعل مع Google Cloud Platform، سنستخدم كلاً من Google Cloud Console وCloud Shell خلال هذا الدرس التطبيقي.
مشروع NCC Hub Google Cloud Console
يمكن الوصول إلى Cloud Console من خلال https://console.cloud.google.com.
يمكنك إعداد العناصر التالية في Google Cloud لتسهيل ضبط Network Connectivity Center:
في Google Cloud Console، اختَر مشروعًا على Google Cloud أو أنشئ مشروعًا على Google Cloud في صفحة أداة اختيار المشاريع.
افتح Cloud Shell. يستخدم هذا الدرس التطبيقي حول الترميز $variables للمساعدة في تنفيذ إعدادات gcloud في Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project [HUB-PROJECT-NAME]
projectname=[HUB-PROJECT-NAME]
echo $projectname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1
أدوار "إدارة الهوية وإمكانية الوصول"
تتطلب ميزة NCC أدوار "إدارة الهوية وإمكانية الوصول" للوصول إلى واجهات برمجة تطبيقات محدَّدة. تأكَّد من ضبط المستخدم بأدوار "إدارة الهوية وإمكانية الوصول في NCC" على النحو المطلوب.
الدور/الوصف | الأذونات |
networkconnectivity.networkAdmin - تسمح لمشرفي الشبكات بإدارة الموزّع ومكبرات الصوت. | Networkconnectivity.hubs.networkconnectivity.spokes |
networkconnectivity.networkSpokeManager - تسمح بإضافة مكبرات صوت وإدارتها في الموزع. للاستخدام في شبكة VPC المشتركة حيث يمتلك المشروع المضيف الموزع، ولكن يمكن للمشرفين الآخرين في المشاريع الأخرى إضافة مكبرات صوت لمرفقاتهم إلى "المركز". | Networkconnectivity.spokes** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer: تتيح لمستخدمي الشبكة عرض سمات مختلفة للموزِّع ومكبرات الصوت. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
2. إعداد بيئة الشبكة
نظرة عامة
في هذا القسم، سننشر شبكات VPC وقواعد جدار الحماية في مشروع واحد. يوضح المخطّط المنطقي بيئة الشبكة التي سيتم إعدادها في هذه الخطوة.
لإثبات الدعم من خلال الدعم المتواصل للمشروع، سننشر في خطوة لاحقة قواعد VPC وجدار الحماية في مشروع مختلف.
إنشاء شبكات VPC والشبكات الفرعية
تحتوي شبكة VPC على شبكات فرعية يجب تثبيت GCE VM عليها للتحقق من مسار البيانات.
gcloud compute networks create vpc1-ncc --subnet-mode custom
gcloud compute networks create vpc2-ncc --subnet-mode custom
gcloud compute networks create vpc3-ncc --subnet-mode custom
gcloud compute networks create vpc4-ncc --subnet-mode custom
gcloud compute networks subnets create vpc1-ncc-subnet1 \
--network vpc1-ncc --range 10.1.1.0/24 --region us-central1
gcloud compute networks subnets create vpc1-ncc-subnet2 \
--network vpc1-ncc --range 10.1.2.0/25 --region us-central1
gcloud compute networks subnets create vpc1-ncc-subnet3 \
--network vpc1-ncc --range 10.1.2.128/25 --region us-central1
gcloud compute networks subnets create vpc2-ncc-subnet1 \
--network vpc2-ncc --range 10.2.2.0/24 --region us-central1
نطاقات الشبكة الفرعية المتوافقة مع VC
تتوافق ميزة NCC مع جميع نطاقات الشبكة الفرعية الخاصة بـ IPv4 الصالحة باستثناء عناوين IP العامة التي يتم استخدامها بشكل خاص. في هذه الخطوة، أنشِئ نطاقات عناوين IP صالحة في VPC4 سيتم استيرادها إلى جدول مسار المركز.
gcloud compute networks subnets create benchmark-testing-rfc2544 \
--network vpc4-ncc --range 198.18.0.0/15 --region us-east1
gcloud compute networks subnets create class-e-rfc5735 \
--network vpc4-ncc --range 240.0.0.0/4 --region us-east1
gcloud compute networks subnets create ietf-protcol-assignment-rfc6890 \
--network vpc4-ncc --range 192.0.0.0/24 --region us-east1
gcloud compute networks subnets create ipv6-4-relay-rfc7526 \
--network vpc4-ncc --range 192.88.99.0/24 --region us-east1
gcloud compute networks subnets create pupi \
--network vpc4-ncc --range 50.50.50.0/24 --region us-east1
gcloud compute networks subnets create test-net-1-rfc5737 \
--network vpc4-ncc --range 192.0.2.0/24 --region us-east1
gcloud compute networks subnets create test-net-2-rfc5737 \
--network vpc4-ncc --range 198.51.100.0/24 --region us-east1
gcloud compute networks subnets create test-net-3-rfc5737 \
--network vpc4-ncc --range 203.0.113.0/24 --region us-east1
إنشاء نطاقات شبكة فرعية متداخلة
لن يستورد NCC نطاقات عناوين IP المتداخلة إلى جدول مسار المركز. وسيعمل المستخدمون على تجاوز هذا القيد في خطوة لاحقة. في الوقت الحالي، أنشِئ نطاقَي عناوين IP متداخلَين لكل من VPC2 وVPC3.
gcloud compute networks subnets create overlapping-vpc2 \
--network vpc3-ncc --range 10.3.3.0/24 --region us-central1
gcloud compute networks subnets create overlapping-vpc3 \
--network vpc2-ncc --range 10.3.3.0/24 --region us-central1
ضبط قواعد جدار الحماية لشبكة VPC
يمكنك ضبط قواعد جدار الحماية على كل شبكة VPC للسماح بها.
- بروتوكول النقل الآمن (SSH)
- الشراء داخل التطبيق الداخلي
- نطاق 10.0.0.0/8
gcloud compute firewall-rules create ncc1-vpc-internal \
--network vpc1-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc2-vpc-internal \
--network vpc2-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc3-vpc-internal \
--network vpc3-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc4-vpc-internal \
--network vpc4-ncc \
--allow all \
--source-ranges 10.0.0.0/8
gcloud compute firewall-rules create ncc1-vpc-iap \
--network vpc1-ncc \
--allow all \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc2-vpc-iap \
--network vpc2-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc3-vpc-iap \
--network vpc3-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
gcloud compute firewall-rules create ncc4-vpc-iap \
--network vpc4-ncc \
--allow=tcp:22 \
--source-ranges 35.235.240.0/20
ضبط جهاز GCE افتراضي في كل شبكة VPC
يجب الاتصال بالإنترنت مؤقتًا لتثبيت الحزم على "vm1-vpc1-ncc".
أنشِئ أربعة أجهزة افتراضية، وسيتم تخصيص كل جهاز افتراضي إلى إحدى شبكات VPC التي تم إنشاؤها سابقًا.
gcloud compute instances create vm1-vpc1-ncc \
--subnet vpc1-ncc-subnet1 \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install apache2 -y
apt-get install tcpdump -y
service apache2 restart
echo "
<h3>Web Server: www-vm1</h3>" | tee /var/www/html/index.html'
gcloud compute instances create vm2-vpc2-ncc \
--zone us-central1-a \
--subnet vpc2-ncc-subnet1 \
--no-address
gcloud compute instances create pnat-vm-vpc2 \
--zone us-central1-a \
--subnet overlapping-vpc3 \
--no-address
gcloud compute instances create vm1-vpc4-ncc \
--zone us-east1-b \
--subnet class-e-rfc5735 \
--no-address
3- مركز الاتصال بالشبكة
نظرة عامة
في هذا القسم، سنضبط مركز NCC Hub باستخدام أوامر gcloud. سيعمل مركز NCC كمستوى التحكّم المسؤول عن إعداد إعدادات التوجيه بين كل محور VPC.
تفعيل خدمات واجهة برمجة التطبيقات
فعِّل واجهة برمجة تطبيقات إمكانية الاتصال بالشبكة في حال لم يتم تفعيلها بعد:
gcloud services enable networkconnectivity.googleapis.com
إنشاء مركز NCC
إنشاء مركز NCC باستخدام الأمر gcloud
gcloud network-connectivity hubs create ncc-hub
مثال على الناتج
Create request issued for: [ncc-hub]
Waiting for operation [projects/user-3p-dev/locations/global/operations/operation-1668793629598-5edc24b7ee3ce-dd4c765b-5ca79556] to complete...done.
Created hub [ncc-hub]
قدِّم وصفًا لمركز NCC الذي تم إنشاؤه حديثًا. دوِّن الاسم والمسار المرتبط به.
gcloud network-connectivity hubs describe ncc-hub
gcloud network-connectivity hubs describe ncc-hub
createTime: '2023-11-02T02:28:34.890423230Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub
routeTables:
- projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uniqueId: de749c4c-0ef8-4888-8622-1ea2d67450f8
updateTime: '2023-11-02T02:28:48.613853463Z'
قدَّم NCC Hub جدول توجيه يحدّد مستوى التحكّم لإنشاء اتصال البيانات. العثور على اسم جدول توجيه NCC Hub
gcloud network-connectivity hubs route-tables list --hub=ncc-hub
NAME: default
HUB: ncc-hub
DESCRIPTION:
ابحث عن معرّف الموارد المنتظم (URI) لجدول المسار التلقائي لميزة NCC.
gcloud network-connectivity hubs route-tables describe default --hub=ncc-hub
createTime: '2023-02-24T17:32:58.786269098Z'
name: projects/user-3p-dev/locations/global/hubs/ncc-hub/routeTables/default
state: ACTIVE
uid: eb1fdc35-2209-46f3-a8d6-ad7245bfae0b
updateTime: '2023-02-24T17:33:01.852456186Z'
أدرِج محتوى جدول التوجيه التلقائي في NCC Hub. ملاحظة* سيكون جدول المسار في NCC Hub فارغًا إلى أن تصبح أصوات المتحدثين فارغة.
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default
يجب أن يكون جدول المسار في "مركز NCC" فارغًا.
4. بطاقة NCC مع أسلاك VPC
نظرة عامة
في هذا القسم، ستضبط ثلاثة شبكات VPC كـ NCC Spoke باستخدام أوامر gcloud.
ضبط شبكات VPC كـ NCC Spoke
اضبط شبكات VPC التالية كـ NCC Spoke بهذا الترتيب
- VPC4
- VPC1
- VPC2
- VPC3
اضبط VPC4 كمحور NCC وخصِّصه لمركز NCC الذي تم إنشاؤه سابقًا. تتطلّب طلبات البيانات من واجهة برمجة التطبيقات مكبّرات صوت NCC تحديد موقع جغرافي. العلم "-عالمي" تعمل على تبسيط بنية gcloud من خلال السماح للمستخدم بتجنُّب تحديد مسار معرّف الموارد المنتظم (URI) كامل عند إعداد خطاب NCC جديد.
gcloud network-connectivity spokes linked-vpc-network create vpc4-spoke4 \
--hub=ncc-hub \
--vpc-network=vpc4-ncc \
--global
اضبط VPC1 كمحور NCC.
يمكن للمشرفين استبعاد تصدير مسارات الشبكة الفرعية من شبكة VPC في جدول مسارات مركز NCC. في هذا الجزء من الدرس التطبيقي حول الترميز، أنشِئ قاعدة تصدير للاستثناء استنادًا إلى بادئة ملخّص لمنع تصدير الشبكة الفرعية لـ VPC1 إلى جدول مسار NCC Hub.
استخدِم الأمر gcloud هذا لإدراج جميع الشبكات الفرعية التابعة لـ VPC1.
gcloud config set accessibility/screen_reader false
gcloud compute networks subnets list --network=vpc1-ncc
لاحظ زوج الشبكات الفرعية /25 التي تم إنشاؤها سابقًا في قسم الإعداد.
NAME REGION NETWORK RANGE STACK_TYPE
vpc1-ncc-subnet1 us-central1 vpc1-ncc 10.1.1.0/24 IPV4_ONLY
vpc1-ncc-subnet2 us-central1 vpc1-ncc 10.1.2.0/25 IPV4_ONLY
vpc1-ncc-subnet3 us-central1 vpc1-ncc 10.1.2.128/25 IPV4_ONLY
اضبط VPC1 كمحور NCC واستبعد زوج الشبكات الفرعية /25 من الاستيراد إلى جدول توجيه الموزع باستخدام "export-exclusion-ranges" الرئيسية لتصفية مسار ملخص /24 من هذا النطاق المحدد..
gcloud network-connectivity spokes linked-vpc-network create vpc1-spoke1 \
--hub=ncc-hub \
--vpc-network=vpc1-ncc \
--exclude-export-ranges=10.1.2.0/24 \
--global
ملاحظة* يمكن للمستخدمين فلترة ما يصل إلى 16 نطاق IP فريدًا لكل كلام NCC.
أدرِج محتوى جدول التوجيه التلقائي في NCC Hub. ماذا حدث لزوج من الشبكات الفرعية /25 على جدول التوجيه NCC Hub؟
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default --filter="NEXT_HOP:vpc1-ncc"
IP_CIDR_RANGE STATE TYPE NEXT_HOP HUB ROUTE_TABLE
10.1.1.0/24 ACTIVE VPC_PRIMARY_SUBNET vpc1-ncc ncc-hub default
ضبط VPC2 كمحور NCC
gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--global
اضبط VPC3 كمحور NCC وخصِّصه لمركز NCC الذي تم إنشاؤه سابقًا.
gcloud network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--global
ما السبب؟
ERROR: (gcloud.network-connectivity.spokes.linked-vpc-network.create) Invalid resource state for "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/global/networks/vpc3-ncc": 10.3.3.0/24 (SUBNETWORK) overlaps with 10.3.3.0/24 (SUBNETWORK) from "projects/user-3p-dev/global/networks/vpc2-ncc" (peer)
رصدت أداة NCC Hub نطاق IP متداخلاً مع VPC2. تذكَّر أنّه تم إعداد كل من VPC2 وVPC3 باستخدام الشبكة الفرعية 10.3.3.0/24 لعنوان IP.
فلترة نطاقات عناوين IP المتداخلة باستخدام "استبعاد التصدير"
في وقت كتابة هذا الدرس التطبيقي حول الترميز، كانت هناك مشكلة معروفة، وهي أنّه على المستخدمين حذف إشارات NCC وإعادة إنشائها لإجراء تغييرات على إعدادات فلتر التصدير.
gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
ملاحظة: يتطلّب حذف خطاب VPC المرتبط بـ VPC فترة انتظار مدتها 10 دقائق لتنتهي صلاحيتها لإعادة إنشاء خطاب جديد يشير إلى VPC نفسه.
gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global
اضبط VPC3 كمحور NCC وخصِّصه لمركز NCC الذي تم إنشاؤه سابقًا. من المفترَض أن تنجح هذه المحاولة لإضافة VPC3 كمحادثة إلى NCC.
gcloud network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global
أدرِج محتوى جدول التوجيه التلقائي في NCC Hub وافحص النتائج.
gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default
يتم استبعاد نطاقات IP المتداخلة من VPC2 وVPC3. يتوافق جدول توجيه NCC Hub مع جميع أنواع النطاقات الصالحة الصالحة للإصدار 4 من بروتوكول IP، باستثناء عناوين IP العامة التي يتم استخدامها بشكل خاص (PUPI).
5- NCC مع Cross Project Spokes
نظرة عامة
لقد ضبطت حتى الآن مكبّرات صوت NCC التي تنتمي إلى المشروع نفسه الذي يتضمّن "المركز". في هذا القسم، يمكنك ضبط شبكة VPC على أنّها NCC Spoke من مشروع منفصل غير مركز NCC باستخدام أوامر gcloud.
يتيح ذلك لمالكي المشاريع الذين يديرون شبكات VPC الخاصة بهم المشاركة في إمكانية الاتصال بالشبكة باستخدام NCC Hub.
مشروع مشترك: Google Cloud Console وCloud Shell
وللتفاعل مع Google Cloud Platform، سنستخدم كلاً من Google Cloud Console وCloud Shell خلال هذا الدرس التطبيقي.
وحدة التحكّم في Google Cloud Project Spoke
يمكن الوصول إلى Cloud Console من خلال https://console.cloud.google.com.
يمكنك إعداد العناصر التالية في Google Cloud لتسهيل ضبط Network Connectivity Center:
في Google Cloud Console، اختَر مشروعًا على Google Cloud أو أنشئ مشروعًا على Google Cloud في صفحة أداة اختيار المشاريع.
افتح Cloud Shell. يستخدم هذا الدرس التطبيقي حول الترميز $variables للمساعدة في تنفيذ إعدادات gcloud في Cloud Shell.
gcloud auth list
gcloud config list project
gcloud config set project [YOUR-CROSSPROJECT-NAME]
xprojname=[YOUR-CROSSPROJECT-NAME]
echo $xprojname
gcloud config set compute/zone us-central1-a
gcloud config set compute/region us-central1
أدوار "إدارة الهوية وإمكانية الوصول"
تتطلب ميزة NCC أدوار "إدارة الهوية وإمكانية الوصول" للوصول إلى واجهات برمجة تطبيقات محدَّدة. تأكَّد من ضبط المستخدم بأدوار "إدارة الهوية وإمكانية الوصول في NCC" على النحو المطلوب.
على الأقل، يجب منح المشرف المتحدّث عبر المشروعات دور "إدارة الهوية وإمكانية الوصول": "networkconnectivity.networkSpokeManager. "
يسرد الجدول أدناه دور "إدارة الهوية وإمكانية الوصول" المطلوب لمشرفَي NCC Hub وSpoke كمرجع.
الدور/الوصف | الأذونات |
networkconnectivity.networkAdmin - تسمح لمشرفي الشبكات بإدارة الموزّع ومكبرات الصوت. | Networkconnectivity.hubs.networkconnectivity.spokes |
networkconnectivity.networkSpokeManager - تسمح بإضافة مكبرات صوت وإدارتها في الموزع. للاستخدام في شبكة VPC المشتركة حيث يمتلك المشروع المضيف الموزع، ولكن يمكن للمشرفين الآخرين في المشاريع الأخرى إضافة مكبرات صوت لمرفقاتهم إلى "المركز". | Networkconnectivity.spokes** |
networkconnectivity.networkUsernetworkconnectivity.networkViewer: تتيح لمستخدمي الشبكة عرض سمات مختلفة للموزِّع ومكبرات الصوت. | networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList |
إنشاء شبكات VPC والشبكات الفرعية في المشروع المشترك
تحتوي شبكة VPC على شبكات فرعية يجب تثبيت GCE VM عليها للتحقق من مسار البيانات.
gcloud compute networks create xproject-vpc \
--subnet-mode custom
gcloud compute networks subnets create xprj-net-1 \
--network xproject-vpc \
--range 10.100.1.0/24 \
--region us-central1
معرّف الموارد المنتظم (URI) لمشروع NCC Hub
استخدِم الأمر gcloud هذا للعثور على معرّف الموارد المنتظم (URI) الخاص بـ NCC Hub. ستحتاج إلى مسار معرّف الموارد المنتظم (URI) لضبط إعدادات NCC التي تحدث على مستوى المشروع في الخطوة التالية.
gcloud network-connectivity hubs describe ncc-hub
منصّة Cross Project Spoke VPC
سجِّل الدخول إلى المشروع الآخر الذي لا تكون فيه شبكة VPC جزءًا من مشروع NCC Hub. على cloudshell، استخدِم هذا الأمر لضبط VPC كمحور NCC.
- يجب أن يكون HUB_URI هو معرّف الموارد المنتظم (URI) لمركز في مشروع مختلف.
- يجب أن يكون VPC_URI في المشروع نفسه مثل المتحدث
- تحدّد شبكة VPC أن VPC في هذا المشروع المتبادل سينضم إلى NCC Hub في مشروع آخر.
gcloud network-connectivity spokes linked-vpc-network create xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--vpc-network=xproject-vpc
.
Create request issued for: [xproj-spoke]
Waiting for operation [projects/xproject/locations/global/operations/operation-1689790411247-600dafd351158-2b862329-19b747f1] to complete...done.
Created spoke [xproj-spoke].
createTime: '2023-07-19T18:13:31.388500663Z'
hub: projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub
linkedVpcNetwork:
uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/xproject-vpc
name: projects/xproject/locations/global/spokes/xproj-spoke
reasons:
- code: PENDING_REVIEW
message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: 46b4d091-89e2-4760-a15d-c244dcb7ad69
updateTime: '2023-07-19T18:13:38.652800902Z'
ما هي الحالة التي تحدّثت عنها NCC في المشروع المتقاطع؟ لماذا؟
6- رفض أو قبول تسجيلات متقاطعة حول المشروع
نظرة عامة
على مشرفي NCC Hub الموافقة صراحةً على إجراء محادثة متبادَلة مع المركز. ويمنع هذا مالكي المشروع من إرفاق أطراف NCC المخادعة بجدول التوجيه العام في NCC. بعد قبول خطاب أو رفضه، يمكن رفضه أو قبوله لاحقًا عدة مرات كما هو مطلوب من خلال تنفيذ الأوامر أعلاه.
يمكنك الرجوع إلى المشروع الذي يقع فيه مركز NCC من خلال تسجيل الدخول إلى cloud Shell.
تحديد المشاكل المتعلّقة بالمشروع المشترك التي يجب مراجعتها
gcloud network-connectivity hubs list-spokes ncc-hub \
--filter="reason:PENDING_REVIEW"
قبول خطاب
gcloud network-connectivity spokes accept xproj-spoke --global
اختياري: رفض الخطاب
gcloud network-connectivity spokes reject xproj-spoke \
--global \
--details="some reason to reject"
إدراج الإشعارات النشطة على "المركز"
gcloud network-connectivity hubs list-spokes ncc-hub \
--filter="state:ACTIVE"
NAME PROJECT LOCATION TYPE STATE STATE REASON
Xproj-spoke xproj global VPC_NETWORK ACTIVE
vpc4-spoke4 user-3p-dev global VPC_NETWORK ACTIVE
vpc1-spoke1 user-3p-dev global VPC_NETWORK ACTIVE
vpc2-spoke2 user-3p-dev global VPC_NETWORK ACTIVE
vpc3-spoke3 user-3p-dev global VPC_NETWORK ACTIVE
إدراج مسارات الشبكة الفرعية على "المركز"
من الناتج، هل يمكنك رؤية مسارات الشبكة الفرعية من شبكة VPC المتقاطعة؟
gcloud network-connectivity hubs route-tables routes list \
--route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:xprj-vpc"
IP_CIDR_RANGE STATE TYPE NEXT_HOP HUB ROUTE_TABLE
10.100.0.0/16 ACTIVE VPC_PRIMARY_SUBNET xprj-vpc ncc-hub default
7. بروتوكول NAT الخاص بين شبكات VPC الخاصة
نظرة عامة
في هذا القسم، ستضبط إعدادات NAT (ترجمة عنوان الشبكة) الخاصة لنطاقات الشبكة الفرعية المتداخلة بين شريحتَي VPC. ملاحظة: إنّ ترجمة عنوان الشبكة الخاصة بين شبكات VPC تتطلّب توفُّر NCC.
في القسم السابق، تم ضبط VPC2 وVPC3 باستخدام نطاق شبكة فرعية متداخلة يبلغ "10.3.3.0/24". يتم ضبط كل من شبكات VPC كجهاز NCC لاستبعاد الشبكة الفرعية المتداخلة من إدراجها في جدول مسار مركز NCC، ما يعني عدم توفُّر مسار بيانات من الطبقة 3 للوصول إلى المضيفين المتوفّرين على تلك الشبكة الفرعية.
استخدِم هذه الأوامر في مشروع موزّع NCC للعثور على نطاق(نطاقات) الشبكة الفرعية المتداخلة.
gcloud compute networks subnets list --network vpc2-ncc
gcloud compute networks subnets list --network vpc3-ncc
في vpc2-ncc، ما اسم الشبكة الفرعية التي تحتوي على نطاق IP المتداخل؟
*لاحظ اسم الشبكة الفرعية واحفظه في مكان ما. ستضبط ترجمة عنوان الشبكة المصدر على هذا النطاق.
ضبط إعدادات NAT الخاصة
خصِّص نطاق شبكة فرعية قابل للتوجيه للحصول على حركة بيانات NAT من الشبكة الفرعية المتداخلة الخاصة بشبكة VPC2. من خلال ضبط نطاق شبكة فرعية غير متداخلة باستخدام الخيار "–Objective=PRIVATE_NAT" .
gcloud compute networks subnets create ncc2-spoke-nat \
--network=vpc2-ncc \
--region=us-central1 \
--range=10.10.10.0/29 \
--purpose=PRIVATE_NAT
إنشاء موجِّه مخصص في السحابة الإلكترونية لإجراء ترجمة عنوان الشبكة الخاصة
gcloud compute routers create private-nat-cr \
--network vpc2-ncc \
--region us-central1
هيئ الموجه السحابي للحصول على ترجمة عنوان الشبكة إلى النطاق المتداخل 10.3.3.0/24 من vpc2-ncc. في مثال التهيئة أدناه، "overlaping-vpc3" هو اسم الشبكة الفرعية المتداخلة. "الكل" الكلمة الرئيسية أن جميع نطاقات IP في الشبكة الفرعية ستكون مصدر NAT.
gcloud compute routers nats create ncc2-nat \
--router=private-nat-cr \
--type=PRIVATE \
--nat-custom-subnet-ip-ranges=overlapping-vpc3:ALL \
--router-region=us-central1
أدت الخطوات السابقة إلى إنشاء مجموعة من نطاقات عناوين IP لترجمة عنوان الشبكة (NAT) والشبكة الفرعية المحددة التي سيتم ترجمتها. في هذه الخطوة، أنشئ قاعدة NAT "1" يترجم حزم الشبكة التي تطابق حركة البيانات الواردة من نطاق الشبكة الفرعية المتداخل إذا اتخذت شبكة الوجهة مسارًا من جدول توجيه مركز NCC.
gcloud compute routers nats rules create 1 \
--router=private-nat-cr \
--region=us-central1 \
--match='nexthop.hub == "//networkconnectivity.googleapis.com/projects/$projectname/locations/global/hubs/ncc-hub"' \
--source-nat-active-ranges=ncc2-spoke-nat \
--nat=ncc2-nat
التحقُّق من آلية NAT الخاصة
gcloud compute routers nats describe ncc2-nat --router=private-nat-cr
مثال على الناتج
enableDynamicPortAllocation: true
enableEndpointIndependentMapping: false
endpointTypes:
- ENDPOINT_TYPE_VM
name: ncc2-nat
rules:
- action:
sourceNatActiveRanges:
- https://www.googleapis.com/compute/projects/yueri-3p-dev/regions/us-central1/subnetworks/ncc2-spoke-nat
match: nexthop.hub == "//networkconnectivity.googleapis.com/projects/yueri-3p-dev/locations/global/hubs/ncc-hub"
ruleNumber: 1
sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
subnetworks:
- name: https://www.googleapis.com/compute/projects/yueri-3p-dev/regions/us-central1/subnetworks/overlapping-vpc3
sourceIpRangesToNat:
- ALL_IP_RANGES
type: PRIVATE
(إجراء اختياري)
- التبديل إلى وحدة التحكّم على الويب
- انتقل إلى "خدمات الشبكة >" تقنية NAT (ترجمة عنوان الشبكة) (NAT) > ncc2-nat"
تحقَّق من تفعيل تخصيص المنفذ الديناميكي تلقائيًا.
بعد ذلك، ستتحقّق من مسار البيانات الذي يستخدم مسار NAT الخاص الذي تم إعداده لـ VPC2.
افتح جلسة SSH من أجل "vm1-vpc1-ncc" واستخدِم الأمر tcpdump أدناه لالتقاط حزم البيانات الصادرة من نطاق تجمع NAT "10.10.10.0/29."
vm1-vpc1-ncc
sudo tcpdump -i any net 10.10.10.0/29 -n
في وقت كتابة هذا الدرس التطبيقي حول الترميز، كانت آلية NAT الخاصة لا تدعم حزم بروتوكول رسائل التحكّم في الإنترنت (ICMP). جلسة SSH إلى "pNat-vm-vpc2" واستخدم الأمر curl كما هو موضح أدناه للاتصال بـ "vm1-vpc1-ncc" على المنفذ TCP 80.
pnat-vm-vpc2
curl 10.1.1.2 -v
افحص ناتج tcpdump على "vm1-vpc1-ncc." ما هو عنوان IP المصدر الذي أنشأ جلسة TCP لخادم الويب على "vm1-vpc1-ncc".
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
19:05:27.504761 ens4 In IP 10.10.10.2.1024 > 10.1.1.2:80: Flags [S], seq 2386228656, win 65320, options [mss 1420,sackOK,TS val 3955849029 ecr 0,nop,wscale 7], length 0
19:05:27.504805 ens4 Out IP 10.1.1.2:80 > 10.10.10.2.1024: Flags [S.], seq 48316785, ack 2386228657, win 64768, options [mss 1420,sackOK,TS val 1815983704 ecr 3955849029,nop,wscale 7], length 0
<output snipped>
8. التحقّق من اتصال مسار البيانات
ارجع إلى الرسم البياني وتحقَّق من مسار البيانات بين كل جهاز افتراضي.
SSH إلى "vm1-vpc1-ncc" وابدأ تشغيل تفريغ TCP لتتبع حزم ICMP من " vm2-vpc2-ncc." نذكّرك بأنّ هذا الجهاز الافتراضي متوفّر على VPC2.
vm1-vpc1-ncc
sudo tcpdump -i any icmp -v -e -n
إنشاء جلسة SSH على "vm1-vpc2-ncc" و"ping" عنوان IP لـ "vm1-vpc1-ncc".
vm1-vpc2-ncc
ping 10.1.1.2
أنشئ بروتوكول SSH لكل من "vm1-vpc2-ncc" و"ping" عنوان IP لـ "vm1-vpc4-ncc".
vm1-vpc2-ncc
ping 240.0.0.2
9. تنظيف
تسجيل الدخول إلى cloud shell وحذف مثيلات الأجهزة الافتراضية في الموزع (hub) وشبكات المواقع الإلكترونية الفرعية
حذف إعدادات VPC Nat الخاصة
gcloud compute routers nats rules delete 1 \
--nat=ncc2-nat \
--router=private-nat-cr \
--region=us-central1 \
--quiet
gcloud compute routers nats delete ncc2-nat \
--router=private-nat-cr \
--router-region=us-central1 \
--quiet
gcloud compute routers delete private-nat-cr \
--region=us-central1 \
--quiet
حذف مكبّرات الصوت في الحقل "نسخة إلى"
gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet
gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet
gcloud network-connectivity spokes delete vpc3-spoke3 --global --quiet
gcloud network-connectivity spokes delete vpc4-spoke4 --global --quiet
رفض نقاش حول المشروع بين مختلف الأطراف
رفْض خطة VPC في المشروع المتقاطع من مركز NCC.
gcloud network-connectivity spokes reject projects/$xprojname/locations/global/spokes/xproj-spoke \--details="cleanup" \
--global
حذف مركز NCC
gcloud network-connectivity hubs delete ncc-hub --quiet
حذف قواعد جدار الحماية
gcloud compute firewall-rules delete ncc1-vpc-internal --quiet
gcloud compute firewall-rules delete ncc2-vpc-internal --quiet
gcloud compute firewall-rules delete ncc3-vpc-internal --quiet
gcloud compute firewall-rules delete ncc4-vpc-internal --quiet
gcloud compute firewall-rules delete ncc1-vpc-iap --quiet
gcloud compute firewall-rules delete ncc2-vpc-iap --quiet
gcloud compute firewall-rules delete ncc3-vpc-iap --quiet
gcloud compute firewall-rules delete ncc4-vpc-iap --quiet
حذف مثيلات GCE
gcloud compute instances delete vm1-vpc1-ncc --zone=us-central1-a --quiet
gcloud compute instances delete vm2-vpc2-ncc --zone=us-central1-a --quiet
gcloud compute instances delete pnat-vm-vpc2 --zone=us-central1-a --quiet
gcloud compute instances delete vm1-vpc4-ncc --zone=us-east1-b --quiet
حذف الشبكات الفرعية لشبكة VPC
gcloud compute networks subnets delete ncc2-spoke-nat --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet2 --region us-central1 --quiet
gcloud compute networks subnets delete vpc1-ncc-subnet3 --region us-central1 --quiet
gcloud compute networks subnets delete vpc2-ncc-subnet1 --region us-central1 --quiet
gcloud compute networks subnets delete overlapping-vpc2 --region us-central1 --quiet
gcloud compute networks subnets delete overlapping-vpc3 --region us-central1 --quiet
gcloud compute networks subnets delete benchmark-testing-rfc2544 --region us-east1 --quiet
gcloud compute networks subnets delete class-e-rfc5735 --region us-east1 --quiet
gcloud compute networks subnets delete ietf-protcol-assignment-rfc6890 --region us-east1 --quiet
gcloud compute networks subnets delete ipv6-4-relay-rfc7526 --region us-east1 --quiet
gcloud compute networks subnets delete pupi --region us-east1 --quiet
gcloud compute networks subnets delete test-net-1-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-2-rfc5737 --region us-east1 --quiet
gcloud compute networks subnets delete test-net-3-rfc5737 --region us-east1 --quiet
حذف شبكات VPC
gcloud compute networks delete vpc1-ncc vpc2-ncc vpc3-ncc vpc4-ncc
--quiet
10. تهانينا!
لقد أكملت برنامج Network Connectivity Center Lab!
المواضيع التي تناولتها
- تم ضبط شبكة تبادل المعلومات بين شبكات VPC الكاملة المتداخلة مع مركز NCC
- فلتر استبعاد الخطابات في NCC
- الدعم المتبادل للمشروع
- ترجمة عنوان الشبكة الخاصة بين سحابة VPC
الخطوات التالية
©Google, LLC أو الشركات التابعة لها. جميع الحقوق محفوظة. يُرجى عدم توزيعها.