CodeLab: تبادل مسیر پویا با NCC

۱. مقدمه

نمای کلی

در این آزمایشگاه، کاربران بررسی خواهند کرد که چگونه می‌توان از مرکز اتصال شبکه (NCC) برای ایجاد اتصال on-prem در مقیاس بزرگ از طریق پشتیبانی از VPC Spokes و تبادل مسیر پویا استفاده کرد. هنگامی که کاربران یک VPC را به عنوان VPC Spoke تعریف می‌کنند، این امر آنها را قادر می‌سازد تا آن را از طریق NCC Hub به چندین شبکه VPC متصل کنند. برای ایجاد اتصال شبکه با شبکه on-prem کاربر، آنها می‌توانند NIC مجازی دستگاه روتر، تونل‌های HA_VPN یا پیوست‌های Interconnect VLAN را به همان NCC hub به عنوان NCC Spokes متصل کنند.

منبع هاب، یک مدل مدیریت اتصال متمرکز برای اتصال اسپوک‌ها (Spokes) فراهم می‌کند.

آنچه خواهید ساخت

در این آزمایشگاه کد، شما یک توپولوژی هاب و اسپوک منطقی با هاب NCC خواهید ساخت که اتصال ترکیبی بین شبکه داخلی و یک VPC با حجم کار را پیاده‌سازی می‌کند.

۲۱d100d48eee31f1.png

آنچه یاد خواهید گرفت

  • تفاوت بین VPC حجم کاری و VPC مسیریابی
  • ادغام NCC پره‌های VPC و پره‌های هیبریدی

آنچه نیاز دارید

  • آشنایی با شبکه GCP VPC
  • آشنایی با Cloud Router و مسیریابی BGP
  • پروژه ابری گوگل
  • Quota:Networks خود را بررسی کنید و در صورت لزوم، شبکه‌های اضافی را درخواست کنید ، تصویر زیر را ببینید:

6d1b99c6da87fd84.png

اهداف

  • راه‌اندازی محیط GCP
  • پیکربندی مرکز اتصال شبکه با VPC همانطور که گفته شد
  • پیکربندی مرکز اتصال شبکه با تونل‌های HA-VPN به عنوان یک اسپوک هیبریدی
  • اعتبارسنجی مسیر داده
  • ویژگی‌های سرویس‌پذیری NCC را بررسی کنید
  • منابع استفاده شده را پاکسازی کنید

قبل از اینکه شروع کنی

کنسول ابری گوگل و پوسته ابری

برای تعامل با GCP، در طول این آزمایش از هر دو کنسول ابری گوگل و پوسته ابری استفاده خواهیم کرد.

پروژه مرکز NCC، کنسول ابری گوگل

کنسول ابری از طریق آدرس https://console.cloud.google.com قابل دسترسی است.

برای آسان‌تر کردن پیکربندی Network Connectivity Center، موارد زیر را در Google Cloud تنظیم کنید:

در کنسول گوگل کلود، در صفحه انتخاب پروژه، یک پروژه گوگل کلود را انتخاب یا ایجاد کنید.

Cloud Shell را اجرا کنید. این Codelab از $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 برای دسترسی به APIهای خاص به نقش‌های IAM نیاز دارد. حتماً کاربر خود را در صورت نیاز با نقش‌های IAM مربوط به NCC پیکربندی کنید.

نقش/توضیحات

مجوزها

networkconnectivity.editor - به مدیران شبکه اجازه می‌دهد تا هاب‌ها و اسپوک‌ها را مدیریت کنند.

اتصال شبکه.هاب‌ها. اتصال شبکه.اسپوک‌ها.اتصال شبکه.دروازه.اتصال شبکه.مکان‌ها.

networkconnectivity.HubAdmin - دسترسی کامل به منابع hub و spoke را فعال می‌کند.

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

networkconnectivity.hubViewer - دسترسی فقط خواندنی به منابع hub و spoke را فعال می‌کند.

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 اتصال.مکان‌ها.*اتصال.اسپوک.اتصال.شبکهدریافتاتصال.اسپوک.اتصال.شبکه.دریافتIamPolicyلیست.اتصال.اسپوک.اتصال.شبکهمدیریت منابعپروژه‌هادریافتلیست.پروژه‌ها

۲. راه‌اندازی محیط شبکه

نمای کلی

در این بخش، سه شبکه VPC و قوانین فایروال را در یک پروژه واحد مستقر خواهیم کرد. نمودار منطقی، محیط شبکه‌ای را که در این مرحله راه‌اندازی خواهد شد، نشان می‌دهد. برای اهداف این آزمایشگاه کد، از یک VPC برای شبیه‌سازی یک شبکه محلی استفاده خواهد شد.

732e31532d8f6edb.png

مفهوم کلیدی ۱

Google Cloud Global VPC اتصال مسیر داده را بین بیش از ۴۴ منطقه GCP فراهم می‌کند. Cloud Router، یک سرویس منطقه‌ای، به صورت پویا زیرشبکه‌ها را تبلیغ می‌کند و مسیرهای آموخته‌شده را در منطقه‌ای که روتر پیکربندی شده است یا در کل شبکه VPC منتشر می‌کند. اینکه روتر ابری چه زمانی مسیرها را به صورت منطقه‌ای یا جهانی منتشر کند، به تعریف کاربر از حالت مسیریابی پویا بستگی دارد: منطقه‌ای یا جهانی.

در این بخش، با پیکربندی هر VPC با حالت مسیریابی منطقه‌ای شروع خواهیم کرد. در ادامه‌ی این آزمایشگاه کد:

  • «VPC مسیریابی» VPC ای را شناسایی می‌کند که به عنوان یک پره VPC NCC پیکربندی نشده است.
  • «VPC حجم کاری» مشخص می‌کند که VPC به صورت NCC پیکربندی شده است.

ایجاد بار کاری VPC و یک زیرشبکه

شبکه VPC شامل زیرشبکه‌هایی است که شما GCE VM را برای اعتبارسنجی مسیر داده نصب خواهید کرد.

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 مسیریابی و یک زیرشبکه

NCC از تمام محدوده‌های زیرشبکه معتبر 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 On-prem و یک زیرشبکه

NCC از تمام محدوده‌های زیرشبکه معتبر 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 و قوانین فایروال 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"

پیکربندی قوانین فایروال On-Prem 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 VM در هر VPC

برای نصب بسته‌ها روی «vm1-vpc1-ncc» به دسترسی موقت به اینترنت نیاز دارید.

سه ماشین مجازی ایجاد کنید، هر ماشین مجازی به یکی از VPC های قبلاً ایجاد شده اختصاص داده خواهد شد.

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 

۳. راه‌اندازی اتصال ترکیبی

در این بخش، یک تونل HA VPN پیکربندی خواهیم کرد تا شبکه‌های On-Premium و Routing VPC را به یکدیگر متصل کند.

۱۶۱d9e6b19ce53a1.png

پیکربندی یک روتر ابری با 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}"

پیکربندی یک روتر ابری با BGP در On-Prem 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 در On-Prem 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}"

پیکربندی Peering مربوط به BGP روتر ابری On-prem را به‌روزرسانی کنید تا پیشوندهایی با مقدار 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

۴. هاب مرکز اتصال شبکه

نمای کلی

در این بخش، ما یک NCC Hub را با استفاده از دستورات gcloud پیکربندی خواهیم کرد. NCC Hub به عنوان صفحه کنترل مسئول ایجاد پیکربندی مسیریابی بین هر پره VPC خواهد بود.

6a26627c680ddac5.png

فعال کردن سرویس‌های API

اگر هنوز API اتصال شبکه فعال نشده است، آن را فعال کنید:

gcloud services enable networkconnectivity.googleapis.com

ایجاد مرکز NCC

با استفاده از دستور gCloud یک مرکز NCC ایجاد کنید

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 Hub یک جدول مسیریابی معرفی کرد که صفحه کنترل را برای ایجاد اتصال داده تعریف می‌کند. نام جدول مسیریابی NCC Hub را بیابید

 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 Hub را فهرست کنید. توجه* جدول مسیر NCC Hub تا زمانی که اسپوک‌های هیبریدی NCC یا اسپوک‌های VPC تعریف نشوند، خالی خواهد بود.

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

جدول مسیر مرکز NCC باید خالی باشد.

۵. NCC با پره‌های هیبریدی و VPC

نمای کلی

در این بخش، دو اسپوک NCC را با استفاده از دستورات gCloud پیکربندی خواهید کرد. یکی از اسپوک‌ها، اسپوک VPC و دومی، اسپوک هیبریدی (VPN) خواهد بود.

f234ce75342022d8.png

پیکربندی VPC(های) بار کاری به عنوان یک NCC Spoke

بار کاری VPC را به عنوان یک شاخه NCC پیکربندی کنید و آن را به هاب NCC که قبلاً ایجاد شده است اختصاص دهید. فراخوانی‌های API شاخه NCC نیاز به مشخص کردن مکان دارند. پرچم "–global" به کاربر اجازه می‌دهد هنگام پیکربندی یک شاخه NCC جدید، از مشخص کردن مسیر کامل URI خودداری کند.

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 در Routing VPC به عنوان یک سرور هیبریدی Spok

از این دستور gcloud برای پیکربندی تونل VPN به عنوان یک اسپوک هیبریدی برای اتصال به مش-هاب استفاده کنید.

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 Hub را مجبور به تبلیغ زیرشبکه‌های بار کاری VPC در محل کند، مدیران شبکه باید از پرچم " include-import-ranges" برای وارد کردن محدوده‌های IPv4 از هاب به پره هیبریدی استفاده کنند.

از این دستور برای به‌روزرسانی اسپوک هیبریدی NCC استفاده کنید تا تمام پیشوندهای جدول مسیر NCC 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 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 

جدول مسیریابی پیش‌فرض mesh-hub را تجزیه و تحلیل کنید

از دستور gcloud برای فهرست کردن محتویات جدول مسیریابی پیش‌فرض NCC Hub استفاده کنید.

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

پیشوندهای آموخته‌شده توسط روتر ابری با مقادیر BGP MED هنگام استفاده از تبادل مسیر پویا با اسپوک‌های ترکیبی NCC، در سراسر اسپوک‌های NCC منتشر می‌شوند.

برای مشاهده‌ی اولویت عدد «۱۱۱» از دستور gcloud استفاده کنید.

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

به روتر ابریِ آماده‌ی استفاده تغییر دهید

از دستور gcloud استفاده کنید تا ببینید از چه مسیرهایی به شبکه داخلی دسترسی پیدا کرده است.

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

۶. فیلترهای اسپوک هیبریدی NCC

در این بخش، دو زیرشبکه جدید، یکی در سرور داخلی و دیگری در بار کاری 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 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 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-range s" برای فیلتر کردن پیشوند خاص 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)" 

۷. مسیر داده را تأیید کنید

در این مرحله، مسیر داده بین NCC hybrid و VPC spoke را اعتبارسنجی خواهیم کرد. 9eb9c4936851deb0.png

از خروجی این دستورات gcloud برای ورود به ماشین مجازی on prem استفاده کنید.

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

۸. تمیز کردن

وارد پوسته ابری شوید و منابع 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

حذف روتر ابری

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 

۹. تبریک می‌گویم!

شما آزمایشگاه مرکز اتصال شبکه تبادل مسیر پویا را به پایان رسانده‌اید!

آنچه را که پوشش دادید

  • تبادل مسیر پویا با مرکز اتصال شبکه

مراحل بعدی

©Google, LLC یا شرکت‌های وابسته به آن. تمامی حقوق محفوظ است. توزیع نکنید.