הגדרת גישה לשירותים פרטיים

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

כדי להשתמש בגישה לשירותים פרטיים:

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

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

כדי ליצור חיבור פרטי, צריך לבצע את הפעולות הבאות:

הרשאות

בעלי פרויקטים וחברי IAM עם התפקיד אדמין רשת ב-Compute (roles/compute.networkAdmin) יכולים ליצור טווחי כתובות IP שהוקצו ולנהל חיבורים פרטיים.

למידע נוסף על התפקידים ב-Compute Engine, קראו את המאמר תפקידים והרשאות ב-Compute Engine IAM.

בחירת טווח של כתובות IP לטווח שהוקצה

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

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

    בשירותי Google, הגודל המינימלי הוא בלוק /24 יחיד, אבל הגודל המומלץ הוא בלוק /16.

  • בוחרים טווח מוקצה שמופרד לחלוטין מטווחי רשתות המשנה הנוכחיים והעתידיים, כולל טווחי רשתות משנה מרשתות שמחוברות באמצעות קישור בין רשתות VPC שכנות (peering), וטווחי רשתות משנה מ-VPC spokes שמחוברים לאותו NCC hub.

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

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

    לדוגמה, אם יוצרים טווח מוקצה ל-10.0.0.0/16:

    • אם קיים מסלול בהתאמה אישית עם יעד ל-10.0.0.0/16, או אם הוא נוצר מאוחר יותר, כל הטווח של 10.0.0.0/16 נחשב כלא זמין. אם הבעלים של השירות המנוהל ינסה להשתמש בטווח שהוקצה,Google Cloud תחזיר שגיאה על כך שההקצאה מוצתה.

    • אם קיים מסלול בהתאמה אישית עם יעד ל-10.0.0.0/20, או אם מסלול כזה נוצר מאוחר יותר, החלק של 10.0.0.0/20 בטווח שהוקצה ל-10.0.0.0/16 נחשב כלא זמין. אם הבעלים של השירות המנוהל מנסה להשתמש בטווח שהוקצה, והחלק הזמין בטווח שהוקצה לא מספיק לבעלים של השירות המנוהל, Google Cloud מחזיר שגיאה שההקצאה מוצתה.

    • אם קיים מסלול בהתאמה אישית עם יעד ל-10.0.0.0/8, או אם יוצרים מסלול כזה מאוחר יותר, זה לא משפיע על הזמינות של הטווח שהוקצה ל-10.0.0.0/16.

  • בוחרים טווח שלא מתנגש עם הצרכים האחרים שלכם לגבי כתובות IP:

    • חלק מהמוצרים של Google ושל צדדים שלישיים משתמשים ב-172.17.0.0/16 לניתוב בתוך מערכת ההפעלה של האורח. לדוגמה, רשת הגשר שמוגדרת כברירת מחדל ב-Docker משתמשת בטווח הזה. אם אתם משתמשים במוצר שמסתמך על 172.17.0.0/16, אל תשתמשו ב-172.17.0.0/16 בטווח שהוקצה לגישה לשירותים פרטיים.
    • אם אתם משתמשים ברשת VPC במצב אוטומטי, אתם לא יכולים ליצור טווח הקצאה שתואם ל-10.128.0.0/9 או חופף לו. ‫Google משתמשת בטווח 10.128.0.0/9 לרשתות משנה שנוצרות באופן אוטומטי, כולל אלה שבאזורים עתידיים.
  • בוחרים בלוק CIDR שגדול מספיק כדי לענות על הצרכים הנוכחיים והעתידיים.

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

יצירת טווח מוקצה

בשלבים הבאים מוסבר איך ליצור טווח כתובות IP שהוקצו.

כששירות של Google מקצה טווח בשמכם, השירות משתמש בפורמט הבא כדי לתת שם להקצאה: google-managed-services-CONSUMER_NETWORK_NAME. אם ההקצאה הזו קיימת, שירותי Google משתמשים בהקצאה הקיימת במקום ליצור הקצאה נוספת. אתם יכולים להשתמש באותה מוסכמה למתן שמות שבה Google משתמשת כדי לאותת למשתמשים אחרים או לשירותי Google שכבר קיימת הקצאה ל-Google.

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    כניסה לדף VPC networks

  2. בוחרים את רשת ה-VPC שתתחבר לבעלים של השירות המנוהל.

  3. לוחצים על הכרטיסייה Private services access.

  4. בכרטיסייה Private services access, בוחרים בכרטיסייה Allocated IP ranges for services.

  5. לוחצים על Allocate IP range.

  6. מזינים שם ותיאור לטווח שהוקצה.

  7. מגדירים את טווח כתובות ה-IP להקצאה:

    • כדי לציין טווח ספציפי של כתובות IP, בוחרים באפשרות Custom ומזינים בלוק CIDR, כמו 192.168.0.0/16.
    • כדי לאפשר ל-Google לבחור טווח זמין, בוחרים באפשרות Automatic ומזינים את אורך הקידומת, למשל 16.
  8. לוחצים על Allocate כדי ליצור את הטווח שהוקצה.

gcloud

כדי ליצור טווח מוקצה ברשת ה-VPC, משתמשים בפקודה gcloud compute addresses create.

  • כדי לציין טווח כתובות ואורך קידומת (מסכה של רשת משנה), משתמשים בדגלים --addresses ו---prefix-length. לדוגמה, כדי להקצות את בלוק ה-CIDR‏ 192.168.0.0/16, מציינים את הכתובת 192.168.0.0 ואת אורך הקידומת 16.

        gcloud compute addresses create RESERVED_RANGE_NAME \
            --global \
            --purpose=VPC_PEERING \
            --addresses=192.168.0.0 \
            --prefix-length=16 \
            --description="DESCRIPTION" \
            --network=VPC_NETWORK
        
    • כדי לציין רק את אורך הקידומת (מסכה של רשת משנה), משתמשים בדגל prefix-length. אם לא מציינים את טווח הכתובות,Google Cloud בוחר באופן אוטומטי טווח כתובות שלא נמצא בשימוש ברשת ה-VPC. בדוגמה הבאה נבחר טווח כתובות IP שלא נמצא בשימוש, עם אורך קידומת של 16 ביטים.
        gcloud compute addresses create RESERVED_RANGE_NAME \
            --global \
            --purpose=VPC_PEERING \
            --prefix-length=16 \
            --description="DESCRIPTION" \
            --network=VPC_NETWORK
        

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

    • ‫RESERVED_RANGE_NAME: שם לטווח שהוקצה, למשל my-allocated-range.

    • ‫DESCRIPTION: תיאור הטווח, למשל allocated for my-service.

    • ‫VPC_NETWORK: השם של רשת ה-VPC, למשל my-vpc-network.

    בדוגמה הבאה נוצר חיבור פרטי ל-Google, כדי שמכונות ה-VM ברשת ה-VPC של my-network יוכלו להשתמש בגישה לשירותים פרטיים כדי להגיע לשירותי Google שתומכים בה.

    gcloud compute addresses create google-managed-services-my-network \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --description="peering range for Google" \
        --network=my-network
    

Terraform

כדי ליצור טווח מוקצה ברשת ה-VPC, משתמשים במשאב google_compute_global_address.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

אם מופיעה שגיאה לגבי ההרשאה compute.globalAddresses.list בפרויקט, קראו את המאמר הרשאות לחשבון שירות.

הצגת רשימה של טווחי כתובות IP שהוקצו

כדי להציג את רשימת טווחי כתובות ה-IP שהוקצו, משתמשים בפקודה gcloud compute addresses list.

gcloud compute addresses list --global --filter="purpose=VPC_PEERING"

יצירת חיבור פרטי

אחרי שיוצרים טווח מוקצה, אפשר ליצור חיבור פרטי לבעלים של השירות המנוהל. החיבור הפרטי יוצר קישור בין רשתות שכנות (peering) בין רשת ה-VPC לרשת של בעלים של שירות מנוהל.

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

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

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    כניסה לדף VPC networks

  2. בוחרים את רשת ה-VPC שתתחבר לבעלים של השירות המנוהל.

  3. לוחצים על הכרטיסייה Private services access.

  4. בכרטיסייה Private services access, בוחרים בכרטיסייה Private connections to services.

  5. לוחצים על Create connection כדי ליצור חיבור פרטי בין הרשת שלכם לבין הבעלים של השירות המנוהל.

  6. בשדה Assigned allocation, בוחרים טווח אחד או יותר שכבר הוקצה ולא נמצא בשימוש של בעלים אחרים של שירותים מנוהלים.

  7. לוחצים על קישור כדי ליצור את הקישור.

gcloud

  1. משתמשים בפקודה gcloud services vpc-peerings connect.

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=RESERVED_RANGE_NAME \
        --network=VPC_NETWORK
    

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

    • ‫RESERVED_RANGE_NAME: השמות של הטווחים שהוקצו (לפחות אחד).

    • ‫VPC_NETWORK: השם של רשת ה-VPC.

    הפקודה מפעילה פעולה ממושכת ומחזירה שם פעולה.

  2. כדי לבדוק אם הפעולה הצליחה, משתמשים בפקודה gcloud services vpc-peerings operations describe.

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

    ‫OPERATION_NAME: שם הפעולה שהתקבל בשלב הקודם.

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

Terraform

כדי ליצור חיבור פרטי, משתמשים במשאב google_service_networking_connection.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

הצגת רשימה של חיבורים פרטיים

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

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    כניסה לדף VPC networks

  2. בוחרים את רשת ה-VPC שמכילה את החיבורים.

  3. לוחצים על הכרטיסייה Private services access.

  4. בכרטיסייה Private services access, בוחרים בכרטיסייה Private connections to services כדי לראות את כל החיבורים הפרטיים של הרשת.

gcloud

משתמשים בפקודה gcloud services vpc-peerings list.

gcloud services vpc-peerings list \
    --network=VPC_NETWORK

מחליפים את VPC_NETWORK בשם של רשת ה-VPC.

שינוי של חיבור פרטי

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

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

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

  • הסרת טווחים: כשמסירים טווח מחיבור פרטי, חלים הכללים הבאים:

    • הטווח שהוקצה כבר לא משויך לחיבור הפרטי, אבל הוא לא נמחק.

    • יכול להיות שמשאבים קיימים של הבעלים של השירות המנוהל ימשיכו להשתמש בטווח שהוסר.

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

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    כניסה לדף VPC networks

  2. בוחרים את רשת ה-VPC שמכילה את החיבורים.

  3. לוחצים על הכרטיסייה Private services access.

  4. בכרטיסייה Private services access, בוחרים בכרטיסייה Private connections to services כדי לראות את כל החיבורים הפרטיים של הרשת.

  5. לוחצים על שם החיבור ברשימה.

  6. ברשימה Assigned allocation, בוחרים את טווחי ההקצאה שרוצים לשייך לחיבור הפרטי. מבטלים את הסימון של התיבות לצד כל טווח כתובות IP שהוקצה ורוצים להסיר מהחיבור הפרטי.

  7. לוחצים על OK.

gcloud

כדי להוסיף או להסיר טווחי כתובות IP שהוקצו בחיבור פרטי קיים, משתמשים בפקודה gcloud services vpc-peerings update.

gcloud services vpc-peerings update \
    --service=servicenetworking.googleapis.com \
    --ranges=RESERVED_RANGE_NAME \
    --network=VPC_NETWORK \
    [--force]

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

  • ‫RESERVED_RANGE_NAME: רשימה של שמות של טווחים שהוקצו (לפחות אחד) שיוקצו לחיבור הפרטי.

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

  • ‫VPC_NETWORK: השם של רשת ה-VPC.

מחיקה של טווח כתובות IP שהוקצה

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

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

אם מוחקים כתובת IP מוקצית שנמצאת בשימוש, ולא משנים את החיבור הפרטי:

  • החיבורים הקיימים נשארים פעילים, אבל אין שום דבר שמונע מרשת ה-VPC להשתמש בכתובות IP שחופפות לרשת של בעלים של שירות מנוהל.

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

  • אם תיצרו בהמשך טווח כתובות IP מוקצה שתואם לטווח שנמחק או חופף לו, הוספת הטווח לחיבור פרטי תיכשל.

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

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    כניסה לדף VPC networks

  2. בוחרים את רשת ה-VPC שכוללת את ההקצאות שרוצים למחוק.

  3. לוחצים על הכרטיסייה Private services access.

  4. בכרטיסייה Private services access, בוחרים בכרטיסייה Allocated IP ranges for services.

  5. בוחרים את ההקצאה שרוצים למחוק.

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

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

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

gcloud

מוחקים את ההקצאה על ידי ציון השם שלה.

gcloud compute addresses delete NAME \
    --global

מחליפים את NAME בשם של טווח הכתובות שהוקצה שרוצים למחוק.

מחיקת חיבור פרטי

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

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

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

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

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

המסוף

  1. נכנסים לדף VPC networks במסוף Google Cloud .

    כניסה לדף VPC networks

  2. בוחרים את רשת ה-VPC שמכילה את החיבורים שרוצים למחוק.

  3. לוחצים על הכרטיסייה Private services access.

  4. בכרטיסייה Private services access, בוחרים בכרטיסייה Private connection to services.

  5. בוחרים את החיבור הפרטי שרוצים למחוק.

  6. לוחצים על מחיקה כדי למחוק.

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

gcloud

כדי למחוק חיבור VPC Network Peering של חיבור פרטי, משתמשים בפקודה gcloud services vpc-peerings delete.

gcloud services vpc-peerings delete \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK

מחליפים את VPC_NETWORK בשם של רשת ה-VPC.

שיתוף של אזורי DNS פרטיים עם בעלים של שירותים מנוהלים

אזורים פרטיים ב-Cloud DNS הם פרטיים לרשת ה-VPC שלכם. אם רוצים לאפשר לרשת של בעלים של שירות מנוהל לפתור שמות מהאזור הפרטי, אפשר להגדיר קישור בין רשתות שכנות (peering) ב-DNS בין שתי הרשתות.

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

השירותים הנתמכים האלה תומכים בקישור בין רשתות שכנות (peering) ב-DNS, למעט Cloud SQL.

כדי להפעיל קישור בין רשתות שכנות (peering) ב-DNS, צריך להפעיל את Cloud DNS API בפרויקט.

‫DNS מקושר עם בעלים של שירות מנוהל

gcloud

כדי להגדיר קישור בין רשתות שכנות (peering) ב-DNS בין רשת ה-VPC לרשת של ספק השירות, משתמשים בפקודה gcloud services peered-dns-domains create.

gcloud services peered-dns-domains create PEERING_NAME \
    --network=VPC_NETWORK \
    --dns-suffix=DNS_SUFFIX

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

  • ‫PEERING_NAME: שם להגדרת הקישור בין רשתות שכנות (peering) ב-DNS.

  • ‫VPC_NETWORK: השם של רשת ה-VPC שמחוברת לבעלים של השירות המנוהל באמצעות גישה לשירותים פרטיים.

  • ‫DNS_SUFFIX: סיומת ה-DNS שרוצים לקשר עם הבעלים של השירות המנוהל. צריך לציין שם דומיין DNS מלא, כולל הנקודה. לדוגמה, example.com. היא סיומת DNS תקינה.

Terraform

כדי להגדיר קישור בין רשתות שכנות (peering) ב-DNS בין רשת ה-VPC שלכם לבין הרשת של ספק השירות, השתמשו במשאב google_service_networking_peered_dns_domain.


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

הצגת רשימה של הגדרות קישור בין רשתות שכנות (peering) ב-DNS

gcloud

משתמשים בפקודה gcloud services peered-dns-domains list.

gcloud services peered-dns-domains list \
    --network=VPC_NETWORK

מחליפים את VPC_NETWORK בשם של רשת ה-VPC.

מחיקת הגדרה של קישור בין רשתות שכנות (peering) ב-DNS

gcloud

משתמשים בפקודה gcloud services peered-dns-domains delete.

gcloud services peered-dns-domains delete PEERING_NAME \
    --network=VPC_NETWORK

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

  • ‫PEERING_NAME: השם של הגדרת הקישור בין רשתות שכנות (peering) ב-DNS.

  • ‫VPC_NETWORK: השם של רשת ה-VPC.

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

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

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

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

    כשמייצאים נתיבים בהתאמה אישית לרשת של הבעלים של השירות המנוהל, הרשת של הבעלים של השירות המנוהל לומדת את הנתיבים האלה. אם אחד מהנתיבים שנלמדו חופף לטווחים שמשמשים לגישה פרטית ל-Google, יכול להיות שתנועה מרשת הבעלים של השירות המנוהל שמיועדת לשירותי Google תנותב באופן שגוי דרך חיבור ה-peering לרשת שלכם.

    כדי למנוע התנגשויות בניתוב, צריך לבצע אחת מהפעולות הבאות:

    • אל תייצאו מסלולים בהתאמה אישית שחופפים לטווחים שמשמשים לגישה פרטית ל-Google.
    • מפעילים את VPC Service Controls בחיבור של הגישה לשירותים פרטיים. כשמפעילים את VPC Service Controls, מוגדר ניתוב של גבולות הגזרה לשירותי Google בתוך גבולות הגזרה, וכך נמנעות התנגשויות בניתוב שנגרמות בגלל חפיפה בין נתיבים בהתאמה אישית.
  • מוודאים שהקידומות שכוללות את טווחי ה-IP שהוקצו לגישה לשירותים פרטיים מפורסמות בצורה נכונה ברשת המקומית. במאמר נתיבים מפורסמים מוסבר איך אפשר לפרסם קידומות IPv4 בהתאמה אישית באמצעות Cloud Router.

  • חשוב לוודא שהחיבור ל-VLAN או מנהרת Cloud VPN מסתיימים באותה רשת VPC (או רשת VPC משותפת) כמו החיבור הפרטי, כי קישור בין רשתות VPC שכנות לא מספק ניתוב טרנזיטיבי.

פתרון בעיות

בקטעים הבאים מופיע מידע על פתרון בעיות בגישה לשירותים פרטיים.

באיזה חלק מההקצאה שלי נעשה שימוש?

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

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

לחלופין, כדי לראות איזה שירות משתמש בטווח מסוים של כתובות IP:

  1. מציגים את החיבורים הפרטיים.
  2. מאתרים את השם של חיבור ה-Peering שמקשר אתכם לבעלים הרלוונטי של השירות המנוהל.
  3. מציגים את רשימת המסלולים של רשת ה-VPC.
  4. מוצאים את המסלולים עם הדילוג הבא שתואם לשם של חיבור ה-peering. טווח היעד של המסלולים מציין באילו כתובות IP כל שירות משתמש.

מיצוי טווח כתובות ה-IP

אם בחיבור פרטי מסוים ניצלתם את כל מרחב כתובות ה-IP שהוקצה לכם, Google Cloud תחזיר את השגיאה הבאה: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges.

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

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

כדי להרחיב הקצאה קיימת:

  1. מציגים את רשימת החיבורים הפרטיים ורושמים את השם של הטווח שהוקצה שרוצים להרחיב.
  2. מוחקים את הטווח הקיים שהוקצה שרוצים להרחיב.
  3. יוצרים טווח חדש שהוקצה עם אותו שם כמו הטווח שנמחק. מציינים טווח של כתובות IP שכולל את טווח כתובות ה-IP שנמחק. כך, משאבים קיימים ברשתות שכנות שמשתמשים בטווח שהוקצה בעבר יכולים להמשיך להשתמש באותן כתובות IP בלי להתנגש עם משאבים ברשת ה-VPC שלכם. לדוגמה, אם הטווח הקודם שהוקצה היה 192.168.0.0/20, יוצרים טווח חדש

כדי להוסיף טווחים שהוקצו לחיבור פרטי קיים:

  1. יצירת טווח חדש של כתובות IP שהוקצו. הטווח הזה לא חייב להיות רציף עם טווחים קיימים שהוקצו.
  2. מוסיפים את הטווח שהוקצה לחיבור הפרטי הקיים.

הרשאות של חשבון שירות

אם מופיעה שגיאה לגבי ההרשאה compute.globalAddresses.list לפרויקט כשיוצרים טווח מוקצה, או אם נתקלים בשגיאות כמו Error 400: Precondition check failed כשיוצרים, מציגים או משנים חיבורים פרטיים, יכול להיות שיש בעיה בתפקידים של ניהול זהויות והרשאות גישה (IAM) בחשבון השירות של Service Networking API. חשבון השירות הזה נוצר באופן אוטומטי אחרי שמפעילים את Service Networking API. יכול להיות שיעבור זמן מה עד שהחשבון יוקצה ויוצג בדף IAM.

המסוף

כדי לוודא שלחשבון השירות יש את תפקיד ה-IAM הנכון, מבצעים את הפעולות הבאות:

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM

  2. מסמנים את התיבה Include Google-provided role grants.

  3. בעמודה Name, מחפשים את הישות המורשית של הסוכן Service Networking Service Agent ולוחצים על Edit principal בשורה המתאימה.

  4. בשדה Role, מוודאים שהתפקיד Service Networking Service Agent (roles/servicenetworking.serviceAgent) מופיע.

  5. אם התפקיד Service Networking Service Agent לא מופיע, לוחצים על Add role או על Add another role.

  6. לוחצים על בחירת תפקיד.

  7. בתיבת הטקסט Filter, מזינים Service Networking Service Agent.

  8. בוחרים את Service Networking Service Agent מהרשימה ולוחצים על Save.

gcloud

כדי ליצור חשבון שירות של Service Networking API, משתמשים בפקודה gcloud projects add-iam-policy-binding.

gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking. \
    --role=roles/servicenetworking.serviceAgent

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

  • ‫HOST_PROJECT_NAME: שם הפרויקט המארח.
  • ‫HOST_PROJECT_NUMBER: מספר הפרויקט המארח.

המסלול של רשת המשנה של Peering נשאר אחרי שמעדכנים את הטווח שהוקצה

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

כדי לפתור את הבעיה:

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

לא ניתן ליצור חיבור פרטי חדש

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

כדי למנוע את הבעיה הזו, צריך לפעול לפי ההליך למחיקת חיבור פרטי במקום למחוק ישירות את החיבור המשויך של קישור בין רשתות VPC שכנות (peering).

  • השגיאה "אי אפשר לשנות את הטווחים שהוקצו":

    ERROR: Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection. Existing allocated IP ranges: ALLOCATED_RANGE_NAMES.

    אם קיבלתם את השגיאה הזו, בצעו את הפעולות הבאות:

    1. יוצרים מחדש את החיבור הפרטי שנמחק ומשתמשים בשמות של טווחי הכתובות שהוקצו שהוחזרו בשגיאה. כשיוצרים מחדש את החיבור, צריך להשתמש באותם שמות של טווחים שהוקצו, אבל טווחי כתובות ה-IP התואמים (בלוקי CIDR) יכולים להיות זהים או שונים.

      כדי ליצור את החיבור הפרטי, קראו את המאמר יצירת חיבור פרטי.

    2. אם צריך, משנים את החיבור הפרטי כדי להוסיף או להסיר טווחים שהוקצו. יכול להיות שתרצו להשתמש בטווחים מוקצים שונים מהטווחים המוקצים שציינתם כשיצרתם מחדש את החיבור הפרטי בשלב הקודם.

      כדי לשנות את החיבור הפרטי, קראו את המאמר שינוי חיבור פרטי.

  • שגיאה פנימית זמנית:

    ERROR: (gcloud.services.vpc-peerings.connect) The operation "operations/OPERATION_ID"
    resulted in a failure "encountered some transient internal error, please try again later"

    אם מופיעה הודעת השגיאה הזו, פנו לתמיכה של Cloud.

הפרה של האילוץ constraints/compute.restrictVpcPeering במדיניות הארגון

אם אוכפים את האילוץ constraints/compute.restrictVpcPeering של מדיניות הארגון, התיקייה או הפרויקט, יצירת החיבור הפרטי נכשלת ומופיעה הודעת שגיאה דומה לזו:

Constraint constraints/compute.restrictVpcPeering violated for project PROJECT_ID. Peering with network 'servicenetworking' is not allowed.

כדי לפתור את הבעיה, צריך להוסיף את הארגון של Google שמספק את השירות (under:organizations/433637338589) לרשימה allowedValues של המדיניות constraints/compute.restrictVpcPeering בפרויקט, בתיקייה או בארגון שבבעלותם רשת ה-VPC של הצרכן.