CodeLab: החלפת מסלול דינמי באמצעות NCC

1. מבוא

סקירה כללית

בשיעור ה-Lab הזה, המשתמשים יבדקו איך אפשר להשתמש ב-Network Connectivity Center ‏ (NCC) כדי ליצור קישוריות מקומית בהיקף גדול באמצעות תמיכה ב-VPC Spokes ובחילופי מסלולים דינמיים. כשמשתמשים מגדירים VPC כ-VPC מסוג Spoke, הם יכולים לחבר אותו לכמה רשתות VPC באמצעות NCC Hub. כדי ליצור קישוריות לרשת המקומית של המשתמש, הוא יכול לצרף כרטיס רשת וירטואלי של מכשיר נתב, מנהרות HA_VPN או צירופי VLAN של Interconnect לאותו מרכז NCC כמו רשתות VPC מסוג Hub and Spoke של NCC.

משאב ה-hub מספק מודל ריכוזי לניהול קישוריות, שמאפשר לקשר בין רשתות spoke.

מה תפַתחו

בשיעור Codelab הזה תבנו טופולוגיה לוגית של Hub ו-spoke באמצעות Hub של NCC, שתטמיע קישוריות היברידית בין הרשת המקומית לבין עומס עבודה ב-VPC.

21d100d48eee31f1.png

מה תלמדו

  • להבחין בין VPC של עומס עבודה לבין VPC של ניתוב
  • שילוב NCC של VPC spoke ו-Hybrid Spoke

מה תצטרכו

  • ידע ברשת VPC של GCP
  • ידע ב-Cloud Router ובניתוב BGP
  • פרויקט ב-Google Cloud
  • בודקים את המיכסה:רשתות ומבקשים להוסיף רשתות נוספות אם צריך. צילום מסך בהמשך:

6d1b99c6da87fd84.png

מטרות

  • הגדרת סביבת GCP
  • הגדרת Network Connectivity Center עם VPC בתור רשת Spoke
  • הגדרת Network Connectivity Center עם מנהרות HA-VPN כ-spoke היברידי
  • אימות נתיב הנתונים
  • תכונות השירות של NCC
  • פינוי משאבים שהיו בשימוש

לפני שמתחילים

מסוף Google Cloud ו-Cloud Shell

במהלך שיעור ה-Lab הזה נשתמש גם במסוף Google Cloud וגם ב-Cloud Shell כדי ליצור אינטראקציה עם GCP.

פרויקט NCC Hub מסוף Google Cloud

אפשר להיכנס ל-Cloud Console בכתובת https://console.cloud.google.com.

כדי להקל על הגדרת Network Connectivity Center, צריך להגדיר את הפריטים הבאים ב-Google Cloud:

במסוף 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

כדי לגשת לממשקי API ספציפיים, צריך להקצות תפקידים ב-IAM ל-NCC. חשוב להקפיד להגדיר את המשתמש עם תפקידי ה-IAM של NCC לפי הצורך.

תפקיד/תיאור

הרשאות

‫networkconnectivity.editor – מאפשר למנהלי רשת לנהל רכזות וחיבורים.

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

‫networkconnectivity.HubAdmin – מאפשר גישה מלאה למשאבי hub and 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 and 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 networkconnectivity.locations.*networkconnectivity.spokes.getnetworkconnectivity.spokes.getIamPolicynetworkconnectivity.spokes.listresourcemanager.projects.getresourcemanager.projects.list

2. הגדרת סביבת הרשת

סקירה כללית

בקטע הזה נסביר איך פורסים את שלוש רשתות ה-VPC ואת כללי חומת האש בפרויקט יחיד. בתרשים הלוגי מוצגת סביבת הרשת שתוגדר בשלב הזה. לצורך שיעור ה-Codelab הזה, נשתמש ב-VPC כדי לדמות רשת מקומית.

732e31532d8f6edb.png

מושג מרכזי 1

רשת ה-VPC הגלובלית של Google Cloud מספקת קישוריות של נתיבי נתונים בין יותר מ-44 אזורים של GCP. ‫Cloud Router הוא שירות אזורי שמפרסם באופן דינמי רשתות משנה ומפיץ נתיבים שנלמדו באזור שבו הנתב מוגדר או בכל רשת ה-VPC. ההחלטה אם נתב הענן ישדר מסלולים ברמה האזורית או הגלובלית תלויה בהגדרת מצב הניתוב הדינמי על ידי המשתמש: אזורי או גלובלי.

בקטע הזה, נתחיל בהגדרת כל רשת VPC עם מצב ניתוב אזורי. בהמשך ה-Codelab הזה:

  • ‫"Routing VPC" (ניתוב VPC) מציין רשת VPC שלא מוגדרת כ-VPC מסוג Spoke ב-NCC.
  • ‫Workload VPC: מזהה רשת VPC שהוגדרה כ-Spoke של 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 לניתוב ורשת משנה

הכלי NCC תומך בכל טווחי כתובות ה-IP בתת-רשת 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 מקומי ותת-רשת

הכלי NCC תומך בכל טווחי כתובות ה-IP בתת-רשת 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"

הגדרת 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.

יוצרים שלוש מכונות וירטואליות, וכל מכונה וירטואלית תוקצה לאחד מ-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 

3. הגדרת קישוריות היברידית

בקטע הזה נגדיר מנהרת 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 לניתוב ושל Cloud Routers מקומיים

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 לא מוכרזות ל-spokes היברידיים. בשלב הבא, מגדירים את Cloud Router כך שיפרסם את מסלולי רשת המשנה של 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 peering של נתב הענן המקומי כדי להודיע על קידומות עם ערך 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 Hub

סקירה כללית

בקטע הזה נגדיר רכזת NCC באמצעות פקודות gcloud. ה-Hub של NCC ישמש כמישור הבקרה שאחראי לבניית הגדרות הניתוב בין כל רשת VPC מסוג Spoke.

6a26627c680ddac5.png

הפעלת שירותי API

אם ה-API של קישוריות הרשת עדיין לא מופעל, צריך להפעיל אותו:

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 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 hybrid spokes או VPC spokes.

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

טבלת הניתוב של NCC Hub צריכה להיות ריקה.

5. ‫NCC עם רכזות היברידיות ורכזות VPC

סקירה כללית

בקטע הזה נגדיר שני רכזות NCC באמצעות פקודות gCloud. אחד מהספוקים יהיה ספוק VPC והשני יהיה ספוק היברידי (VPN).

f234ce75342022d8.png

הגדרת VPC של עומס עבודה כ-Spoke של NCC

מגדירים את ה-VPC של עומס העבודה כ-Spoke של NCC ומקצים אותו ל-Hub של NCC שנוצר קודם. כדי לבצע קריאות ל-API של 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 ב-Routing VPC כ-spoke היברידי

משתמשים בפקודת gcloud הזו כדי להגדיר את מנהרת ה-VPN כ-spoke היברידי כדי להצטרף ל-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, אבל כברירת מחדל, הוא לא מפרסם את הקידומות האלה ב-hybrid spoke. כדי לחייב את רכזת NCC לפרסם רשתות משנה של עומסי עבודה ב-VPC באתר, אדמינים של רשתות צריכים להשתמש בדגל include-import-ranges כדי לייבא טווחי IPv4 מהרכזת ל-spoke היברידי.

משתמשים בפקודה כדי לעדכן את ה-NCC hybrid spoke כדי לפרסם את כל הקידומות של טבלת המסלולים של 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

אימות ההגדרה של הרשת ההיקפית במרכז

משתמשים בפקודת 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 מועברות בין spokes של NCC כשמשתמשים בהחלפת מסלולים דינמית עם spokes היברידיים של 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 hybrid spoke.

משתמשים בפקודות כדי ליצור רשת משנה חדשה ב-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 hybrid spoke כדי לסנן את התחילית 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

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 Hub

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

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. מעולה!

סיימתם את שיעור ה-Lab בנושא Dynamic Route Exchange Network Connectivity Center.

מה כיסיתם

  • החלפת מסלולים דינמית עם Network Connectivity Center

השלבים הבאים

‫©Google, LLC או השותפים העצמאיים שלה. כל הזכויות שמורות. אין להפיץ.