Code Lab: NCC VPC as a Spoke

1. مقدمة

نظرة عامة

في هذا التمرين العملي، سيتعرّف المستخدمون على كيفية استخدام Network Connectivity Center(NCC) لإنشاء اتصال بين شبكات VPC على نطاق واسع من خلال إتاحة استخدام VPC Spokes. عندما يحدّد المستخدمون شبكة VPC كشبكة فرعية لشبكة VPC، يتيح لهم ذلك ربطها بشبكات VPC متعددة معًا من خلال NCC Hub. يقلّل "مركز إدارة الشبكة" مع إعدادات VPC spoke من تعقيد العمليات المتعلقة بإدارة الاتصال الثنائي بين شبكات VPC من خلال ربط شبكات VPC، وذلك باستخدام نموذج مركزي لإدارة الاتصال.

تذكَّر أنّ Network Connectivity Center (NCC) هو نموذج لوحة تحكّم مركزي وموزّع لإدارة اتصال الشبكة في Google Cloud. يوفر مورد المحور نموذجًا مركزيًا لإدارة الاتصال من أجل ربط الشبكات الفرعية.

ما ستنشئه

في هذا الدرس العملي، ستنشئ بنية شبكة مركزية ومحورية منطقية باستخدام مركز NCC الذي سينفّذ نسيج اتصال بشبكة VPC متداخلة بالكامل على مستوى ثلاث شبكات VPC مختلفة.

ما ستتعلمه

  • ربط شبكات VPC ببعضها بالكامل باستخدام NCC
  • ترجمة عنوان الشبكة الخاص (NAT) على مستوى السحابة الإلكترونية الافتراضية الخاصة (VPC)

المتطلبات

  • معرفة شبكة السحابة الافتراضية الخاصة (VPC) في Google Cloud Platform
  • معرفة Cloud Router وتوجيه بروتوكول BGP
  • مشروعان منفصلان على Google Cloud Platform
  • يتطلّب هذا الدرس التطبيقي حول الترميز 5 شبكات VPC. يجب أن تكون إحدى شبكات VPC هذه في مشروع منفصل عن مركز NCC.
  • تحقَّق من الحصة:الشبكات واطلب إضافة شبكات إضافية إذا لزم الأمر، كما هو موضّح في لقطة الشاشة أدناه:

6bc606cb34bce7e8.png

الأهداف

  • إعداد بيئة GCP
  • إعداد Network Connectivity Center مع استخدام شبكة 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 أو أنشِئ مشروعًا.

شغِّل 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

أدوار "إدارة الهوية وإمكانية الوصول"

تتطلّب "مركز إدارة العملاء" أدوار IAM للوصول إلى واجهات برمجة تطبيقات معيّنة. احرص على ضبط المستخدم باستخدام أدوار NCC IAM حسب الحاجة.

الدور/الوصف

الأذونات

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 وقواعد جدار الحماية في مشروع مختلف.

dc4ed09dae1a0056.png

إنشاء شبكات VPC والشبكات الفرعية

تحتوي شبكة VPC على شبكات فرعية ستثبّت فيها آلة GCE الافتراضية للتحقّق من صحة مسار البيانات.

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

نطاقات الشبكات الفرعية المتوافقة مع شبكة VPC

تتيح "خدمة مقارنة الأسعار" جميع نطاقات الشبكات الفرعية الصالحة لبروتوكول 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)
  • عمليات الشراء داخل التطبيق (IAP)
  • النطاق 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".

أنشئ أربعة أجهزة افتراضية، وسيتم تخصيص كل جهاز افتراضي لإحدى الشبكات الخاصة الافتراضية التي تم إنشاؤها سابقًا

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- مركز Network Connectivity Center

نظرة عامة

في هذا القسم، سنضبط إعدادات NCC Hub باستخدام أوامر gcloud. سيعمل مركز NCC كطبقة تحكّم مسؤولة عن إنشاء إعدادات التوجيه بين كل شبكة VPC فرعية.

860347511de47cea.png

تفعيل خدمات واجهة برمجة التطبيقات

فعِّل واجهة برمجة التطبيقات الخاصة باتصال الشبكة في حال لم يتم تفعيلها بعد:

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"

 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. ملاحظة* سيكون جدول التوجيه في مركز NCC فارغًا إلى أن يتم

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default

يجب أن يكون جدول التوجيه في "مركز NCC" فارغًا.

4. NCC مع أجهزة توجيه VPC

نظرة عامة

في هذا القسم، ستضبط ثلاث شبكات VPC كشبكة فرعية في NCC باستخدام أوامر gCloud.

b367b1659d2df694.png

ضبط شبكات VPC كشبكة فرعية في NCC

ضبط شبكات VPC التالية كشبكة فرعية في NCC بهذا الترتيب

  • VPC4
  • VPC1
  • VPC2
  • VPC3

اضبط VPC4 كشبكة فرعية في NCC واربطها بمركز NCC الذي تم إنشاؤه سابقًا. تتطلّب طلبات البيانات من واجهة برمجة التطبيقات NCC تحديد موقع جغرافي. تسهّل العلامة "‎–global" بنية 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-exclude-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. ماذا حدث لزوج الشبكات الفرعية /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" نطاق عناوين IP متداخلاً مع VPC2. تذكَّر أنّه تم إعداد كلّ من VPC2 وVPC3 باستخدام شبكة IP الفرعية نفسها 10.3.3.0/24.

فلترة نطاقات عناوين IP المتداخلة باستخدام ميزة "استبعاد التصدير"

استخدِم أمر gcloud لتعديل VPC2 spoke لاستبعاد نطاق عناوين IP المتداخل.

gcloud  network-connectivity spokes linked-vpc-network update vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global

استخدِم أمر gcloud لتعديل جهاز NCC الظاهري لشبكة VPC3 من أجل استبعاد نطاق الشبكة الفرعية المتداخلة.

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 وافحص الناتج.

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default

يتم استبعاد نطاقات عناوين IP المتداخلة من VPC2 وVPC3. يتوافق جدول توجيه NCC Hub مع جميع أنواع نطاقات IPv4 الصالحة باستثناء عناوين IP العامة المستخدَمة بشكل خاص (PUPI).

5- NCC with Cross Project Spokes

نظرة عامة

حتى الآن، أعددت أجهزة NCC تابعة تنتمي إلى المشروع نفسه الذي ينتمي إليه الجهاز المحوري. في هذا القسم، ستضبط شبكة VPC كشبكة فرعية في "مركز اتصال الشبكة" من مشروع منفصل غير "مركز اتصال الشبكة" باستخدام أوامر gCloud.

يتيح ذلك لمالكي المشاريع الذين يديرون شبكات VPC الخاصة بهم المشاركة في اتصال الشبكة مع NCC Hub.

a90b3185e30832e8.png

استخدام مشاريع متعددة: Google Cloud Console وCloud Shell

للتفاعل مع Google Cloud Platform، سنستخدم كلاً من Google Cloud Console وCloud Shell خلال هذا الدرس التطبيقي.

Cross Project Spoke Google Cloud Console

يمكن الوصول إلى Cloud Console على https://console.cloud.google.com.

اضبط العناصر التالية في Google Cloud لتسهيل إعداد Network Connectivity Center:

في Google Cloud Console، في صفحة اختيار المشروع، اختَر مشروعًا على 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

أدوار "إدارة الهوية وإمكانية الوصول"

تتطلّب "مركز إدارة العملاء" أدوار IAM للوصول إلى واجهات برمجة تطبيقات معيّنة. احرص على ضبط المستخدم باستخدام أدوار NCC IAM حسب الحاجة.

يجب منح مسؤول الشبكة الفرعية في المشاريع المختلفة دور IAM التالي على الأقل: "networkconnectivity.networkSpokeManager". "

يسرد الجدول أدناه دور إدارة الهوية وإمكانية الوصول (IAM) المطلوب لمشرف NCC Hub and 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 على شبكات فرعية ستثبّت فيها آلة GCE الافتراضية للتحقّق من صحة مسار البيانات.

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

gcloud compute networks subnets create xprj-net-2 \
--network xproject-vpc \
--range 10.100.2.0/24 \
--region us-central1

معرّف الموارد المنتظم (URI) لمشروع مركز NCC

استخدِم أمر gcloud هذا للعثور على معرّف الموارد المنتظم (URI) الخاص بـ NCC Hub. ستحتاج إلى مسار معرّف الموارد المنتظم (URI) لضبط منطقة NCC الفرعية بين المشاريع في الخطوة التالية.

gcloud network-connectivity hubs describe ncc-hub

Cross Project Spoke VPC

سجِّل الدخول إلى المشروع الآخر الذي لا تشكّل فيه شبكة VPC جزءًا من مشروع "مركز NCC". في Cloudshell، استخدِم هذا الأمر لضبط شبكة VPC كشبكة فرعية في NCC.

  • يجب أن يكون HUB_URI هو معرّف الموارد المنتظم (URI) لمركز في مشروع مختلف.
  • يجب أن يكون VPC_URI في المشروع نفسه الذي يتضمّن الشبكة الفرعية
  • تحدّد شبكة VPC شبكة VPC في هذا المشروع المشترك التي ستنضم إلى مركز NCC في مشروع آخر.
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 hubs accept-spoke ncc-hub --spoke=xproj-spoke

اختياري: رفض مستند فرعي

gcloud network-connectivity spokes reject-spoke ncc-hub --spoke=xproj-spoke 
--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

إدراج مسارات الشبكة الفرعية على Hub

هل يمكنك الاطّلاع من الناتج على مسارات الشبكة الفرعية من الشبكة الفرعية البعيدة في شبكة 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.1.0/24  ACTIVE  VPC_PRIMARY_SUBNET  xprj-vpc  ncc-hub  default

تعديل شبكة VPC الفرعية بين المشاريع باستخدام فلتر Include-Export

سجِّل الدخول إلى المشروع الذي لا يشكّل فيه VPC جزءًا من مشروع NCC Hub. في Cloudshell، استخدِم هذا الأمر لضبط شبكة VPC كشبكة فرعية في NCC.

  • يجب أن يكون HUB_URI هو معرّف الموارد المنتظم (URI) لمركز في مشروع مختلف.
  • يجب أن يكون VPC_URI في المشروع نفسه الذي يتضمّن الشبكة الفرعية
  • تحدّد شبكة VPC شبكة VPC في هذا المشروع المشترك التي ستنضم إلى مركز NCC في مشروع آخر.
  • استيراد نطاق الشبكة الفرعية 10.100.2.0/24 فقط إلى "جدول مسارات مركز NCC"
  • دوِّن قيمة "ETAG" من الناتج. يتم إنشاء هذه القيمة من خلال "مركز التعاون في الأخبار"، وعليك تقديمها إلى مشرف "مركز التعاون في الأخبار". سيحتاج مشرف مركز NCC إلى الرجوع إلى هذه القيمة عند قبول طلب المشروع الفرعي للانضمام إلى المركز.
gcloud network-connectivity spokes linked-vpc-network update xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--include-export-ranges=10.100.2.0/24
Update request issued for: [xprj-vpc]
Waiting for operation [projects]/xproject/locations/global/operations/operation-1742936388803-6313100521cae-020ac5d2-58
52fbba] to complete...done.                                                                                                 
Updated spoke [xprj-vpc].
createTime: '2025-02-14T14:25:41.996129250Z'
etag: '4'
fieldPathsPendingUpdate:
- linked_vpc_network.include_export_ranges
group: projects/xxxxxxxx/locations/global/hubs/ncc-hub/groups/default
hub: projects/xxxxxxxx/locations/global/hubs/ncc-hub
linkedVpcNetwork:
  includeExportRanges:
  - 10.100.2.0/24
  uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/vpc1-spoke
name: projects/xproject/locations/global/spokes/xprj-vpc
reasons:
- code: UPDATE_PENDING_REVIEW
  message: Spoke update is Pending Review
spokeType: VPC_NETWORK
state: ACTIVE
uniqueId: 182e0f8f-91cf-481c-a081-ea6f7e40fb0a
updateTime: '2025-03-25T20:59:51.995734879Z'

تحديد المشاريع الفرعية المعدَّلة التي يجب مراجعتها

سجِّل الدخول إلى المشروع الذي يستضيف مركز NCC. في Cloud Shell، استخدِم هذا الأمر للتحقّق من حالة تعديل الشبكة الفرعية لشبكة VPC في مشاريع متعددة.

  • ما هي قيمة ETag؟ يجب أن تتطابق هذه القيمة مع المخرجات الناتجة عن عملية تعديل الشبكة الفرعية VPC.
gcloud network-connectivity hubs list-spokes ncc-hub \ 
--filter="reasons:UPDATE_PENDING_REVIEW" \
--format=yaml

قبول التغييرات المعدَّلة من المشروع الفرعي

استخدِم الأمر لقبول طلب الانضمام إلى "مركز NCC" من المشروع الفرعي

gcloud network-connectivity hubs accept-spoke-update ncc-hub \
 --spoke=https://www.googleapis.com/networkconnectivity/v1/projects/xproject/locations/global/spokes/xproj-spoke \
 --spoke-etag={etag value}

اختياريًا، ارفض التغييرات المعدَّلة من نظام "العجلة والمحور" للمشاريع المتعددة

استخدِم الأمر لرفض طلب الانضمام إلى NCC Hub الذي أرسله جهاز التوجيه بين المشاريع.

gcloud network-connectivity hubs reject-spoke-update ncc-hub  \
--spoke=https://www.googleapis.com/networkconnectivity/v1/projects/xproject/locations/global/spokes/xproj-spoke  \
--details="not today" \
--spoke-etag={etag value} 

التأكّد من انضمام الشبكة الفرعية إلى مركز NCC

gcloud network-connectivity hubs list-spokes ncc-hub \ --filter="name:xproj-spoke"

7. الترجمة الخاصة لعناوين الشبكة(NAT) بين شبكات VPC

نظرة عامة

في هذا القسم، ستضبط ترجمة عناوين الشبكة الخاصة (NAT) لنطاقات الشبكات الفرعية المتداخلة بين شبكتَي VPC. يُرجى العِلم أنّ ترجمة عناوين الشبكة الخاصة(NAT) بين شبكات 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) للمصدر لهذا النطاق.

ضبط Private NAT

خصِّص نطاق شبكة فرعية قابلة للتوجيه لتوجيه الزيارات من خلال NAT المصدر من الشبكة الفرعية المتداخلة في VPC2. من خلال ضبط نطاق شبكة فرعية غير متداخل باستخدام العلامة "‎–purpose=PRIVATE_NAT".

gcloud beta 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

اضبط موجّه السحابة الإلكترونية على ترجمة عنوان الشبكة (NAT) للمدى المتداخل 10.3.3.0/24 من vpc2-ncc. في مثال الإعداد أدناه، "overlapping-vpc3" هو اسم الشبكة الفرعية المتداخلة. تحدّد الكلمة الرئيسية "ALL" أنّه سيتم تطبيق ترجمة عنوان الشبكة (NAT) على جميع نطاقات عناوين IP في الشبكة الفرعية.

gcloud beta 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 beta 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

التحقّق من مسار البيانات لترجمة عناوين الشبكة الخاصة

gcloud beta 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/beta/projects/xxxxxxxx/regions/us-central1/subnetworks/ncc2-spoke-nat
  match: nexthop.hub == "//networkconnectivity.googleapis.com/projects/xxxxxxxx/locations/global/hubs/ncc-hub"
  ruleNumber: 1
sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
subnetworks:
- name: https://www.googleapis.com/compute/beta/projects/xxxxxxxx/regions/us-central1/subnetworks/overlapping-vpc3
  sourceIpRangesToNat:
  - ALL_IP_RANGES
type: PRIVATE

اختياريًا،

  • التبديل إلى وحدة تحكّم الويب
  • انتقِل إلى "خدمات الشبكة > Cloud NAT > ncc2-nat".

تأكَّد من أنّ تخصيص المنافذ الديناميكي مفعَّل تلقائيًا.

7317d3cfb7e9468b.png

بعد ذلك، عليك إثبات صحة مسار البيانات الذي يستخدم مسار NAT الخاص الذي تم ضبطه لشبكة VPC2.

444d45616f1d0cae.png

افتح جلسة 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. دعم NCC للشبكات الفرعية IPv6

يتيح Network Connectivity Center تبادل الشبكات الفرعية IPv6 وتبادل المسارات الديناميكية بين أجهزة Hybrid Spokes وأجهزة NCC VPC Spokes. في هذا القسم، يمكنك ضبط NCC لتوفير وضع تبادل مسار الشبكة الفرعية IPv4 وIPv6 المزدوج ووضع IPv6 فقط.

57282c3276d50671.png

أنشئ شبكة VPC جديدة لبروتوكول IPv6 ستنضم إلى NCC-Hub كشبكة فرعية من شبكة VPC. ستخصّص GCP تلقائيًا جميع عناوين ULA من النطاق fd20::/20.

gcloud compute networks create vpc5-ncc \
--subnet-mode custom \
--enable-ula-internal-ipv6 

gcloud compute networks subnets create vpc5-ext-ipv6 \ --network=vpc5-ncc \ 
--stack-type=IPV6 \ 
--ipv6-access-type=EXTERNAL \ 
--region=us-central1

gcloud compute networks subnets create vpc5-ipv4-subnet1 \
--network vpc5-ncc \
--range 10.5.5.0/24 \
--region us-central1

استخدِم هذا الأمر لضبط VPC5 كشبكة فرعية في NCC واستبعاد مسار الشبكة الفرعية IPv4 من التصدير إلى جدول مسار المحور. صدِّر شبكة ULA الخاصة بالإصدار السادس من بروتوكول الإنترنت (IPv6) إلى جدول مسار مركز NCC.

gcloud network-connectivity spokes linked-vpc-network create vpc5-spoke5 \
--hub=ncc-hub \
--vpc-network=vpc5-ncc \
--exclude-export-ranges=10.5.5.0/24
--global

فعِّل VPC1 وVPC4 لعناوين IPv6 الخاصة الفريدة المحلية (ULA). ستخصّص "منصة Google Cloud" تلقائيًا جميع عناوين ULA من النطاق fd20::/20.

gcloud compute networks update vpc-ncc4 \
    --enable-ula-internal-ipv6

gcloud compute networks update vpc-ncc1 \
    --enable-ula-internal-ipv6

إنشاء شبكة فرعية أصلية من النوع ipv6 وشبكة فرعية مزدوجة الحزمة من النوع ipv4_v6 في VPC1

gcloud compute networks subnets create vpc1-ipv6-sn1 \
    --network=vpc-ncc1 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=INTERNAL \
    --region=us-central1

gcloud compute networks subnets create vpc1-ipv64-sn2 \
    --network=vpc-ncc1 \
    --range=10.10.10.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=us-east1

إنشاء شبكة فرعية IPv6 أصلية وشبكة فرعية مزدوجة الحزمة ipv4_v6 في VPC4

gcloud compute networks subnets create vpc4-ipv6-sn1 \
    --network=vpc-ncc4 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=INTERNAL \
    --region=us-central1

gcloud compute networks subnets create vpc4-ipv64-sn2 \
    --network=vpc-ncc4 \
    --range=10.40.40.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=us-east1

في VPC1، أنشئ قاعدة جدار حماية للسحابة الإلكترونية الافتراضية الخاصة (VPC) تستخدم الإصدار السادس من بروتوكول الإنترنت (IPv6) للسماح بالزيارات الواردة من نطاق عناوين ULA المتوافقة مع الإصدار السادس من بروتوكول الإنترنت (IPv6).

gcloud compute firewall-rules create allow-icmpv6-ula-ncc1 \
    --network=vpc-ncc1 \
    --action=allow \
    --direction=ingress \
    --rules=all \
    --source-ranges=fd20::/20

في VPC4، أنشئ قاعدة جدار حماية IPv6 VPC للسماح بالزيارات الواردة من نطاق ULA الخاص بالإصدار السادس من بروتوكول الإنترنت.

gcloud compute firewall-rules create allow-icmpv6-ula-ncc4 \
    --network=vpc-ncc4 \
    --action=allow \
    --direction=ingress \
    --rules=all \
    --source-ranges=fd20::/20

أنشئ ثلاث آلات افتراضية من GCE IPv6 للتحقّق من إمكانية الاتصال بمسار البيانات في القسم التالي. ملاحظة: سيتم استخدام vpc1-dualstack-vm كمضيف وسيط للوصول خارج النطاق إلى الأجهزة الافتراضية الأصلية التي تستخدم IPv6 في "محرك حساب Google".

gcloud compute instances create vpc4-ipv6-vm \
    --zone us-central1-a \
    --subnet=vpc4-ipv6-sn1 \
    --stack-type=IPV6_ONLY

gcloud compute instances create vpc1-ipv6-vm \
    --zone us-central1-a \
    --subnet=vpc1-ipv6-sn1 \
    --stack-type=IPV6_ONLY

gcloud compute instances create vpc1-dual-stack-vm \
    --zone us-east1-b \
    --network=vpc-ncc1 \
    --subnet=vpc2-ipv64-sn2 \
    --stack-type=IPV4_IPV6

التحقّق من مركز NCC بحثًا عن الشبكات الفرعية IPv6

راجِع جدول مسار مركز NCC بحثًا عن الشبكات الفرعية لعنوان ULA من الإصدار السادس من بروتوكول الإنترنت (IPv6).

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="IP_CIDR_RANGE:fd20"

لاحظ أنّ نتيجة الأمر أعلاه لم تدرِج الشبكات الفرعية IPv6. بشكلٍ تلقائي، لا يتم تضمين الشبكات الفرعية IPv6 من أجهزة VPC الطرفية لتصديرها إلى جدول توجيه مركز NCC.

Listed 0 items.

استخدِم أوامر gcloud أدناه لتعديل أجهزة التوجيه VPC1 وVPC4 لتصدير الشبكات الفرعية IPv6 إلى جدول مسار مركز NCC.

gcloud network-connectivity spokes linked-vpc-network update vpc1-spoke1 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

gcloud network-connectivity spokes linked-vpc-network update vpc4-spoke4 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

مرّة أخرى، تحقَّق من جدول مسار مركز NCC بحثًا عن الشبكات الفرعية لعنوان ULA من الإصدار السادس من بروتوكول الإنترنت (IPv6).

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="IP_CIDR_RANGE:fd20"

مثال على الناتج

IP_CIDR_RANGE                  PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
fd20:c95:95d2:1000:0:0:0:0/64            us-east1     ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc4  ncc-hub  default
fd20:c95:95d2:1:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc4  ncc-hub  default
fd20:670:3823:0:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
fd20:90:6768:1000:0:0:0:0/64             us-east1     ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc2  ncc-hub  default
fd20:90:6768:0:0:0:0:0/64                us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc2  ncc-hub  default

فلترة الشبكات الفرعية لبروتوكول IPv6 باستخدام أجهزة توجيه VPC في "مركز الاتصال بالشبكة"

التحقّق من جدول مسار مركز NCC بحثًا عن مسارات الشبكة الفرعية الخارجية لبروتوكول IPv6

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:vpc-ncc5"

مثال على الناتج، تعلّم جدول مسار مركز NCC نطاق IPv6 الخارجي.

IP_CIDR_RANGE                  PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
10.5.5.0/24                              us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
2600:1900:4001:ce6:0:0:0:0/64            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
fd20:670:3823:0:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
10.50.10.0/24                            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default

استخدِم أمر gcloud أدناه لتعديل أذرع VPC5 لاستبعاد الشبكتَين الفرعيتَين الداخليتَين المحدّدتَين لبروتوكول IPv6 والشبكة الفرعية الخارجية لبروتوكول IPv6 من إدراجها في جدول مسارات مركز NCC.

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
 --global \
 --include-export-ranges=fd20:670:3823:0:0:0:0:0/48 \
 --exclude-export-ranges=fd20:670:3823:1::/64,fd20:670:3823:2::/64  

استخدِم أمر gcloud للتحقّق من فلاتر التصدير الخاصة بـ VPC5 spoke

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
 --global \
 --include-export-ranges=fd20:670:3823:0:0:0:0:0/48 \
 --exclude-export-ranges=fd20:670:3823:1::/64,fd20:670:3823:2::/64  

التحقّق من جدول مسار مركز NCC بحثًا عن مسارات الشبكة الفرعية الخارجية لبروتوكول IPv6

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:vpc-ncc5"

مثال على الناتج، تعلّم جدول مسار مركز NCC نطاق IPv6 الخارجي.

IP_CIDR_RANGE               PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
fd20:670:3823:0:0:0:0:0/64            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  demo-mesh-hub  default

9- التأكّد من إمكانية الوصول إلى مسار البيانات

الاتصال بمسار بيانات IPv4

راجِع الرسم البياني، وتحقّق من مسار بيانات IPv4 بين كل آلة افتراضية.

27c61b09f2bf2d02.png

استخدِم 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" و "أرسِل طلب اختبار اتصال" إلى عنوان 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

الاتصال بمسار بيانات IPv6

راجِع الرسم البياني، وتحقّق من مسار بيانات IP64 بين كل آلة افتراضية.

3afe67968317a16d.png

استخدِم أمر gcloud لإدراج عنوان IP لكل آلة افتراضية مفعَّلة لبروتوكول IPv6.

 gcloud compute instances list --filter="INTERNAL_IP:fd20"

مثال على الناتج

NAME                ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP                   EXTERNAL_IP      STATUS
vpc1-ipv6-vm        us-central1-a  n1-standard-1               fd20:90:6768:0:0:1:0:0/96                      RUNNING
vpc4-ipv6-vm        us-central1-a  n1-standard-1               fd20:c95:95d2:1:0:1:0:0/96                     RUNNING
vpc1-dual-stack-vm  us-east1-b     n1-standard-1               10.10.10.3                    XXX.196.137.107  RUNNING
                                                               fd20:90:6768:1000:0:1:0:0/96

إنشاء جلسة SSH إلى "vpc1-dualstack-vm" وإرسال طلبات ping إلى عنوان IPv6 الخاص بـ "vpc1-ipv6-vm" للتحقّق من إمكانية الاتصال عبر IPv6 داخل شبكة VPC عالمية

ping fd20:90:6768:1000:0:1::

أنشئ جلسة SSH إلى vpc1-dualstack-vm و"أرسِل طلبات اختبار الاتصال" إلى عنوان IPv6 الخاص بـ vpc4-ipv6-vm للتحقّق من إمكانية الاتصال عبر IPv6 من خلال اتصال NCC.

ping fd20:c95:95d2:1:0:1::

10. تنظيف

تسجيل الدخول إلى Cloud Shell وحذف مثيلات الأجهزة الافتراضية في شبكات الموقع المركزي والموقع الفرعي

حذف إعدادات NAT الخاصة بشبكة VPC

gcloud beta compute routers nats rules delete 1 \
--nat=ncc2-nat \
--router=private-nat-cr \
--region=us-central1 \
--quiet

gcloud beta 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

حذف أذرع NCC

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
gcloud compute firewall-rules delete allow-icmpv6-ula-ncc1 
gcloud compute firewall-rules delete allow-icmpv6-ula-ncc4 

حذف مثيلات 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
gcloud compute instances delete vpc4-ipv6-vm  --zone us-central1-a --quiet
gcloud compute instances delete vpc2-dual-stack-vm --zone us-east1-b --quiet
gcloud compute instances delete vpc2-ipv6-vm --zone us-central1-a --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
gcloud compute networks subnets delete vpc1-ipv64-sn2 --region=us-east1 --quiet
gcloud compute networks subnets delete vpc1-ipv6-sn1 --region=us-central1 --quiet
gcloud compute networks subnets delete vpc4-ipv64-sn2 --region=us-east1 --quiet
gcloud compute networks subnets delete vpc4-ipv6-sn1 --region=us-central1 --quiet
gcloud compute networks subnets delete vpc5-ext-ipv6 --region=us-central1 --quiet

حذف شبكات VPC

gcloud compute networks delete vpc1-ncc vpc2-ncc vpc3-ncc vpc4-ncc, vpc5-ncc --quiet 

11. تهانينا!

لقد أكملت الدرس التطبيقي Network Connectivity Center.

المواضيع التي تناولتها

  • تم إعداد شبكة Full Mesh VPC Peering باستخدام NCC Hub
  • NCC Spoke Exclude Filter
  • إتاحة استخدام العقدة الفرعية في مشاريع متعددة
  • الترجمة الخاصة لعناوين الشبكة (NAT) بين سحابة VPC

الخطوات التالية

‫©Google, LLC أو الشركات التابعة لها. جميع الحقوق محفوظة. يُرجى عدم توزيعها.