تطبيق: NCC VPC كـ Spoke

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.
  • راجع الحصة:الشبكات وطلب الشبكات الإضافية إذا لزم الأمر، ولقطة الشاشة أدناه:

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

245f1002db33ca98.png

إنشاء شبكات 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.

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

a70bc80037927bb0.png

ضبط شبكات 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.

e1190fa898c5097d.png

مشروع مشترك: 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"

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

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

في وقت كتابة هذا الدرس التطبيقي حول الترميز، كانت آلية 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. التحقّق من اتصال مسار البيانات

ارجع إلى الرسم البياني وتحقَّق من مسار البيانات بين كل جهاز افتراضي.

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 وحذف مثيلات الأجهزة الافتراضية في الموزع (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 أو الشركات التابعة لها. جميع الحقوق محفوظة. يُرجى عدم توزيعها.