יצירת חיבור Classic VPN לאתר מרוחק

אתם יכולים להגדיר חיבור מנהרת VPN קלאסי בין אתר מקומי לבין Cloud de Confiance by S3NS כך שכתובות ה-IP של המקור ושל היעד יהיו כתובות IP חיצוניות (שאינן RFC 1918). לדוגמה, אפשר להגדיר חיבור Classic VPN לאתר מרוחק כך שטווח כתובות ה-IP המקומיות לא יתנגש עם כתובת ה-IP של המכונה הווירטואלית Cloud de Confiance .

במדריך הזה נשתמש ב Cloud de Confiance פרויקט, במסוף Cloud de Confiance , במופע של מכונה וירטואלית (VM), ב-Classic VPN ובכמה פקודות של Linux. כדי לבדוק את החיבור, יוצרים מכונת VM חדשה כדי לשלוח ולקבל תנועה בין המכונה הווירטואלית לבין עמית מרוחק.

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

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. מפעילים את Compute Engine API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של שימוש בשירות' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    להפעלת ה-API

  4. בתחנת העבודה, מתקינים את כלי שורת הפקודה gcloud.
  5. מגדירים את כלי שורת הפקודה gcloud לשימוש בפרויקט. בפקודה הבאה, מחליפים את PROJECT_ID במזהה הפרויקט:
    gcloud config set project PROJECT_ID
  6. מוודאים שרשתות המשנה המקומיות מחוברות לשער ה-VPN המקומי.
  7. פועלים לפי ההוראות שבקטע הגדרת שער ה-VPN של העמית כדי להגדיר את שער ה-VPN של העמית בין Cloud de Confiance by S3NS לבין שער ה-VPN המקומי.

שמירת כתובת IP חיצונית סטטית חדשה

ב-Compute Engine, לכל מופע של מכונה וירטואלית יכולים להיות כמה ממשקי רשת. לכל ממשק יכולות להיות כתובות IP פנימיות וחיצוניות. לכללי העברה יכולות להיות כתובות IP חיצוניות לאיזון עומסים חיצוני או כתובות פנימיות לאיזון עומסים פנימי. מידע נוסף על כתובות IP סטטיות זמין במאמר בנושא כתובות IP חיצוניות.

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

אפשר לשמור שני סוגים של כתובות IP חיצוניות:

  • כתובת IP אזורית שמשמשת מכונות וירטואליות עם ממשק רשת אחד או יותר, או מאזני עומסים אזוריים
  • כתובת IP גלובלית שמשמשת למאזני עומסים גלובליים

רשימה של מאזני עומסים אזוריים וגלובליים זמינה בסיכום שלCloud de Confiance מאזני עומסים.

שומרים כתובת IP חיצונית סטטית באמצעות Google Cloud CLI או באמצעות ה-API. אחרי ששומרים את כתובת ה-IP, מקצים אותה למכונה חדשה בזמן יצירת המכונה החדשה, או מקצים את כתובת ה-IP למכונה קיימת.

המסוף

  1. עוברים לדף שמירת כתובת סטטית.

    מעבר אל Reserve a static address

  2. בוחרים שם לכתובת החדשה.

  3. מציינים אם זו כתובת IPv4 או IPv6. כתובות IPv6 יכולות להיות גלובליות בלבד, ואפשר להשתמש בהן רק עם מאזני עומסים גלובליים.

  4. מציינים אם כתובת ה-IP הזו היא אזורית או גלובלית. אם אתם שומרים כתובת IP סטטית למכונה וירטואלית או למאזן עומסים אזורי, בוחרים באפשרות אזורי. אם אתם מזמינים כתובת IP סטטית למאזן עומסים גלובלי, בוחרים באפשרות Global.

  5. אם זו כתובת IP אזורית, בוחרים את האזור שבו רוצים ליצור את הכתובת.

  6. אופציונלי: בוחרים משאב לצירוף לכתובת ה-IP.

  7. לוחצים על שמירה כדי לשמור את כתובת ה-IP.

gcloud

כדי לשמור כתובת IP חיצונית סטטית באמצעות gcloud compute, משתמשים בפקודה compute addresses create.

כדי לשמור כתובת IP גלובלית, משתמשים בשדות --global ו---ip-version. בשדה --ip-version מציינים IPV4 או IPV6. כתובות IPv6 יכולות להיות גלובליות בלבד, ואפשר להשתמש בהן רק עם מאזני עומסים גלובליים.

מחליפים את ADDRESS_NAME בשם של הכתובת.

gcloud compute addresses create ADDRESS_NAME \
    --global \
    --ip-version [IPV4 | IPV6]

כדי לשמור כתובת IP אזורית, משתמשים בשדה --region:

gcloud compute addresses create ADDRESS_NAME  \
    --region=REGION

מחליפים את מה שכתוב בשדות הבאים:

  • ADDRESS_NAME: השם של הכתובת.
  • REGION: האזור שבו רוצים לשריין את הכתובת הזו. האזור הזה צריך להיות זהה לאזור של המשאב שאליו מוקצית כתובת ה-IP. כל כתובות ה-IP האזוריות הן IPv4.

משתמשים בפקודה compute addresses describe כדי לראות את התוצאה:

gcloud compute addresses describe ADDRESS_NAME

API

כדי ליצור כתובת IPv4 אזורית, קוראים לשיטה האזורית addresses.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

גוף הבקשה צריך לכלול את הפרטים הבאים:

{
  "name": "ADDRESS_NAME"
}

מחליפים את מה שכתוב בשדות הבאים:

  • ADDRESS_NAME: השם של הכתובת
  • REGION: שם האזור של הבקשה
  • PROJECT_ID: מזהה הפרויקט של הבקשה הזו

לכתובות IPv4 סטטיות גלובליות, קוראים לשיטה globalAddresses.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

גוף הבקשה צריך לכלול את הפרטים הבאים:

{
  "name": "ADDRESS_NAME"
}

כדי להקצות כתובות IPv6 סטטיות גלובליות, מתקשרים אל השיטה globalAddresses.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

גוף הבקשה צריך לכלול את הפרטים הבאים:

{
  "name": "ADDRESS_NAME",
  "ipVersion": "IPV6"
}

משתמשים ב-‎addresses.get method כדי לראות את התוצאה.

Terraform

אתם יכולים להשתמש במודול של Terraform כדי ליצור כתובת IP חיצונית.

בדוגמה הבאה, הארגומנטים של Terraform כוללים ערכים לדוגמה שאפשר לשנות. בדוגמה הזו נוצרות שלוש כתובות IPv4 חיצוניות אזוריות.

module "address" {
  source       = "terraform-google-modules/address/google"
  version      = "~> 4.0"
  project_id   = var.project_id # Replace this with your service project ID in quotes
  region       = "europe-west1"
  address_type = "EXTERNAL"
  names = [
    "regional-external-ip-address-1",
    "regional-external-ip-address-2",
    "regional-external-ip-address-3"
  ]
}

בדוגמה הבאה נוצרת כתובת IPv6 חיצונית גלובלית:

resource "google_compute_global_address" "default" {
  project      = var.project_id # Replace this with your service project ID in quotes
  name         = "ipv6-address"
  address_type = "EXTERNAL"
  ip_version   = "IPV6"
}

הפעלת העברת IP

אפשר להפעיל העברת IP כשיוצרים מכונה וירטואלית, או כשמעדכנים את מאפיין המופע canIpForward במכונה וירטואלית קיימת. העברת כתובות IP מופעלת ברמת המכונה הווירטואלית והיא חלה על כל הממשקים שמצורפים למכונה הווירטואלית.

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

בהוראות שבהמשך מתואר איך להפעיל העברת IP כשיוצרים מכונה וירטואלית. אם אתם צריכים להפעיל העברת כתובות IP במכונה וירטואלית קיימת, אתם צריכים לעדכן את מאפיין המופע canIpForward.

המסוף

  1. נכנסים לדף VM instances.
    לדף VM instances
  2. לוחצים על Create instance.
  3. בקטע Boot disk, מוודאים שבחרתם תמונת Linux. לדוגמה: Debian GNU/Linux.
  4. לוחצים על Networking, Disks, Security, Management, Sole-tenancy.
  5. לוחצים על Networking.
  6. בקטע IP forwarding (העברת IP), בוחרים באפשרות Enable (הפעלה).
  7. מציינים את שאר הפרמטרים של המופע.
  8. לוחצים על יצירה.

gcloud

כשיוצרים מכונה באמצעות gcloud, מוסיפים את הדגל --can-ip-forward לפקודה:

gcloud compute instances create ... --can-ip-forward

API

כשיוצרים מכונה, משתמשים בשדה canIpForward כדי להפעיל העברת IP.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "canIpForward": true,
  ...other fields
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו נוצרה המכונה.
  • ZONE: Cloud de Confiance האזור שבו נוצרה המכונה.

מידע נוסף זמין במאמר בנושא השיטה instances.insert.

Terraform

אתם יכולים להשתמש במשאב של Terraform כדי ליצור מכונה וירטואלית עם הפעלת העברת IP.

בדוגמה הזו, הארגומנטים של Terraform קיבלו ערכים שאפשר לשנות.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "instance-next-hop"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  can_ip_forward = true
}

יצירת מסלול לתעבורת נתונים נכנסת

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

  • למסלולים סטטיים לא יכולים להיות טווחי יעד שתואמים לטווחי היעד שמשמשים את מסלולי תת-הרשת ברשת ה-VPC, או שהם ספציפיים יותר מהם.

    • כשמשתמשים בקישור בין רשתות VPC שכנות (peering) כדי לקשר בין שתי רשתות VPC, לא יכול להיות שברשת אחת יהיו מסלולים סטטיים עם יעדים תואמים או ספציפיים יותר מאלה של מסלולי רשתות המשנה בשתי הרשתות. Cloud de Confiance דוחה מסלולים סטטיים שייצרו התנגשות עם מסלולי רשתות המשנה באופן הזה.
  • כדי למנוע התנגשויות כשמשתמשים ברשת VPC במצב אוטומטי, לא כדאי ליצור מסלולים סטטיים שהיעדים שלהם מתאימים ל-10.128.0.0/9. פרטים נוספים זמינים במאמר בנושא טווחים של כתובות IPv4 במצב אוטומטי.

  • היעדים של מסלולים סטטיים לא יכולים לחפוף לטווח שהוקצה פנימי.

  • לפני שיוצרים מסלול סטטי בהתאמה אישית שמשתמש במכונה וירטואלית בתור הצעד הבא, חשוב להכיר את המכונות בתור הצעד הבא. Cloud de Confiance אם בוחרים מכונה של הצעד הבא, המערכת מאמתת את קיומה של מכונה וירטואלית בזמן שיוצרים את המסלול.

  • אם יוצרים מסלול באמצעות תג רשת, רק מכונות וירטואליות עם התג הזה מקבלות את המסלול. עם זאת, מכונות וירטואליות מתויגות עדיין מקבלות את כל המסלולים שלא מתויגים ברשת.

המסוף

  1. נכנסים לדף Routes במסוף Cloud de Confiance .
    לדף Routes
  2. לוחצים על יצירת מסלול.
  3. מציינים שם ותיאור לנתיב.
  4. בוחרים רשת קיימת שבה המסלול יחול.
  5. מציינים טווח כתובות IP של יעד כדי להגדיר את היעד של המסלול.
  6. מציינים עדיפות למסלול. העדיפות משמשת לקביעת סדר הניתוב רק אם ליעדים של המסלולים יש ערך שווה. פרטים נוספים זמינים במאמר בנושא פרמטרים של נתיבים.
  7. כדי שהמסלול יחול רק על מקרים עם תגי רשת תואמים, מציינים את התגים האלה בשדה Instance tags (תגי מופעים). משאירים את השדה ריק כדי שהמסלול יחול על כל המופעים ברשת, או אם בוחרים במאזן עומסים פנימי מסוג TCP/UDP כנקודת הקפיצה הבאה של המסלול. תגי רשת לא חלים על מסלולים שמוגדר בהם מאזן עומסים פנימי מסוג TCP/UDP כצעד הבא.
  8. בוחרים Next hop (הניתוב הבא) למסלול:

    • Specify an instance (ציון מכונה) מאפשרת לכם לבחור מכונה לפי שם. התנועה תנותב למכונה הזו (או לכל מכונה חלופית עם אותו שם באותו אזור), גם אם כתובת ה-IP שלה תשתנה.
    • הגדרה של כתובת IP מאפשרת להזין כתובת IP של מכונה קיימת ברשת ה-VPC. במאמר הצעדים הבאים והתכונות מפורטות הגבלות חשובות על כתובות IP חוקיות של הצעד הבא.
  9. לוחצים על יצירה.

gcloud

יצירת נתיב סטטי חדש:

gcloud compute routes create ROUTE_NAME \
    --destination-range=DESTINATION_RANGE \
    --network=NETWORK \
    NEXT_HOP_SPECIFICATION

מחליפים את ערכי הפלייסהולדר:

  • ROUTE_NAME הוא שם המסלול.
  • DESTINATION_RANGE מייצג את כתובות ה-IP של היעד שאליהן המסלול הזה יחול. היעד הרחב ביותר האפשרי הוא 0.0.0.0/0.
  • NETWORK הוא השם של רשת ה-VPC שתכיל את המסלול.
  • NEXT_HOP_SPECIFICATION מייצג את הצעד הבא במסלול הסטטי. צריך לציין רק אחד מהערכים הבאים כצעד הבא. מידע נוסף על הסוגים השונים של נקודות מעבר זמינות במאמר נקודות מעבר ותכונות.
    • --next-hop-instance=INSTANCE_NAME ו---next-hop-instance-zone=ZONE: משתמשים בצעד הבא הזה כדי להפנות תנועה למכונה וירטואלית קיימת לפי שם ואזור. תעבורת הנתונים נשלחת לכתובת ה-IP הפנימית הראשית של ממשק הרשת של מכונת ה-VM, שנמצאת באותה רשת כמו המסלול.
    • --next-hop-address=ADDRESS: משתמשים בניתוב הבא הזה כדי להפנות תנועה לכתובת ה-IP של מופע קיים של מכונה וירטואלית.

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

מידע נוסף על התחביר של gcloud מופיע במסמכי התיעוד של ה-SDK.

API

יוצרים נתיב סטטי חדש.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "DESTINATION_RANGE",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "priority": PRIORITY,
  "NEXT_HOP_SPECIFICATION": VALUE
}

מחליפים את ערכי הפלייסהולדר:

  • PROJECT_ID הוא מזהה הפרויקט שבו נוצר המסלול.
  • DESTINATION_RANGE מייצג את כתובות ה-IP של היעד שאליהן המסלול הזה יחול. היעד הרחב ביותר האפשרי הוא 0.0.0.0/0.
  • ROUTE_NAME שם לנתיב.
  • NETWORK_NAME הוא השם של רשת ה-VPC שתכיל את המסלול.
  • ה-VALUE של NEXT_HOP_SPECIFICATION מייצג את הצעד הבא במסלול הסטטי. בשדה NEXT_HOP_SPECIFICATION, צריך לציין רק אחד מהשדות הבאים של הניתוב לקפיצה הבאה: nextHopIp,‏ nextHopInstance. מידע נוסף על הסוגים השונים של ניתוב לקפיצה הבאה ועל התכונות זמין במאמר ניתוב לקפיצה הבאה ותכונות.

מידע נוסף זמין במאמר על השיטה routes.insert.

Terraform

אפשר ליצור נתיב סטטי באמצעות מודול של Terraform.

המסלול הסטטי הזה יוצר מסלול ברירת מחדל לאינטרנט.

module "google_compute_route" {
  source       = "../../modules/routes" #adding local path
  project_id   = var.project_id         # Replace this with your project ID in quotes
  network_name = "default"

  routes = [
    {
      name              = "egress-internet"
      description       = "route through IGW to access internet"
      destination_range = "0.0.0.0/0"
      tags              = ["egress-inet"]
      next_hop_internet = true
    }
  ]
}

יצירת VPN קלאסי באמצעות ניתוב סטטי

אשף הגדרת ה-VPN הוא האפשרות היחידה במסוף Cloud de Confiance ליצירת שער VPN קלאסי. אשף ההגדרות כולל את כל שלבי ההגדרה הנדרשים ליצירת שער Classic VPN, מנהרות, סשנים של BGP ומשאב של שער VPN חיצוני. עם זאת, אפשר להשלים חלק מהשלבים מאוחר יותר, כמו הגדרת סשנים של BGP.

המסוף

הגדרת השער

  1. נכנסים לדף VPN במסוף Cloud de Confiance .

    מעבר אל VPN

  2. אם אתם יוצרים שער בפעם הראשונה, לוחצים על יצירת חיבור VPN.

  3. בוחרים באפשרות אשף להגדרת VPN.

  4. לוחצים על לחצן האפשרות Classic VPN.

  5. לוחצים על Continue.

  6. בדף Create a VPN connection (יצירת חיבור VPN), מציינים את הגדרות השער הבאות:

    • שם: השם של שער ה-VPN. אי אפשר לשנות את השם הזה בהמשך.
    • תיאור: אפשר להוסיף תיאור.
    • רשת: מציינים רשת VPC קיימת שבה רוצים ליצור את שער ה-VPN ואת המנהרה.
    • אזור: שערי Cloud VPN ומנהרות הם אובייקטים אזוריים. בוחרים Cloud de Confiance אזור שבו ימוקם השער. מופעים ומשאבים אחרים באזורים שונים יכולים להשתמש במנהרה לתנועת יציאה, בכפוף לסדר המסלולים. כדי להשיג את הביצועים הטובים ביותר, כדאי למקם את השער והמנהרה באותו אזור כמו המשאבים הרלוונטיים של Cloud de Confiance .
    • כתובת IP: יוצרים או בוחרים כתובת IP חיצונית אזורית קיימת.

הגדרת מנהרות

  1. בקטע Tunnels, מציינים את ההגדרות הבאות עבור המנהרה החדשה:

    • שם: השם של מנהרת ה-VPN. אי אפשר לשנות את השם הזה בהמשך.
    • תיאור: אפשר להקליד תיאור.
    • כתובת ה-IP של ה-VPN של העמית המרוחק: מציינים את כתובת ה-IP החיצונית של שער ה-VPN של העמית.
    • גרסת IKE: בוחרים את גרסת IKE המתאימה שנתמכת על ידי שער ה-VPN של עמית. עדיף להשתמש ב-IKEv2 אם הוא נתמך על ידי מכשיר ה-peer.
    • מפתח ששותף מראש של IKE: מציינים מפתח ששותף מראש (סוד משותף) שמשמש לאימות. המפתח ששותף מראש למנהרת Cloud VPN צריך להיות זהה למפתח שבו השתמשתם כשקבעתם את ההגדרה של המנהרה המקבילה בשער ה-VPN של עמית. כדי ליצור מפתח משותף עם הצפנה חזקה, פועלים לפי ההוראות האלה.
    • בחירה של מנהרות מבוססות-מדיניות
    • בקטע אפשרויות ניתוב, בוחרים באפשרות מבוסס-מדיניות.
    • בקטע Remote network IP ranges (טווח כתובות ה-IP של הרשת המרוחקת), מזינים רשימה מופרדת ברווחים של טווחי כתובות ה-IP שמשמשים את התנועה המקומית בהגדרת ה-VPN המקומי.
    • בשדה Local IP ranges (טווחים של כתובות IP מקומיות), מזינים את טווח כתובות ה-IP החיצוניות שיצרתם קודם עם קידומת של רשת משנה /32.
    • לוחצים על סיום.
    • לוחצים על יצירה.

gcloud

כדי ליצור שער Cloud VPN, מריצים את רצף הפקודות הבא. בפקודות, מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • NETWORK: השם של Cloud de Confiance הרשת
  • REGION: Cloud de Confianceהאזור שבו יוצרים את השער והמנהרה
  • GW_NAME: השם של השער
  • GW_IP_NAME: שם לכתובת ה-IP החיצונית שמשמשת את השער
  • אופציונלי: --target-vpn-gateway-region הוא האזור שבו שער ה-VPN הקלאסי פועל. הערך שלו צריך להיות זהה לערך של --region. אם לא מציינים את האפשרות הזו, היא מוגדרת אוטומטית. האפשרות הזו מבטלת את ערך ברירת המחדל של המאפיין compute/region עבור הפעלת הפקודה הזו.

הגדרת משאבי השער

  1. יוצרים את אובייקט שער ה-VPN של היעד:

    gcloud compute target-vpn-gateways create GW_NAME \
       --network=NETWORK \
       --region=REGION \
       --project=PROJECT_ID
    
  2. שמירת כתובת IP חיצונית (סטטית) אזורית:

    gcloud compute addresses create GW_IP_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
  3. רושמים את כתובת ה-IP (כדי שאפשר יהיה להשתמש בה כשמגדירים את שער ה-VPN של העמית):

    gcloud compute addresses describe GW_IP_NAME \
       --region=REGION \
       --project=PROJECT_ID \
       --format='flattened(address)'
    
  4. יוצרים שלושה כללי העברה. הכללים האלה מנחים אתCloud de Confiance לשלוח תעבורה של ESP ‏ (IPsec),‏ UDP 500 ו-UDP 4500 אל השער:

    gcloud compute forwarding-rules create fr-GW_NAME-esp \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=ESP \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
    gcloud compute forwarding-rules create fr-GW_NAME-udp500 \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=UDP \
       --ports=500 \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
    gcloud compute forwarding-rules create fr-GW_NAME-udp4500 \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=UDP \
       --ports=4500 \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    

יצירת מנהרת Cloud VPN

  1. בפקודות, מחליפים את מה שכתוב בשדות הבאים:

    • TUNNEL_NAME: שם למנהרה
    • ON_PREM_IP: כתובת ה-IP החיצונית של שער ה-VPN של עמית
    • IKE_VERS: 1 ל-IKEv1 או 2 ל-IKEv2
    • SHARED_SECRET: המפתח ששותף מראש (סוד משותף). המפתח ששותף מראש למנהרת Cloud VPN צריך להיות זהה למפתח שבו השתמשתם כשקבעתם את ההגדרה של המנהרה המקבילה בשער ה-VPN של עמית. כדי ליצור מפתח משותף עם הצפנה חזקה, פועלים לפי ההוראות האלה.

    ל-VPN מבוסס-מדיניות:

    • LOCAL_IP_RANGES: רשימה מופרדת בפסיקים של טווחי כתובות IP‏Cloud de Confiance . לדוגמה, אפשר לספק את בלוק ה-CIDR של כל רשת משנה ברשת VPC. זהו הצד השמאלי מנקודת המבט של Cloud VPN.
    • REMOTE_IP_RANGES: רשימה מופרדת בפסיקים של טווחי כתובות ה-IP של רשת הפירינג. זהו הצד הימני מנקודת המבט של Cloud VPN.

    כדי להגדיר מנהרת VPN שמבוססת על מדיניות, מריצים את הפקודה הבאה:

    gcloud compute vpn-tunnels create TUNNEL_NAME \
        --peer-address=ON_PREM_IP \
        --ike-version=IKE_VERS \
        --shared-secret=SHARED_SECRET \
        --local-traffic-selector=LOCAL_IP_RANGES \
        --remote-traffic-selector=REMOTE_IP_RANGES \
        --target-vpn-gateway=GW_NAME \
        --region=REGION \
        --project=PROJECT_ID
    

    ב-VPN מבוסס-ניתוב, גם בבוררי התנועה המקומיים וגם בבוררי התנועה המרוחקים, הערך הוא 0.0.0.0/0, כפי שמוגדר באפשרויות הניתוב ובבוררי התנועה.

    כדי להגדיר מנהרת VPN מבוססת-ניתוב, מריצים את הפקודה הבאה:

    gcloud compute vpn-tunnels create TUNNEL_NAME \
        --peer-address=ON_PREM_IP \
        --ike-version=IKE_VERS \
        --shared-secret=SHARED_SECRET \
        --local-traffic-selector=0.0.0.0/0 \
        --remote-traffic-selector=0.0.0.0/0 \
        --target-vpn-gateway=GW_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. יוצרים נתיב סטטי לכל טווח כתובות IP מרוחק שצוין באפשרות --remote-traffic-selector בשלב הקודם. חוזרים על הפקודה הזו לכל טווח כתובות IP מרוחק. מחליפים את ROUTE_NAME בשם ייחודי לנתיב, ואת REMOTE_IP_RANGE בטווח המתאים של כתובות IP מרוחקות.

    gcloud compute routes create ROUTE_NAME \
        --destination-range=REMOTE_IP_RANGE \
        --next-hop-vpn-tunnel=TUNNEL_NAME \
        --network=NETWORK \
        --next-hop-vpn-tunnel-region=REGION \
        --project=PROJECT_ID
    

הגדרת מכונת ה-VM לשליחה ולקבלה של תעבורת נתונים

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

קבלת תנועה

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .
  2. ברשימת המכונות הווירטואליות, מוצאים את המכונה הווירטואלית שיצרתם קודם ולוחצים על SSH.
  3. יוצרים כתובת IP חלופית למכונה הווירטואלית באמצעות כתובת ה-IP הציבורית שהזמנתם קודם. אחרי שתשלימו את השלב הזה, תוכלו לקבל תנועה למכונה הווירטואלית.

    מריצים את הפקודה הבאה:

    sudo ip address add EXTERNAL_IP_ADDRESS/32 dev eth0
    

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

שליחת תנועה

  1. נכנסים לדף VM instances במסוף Cloud de Confiance .
  2. ברשימת המכונות הווירטואליות, מוצאים את המכונה הווירטואלית שיצרתם קודם ולוחצים על SSH.
  3. מריצים את הפקודה הבאה כדי לבדוק אם אפשר לשלוח פינג לכתובת IP חיצונית:

    $ ping -I EXTERNAL_IP_ADDRESS REMOTE_PEER_IP_ADDRESS
    PING 10.0.0.1 (10.0.0.1) from EXTERNAL_IP_ADDRESS : 56(84) bytes of data.
    64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=4.46 ms
    64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=1.11 ms
    

    מחליפים את REMOTE_PEER_IP_ADDRESS בכתובת IP מתת-הרשת של עמית מרוחק.

  4. כדי לאפשר למכונה הווירטואלית להשתמש בממשק הזה באופן אוטומטי כששולחים תנועה למנהרת ה-VPN, אפשר ליצור כלל iptables.

    לדוגמה, מריצים את הפקודה הבאה כדי ליצור כלל iptables:

    $ sudo iptables -t nat -A POSTROUTING --destination REMOTE_PEER_SUBNET -j SNAT --to-source EXTERNAL_IP_ADDRESS
    

    מחליפים את REMOTE_PEER_SUBNET ברשת המשנה של עמית מרוחק.

  5. מריצים את הפקודות הבאות כדי לבדוק את מנהרת Cloud VPN:

    $ ping REMOTE_PEER_IP_ADDRESS
    PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
    64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=3.48 ms
    64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=1.42 ms
    
    $ ping EXTERNAL_IP_ADDRESS
    PING 35.195.72.19 (35.195.72.19) 56(84) bytes of data.
    64 bytes from 35.195.72.19: icmp_seq=1 ttl=64 time=0.033 ms
    64 bytes from 35.195.72.19: icmp_seq=2 ttl=64 time=0.062 ms