CodeLab: Dynamic Route Exchange with NCC

1. مقدمة

نظرة عامة

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

يوفر مورد المحور نموذجًا مركزيًا لإدارة الاتصال من أجل ربط الشبكات الفرعية.

ما ستنشئه

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

21d100d48eee31f1.png

ما ستتعلمه

  • التمييز بين شبكة VPC الخاصة بأحمال العمل وشبكة VPC الخاصة بالتوجيه
  • دمج VPC spoke وHybrid Spoke في NCC

المتطلبات

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

6d1b99c6da87fd84.png

الأهداف

  • إعداد بيئة GCP
  • إعداد Network Connectivity Center مع شبكة VPC كشبكة فرعية
  • ضبط Network Connectivity Center باستخدام أنفاق HA-VPN كشبكة فرعية مختلطة
  • التحقّق من صحة مسار البيانات
  • استكشاف ميزات إمكانية استخدام خدمة 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 [YOUR-PROJECT-NAME]
projectname=[YOUR-PROJECT-NAME]
echo $projectname
region="us-central1"
zone="us-central1-a"

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

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

الدور/الوصف

الأذونات

networkconnectivity.editor: تتيح لمشرفي الشبكة إدارة المحاور والفروع.

networkconnectivity.hubs.networkconnectivity.spokes.networkconnectivity.gatewaynetworkconnectivity.locations.

networkconnectivity.HubAdmin- تتيح الوصول الكامل إلى موارد المحور والفرع.

networkconnectivity.gatewayAdvertisedRoutes.networkconnectivity.groups. networkconnectivity.hubRouteTables.networkconnectivity.hubRoutes.networkconnectivity.hubs. networkconnectivity.locations. networkconnectivity.operations.* networkconnectivity.spokes.*resourcemanager.projects.getresourcemanager.projects.list

networkconnectivity.hubViewer - يتيح إمكانية الاطّلاع على موارد المحور والشبكة الفرعية فقط.

networkconnectivity.gatewayAdvertisedRoutes.getnetworkconnectivity.gatewayAdvertisedRoutes.listnetworkconnectivity.groups.getnetworkconnectivity.groups.getIamPolicynetworkconnectivity.groups.listnetworkconnectivity.hubRouteTables.getnetworkconnectivity.hubRouteTables.getIamPolicynetworkconnectivity.hubRouteTables.listnetworkconnectivity.hubRoutes.getnetworkconnectivity.hubRoutes.getIamPolicynetworkconnectivity.hubRoutes.listnetworkconnectivity.hubs.getnetworkconnectivity.hubs.getIamPolicynetworkconnectivity.hubs.listnetworkconnectivity.hubs.listSpokesnetworkconnectivity.hubs.queryStatus networkconnectivity.locations.*networkconnectivity.spokes.getnetworkconnectivity.spokes.getIamPolicynetworkconnectivity.spokes.listresourcemanager.projects.getresourcemanager.projects.list

2. إعداد بيئة الشبكة

نظرة عامة

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

732e31532d8f6edb.png

المفهوم الأساسي 1

توفّر شبكة Google Cloud Global VPC إمكانية الاتصال بمسار البيانات بين أكثر من 44 منطقة من مناطق GCP. ‫Cloud Router هي خدمة إقليمية تعلن ديناميكيًا عن الشبكات الفرعية وتنشر المسارات التي تم التعرّف عليها في المنطقة التي تم فيها ضبط جهاز التوجيه أو في شبكة VPC بأكملها. يعتمد تحديد ما إذا كان سيتم نشر مسارات جهاز التوجيه السحابي على مستوى منطقة معيّنة أو على مستوى العالم على المستخدم الذي يحدّد وضع التوجيه الديناميكي: إما على مستوى منطقة معيّنة أو على مستوى العالم.

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

  • تحدّد "شبكة VPC للتوجيه" شبكة VPC لم يتم ضبطها كشبكة فرعية في NCC VPC.
  • تحدّد "شبكة VPC الخاصة بعبء العمل" شبكة VPC تم ضبطها كشبكة فرعية في NCC.

إنشاء شبكة VPC الخاصة بأحمال العمل وشبكة فرعية

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

vpc_spoke_network_name="workload-vpc"
vpc_spoke_subnet_name="workload-subnet"
vpc_spoke_subnet_ip_range="10.0.1.0/24"
vpc_spoke_name="workload-vpc-spoke"
region="us-central1"
zone="us-central1-a"

gcloud compute networks create "${vpc_spoke_network_name}" \
--subnet-mode=custom 

gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"

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

تتيح "الشبكة السحابية للاتصالات" جميع نطاقات الشبكات الفرعية الصالحة لبروتوكول IPv4 باستثناء عناوين IP العامة المستخدَمة بشكل خاص.

routing_vpc_network_name="routing-vpc"
routing_vpc_subnet_name="routing-vpc-subnet"
routing_vpc_subnet_range="10.0.2.0/24"

gcloud compute networks create "${routing_vpc_network_name}" \
--subnet-mode=custom

gcloud compute networks subnets create "${routing_vpc_subnet_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}" \
--range="${routing_vpc_subnet_range}"

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

تتيح "الشبكة السحابية للاتصالات" جميع نطاقات الشبكات الفرعية الصالحة لبروتوكول IPv4 باستثناء عناوين IP العامة المستخدَمة بشكل خاص.

on_prem_network_name="on-prem-net-vpc"
on_prem_subnet_name="on-prem-subnet"
on_prem_subnet_range="10.0.3.0/24"

gcloud compute networks create "${on_prem_network_name}" \
--subnet-mode=custom

gcloud compute networks subnets create "${on_prem_subnet_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--range="${on_prem_subnet_range}"

ضبط قواعد جدار الحماية لشبكة VPC الخاصة بأحمال العمل

workload_vpc_firewall_name="workload-protocol-fw-vpc"
workload_port_firewall_name="workload-port-firewall-vpc"

gcloud compute firewall-rules create "${workload_vpc_firewall_name}" \
--network=${vpc_spoke_network_name} \
--allow="tcp,udp,icmp"

gcloud compute firewall-rules create "${workload_port_firewall_name}" \
--network=${vpc_spoke_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"

ضبط قواعد جدار الحماية وسحابة VPC الخاصة بالتوجيه

routing_vpc_fw_name="routing-vpc-protocol-fw"
routing_vpc_port_fw_name="routing-vpc--port-fw"

gcloud compute firewall-rules create "${routing_vpc_fw_name}" \
--network=${routing_vpc_network_name} \
--allow="tcp,udp,icmp"

gcloud compute firewall-rules create "${routing_vpc_port_fw_name}" \
--network=${routing_vpc_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"

ضبط شبكة VPC المحلية وقواعد جدار الحماية في شبكة VPC

prem_protocol_fw_name="onprem-vpc-protocol-firewall"
prem_port_firewall_name="onprem-vpc-port-firewall-prem"

gcloud compute firewall-rules create "${prem_protocol_fw_name}" \
--network=${on_prem_network_name} \
--allow="tcp,udp,icmp"

gcloud compute firewall-rules create "${prem_port_firewall_name}" \
--network=${on_prem_network_name} \
--allow="tcp:22,tcp:3389,tcp:11180,icmp"

ضبط جهاز GCE الافتراضي في كل شبكة VPC

ستحتاج إلى اتصال مؤقت بالإنترنت لتثبيت الحِزم على "vm1-vpc1-ncc".

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

gcloud compute instances create vm1-vpc-workload \
--zone us-central1-a \
--subnet="${vpc_spoke_subnet_name}" \
--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-vpc-routing \
--zone us-central1-a \
--subnet="${routing_vpc_subnet_name}" \
--no-address 

gcloud compute instances create vm3-onprem \
--zone us-central1-a \
--subnet="${on_prem_subnet_name}" \
--no-address 

3- إعداد Hybrid Connectivity

في هذا القسم، سنضبط اتصالاً نفقيًا من نوع HA VPN لربط شبكتَي VPC للمؤسسة والتوجيه معًا.

161d9e6b19ce53a1.png

ضبط Cloud Router باستخدام بروتوكول BGP في شبكة VPC الخاصة بالتوجيه

routing_vpc_router_name="routing-vpc-cr"
routing_vpc_router_asn=64525

gcloud compute routers create "${routing_vpc_router_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}" \
--asn="${routing_vpc_router_asn}"

إعداد Cloud Router باستخدام بروتوكول BGP في شبكة VPC المحلية

on_prem_router_name="on-prem-router"
on_prem_router_asn=64526

gcloud compute routers create "${on_prem_router_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--asn="${on_prem_router_asn}"

إعداد "بوابة شبكة VPN" في شبكة VPC الخاصة بالتوجيه

routing_vpn_gateway_name="routing-vpc-vpn-gateway"

gcloud compute vpn-gateways create "${routing_vpn_gateway_name}" \
--region="${region}" \
--network="${routing_vpc_network_name}"

ضبط "بوابة شبكة VPN" في شبكة VPC المحلية

on_prem_gateway_name="on-prem-vpn-gateway"

gcloud compute vpn-gateways create "${on_prem_gateway_name}" \
--region="${region}" \
--network="${on_prem_network_name}"

ضبط اتصال نفَقي بشبكة VPN في شبكة VPC الخاصة بالتوجيه وشبكة VPC المحلية

secret_key=$(openssl rand -base64 24)
routing_vpc_tunnel_name="routing-vpc-tunnel"
on_prem_tunnel_name="on-prem-tunnel"

gcloud compute vpn-tunnels create "${routing_vpc_tunnel_name}" \
--vpn-gateway="${routing_vpn_gateway_name}" \
--peer-gcp-gateway="${on_prem_gateway_name}" \
--router="${routing_vpc_router_name}" \
--region="${region}" \
--interface=0 \
--shared-secret="${secret_key}"

gcloud compute vpn-tunnels create "${on_prem_tunnel_name}" \
--vpn-gateway="${on_prem_gateway_name}" \
--peer-gcp-gateway="${routing_vpn_gateway_name}" \
--router="${on_prem_router_name}" \
--region="${region}" \
--interface=0 \
--shared-secret="${secret_key}"

إنشاء جلسات BGP لتبادل معلومات بين الشبكات عبر بروتوكول BGP بين شبكة VPC التي يتم توجيهها وأجهزة توجيه السحابة المحلية

interface_hub_name="if-hub-to-prem"
hub_router_ip="169.254.1.1"

gcloud compute routers add-interface "${routing_vpc_router_name}" \
--interface-name="${interface_hub_name}" \
--ip-address="${hub_router_ip}" \
--mask-length=30 \
--vpn-tunnel="${routing_vpc_tunnel_name}" \
--region="${region}"

bgp_hub_name="bgp-hub-to-prem"
prem_router_ip="169.254.1.2"
gcloud compute routers add-bgp-peer "${routing_vpc_router_name}" \
--peer-name="${bgp_hub_name}" \
--peer-ip-address="${prem_router_ip}" \
--interface="${interface_hub_name}" \
--peer-asn="${on_prem_router_asn}" \
--region="${region}"

interface_prem_name="if-prem-to-hub"
gcloud compute routers add-interface "${on_prem_router_name}" \
--interface-name="${interface_prem_name}" \
--ip-address="${prem_router_ip}" \
--mask-length=30 \
--vpn-tunnel="${on_prem_tunnel_name}" \
--region="${region}"

bgp_prem_name="bgp-prem-to-hub"
gcloud compute routers add-bgp-peer "${on_prem_router_name}" \
--peer-name="${bgp_prem_name}" \
--peer-ip-address="${hub_router_ip}" \
--interface="${interface_prem_name}" \
--peer-asn="${routing_vpc_router_asn}" \
--region="${region}"

تلقائيًا، لا يتم الإعلان عن الشبكات الفرعية لـ NCC Hub إلى المواقع الفرعية المختلطة. في الخطوة التالية، اضبط جهاز توجيه السحابة لإرسال إشعارات عن مسارات الشبكة الفرعية NCC إلى الشبكة المحلية.

gcloud compute routers update "${routing_vpc_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--set-advertisement-ranges="${vpc_spoke_subnet_ip_range}" \
--region="${region}"
gcloud compute routers update "${on_prem_router_name}" \
--advertisement-mode custom \
--set-advertisement-groups=all_subnets \
--region="${region}"

عدِّل إعدادات ربط BGP في موجّه السحابة الإلكترونية المحلي للإعلان عن البادئات بقيمة MED تبلغ "111". في قسم لاحق، سنلاحظ سلوك NCC مع قيم BGP Med.

on_prem_router_name="on-prem-router"
bgp_prem_name="bgp-prem-to-hub"

gcloud compute routers update-bgp-peer "${on_prem_router_name}" \
--peer-name="${bgp_prem_name}" \
--advertised-route-priority="111" \
--region="${region}"

التحقّق من حالة نفق VPC للتوجيه

gcloud compute vpn-tunnels describe routing-vpc-tunnel \
--region=us-central1 \
--format='flattened(status,detailedStatus)'

التحقّق من حالة موجّه السحابة الإلكترونية لشبكة VPC

استخدِم أمر gcloud لإدراج مسارات BGP التي تعلّمها موجّه السحابة الافتراضية الخاصة (VPC) الخاص بالتوجيه.

gcloud compute routers get-status routing-vpc-cr \
--region=us-central1

4. مركز Network Connectivity Center

نظرة عامة

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

6a26627c680ddac5.png

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

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

gcloud services enable networkconnectivity.googleapis.com

إنشاء مركز NCC

إنشاء مركز NCC باستخدام أمر gCloud

hub_name="mesh-hub"
gcloud network-connectivity hubs create "${hub_name}"

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

Create request issued for: [mesh-hub]
Waiting for operation [projects/ncc/locations/global/operations/operation-1719930559145-61c448a0426e4-2d18c8dd-7107edbe] to complete...done.               
Created hub [mesh-hub].

أضِف وصفًا لمركز NCC الذي تم إنشاؤه حديثًا. دوِّن الاسم والمسار المرتبط به.

gcloud network-connectivity hubs describe mesh-hub
createTime: '2024-07-02T14:29:19.260054897Z'
exportPsc: false
name: projects/ncc/locations/global/hubs/mesh-hub
policyMode: PRESET
presetTopology: MESH
routeTables:
- projects/ncc/locations/global/hubs/mesh-hub/routeTables/default
state: ACTIVE
uniqueId: 08f9ae88-f76f-432b-92b2-357a85fc83aa
updateTime: '2024-07-02T14:29:32.583206925Z'

قدّمت "بوابة NCC" جدول توجيه يحدّد مستوى التحكّم لإنشاء اتصال البيانات. العثور على اسم جدول توجيه "مركز NCC"

 gcloud network-connectivity hubs route-tables list --hub=mesh-hub
NAME     HUB       DESCRIPTION
default  mesh-hub

ابحث عن معرّف الموارد المنتظم (URI) لجدول المسار التلقائي في NCC.

gcloud network-connectivity hubs route-tables describe default --hub=mesh-hub
createTime: '2024-07-02T14:29:22.340190411Z'
name: projects/ncc/locations/global/hubs/mesh-hub/routeTables/default
state: ACTIVE
uid: fa2af78b-d416-41aa-b442-b8ebdf84f799

أدرِج محتويات جدول التوجيه التلقائي لمركز NCC. ملاحظة*: سيكون جدول التوجيه في مركز NCC فارغًا إلى أن يتم تحديد الشبكات الفرعية المختلطة أو شبكات VPC الفرعية في NCC.

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

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

5- NCC مع شبكات فرعية مختلطة وشبكات VPC

نظرة عامة

في هذا القسم، ستضبط إعدادات NCC Spoke باستخدام أوامر gCloud. سيكون أحد الأطراف فرعًا لشبكة VPC، وسيكون الطرف الثاني فرعًا مختلطًا (VPN).

f234ce75342022d8.png

ضبط شبكات VPC الخاصة بأحمال العمل كشبكة فرعية في NCC

اضبط شبكة VPC الخاصة بعبء العمل كشبكة فرعية في NCC، ثم اربطها بمركز NCC الذي تم إنشاؤه سابقًا. تتطلّب طلبات البيانات من واجهة برمجة التطبيقات الخاصة بـ NCC تحديد موقع جغرافي. تتيح العلامة "‎–global" للمستخدم تجنُّب تحديد مسار URI كامل عند إعداد جهاز NCC جديد.

vpc_spoke_name="workload-vpc-spoke"
vpc_spoke_network_name="workload-vpc"

gcloud network-connectivity spokes linked-vpc-network create "${vpc_spoke_name}" \
--hub="${hub_name}" \
--vpc-network="${vpc_spoke_network_name}" \
--global
Create request issued for: [workload-vpc-spoke]
Waiting for operation [projects/ncc/locations/global/operations/operation-1719931097138-61c44aa15463f-90de22c7-40c10e6b] to complete...done.               
Created spoke [workload-vpc-spoke].
createTime: '2024-07-02T14:38:17.315200822Z'
group: projects/ncc/locations/global/hubs/mesh-hub/groups/default
hub: projects/ncc/locations/global/hubs/mesh-hub
linkedVpcNetwork:
  uri: https://www.googleapis.com/compute/v1/projects/ncc/global/networks/workload-vpc
name: projects/ncc/locations/global/spokes/workload-vpc-spoke
spokeType: VPC_NETWORK
state: ACTIVE
uniqueId: 33e50612-9b62-4ec7-be6c-962077fd47dc
updateTime: '2024-07-02T14:38:44.196850231Z'

ضبط اتصال نفقي بشبكة VPN في شبكة VPC للتوجيه كشبكة فرعية مختلطة

استخدِم أمر gcloud هذا لإعداد نفق VPN كشبكة فرعية مختلطة للانضمام إلى شبكة mesh-hub.

vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"

gcloud network-connectivity spokes linked-vpn-tunnels create "${vpn_spoke_name}" \
--region="${region}" \
--hub="${hub_name}" \
--vpn-tunnels="${routing_vpc_tunnel_name}"

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

Create request issued for: [hybrid-spoke]
Waiting for operation [projects/ncc/locations/us-central1/operations/operation-1719932916561-61c45168774be-0a06ae03-88192175] to complete...done.          
Created spoke [hybrid-spoke].

في حين أنّ NCC Hub يتعرّف على جميع مسارات الشبكات الفرعية لشبكة VPC، لا يعلن NCC تلقائيًا عن هذه البادئات إلى الشبكة الفرعية المختلطة. لإجبار مركز NCC على الإعلان عن الشبكات الفرعية لأحمال عمل VPC في الموقع، على مشرفي الشبكة استخدام العلامة include-import-ranges لاستيراد نطاقات IPv4 من المركز إلى الشبكة الفرعية المختلطة.

استخدِم الأمر لتعديل نظام NCC المختلط ذي المحور والفرع من أجل الإعلان عن جميع بادئات جدول توجيه المحور في نظام NCC إلى الشبكة المحلية.

vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"

gcloud network-connectivity spokes linked-vpn-tunnels update "${vpn_spoke_name}" \
--region="${region}" \
--include-import-ranges=ALL_IPV4_RANGES

التحقّق من إعدادات الجهاز الفرعي في شبكة mesh-hub

استخدِم أمر gcloud لإدراج محتوى جدول التوجيه التلقائي في NCC Hub.

gcloud network-connectivity hubs list-spokes mesh-hub 

تحليل جدول التوجيه التلقائي لنقطة الاتصال الرئيسية

استخدِم أمر gcloud لإدراج محتوى جدول التوجيه التلقائي في NCC Hub.

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

يتم نشر البادئات التي تعلّمها Cloud Router مع قيم BGP MED في جميع أجزاء NCC عند استخدام تبادُل المسارات الديناميكي مع أجزاء NCC المختلطة.

استخدِم أمر gcloud لعرض قيمة الأولوية "111".

gcloud network-connectivity hubs route-tables routes list \
--hub=mesh-hub \
--route_table=default \
--effective-location=us-central1 \
--filter=10.0.3.0/24

التبديل إلى Cloud Router المحلي

استخدِم أمر gcloud لمعرفة المسارات التي تم استخلاصها من الشبكة المحلية.

gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)" 

6. فلاتر NCC Hybrid Spoke

في هذا القسم، سننشئ شبكتَين فرعيتَين جديدتَين، إحداهما في الموقع والأخرى في عبء عمل VPC، وسنراقب سلوك فلاتر الشبكة الفرعية المختلطة في NCC.

استخدِم الأوامر لإنشاء شبكة فرعية جديدة في شبكة VPC المحلية.

on_prem_network_name="on-prem-net-vpc"
on_prem_subnet_name="on-prem-subnet30"
on_prem_subnet_range="10.30.30.0/24"
region="us-central1"

gcloud compute networks subnets create "${on_prem_subnet_name}" \
--region="${region}" \
--network="${on_prem_network_name}" \
--range="${on_prem_subnet_range}"

استخدِم الأوامر لإنشاء شبكة فرعية جديدة في شبكة VPC الخاصة بعبء العمل.

vpc_spoke_network_name="workload-vpc"
vpc_spoke_subnet_name="workload-subnet10"
vpc_spoke_subnet_ip_range="10.10.10.0/24"
vpc_spoke_name="workload-vpc-spoke"
region="us-central1"

gcloud compute networks subnets create "${vpc_spoke_subnet_name}" \
--network="${vpc_spoke_network_name}" \
--range="${vpc_spoke_subnet_ip_range}" \
--region="${region}"

يمكن للمشرفين استخدام العلامة "‎–exclude-export-ranges" لفلترة بادئات عناوين IP التي يتم تصديرها إلى جدول مسار مركز NCC. يمكن أن يساعد ذلك المشرفين في التحكّم في حجم جدول مسار مركز NCC. يتم تلقائيًا استخلاص جميع بادئات IPv4 من الموقع والسماح بها في جدول توجيه مركز NCC.

استخدِم الأمر لتعديل نظام NCC الهجين الفرعي من أجل فلترة البادئة 10.30.30.0/24 ومنع إدخالها في جدول توجيه مركز NCC.

vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"

gcloud network-connectivity spokes linked-vpn-tunnels update "${vpn_spoke_name}" \
--region="${region}" \
--exclude-export-ranges=10.30.30.0/24

استخدِم أمر gcloud للتأكّد من أنّ البادئة 10.30.30.0/24 غير موجودة في جدول مسار NCC Hub

gcloud network-connectivity hubs route-tables routes list \
--hub=mesh-hub \
--route_table=default \
--effective-location=us-central1 \
--filter=10.30.30.0/24

انتقِل إلى جهاز التوجيه المحلي واستخدِم أمر gcloud للتأكّد من أنّه تعرّف على الشبكة الفرعية 10.10.10.0/24 الخاصة بشبكة VPC الخاصة بعبء العمل.

gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)" 

تتضمّن الأوامر أدناه العلامة "–exclude-import-ranges" لتصفية البادئة 10.10.10.0/24 المحدّدة من الإعلان عنها إلى جهاز التوجيه المحلي.

vpn_spoke_name="hybrid-spoke"
routing_vpc_tunnel_name="routing-vpc-tunnel"
region="us-central1"
hub_name="mesh-hub"

gcloud network-connectivity spokes linked-vpn-tunnels update "${vpn_spoke_name}" \
--region="${region}" \
--exclude-import-ranges=10.10.10.0/24

انتقِل إلى جهاز التوجيه المحلي واستخدِم أمر gcloud للتحقّق من جدول التوجيه. لاحظ أنّه يجب ألا يكون البادئة 10.10.10.0/24 متوفّرة.

gcloud compute routers get-status on-prem-router \
--region=us-central1\
--format="yaml(result.bgpPeerStatus)" 

7. التحقّق من مسار البيانات

في هذه الخطوة، سنتأكّد من صحة مسار البيانات بين NCC hybrid وVPC spoke. 9eb9c4936851deb0.png

استخدِم الناتج من أوامر gcloud هذه لتسجيل الدخول إلى الجهاز الافتراضي المحلي.

gcloud compute instances list --filter="name=vm3-onprem"

سجِّل الدخول إلى مثيل الجهاز الافتراضي المقيم في الشبكة المحلية.

gcloud compute ssh vm3-onprem --zone=us-central1-a

في نافذة vm3-onprem، استخدِم الأمر curl لإنشاء جلسة ويب على الجهاز الظاهري المستضاف في workload-vpc.

curl 10.0.1.2 -v
*   Trying 10.0.1.2:80...
* Connected to 10.0.1.2 (10.0.1.2) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.0.1.2
> User-Agent: curl/7.74.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Wed, 03 Jul 2024 15:41:34 GMT
< Server: Apache/2.4.59 (Debian)
< Last-Modified: Mon, 01 Jul 2024 20:36:16 GMT
< ETag: "1e-61c358c8272ba"
< Accept-Ranges: bytes
< Content-Length: 30
< Content-Type: text/html
< 

<h3>Web Server: www-vm1</h3>
* Connection #0 to host 10.0.1.2 left intact

8. تنظيف

سجِّل الدخول إلى Cloud Shell واحذف موارد GCP.

حذف نقاط اتصال NCC

gcloud network-connectivity spokes delete workload-vpc-spoke --global \
--quiet

gcloud network-connectivity spokes delete hybrid-spoke \
--quiet \
--region us-central1

حذف "مركز NCC"

gcloud network-connectivity hubs delete mesh-hub --quiet

حذف قواعد جدار الحماية

gcloud compute firewall-rules delete onprem-vpc-port-firewall-prem onprem-vpc-protocol-firewall routing-vpc--port-fw routing-vpc-protocol-fw workload-port-firewall-vpc workload-protocol-fw-vpc --quiet

حذف نفق HA-VPN

gcloud compute vpn-tunnels delete on-prem-tunnel \
--region=us-central1 \
--quiet 

gcloud compute vpn-tunnels delete routing-vpc-tunnel \
--region=us-central1 \
--quiet 

حذف VPN-Gateway

gcloud compute vpn-gateways delete on-prem-vpn-gateway \
--region=us-central1 --quiet

gcloud compute vpn-gateways delete routing-vpc-vpn-gateway \
--region us-central1 --quiet

حذف Cloud Router

gcloud compute routers delete routing-vpc-cr --region us-central1 --quiet

gcloud compute routers delete on-prem-router --region us-central1 --quiet

حذف مثيلات GCE

gcloud compute instances delete vm1-vpc-workload \
--zone=us-central1-a \
--quiet


gcloud compute instances delete vm2-vpc-routing \
--zone=us-central1-a \
--quiet

gcloud compute instances delete vm3-onprem \
--zone=us-central1-a \
--quiet

حذف الشبكات الفرعية لسحابة VPC

gcloud compute networks subnets delete workload-subnet --region us-central1 --quiet

gcloud compute networks subnets delete on-prem-subnet --region us-central1 --quiet

gcloud compute networks subnets delete routing-vpc-subnet --region us-central1 --quiet

حذف شبكات VPC

gcloud compute networks delete on-prem-net-vpcworkload-vpc routing-vpc 
--quiet 

9- تهانينا!

لقد أكملت الدرس العملي حول "مركز ربط الشبكات" في Dynamic Route Exchange.

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

  • تبادُل المسارات الديناميكي مع "مركز ربط الشبكة"

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

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