שיעור Lab בנושא: NCC VPC כרשת Spoke

1. מבוא

סקירה כללית

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

כפי שצוין, Network Connectivity Center ‏ (NCC) הוא מודל של מישור בקרה מסוג Hub-and-Spoke לניהול קישוריות רשת ב-Google Cloud. משאב ה-hub מספק מודל מרכזי לניהול קישוריות, שמאפשר לקשר בין רשתות spoke.

מה תפַתחו

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

מה תלמדו

  • קישוריות מלאה של רשתות VPC באמצעות NCC
  • NAT פרטי ב-VPC

מה תצטרכו

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

6d1b99c6da87fd84.png

מטרות

  • הגדרת סביבת GCP
  • הגדרת Network Connectivity Center עם VPC כרשת משנית (spoke)
  • אימות נתיב הנתונים
  • תכונות השירות של NCC
  • מחיקת המשאבים שבהם השתמשתם

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

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

תפקידי IAM

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

תפקיד/תיאור

הרשאות

networkconnectivity.networkAdmin – מאפשרת לאדמינים של רשתות לנהל רכזות ורשתות היקפיות.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager – מאפשרת להוסיף ולנהל מרכזי תקשורת (spokes) במרכז (hub). לשימוש ב-VPC משותף שבו הפרויקט המארח הוא הבעלים של ה-Hub, אבל אדמינים אחרים בפרויקטים אחרים יכולים להוסיף רשתות Spokes לחיבורים שלהם ל-Hub.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer – מאפשר למשתמשי רשת להציג מאפיינים שונים של רכזות ושל רשתות מסוג Hub and Spoke.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

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

סקירה כללית

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

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

a7cd9b23f3eb1b70.png

יצירת רשתות VPC ורשתות משנה

רשת ה-VPC מכילה רשתות משנה שבהן תתקינו מכונה וירטואלית ב-GCE לצורך אימות נתיב הנתונים

gcloud compute networks create vpc1-ncc --subnet-mode custom
gcloud compute networks create vpc2-ncc --subnet-mode custom
gcloud compute networks create vpc3-ncc --subnet-mode custom
gcloud compute networks create vpc4-ncc --subnet-mode custom

gcloud compute networks subnets create vpc1-ncc-subnet1 \
--network vpc1-ncc --range 10.1.1.0/24 --region us-central1

gcloud compute networks subnets create vpc1-ncc-subnet2 \
--network vpc1-ncc --range 10.1.2.0/25 --region us-central1

gcloud compute networks subnets create vpc1-ncc-subnet3 \
--network vpc1-ncc --range 10.1.2.128/25 --region us-central1

gcloud compute networks subnets create vpc2-ncc-subnet1 \
--network vpc2-ncc --range 10.2.2.0/24 --region us-central1

טווחים של תת-רשתות שנתמכים ב-VPC

הכלי NCC תומך בכל טווחי רשתות המשנה של IPv4, כולל כתובות IP ציבוריות שנמצאות בשימוש פרטי. בשלב הזה, יוצרים טווחים תקינים של כתובות IP ב-VPC4 שייובאו לטבלת הניתוב של הרכזת.

gcloud compute networks subnets create benchmark-testing-rfc2544 \
--network vpc4-ncc --range 198.18.0.0/15 --region us-east1

gcloud compute networks subnets create class-e-rfc5735 \
--network vpc4-ncc --range 240.0.0.0/4 --region us-east1

gcloud compute networks subnets create ietf-protcol-assignment-rfc6890 \
--network vpc4-ncc --range 192.0.0.0/24 --region us-east1

gcloud compute networks subnets create ipv6-4-relay-rfc7526 \
--network vpc4-ncc --range 192.88.99.0/24 --region us-east1

gcloud compute networks subnets create pupi \
--network vpc4-ncc --range 50.50.50.0/24 --region us-east1

gcloud compute networks subnets create test-net-1-rfc5737 \
--network vpc4-ncc --range 192.0.2.0/24 --region us-east1

gcloud compute networks subnets create test-net-2-rfc5737 \
--network vpc4-ncc --range 198.51.100.0/24 --region us-east1

gcloud compute networks subnets create test-net-3-rfc5737 \
--network vpc4-ncc --range 203.0.113.0/24 --region us-east1

יצירת טווחי תת-רשת חופפים

‫NCC לא ייבא טווחי כתובות IP חופפים לטבלת הניתוב של ה-Hub. בשלב מאוחר יותר, המשתמשים ימצאו דרך לעקוף את ההגבלה הזו. בשלב הזה, יוצרים שני טווחי כתובות 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. Network Connectivity Center Hub

סקירה כללית

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

75b860451360ad9f.png

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

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

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 Hub צריכה להיות ריקה.

4. NCC with VPC Spokes

סקירה כללית

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

e7db89c96aefcbc0.png

הגדרת VPC כ-NCC Spoke

מגדירים את רשתות ה-VPC הבאות כרשתות Spoke ב-NCC, לפי הסדר הזה

  • VPC4
  • VPC1
  • VPC2
  • VPC3

מגדירים את VPC4 כרשת מסוג Spoke ב-NCC ומקצים אותה לרשת ה-Hub ב-NCC שנוצרה קודם. כדי לבצע קריאות ל-API של NCC Spoke, צריך לציין מיקום. הדגל ‎ "–global"‎ מפשט את התחביר של gcloud בכך שהוא מאפשר למשתמש להימנע מציון נתיב URI מלא כשמגדירים רכזת חדשה של NCC.

gcloud network-connectivity spokes linked-vpc-network create vpc4-spoke4 \
--hub=ncc-hub \
--vpc-network=vpc4-ncc \
--global

מגדירים את VPC1 כרשת מסוג Spoke ב-NCC.

אדמינים יכולים להחריג נתיבי רשת משנה מייצוא מ-VPC מסוג Spoke אל טבלת הנתיבים של ה-Hub ב-NCC. בשלב הזה של ה-codelab, יוצרים כלל ייצוא להחרגה שמבוסס על קידומת סיכום, כדי למנוע ייצוא של תת-הרשת של 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 כרשת מסוג Spoke ב-NCC ומוציאים את צמד רשתות המשנה /25 מהייבוא לטבלת הניתוב של ה-Hub באמצעות מילת המפתח export-exclude-ranges כדי לסנן את מסלול הסיכום /24 מהטווח הספציפי הזה.

gcloud network-connectivity spokes linked-vpc-network create vpc1-spoke1 \
--hub=ncc-hub \
--vpc-network=vpc1-ncc \
--exclude-export-ranges=10.1.2.0/24 \
--global 

הערה*: משתמשים יכולים לסנן עד 16 טווחי כתובות IP ייחודיים לכל רכזת NCC.

הצגת רשימת התוכן של טבלת הניתוב שמוגדרת כברירת מחדל ב-NCC 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 כרשת מסוג Spoke ב-NCC

gcloud network-connectivity spokes linked-vpc-network create vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--global

מגדירים את VPC3 כרשת מסוג Spoke ב-NCC ומקצים אותה לרשת ה-Hub ב-NCC שנוצרה קודם.

gcloud  network-connectivity spokes linked-vpc-network create vpc3-spoke3 \
--hub=ncc-hub \
--vpc-network=vpc3-ncc \
--global

מה קרה?

ERROR: (gcloud.network-connectivity.spokes.linked-vpc-network.create) Invalid resource state for "https://www.googleapis.com/compute/v1/projects/xxxxxxxx/global/networks/vpc3-ncc": 10.3.3.0/24 (SUBNETWORK) overlaps with 10.3.3.0/24 (SUBNETWORK) from "projects/user-3p-dev/global/networks/vpc2-ncc" (peer)

מערכת NCC Hub זיהתה טווח IP חופף עם VPC2. זוכרים שגם VPC2 וגם VPC3 הוגדרו עם אותה תת-רשת IP‏ 10.3.3.0/24.

סינון של טווחי כתובות IP חופפים באמצעות תכונת ההחרגה של יצוא

משתמשים בפקודת gcloud כדי לעדכן את ה-spoke VPC2 כך שלא יכלול את טווח כתובות ה-IP החופף.

gcloud  network-connectivity spokes linked-vpc-network update vpc2-spoke2 \
--hub=ncc-hub \
--vpc-network=vpc2-ncc \
--exclude-export-ranges=10.3.3.0/24 \
--global

משתמשים בפקודת gcloud כדי לעדכן את רכזת ה-NCC עבור VPC3 כך שלא תכלול את טווח רשת המשנה החופף.

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 תומכת בכל סוגי הטווחים התקפים של IPv4.

כברירת מחדל, טווחי כתובות של רשתות משנה של כתובות IP ציבוריות לשימוש פרטי (PUPI) לא מיוצאים מהרשת המרכזית של VPC לטבלת הניתוב של הרשת הראשית של NCC.

משתמשים בפקודה gcloud כדי לוודא שהרשת 50.50.50.0/24 לא נמצאת בטבלת הניתוב של NCC Hub.

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default --filter="NEXT_HOP:vpc-ncc4"

משתמשים בפקודה הבאה של gcloud כדי לעדכן את VPC4-Spoke ולהפעיל חילופי כתובות PUPI בין רשתות VPC של NCC.

gcloud network-connectivity spokes linked-vpc-network update vpc4-spoke4 \
--include-export-ranges=ALL_IPV4_RANGES \
--global

משתמשים בפקודה gcloud כדי למצוא את הרשת 50.50.50.0/24 בטבלת הניתוב של מרכז ה-NCC.

gcloud network-connectivity hubs route-tables routes list --hub=ncc-hub --route_table=default | grep 50.50.50.0/24

5. NCC with Cross Project Spokes

סקירה כללית

עד עכשיו הגדרתם רכיבי Spokes של NCC ששייכים לאותו פרויקט כמו ה-Hub. בקטע הזה נגדיר VPC כרשת Spoke ב-NCC מפרויקט נפרד שאינו פרויקט ה-Hub ב-NCC, באמצעות פקודות gCloud.

כך בעלי פרויקטים שמנהלים רשתות VPC משלהם יכולים להשתתף בקישוריות לרשת באמצעות NCC Hub.

70b8d1872ca1e8d4.png

בפרויקטים שונים: Google Cloud Console ו-Cloud Shell

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

Cross Project Spoke Google Cloud Console

אפשר לגשת אל Cloud Console בכתובת https://console.cloud.google.com.

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

במסוף Google Cloud, בדף לבחירת הפרויקט בוחרים פרויקט או יוצרים פרויקט חדש.

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

תפקידי IAM

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

לפחות, צריך להקצות לאדמין של רכזת בין-פרויקטית את תפקיד ה-IAM ‏: networkconnectivity.networkSpokeManager. "

בטבלה הבאה מפורט התפקיד ב-IAM שנדרש לאדמין של NCC Hub and Spoke.

תפקיד/תיאור

הרשאות

networkconnectivity.networkAdmin – מאפשרת לאדמינים של רשתות לנהל רכזות ורשתות היקפיות.

networkconnectivity.hubs.networkconnectivity.spokes.

networkconnectivity.networkSpokeManager – מאפשרת להוסיף ולנהל מרכזי תקשורת (spokes) במרכז (hub). לשימוש ב-VPC משותף שבו הפרויקט המארח הוא הבעלים של ה-Hub, אבל אדמינים אחרים בפרויקטים אחרים יכולים להוסיף רשתות Spokes לחיבורים שלהם ל-Hub.

networkconnectivity.spokes.**

networkconnectivity.networkUsernetworkconnectivity.networkViewer – מאפשר למשתמשי רשת להציג מאפיינים שונים של רכזות ושל רשתות מסוג Hub and Spoke.

networkconnectivity.hubs.getnetworkconnectivity.hubs.listnetworkconnectivity.spokes.getnetworkconnectivity.spokes.listnetworkconnectivity.spokes.aggregatedList

יצירת רשתות ה-VPC ותתי הרשתות בפרויקט חוצה

רשת ה-VPC מכילה רשתות משנה שבהן תתקינו מכונה וירטואלית ב-GCE לצורך אימות נתיב הנתונים

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

gcloud compute networks subnets create xprj-net-2 \
--network xproject-vpc \
--range 10.100.2.0/24 \
--region us-central1

NCC Hub Project URI

משתמשים בפקודת gcloud הזו כדי למצוא את ה-URI של NCC Hub. בשלב הבא תצטרכו את נתיב ה-URI כדי להגדיר את רכזת ה-NCC בין הפרויקטים.

gcloud network-connectivity hubs describe ncc-hub

Cross Project Spoke VPC

מתחברים לפרויקט השני שבו ה-VPC לא נכלל בפרויקט של מרכז NCC. ב-Cloud Shell, משתמשים בפקודה הזו כדי להגדיר VPC כרכזת NCC.

  • ‫HUB_URI צריך להיות מזהה ה-URI של רכזת בפרויקט אחר.
  • ה-URI של ה-VPC צריך להיות באותו פרויקט כמו הרשת המקומית
  • ‫VPC-network מציין את ה-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 צריכים לאשר במפורש את הצטרפותו של רכיב spoke בין פרויקטים למרכז. כך נמנעת האפשרות שבעלי פרויקטים יצרפו רכזות NCC לא מורשות לטבלת הניתוב הגלובלית של NCC. אחרי שמאשרים או דוחים רכזת, אפשר לדחות או לאשר אותה כמה פעמים שרוצים על ידי הפעלת הפקודות שלמעלה.

מתחברים ל-Cloud Shell כדי לחזור לפרויקט שבו נמצא ה-NCC hub.

זיהוי של רכזות חוצות פרויקטים לבדיקה

gcloud network-connectivity hubs list-spokes ncc-hub \
 --filter="reason:PENDING_REVIEW"

אישור של רשת מסוג Spoke

gcloud network-connectivity hubs accept-spoke ncc-hub --spoke=xproj-spoke

אופציונלי: דחיית רכזת

gcloud network-connectivity spokes reject-spoke ncc-hub --spoke=xproj-spoke 
--details="some reason to reject"

רשימת הסניפים הפעילים ב-Hub

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

הצגת רשימה של נתיבי תת-רשת ב-Hub

מהפלט, אפשר לראות את נתיבי רשת המשנה מה-spoke של ה-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.1.0/24  ACTIVE  VPC_PRIMARY_SUBNET  xprj-vpc  ncc-hub  default

עדכון של רשת VPC מסוג Spoke בין פרויקטים באמצעות מסנן Include-Export

מתחברים לפרויקט שרשת ה-VPC שלו לא נכללת בפרויקט של מרכז NCC. ב-Cloud Shell, משתמשים בפקודה הזו כדי להגדיר VPC כרכזת NCC.

  • ‫HUB_URI צריך להיות מזהה ה-URI של רכזת בפרויקט אחר.
  • ה-URI של ה-VPC צריך להיות באותו פרויקט כמו הרשת המקומית
  • ‫VPC-network מציין את ה-VPC שבפרויקט הזה יצטרף ל-NCC Hub בפרויקט אחר
  • ייבוא רק של טווח תת-הרשת 10.100.2.0/24 לטבלת הנתיבים של מרכז ה-NCC
  • שימו לב לערך ETag בפלט. הערך הזה נוצר על ידי NCC, ותצטרכו לספק אותו לאדמין של מרכז NCC. האדמין של מרכז ה-NCC יצטרך להפנות לערך הזה כשיאשר את הבקשה של רשת ה-Spoke בפרויקט המשותף להצטרף למרכז.
gcloud network-connectivity spokes linked-vpc-network update xproj-spoke \
--hub=projects/[YOUR-PROJECT-NAME]/locations/global/hubs/ncc-hub \
--global \
--include-export-ranges=10.100.2.0/24
Update request issued for: [xprj-vpc]
Waiting for operation [projects]/xproject/locations/global/operations/operation-1742936388803-6313100521cae-020ac5d2-58
52fbba] to complete...done.                                                                                                 
Updated spoke [xprj-vpc].
createTime: '2025-02-14T14:25:41.996129250Z'
etag: '4'
fieldPathsPendingUpdate:
- linked_vpc_network.include_export_ranges
group: projects/xxxxxxxx/locations/global/hubs/ncc-hub/groups/default
hub: projects/xxxxxxxx/locations/global/hubs/ncc-hub
linkedVpcNetwork:
  includeExportRanges:
  - 10.100.2.0/24
  uri: https://www.googleapis.com/compute/v1/projects/xproject/global/networks/vpc1-spoke
name: projects/xproject/locations/global/spokes/xprj-vpc
reasons:
- code: UPDATE_PENDING_REVIEW
  message: Spoke update is Pending Review
spokeType: VPC_NETWORK
state: ACTIVE
uniqueId: 182e0f8f-91cf-481c-a081-ea6f7e40fb0a
updateTime: '2025-03-25T20:59:51.995734879Z'

זיהוי של רכזות מעודכנות בין פרויקטים לבדיקה

מתחברים לפרויקט שמארח את מרכז ה-NCC. ב-Cloud Shell, משתמשים בפקודה הזו כדי לבדוק את הסטטוס של עדכון ה-VPC spoke בין פרויקטים.

  • מהו ערך ה-ETAG? הערך הזה צריך להיות זהה לפלט מהעדכון של רכזת ה-VPC.
gcloud network-connectivity hubs list-spokes ncc-hub \ 
--filter="reasons:UPDATE_PENDING_REVIEW" \
--format=yaml

אישור השינויים המעודכנים מהפרויקט המקושר

משתמשים בפקודה כדי לאשר את הבקשה של הרכזת המקומית להצטרף לרכזת NCC

gcloud network-connectivity hubs accept-spoke-update ncc-hub \
 --spoke=https://www.googleapis.com/networkconnectivity/v1/projects/xproject/locations/global/spokes/xproj-spoke \
 --spoke-etag={etag value}

אפשר גם לדחות את השינויים המעודכנים מהפרויקט המקושר

משתמשים בפקודה כדי לדחות את בקשת ההצטרפות של רשת spoke בפרויקט אחר ל-NCC Hub

gcloud network-connectivity hubs reject-spoke-update ncc-hub  \
--spoke=https://www.googleapis.com/networkconnectivity/v1/projects/xproject/locations/global/spokes/xproj-spoke  \
--details="not today" \
--spoke-etag={etag value} 

אימות של הצטרפות הרשת המקומית (Spoke) בין הפרויקטים ל-NCC Hub

gcloud network-connectivity hubs list-spokes ncc-hub \ --filter="name:xproj-spoke"

7. ‫NAT פרטי בין רשתות VPC

סקירה כללית

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

בקטע הקודם, רשתות VPC2 ו-VPC3 מוגדרות עם טווח חופף של תת-רשתות '10.3.3.0/24'. שני ה-VPC מוגדרים כ-spoke ב-NCC כדי להחריג את רשת המשנה החופפת מהוספה לטבלת המסלולים של ה-hub ב-NCC. המשמעות היא שאין נתיב נתונים בשכבה 3 להגעה למארחים שנמצאים ברשת המשנה הזו.

משתמשים בפקודות האלה בפרויקט של מרכז ה-NCC כדי למצוא את טווחי רשתות המשנה החופפים.

gcloud compute networks subnets list --network vpc2-ncc

gcloud compute networks subnets list --network vpc3-ncc

ב-vpc2-ncc, מהו שם רשת המשנה שמכילה את טווח כתובות ה-IP החופף?

*חשוב לרשום ולשמור את שם רשת המשנה במקום כלשהו. תגדירו NAT למקור עבור הטווח הזה.

הגדרת NAT פרטי

הקצאת טווח של רשת משנה שניתן לניתוב לתנועת NAT ממקור ברשת המשנה החופפת של VPC2. על ידי הגדרת טווח של רשתות משנה שלא חופפות באמצעות הדגל ‎–purpose=PRIVATE_NAT.

gcloud beta compute networks subnets create ncc2-spoke-nat \
--network=vpc2-ncc \
--region=us-central1 \
--range=10.10.10.0/29 \
--purpose=PRIVATE_NAT

יצירת Cloud Router ייעודי לביצוע NAT פרטי

gcloud compute routers create private-nat-cr \
--network vpc2-ncc \
--region us-central1

מגדירים את Cloud Router ל-NAT של טווח כתובות חופף 10.3.3.0/24 מ-vpc2-ncc. בהגדרת הדוגמה שבהמשך, overlapping-vpc3 הוא השם של רשת המשנה החופפת. מילת המפתח ALL מציינת שכל טווחי כתובות ה-IP בתת-הרשת יעברו NAT של המקור.

gcloud beta 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 beta 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 beta 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/beta/projects/xxxxxxxx/regions/us-central1/subnetworks/ncc2-spoke-nat
  match: nexthop.hub == "//networkconnectivity.googleapis.com/projects/xxxxxxxx/locations/global/hubs/ncc-hub"
  ruleNumber: 1
sourceSubnetworkIpRangesToNat: LIST_OF_SUBNETWORKS
subnetworks:
- name: https://www.googleapis.com/compute/beta/projects/xxxxxxxx/regions/us-central1/subnetworks/overlapping-vpc3
  sourceIpRangesToNat:
  - ALL_IP_RANGES
type: PRIVATE

אופציונלי,

  • מעבר לקונסולה האינטרנטית
  • עוברים אל Network Services (שירותי רשת) > Cloud 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

בזמן כתיבת ה-codelab הזה, 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. תמיכה ב-NCC ברשתות משנה של IPv6

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

519afcf8a0d506f0.png

יוצרים רשת VPC חדשה ל-IPv6 שתצטרף ל-NCC-Hub כרשת VPC מסוג spoke. ‫GCP יקצה באופן אוטומטי את כל כתובות ה-ULA מהטווח fd20::‎/20.

gcloud compute networks create vpc5-ncc \
--subnet-mode custom \
--enable-ula-internal-ipv6 

gcloud compute networks subnets create vpc5-ext-ipv6 \ --network=vpc5-ncc \ 
--stack-type=IPV6 \ 
--ipv6-access-type=EXTERNAL \ 
--region=us-central1

gcloud compute networks subnets create vpc5-ipv4-subnet1 \
--network vpc5-ncc \
--range 10.5.5.0/24 \
--region us-central1

משתמשים בפקודה הזו כדי להגדיר את VPC5 כרשת מסוג Spoke ב-NCC וכדי למנוע ייצוא של נתיב רשת המשנה IPv4 לטבלת הנתיבים של הרשת הראשית. מייצאים את רשת ה-ULA של IPv6 לטבלת הניתוב של רכזת NCC.

gcloud network-connectivity spokes linked-vpc-network create vpc5-spoke5 \
--hub=ncc-hub \
--vpc-network=vpc5-ncc \
--exclude-export-ranges=10.5.5.0/24
--global

מפעילים את VPC1 ואת VPC4 עבור כתובות IPv6 פרטיות ייחודיות מקומיות (ULA). מערכת GCP תקצה באופן אוטומטי את כל כתובות ה-ULA מהטווח fd20::‎/20.

gcloud compute networks update vpc-ncc4 \
    --enable-ula-internal-ipv6

gcloud compute networks update vpc-ncc1 \
    --enable-ula-internal-ipv6

יצירת תת-רשת מקורית של IPv6 ותת-רשת כפולה של IPv4_v6 ב-VPC1

gcloud compute networks subnets create vpc1-ipv6-sn1 \
    --network=vpc-ncc1 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=INTERNAL \
    --region=us-central1

gcloud compute networks subnets create vpc1-ipv64-sn2 \
    --network=vpc-ncc1 \
    --range=10.10.10.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=us-east1

יוצרים תת-רשת מקורית של IPv6 ותת-רשת כפולה של IPv4_v6 ב-VPC4

gcloud compute networks subnets create vpc4-ipv6-sn1 \
    --network=vpc-ncc4 \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=INTERNAL \
    --region=us-central1

gcloud compute networks subnets create vpc4-ipv64-sn2 \
    --network=vpc-ncc4 \
    --range=10.40.40.0/24 \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=us-east1

ברשת VPC1, יוצרים כלל של חומת אש מסוג IPv6 VPC כדי לאפשר תעבורת נתונים שמגיעה מטווח IPv6 ULA.

gcloud compute firewall-rules create allow-icmpv6-ula-ncc1 \
    --network=vpc-ncc1 \
    --action=allow \
    --direction=ingress \
    --rules=all \
    --source-ranges=fd20::/20

ברשת VPC4, יוצרים כלל של חומת אש מסוג IPv6 VPC כדי לאפשר תעבורת נתונים שמגיעה מטווח IPv6 ULA.

gcloud compute firewall-rules create allow-icmpv6-ula-ncc4 \
    --network=vpc-ncc4 \
    --action=allow \
    --direction=ingress \
    --rules=all \
    --source-ranges=fd20::/20

בקטע הבא נסביר איך ליצור שלוש דוגמאות של GCE IPv6 כדי לאמת את הקישוריות של נתיב הנתונים. הערה: המארח vpc1-dualstack-vm ישמש כמארח bastion כדי לקבל גישה מחוץ לפס ל-VM של GCE עם IPv6 מקורי.

gcloud compute instances create vpc4-ipv6-vm \
    --zone us-central1-a \
    --subnet=vpc4-ipv6-sn1 \
    --stack-type=IPV6_ONLY

gcloud compute instances create vpc1-ipv6-vm \
    --zone us-central1-a \
    --subnet=vpc1-ipv6-sn1 \
    --stack-type=IPV6_ONLY

gcloud compute instances create vpc1-dual-stack-vm \
    --zone us-east1-b \
    --network=vpc-ncc1 \
    --subnet=vpc2-ipv64-sn2 \
    --stack-type=IPV4_IPV6

בדיקת רשתות משנה של IPv6 ב-NCC Hub

בודקים את טבלת הניתוב של ה-NCC hub לרשתות משנה של IPv6 ULA.

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="IP_CIDR_RANGE:fd20"

שימו לב שהפלט מהפקודה שלמעלה לא כולל את רשתות המשנה של IPv6. כברירת מחדל, רשתות משנה של IPv6 מ-VPC spokes לא נכללות בייצוא לטבלת הניתוב של NCC hub.

Listed 0 items.

משתמשים בפקודות gcloud שבהמשך כדי לעדכן את ה-spokes ‏VPC1 ו-VPC4 לייצוא של רשתות משנה מסוג IPv6 לטבלת הניתוב של ה-hub ב-NCC.

gcloud network-connectivity spokes linked-vpc-network update vpc1-spoke1 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

gcloud network-connectivity spokes linked-vpc-network update vpc4-spoke4 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
  --global \
  --include-export-ranges=ALL_IPV6_RANGES

שוב, בודקים את טבלת המסלולים של מרכז ה-NCC כדי לראות אם יש רשתות משנה של IPv6 ULA.

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="IP_CIDR_RANGE:fd20"

פלט לדוגמה

IP_CIDR_RANGE                  PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
fd20:c95:95d2:1000:0:0:0:0/64            us-east1     ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc4  ncc-hub  default
fd20:c95:95d2:1:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc4  ncc-hub  default
fd20:670:3823:0:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
fd20:90:6768:1000:0:0:0:0/64             us-east1     ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc2  ncc-hub  default
fd20:90:6768:0:0:0:0:0/64                us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc2  ncc-hub  default

סינון של רשתות משנה של IPv6 באמצעות רכזות VPC של NCC

בדיקת טבלת המסלולים של רכזת NCC למסלולי רשת משנה חיצונית של IPv6

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:vpc-ncc5"

פלט לדוגמה, טבלת הניתוב של ה-hub של ncc למדה את טווח ה-IPv6 החיצוני.

IP_CIDR_RANGE                  PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
10.5.5.0/24                              us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
2600:1900:4001:ce6:0:0:0:0/64            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
fd20:670:3823:0:0:0:0:0/64               us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default
10.50.10.0/24                            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  ncc-hub  default

כדי לעדכן את רשתות המשנה של VPC5 כך שלא יחדירו לטבלת הניתוב של מרכז NCC את שתי רשתות המשנה הפנימיות הספציפיות של IPv6 ואת רשת המשנה החיצונית של IPv6, משתמשים בפקודת gcloud שבהמשך.

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
 --global \
 --include-export-ranges=fd20:670:3823:0:0:0:0:0/48 \
 --exclude-export-ranges=fd20:670:3823:1::/64,fd20:670:3823:2::/64  

שימוש בפקודת gcloud כדי לאמת את מסנני הייצוא של רכזת VPC5

gcloud network-connectivity spokes linked-vpc-network update vpc5-spoke5 \
 --global \
 --include-export-ranges=fd20:670:3823:0:0:0:0:0/48 \
 --exclude-export-ranges=fd20:670:3823:1::/64,fd20:670:3823:2::/64  

בדיקת טבלת המסלולים של רכזת NCC למסלולי רשת משנה חיצונית של IPv6

gcloud network-connectivity hubs route-tables routes list --route_table=default \
--hub=ncc-hub \
--filter="NEXT_HOP:vpc-ncc5"

פלט לדוגמה, טבלת הניתוב של רכזת ncc למדה את טווח ה-IPv6 החיצוני.

IP_CIDR_RANGE               PRIORITY  LOCATION     STATE   TYPE                SITE_TO_SITE  NEXT_HOP  HUB            ROUTE_TABLE
fd20:670:3823:0:0:0:0:0/64            us-central1  ACTIVE  VPC_PRIMARY_SUBNET  N/A           vpc-ncc5  demo-mesh-hub  default

9. אימות הקישוריות של נתיב הנתונים

קישוריות של נתיב נתונים ב-IPv4

כדאי לעיין בתרשים כדי לוודא שנתיב הנתונים של IPv4 תקין בין כל המכונות הווירטואליות.

424df0ebe4510ebb.png

מבצעים SSH אל vm1-vpc1-ncc ומתחילים TCP dump כדי לעקוב אחרי חבילות 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

קישוריות של נתיב נתונים ב-IPv6

כדאי לעיין בתרשים כדי לוודא שנתיב הנתונים IP64 עובר בין כל המכונות הווירטואליות.

aa1f3a26c1a62b30.png

משתמשים בפקודת gcloud כדי להציג את כתובת ה-IP של כל מופע שמופעל בו IPv6.

 gcloud compute instances list --filter="INTERNAL_IP:fd20"

פלט לדוגמה

NAME                ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP                   EXTERNAL_IP      STATUS
vpc1-ipv6-vm        us-central1-a  n1-standard-1               fd20:90:6768:0:0:1:0:0/96                      RUNNING
vpc4-ipv6-vm        us-central1-a  n1-standard-1               fd20:c95:95d2:1:0:1:0:0/96                     RUNNING
vpc1-dual-stack-vm  us-east1-b     n1-standard-1               10.10.10.3                    XXX.196.137.107  RUNNING
                                                               fd20:90:6768:1000:0:1:0:0/96

מקימים סשן SSH ל-vpc1-dualstack-vm ומבצעים ping לכתובת IPv6 של vpc1-ipv6-vm כדי לאמת את הקישוריות של IPv6 בתוך VPC גלובלי

ping fd20:90:6768:1000:0:1::

יוצרים סשן SSH ל-vpc1-dualstack-vm ומבצעים ping לכתובת IPv6 של vpc4-ipv6-vm כדי לאמת את הקישוריות של IPv6 דרך חיבור NCC.

ping fd20:c95:95d2:1:0:1::

10. הסרת המשאבים

מתחברים ל-Cloud Shell ומוחקים את מופעי ה-VM ברשתות של אתר ה-Hub והאתר המסועף

מחיקת הגדרות פרטיות של VPC NAT

gcloud beta compute routers nats rules delete 1 \
--nat=ncc2-nat \
--router=private-nat-cr \
--region=us-central1 \
--quiet

gcloud beta compute routers nats delete ncc2-nat \
--router=private-nat-cr \
--router-region=us-central1 \
--quiet

gcloud compute routers delete private-nat-cr \
--region=us-central1 \
--quiet

מחיקת רכזות NCC

gcloud network-connectivity spokes delete vpc1-spoke1 --global --quiet

gcloud network-connectivity spokes delete vpc2-spoke2 --global --quiet

gcloud network-connectivity spokes delete vpc3-spoke3 --global --quiet

gcloud network-connectivity spokes delete vpc4-spoke4 --global --quiet

Reject cross project spoke

דחייה של רשת מסוג spoke של VPC בין פרויקטים ממרכז ה-NCC.

gcloud network-connectivity spokes reject projects/$xprojname/locations/global/spokes/xproj-spoke \--details="cleanup" \
--global

מחיקת NCC Hub

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

מחיקת כללים של חומת אש

gcloud compute firewall-rules delete ncc1-vpc-internal --quiet
gcloud compute firewall-rules delete ncc2-vpc-internal --quiet
gcloud compute firewall-rules delete ncc3-vpc-internal --quiet
gcloud compute firewall-rules delete ncc4-vpc-internal --quiet
gcloud compute firewall-rules delete ncc1-vpc-iap --quiet
gcloud compute firewall-rules delete ncc2-vpc-iap --quiet
gcloud compute firewall-rules delete ncc3-vpc-iap --quiet
gcloud compute firewall-rules delete ncc4-vpc-iap --quiet
gcloud compute firewall-rules delete allow-icmpv6-ula-ncc1 
gcloud compute firewall-rules delete allow-icmpv6-ula-ncc4 

מחיקת מכונות 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
gcloud compute instances delete vpc4-ipv6-vm  --zone us-central1-a --quiet
gcloud compute instances delete vpc2-dual-stack-vm --zone us-east1-b --quiet
gcloud compute instances delete vpc2-ipv6-vm --zone us-central1-a --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
gcloud compute networks subnets delete vpc1-ipv64-sn2 --region=us-east1 --quiet
gcloud compute networks subnets delete vpc1-ipv6-sn1 --region=us-central1 --quiet
gcloud compute networks subnets delete vpc4-ipv64-sn2 --region=us-east1 --quiet
gcloud compute networks subnets delete vpc4-ipv6-sn1 --region=us-central1 --quiet
gcloud compute networks subnets delete vpc5-ext-ipv6 --region=us-central1 --quiet

מחיקת רשתות VPC

gcloud compute networks delete vpc1-ncc vpc2-ncc vpc3-ncc vpc4-ncc, vpc5-ncc --quiet 

‫11. מעולה!

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

מה כיסיתם

  • הגדרת רשת קישור בין רשתות VPC שכנות (peering) מסוג Full Mesh עם רכזת NCC
  • מסנן החרגה של NCC Spoke
  • תמיכה ב-Spoke חוצה פרויקטים
  • ‫NAT פרטי בין VPC

השלבים הבאים

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