تطبيق: NCC VPC كـ Spoke

لمحة عن هذا الدرس التطبيقي حول الترميز
schedule7 دقائق
subjectتاريخ التعديل الأخير: 26 يوليو 2024
account_circleتأليف: Eric Yu, David Tu

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

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

التطبيق الذي ستصممه

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

  • اتصال شبكة VPC الكاملة للشبكات المتداخلة باستخدام NCC
  • ترجمة عنوان الشبكة الخاصة على مستوى VPC

المتطلبات

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

6d1b99c6da87fd84.png

الأهداف

  • إعداد بيئة 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 لتسهيل ضبط إعدادات "مركز اتصال الشبكة":

في 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

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

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

245f1002db33ca98.png

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

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

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"

تتيح شبكة 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

ضبط قواعد جدار الحماية على كلّ منهما للسماح بما يلي:

  • بروتوكول النقل الآمن (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" باستخدام أوامر gcloud. سيعمل "مركز NCC" بمثابة مستوى التحكّم المسؤول عن إنشاء إعدادات التوجيه بين كلّ من نقاط اتصال VPC.

8acc7651f52e251e.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
:

ابحث عن معرّف الموارد المنتظم لجدول المسار التلقائي في شبكة 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. مركز التحكم في الشبكة مع نقاط اتصال VPC

نظرة عامة

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

a70bc80037927bb0.png

ضبط شبكات VPC كنقطة اتصال في شبكة NCC

اضبط مساحات التخزين الافتراضية التالية على أنّها نقاط اتصال 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 كشبكة فرعية لمركز التحكم في الحدود واستبعِد زوج الشبكات الفرعية /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 Hub نطاق عناوين IP متداخلًا مع VPC2. تذكَّر أنّه تم إعداد كلّ من VPC2 وVPC3 باستخدام الشبكة الفرعية لعنوان IP ‎10.3.3.0/24 نفسها.

فلترة نطاقات 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" وراجِع النتيجة.

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

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

5- NCC مع المتحدثين عن المشاريع المختلفة

نظرة عامة

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

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

e1190fa898c5097d.png

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

للتفاعل مع Google Cloud Platform، سنستخدم Google Cloud Console وCloud Shell على مدار هذا البرنامج التدريبي.

Google Cloud Console في "مركز عملائك" على مستوى مشاريع متعددة

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

عليك إعداد العناصر التالية في Google Cloud لتسهيل ضبط إعدادات "مركز اتصال الشبكة":

في 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

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

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

على الأقل، يجب منح مشرف نقطة الاتصال على مستوى المشروع دور إدارة الهوية وإمكانية الوصول: "networkconnectivity.networkSpokeManager". "

يسرد الجدول أدناه دور إدارة الهوية وإمكانية الوصول المطلوب لمشرفَي "مركز 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

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

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

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 هذا للعثور على عنوان URL الخاص بمركز NCC Hub. ستحتاج إلى مسار عنوان URL لضبط وحدة تحكّم NCC على مستوى المشاريع في الخطوة التالية.

gcloud network-connectivity hubs describe ncc-hub

شبكة VPC في "مركز الاتصال" على مستوى المشاريع

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

  • يجب أن يكون HUB_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- رفض أو قبول مشاركة المحتوى بين المشاريع

نظرة عامة

على مشرفي "مركز عملائي في Google" قبول مشاركة صريحة من جهة اتصال متعددة المشاريع للانضمام إلى المركز. ويمنع ذلك مالكي المشاريع من ربط نقاط الاتصال غير الصالحة في شبكة 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- ترجمة عنوان IP الخاصة بين شبكات VPC

نظرة عامة

في هذا القسم، ستضبط ترجمة عنوان شبكة خاصة لنطاقات الشبكات الفرعية المتداخلة بين شبكتَي VPC. يُرجى العِلم أنّ تحويل عنوان IP الخاص بين شبكات VPC يتطلّب استخدام "مركز التحكّم في الشبكة".

في القسم السابق، تم ضبط 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. من خلال ضبط نطاق شبكة فرعية غير متداخل باستخدام العلامة "–purpose=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

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

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

اختياريًا،

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

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

114050bb65e0c4e2.png

بعد ذلك، عليك التحقّق من مسار البيانات الذي يستخدم مسار NAT الخاص الذي تم ضبطه لـ VPC2.

5035b181aeaa30a8.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

في وقت كتابة هذا الدليل التعليمي، لا تتيح ترجمة عنوان IP الخاصة حزم 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. التأكّد من إمكانية الاتصال بمسار البيانات

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

424df0ebe4510ebb.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 ونفِّذ الأمر 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 وحذف مثيلات الأجهزة الافتراضية في شبكات الموقع الرئيسي والفرعي

حذف إعدادات ترجمة عنوان شبكة VPC الخاصة

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

حذف المتحدثين في 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 Hub

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. تهانينا!

لقد أكملت الدرس التطبيقي لمركز اتصال الشبكة.

ما تناولته

  • شبكة تبادل المعلومات بين شبكات VPC ذات الشبكة المتداخلة الكاملة التي تم إعدادها باستخدام "مركز NCC"
  • فلتر استبعاد مكبّرات صوت NCC
  • دعم عبر Project Spoke
  • ترجمة عنوان IP الخاصة بين شبكات VPC

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

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