הגדרת גישה לשירותים פרטיים
גישה לשירותים פרטיים היא חיבור פרטי בין רשת ה-VPC שלכם לבין רשת בבעלות Google או צד שלישי. Google או הצד השלישי, ישויות שמציעות שירותים, נקראות גם ספקי שירותים. החיבור הפרטי מאפשר למכונות וירטואליות ברשת ה-VPC ולשירותים שאליהם אתם ניגשים לתקשר באופן בלעדי באמצעות כתובות IP פנימיות. מכונות וירטואליות לא צריכות גישה לאינטרנט או כתובות IP חיצוניות כדי לגשת לשירותים שזמינים דרך גישה לשירותים פרטיים.
כדי להשתמש בגישה לשירותים פרטיים, צריך לבצע את הפעולות הבאות:
-
טווח מוקצה שומר טווח כתובות IP לשימוש על ידי בעלים של שירות מנוהל, וכך נמנע חפיפה בין כתובות IP ברשתות של צרכן השירות ובעלים של שירות מנוהל.
-
החיבור הפרטי משתמש בקישור בין רשתות VPC שכנות (peering) כדי ליצור קישוריות בין הרשתות של צרכן השירות והבעלים של שירות מנוהל.
מידע על אפשרויות אחרות לגישה פרטית זמין במאמר אפשרויות גישה פרטיות לשירותים.
לפני שמתחילים
כדי ליצור חיבור פרטי, צריך לוודא שמתקיימים התנאים המוקדמים הבאים:
- כדאי לקרוא את סקירת הגישה לשירותים פרטיים, כולל השירותים שנתמכים, הנגישות של מופעי שירות והמגבלות.
- יוצרים פרויקט או בוחרים פרויקט קיים. Google Cloud Google Cloud כאן מוסבר איך יוצרים פרויקט.
- מפעילים את Service Networking API בפרויקט. כדי ליצור חיבור פרטי, צריך להשתמש ב-API.
- יוצרים רשת VPC או בוחרים רשת VPC שבה רוצים להשתמש כדי להתחבר לרשת של ספק השירות. מכונות וירטואליות צריכות להשתמש ברשת ה-VPC הזו כדי להתחבר לשירותים באמצעות חיבור פרטי.
- אם רוצים להריץ את הדוגמאות של פקודות ה-CLI של gcloud שמופיעות במדריך הזה, צריך להתקין את Google Cloud CLI.
הרשאות
בעלי פרויקטים וחברי IAM עם התפקיד 'אדמין של רשת מחשוב' (roles/compute.networkAdmin) יכולים ליצור טווחים של כתובות IP שהוקצו ולנהל חיבורים פרטיים.
מידע נוסף על תפקידים ב-Compute Engine זמין במאמר תפקידים והרשאות ב-IAM של Compute Engine.
בחירת טווח כתובות IP לטווח שהוקצה
יצירת טווח מוקצה שומרת טווח כתובות IP לשימוש של בעלי השירות המנוהל. כשבוחרים טווח להקצאה, כדאי לקחת בחשבון את הנקודות הבאות:
כדאי לעיין במסמכי העזרה של בעלים של שירות מנוהל כדי לבדוק אם יש דרישות או המלצות לגבי גודל הטווח שהוקצה.
בשירותי Google, הגודל המינימלי הוא בלוק אחד של
/24, אבל הגודל המומלץ הוא בלוק של/16.בוחרים טווח מוקצה שמופרד לחלוטין מטווחים של תת-רשתות נוכחיות ועתידיות, כולל טווחים של תת-רשתות מרשתות שמחוברות באמצעות קישור בין רשתות VPC, וטווחים של תת-רשתות של רשתות VPC מסוג Hub-and-Spoke שמחוברות לאותו מרכז NCC.
בוחרים טווח שלא תואם בדיוק ליעדים של אף אחד מהמסלולים הסטטיים או הדינמיים המותאמים אישית, או שלא מכיל אותם.
כשבעלים של שירות מנוהל בוחרים חלק לא בשימוש מתוך טווח שהוקצה כדי להשתמש בו כמועמד למשאבים חדשים, הם לא כוללים את כל יעדי המסלולים המותאמים אישית שתואמים בדיוק לטווח שהוקצה או שנמצאים בתוכו. כשברשת 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עבור רשתות משנה שנוצרות באופן אוטומטי, כולל רשתות משנה באזורים עתידיים.
- חלק ממוצרי Google ומוצרי צד שלישי משתמשים ב-
בוחרים בלוק CIDR שגדול מספיק כדי לענות על הצרכים הנוכחיים והעתידיים.
אם בהמשך תגלו שהטווח לא מספיק גדול, תוכלו להרחיב אותו אם אפשר. אפשר להקצות כמה הקצאות לבעלים של שירות מנוהל יחיד, אבל Google אוכפת מכסה על מספר טווחי כתובות ה-IP שאפשר להקצות, ולא על הגודל (מסכת הרשת) של כל טווח.
יצירת טווח מוקצה
בשלבים הבאים מוסבר איך ליצור טווח כתובות IP מוקצה.
כששירות Google מקצה טווח בשמכם, השירות משתמש בפורמט הבא כדי לתת שם להקצאה:
google-managed-services-CONSUMER_NETWORK_NAME. אם ההקצאה הזו קיימת, שירותי Google משתמשים בה במקום ליצור הקצאה חדשה. אתם יכולים להשתמש באותה מוסכמה למתן שמות שבה Google משתמשת כדי לסמן למשתמשים אחרים או לשירותי Google שקיימת הקצאה ל-Google.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
בוחרים את רשת ה-VPC שתתחבר לשירות ההפקה.
לוחצים על הכרטיסייה גישה לשירותים פרטיים.
בכרטיסייה גישה לשירותים פרטיים, בוחרים בכרטיסייה הקצאת טווחי כתובות IP לשירותים.
לוחצים על הקצאת טווח כתובות IP.
מזינים שם ותיאור לטווח שהוקצה.
מגדירים את טווח כתובות ה-IP להקצאה:
- כדי לציין טווח כתובות IP ספציפי, בוחרים באפשרות Custom ומזינים בלוק CIDR, כמו
192.168.0.0/16. - כדי לאפשר ל-Google לבחור טווח זמין, בוחרים באפשרות אוטומטי ואז מזינים אורך קידומת, כמו
16.
- כדי לציין טווח כתובות IP ספציפי, בוחרים באפשרות Custom ומזינים בלוק CIDR, כמו
לוחצים על הקצאה כדי ליצור את הטווח המוקצה.
gcloud
כדי ליצור טווח מוקצה ברשת ה-VPC, משתמשים בפקודה gcloud compute addresses create.
כדי לציין טווח כתובות ואורך קידומת (מסכה של רשת משנה), משתמשים בדגלים
--addressesו---prefix-length. לדוגמה, כדי להקצות את בלוק ה-CIDR192.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, כך שהמכונות הווירטואליות ברשת ה-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.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
אם מוצגת שגיאה לגבי ההרשאה compute.globalAddresses.list בפרויקט, כדאי לעיין במאמר הרשאות לחשבון שירות.
רשימה של טווחי כתובות IP שהוקצו
כדי לראות את רשימת טווחי כתובות ה-IP שהוקצו, משתמשים בפקודה gcloud compute addresses list.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
יצירת חיבור פרטי
אחרי שיוצרים טווח מוקצה, אפשר ליצור חיבור פרטי לבעלים של השירות המנוהל. החיבור הפרטי יוצר קישור בין רשתות VPC שכנות בין רשת ה-VPC שלכם לבין הרשת של בעלים של שירות מנוהל.
כשיוצרים חיבור פרטי, חשוב לזכור את הנקודות הבאות:
- אם בעלים של שירות מנוהל מציע כמה שירותים, אתם צריכים רק חיבור פרטי אחד לכל השירותים שלו.
- אם בעלים של שירות מנוהל מציע כמה שירותים ואתם רוצים לשלוט בטווחי כתובות ה-IP שהוקצו לשימוש במשאבי שירות שונים, אתם יכולים להשתמש בכמה רשתות VPC, שלכל אחת מהן יש חיבורים פרטיים משלה. ההגדרה הזו מאפשרת לכם לבחור רשת מסוימת כשאתם יוצרים משאב חדש של שירות מנוהל, כדי לוודא שהטווחים המוקצים המשויכים ישמשו למשאב החדש.
אל תשתמשו שוב באותו טווח שהוקצה לכמה ספקי שירותים. אם אתם מתחברים לכמה בעלים של שירותים מנוהלים, אתם צריכים להשתמש בטווח מוקצה ייחודי לכל בעלים של שירות מנוהל. שימוש בטווחים שונים של כתובות IP שמוקצות עוזר למנוע חפיפה בין כתובות IP, ומאפשר לכם לנהל את הגדרות הרשת, כמו נתיבים וכללי חומת אש, לכל בעלים של שירות מנוהל.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
בוחרים את רשת ה-VPC שתתחבר לשירות ההפקה.
לוחצים על הכרטיסייה גישה לשירותים פרטיים.
בכרטיסייה גישה לשירותים פרטיים, בוחרים בכרטיסייה חיבורים פרטיים לשירותים.
לוחצים על יצירת חיבור כדי ליצור חיבור פרטי בין הרשת שלכם לבין בעלים של שירות מנוהל.
בקטע הקצאה שהוקצתה, בוחרים טווחים קיימים שהוקצו ושלא נמצאים בשימוש של ספקי שירות אחרים.
לוחצים על Connect (חיבור) כדי ליצור את החיבור.
gcloud
משתמשים בפקודה
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.
הפקודה מפעילה פעולה ממושכת ומחזירה שם פעולה.
כדי לבדוק אם הפעולה הצליחה, משתמשים בפקודה
gcloud services vpc-peerings operations describe.gcloud services vpc-peerings operations describe \ --name=OPERATION_NAMEמחליפים את
OPERATION_NAMEבשם הפעולה שהתקבל בשלב הקודם.
כשיוצרים חיבור פרטי, אפשר לציין יותר מטווח מוקצה אחד. לדוגמה, אם טווח מסוים מוצה, אפשר להקצות טווחים נוספים. השירות משתמש בכתובות IP מכל הטווחים שצוינו, לפי הסדר שהגדרתם.
Terraform
כדי ליצור חיבור פרטי, משתמשים במשאב google_service_networking_connection.
הצגת רשימה של חיבורים פרטיים
אחרי שיוצרים חיבור פרטי, אפשר להציג אותו ברשימה כדי לוודא שהוא קיים. ברשימה מוצגות גם רשימות של טווחים שהוקצו שמשויכים לכל חיבור. לדוגמה, אם אתם לא זוכרים איזו הקצאת טווח הקציתם לחיבור, תוכלו לעיין ברשימה כדי לגלות.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
בוחרים את רשת ה-VPC שמכילה את החיבורים.
לוחצים על הכרטיסייה גישה לשירותים פרטיים.
בכרטיסייה גישה לשירותים פרטיים, בוחרים בכרטיסייה חיבורים פרטיים לשירותים כדי לראות את כל החיבורים הפרטיים ברשת.
gcloud
משתמשים בפקודה gcloud services vpc-peerings list.
gcloud services vpc-peerings list \
--network=VPC_NETWORK
מחליפים את VPC_NETWORK בשם של רשת ה-VPC.
שינוי חיבור פרטי
אי אפשר לשנות טווח שהוקצה, אבל אפשר לעדכן חיבור פרטי כדי להוסיף או להסיר טווחים שהוקצו בלי לשבש את התנועה.
הוספת טווחים: ככל שהשימוש גדל, יכול להיות שתצטרכו להוסיף או להחליף טווח שהוקצה אם אתם מתקרבים למיצוי של הטווח הקיים. אם מוסיפים עוד טווח מוקצה לחיבור פרטי, לבעלים של השירות המנוהל יש יותר כתובות IP זמינות כשהם יוצרים משאבי שירות חדשים לכל שירות שהם מספקים. אי אפשר להזמין טווח מוקצה ספציפי בחיבור פרטי לשימוש בשירות מסוים.
מידע נוסף על הוספה או החלפה של טווחים זמין במאמר בנושא מיצוי של טווח כתובות IP.
הסרת טווחים: כשמסירים טווח מחיבור פרטי, חלים הכללים הבאים:
הטווח שהוקצה לא משויך יותר לחיבור הפרטי, אבל הוא לא נמחק.
- אם טווח שהוסר כבר לא נמצא בשימוש, אפשר למחוק את ההקצאה.
יכול להיות שמשאבים קיימים של הבעלים של השירות המנוהל ימשיכו להשתמש בטווח שהוסר.
הגישה לשירותים פרטיים לא משתמשת בטווחים שהוסרו כדי להקצות תת-רשתות חדשות.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
בוחרים את רשת ה-VPC שמכילה את החיבורים.
לוחצים על הכרטיסייה גישה לשירותים פרטיים.
בכרטיסייה גישה לשירותים פרטיים, בוחרים בכרטיסייה חיבורים פרטיים לשירותים כדי לראות את כל החיבורים הפרטיים ברשת.
לוחצים על שם החיבור ברשימה.
ברשימה Assigned allocation, בוחרים את טווחי ההקצאה שרוצים לשייך לחיבור הפרטי. מבטלים את הסימון של תיבות הסימון שליד כל טווח שהוקצה ורוצים להסיר מהחיבור הפרטי.
לוחצים על 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 שהוקצה ונמצא בשימוש.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
בוחרים את רשת ה-VPC שכוללת את ההקצאות שרוצים למחוק.
לוחצים על הכרטיסייה גישה לשירותים פרטיים.
בכרטיסייה גישה לשירותים פרטיים, בוחרים בכרטיסייה הקצאת טווחי כתובות IP לשירותים.
בוחרים את ההקצאה שרוצים למחוק.
לוחצים על Release (שחרור) כדי להחזיר את טווח כתובות ה-IP שהוקצה למאגר של כתובות ה-IP הפנימיות הזמינות ברשת.
אם טווח כתובות ה-IP שהוקצה עדיין משויך לחיבור קיים, צריך להזין אישור נוסף כדי לבטל את ההקצאה.
כדי לאשר את המחיקה, לוחצים שוב על שחרור.
gcloud
כדי למחוק את ההקצאה, מציינים את השם שלה.
gcloud compute addresses delete NAME \
--global
מחליפים את NAME בשם של טווח הכתובות שהוקצה שרוצים למחוק.
מחיקת חיבור פרטי
כדי למחוק חיבור פרטי, צריך לבצע את הפעולות שמתוארות בקטע הזה. אל תנסו למחוק חיבור פרטי על ידי מחיקה ישירה של הקישור המשויך בין רשתות VPC שכנות.
לפני שמוחקים חיבור פרטי, צריך למחוק את כל מופעי השירות שאליהם יש גישה דרך החיבור.
אופן הפעולה של מחיקת מופע שירות יכול להשתנות בהתאם לשירות. יכול להיות שהמשאבים של השירות יימחקו באופן מיידי, או שהם יימחקו אחרי תקופת המתנה. אם יש תקופת המתנה, אי אפשר למחוק את החיבור הפרטי עד שתקופת ההמתנה תסתיים והמשאבים של ספק השירות יימחקו.
לדוגמה, אם מוחקים מופע של Cloud SQL, מקבלים תגובת הצלחה, אבל השירות מחכה ארבעה ימים לפני שהוא מוחק את המשאבים של ספק השירות. תקופת ההמתנה מאפשרת לכם לשנות את דעתכם לגבי מחיקת השירות ולבקש לשחזר את המשאבים. אם תנסו למחוק את החיבור במהלך תקופת ההמתנה, המחיקה תיכשל ותוצג הודעה שהמשאבים עדיין בשימוש של ספק השירות.
אי אפשר למחוק חיבור פרטי שנמצא בשימוש על ידי רשת VPC מסוג spoke של ספק. כדי למחוק את החיבור, צריך קודם למחוק את רשת ה-VPC של היצרן.
המסוף
נכנסים לדף VPC networks במסוף Google Cloud .
בוחרים את רשת ה-VPC שכוללת את החיבורים שרוצים למחוק.
לוחצים על הכרטיסייה גישה לשירותים פרטיים.
בכרטיסייה גישה לשירותים פרטיים, בוחרים בכרטיסייה חיבור פרטי לשירותים.
בוחרים את החיבור הפרטי שרוצים למחוק.
לוחצים על מחיקה כדי למחוק.
לוחצים שוב על מחיקה כדי לאשר את המחיקה.
gcloud
כדי למחוק את הקישור בין רשתות VPC שכנות של חיבור פרטי, משתמשים בפקודה 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 בין שתי הרשתות.
כשמגדירים קישור בין רשתות שכנות (peering) של DNS, מציינים רשת VPC וסיומת DNS. אם הבעלים של שירות מנוהל צריך לפתור כתובת עם סיומת ה-DNS הזו, הוא מעביר את השאילתות האלה לרשת ה-VPC שלכם כדי לפתור אותן.
השירותים הנתמכים האלה תומכים ב-DNS peering, למעט Cloud SQL.
כדי להפעיל DNS Peering, צריך להפעיל את Cloud DNS API בפרויקט.
יצירת DNS עמית עם בעלים של שירות מנוהל
gcloud
כדי להגדיר קישור 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: שם להגדרת ה-DNS הזו.
VPC_NETWORK: השם של רשת ה-VPC שמחוברת לבעלים של שירות מנוהל באמצעות גישה לשירותים פרטיים.
DNS_SUFFIX: סיומת ה-DNS שרוצים לבצע איתה פעולת Peering עם ספק השירות. צריך לציין שם דומיין מלא של DNS, כולל הנקודה. לדוגמה,example.com.הוא סיומת DNS תקינה.
Terraform
כדי להגדיר קישור DNS בין רשת ה-VPC לרשת של ספק השירות, משתמשים במשאב google_service_networking_peered_dns_domain.
הצגת רשימה של הגדרות קישור DNS בין רשתות שכנות (peering)
gcloud
משתמשים בפקודה gcloud services peered-dns-domains list.
gcloud services peered-dns-domains list \
--network=VPC_NETWORK
מחליפים את VPC_NETWORK בשם של רשת ה-VPC.
מחיקת הגדרת DNS של קישור בין רשתות שכנות (peering)
gcloud
משתמשים בפקודה gcloud services peered-dns-domains delete.
gcloud services peered-dns-domains delete PEERING_NAME \
--network=VPC_NETWORK
מחליפים את מה שכתוב בשדות הבאים:
PEERING_NAME: השם של הגדרת ה-DNS של ה-Peering.
VPC_NETWORK: השם של רשת ה-VPC.
הגדרת קישוריות היברידית
כברירת מחדל, הרשת של ספק השירות לומדת רק את נתיבי רשת המשנה מרשת ה-VPC שלכם. לכן, כל בקשה שלא מגיעה מטווח כתובות IP של רשת משנה נדחית על ידי הבעלים של שירות מנוהל.
כדי להגדיר קישוריות בין המארחים המקומיים לבין הרשת של ספק השירות, צריך לבצע את הפעולות הבאות:
ברשת ה-VPC, מעדכנים את חיבור הקישור בין רשתות שכנות (peering) כדי לייצא מסלולים מותאמים אישית לרשת של בעלים של שירות מנוהל. כשמייצאים מסלולים, כל המסלולים הסטטיים והדינמיים שעומדים בדרישות שנמצאים ברשת ה-VPC שלכם, כמו מסלולים לרשת המקומית, נשלחים לרשת של ספק השירות. הרשת של ספק השירות מייבאת אותם באופן אוטומטי, ואז יכולה לשלוח תנועה חזרה לרשת המקומית שלכם דרך רשת ה-VPC.
מוודאים שהקידומות שכוללות את טווחי כתובות ה-IP שהוקצו לגישה לשירותים פרטיים מפורסמות בצורה נכונה ברשת המקומית. במאמר מסלולים שפורסמו מוסבר איך אפשר לפרסם קידומות IPv4 בהתאמה אישית באמצעות Cloud Router.
צריך לוודא שצירוף ה-VLAN או מנהרת Cloud VPN מסתיימים באותה רשת VPC (או רשת VPC משותפת) כמו החיבור הפרטי, כי קישור בין רשתות VPC שכנות (peering) לא מספק ניתוב טרנזיטיבי.
פתרון בעיות
בקטעים הבאים מפורט מידע על פתרון בעיות שקשורות לגישה לשירותים פרטיים.
כמה מההקצאה שלי מנוצל?
כשיוצרים חיבור פרטי עם בעלים של שירות מנוהל, מקצים לו טווח כתובות IP לשימוש. אם אתם משתמשים בכמה שירותים מספק שירותים, כל שירות שומר לעצמו חלק מכתובות ה-IP מתוך הטווח שהוקצה. אתם יכולים לבדוק באילו כתובות IP משתמשים השירותים השונים, כדי לראות למשל באילו שירותים נעשה שימוש בבלוקים גדולים של כתובות IP, וכך להימנע ממיצוי של כתובות IP.
כדי לראות את יחס ההקצאה של טווחי הכתובות שהוקצו, משתמשים בכלי Network Analyzer. מידע נוסף זמין במאמר בנושא סיכום השימוש בכתובות IP לגישה לשירותים פרטיים.
לחלופין, כדי לראות איזה שירות משתמש בטווח כתובות IP מסוים:
- הצגת רשימה של החיבורים הפרטיים.
- מוצאים את השם של חיבור ה-peering שמקשר אתכם לספק השירות הרלוונטי.
- מציגים את רשימת המסלולים של רשת ה-VPC.
- מחפשים את המסלולים עם הקפיצה הבאה שתואמת לשם של חיבור ה-Peering. טווח היעד של המסלולים מציין את כתובות ה-IP שבהן כל שירות משתמש.
מיצוי של טווח כתובות IP
אם מיציתם את מרחב כתובות ה-IP שהוקצה לכם בחיבור פרטי מסוים, הפונקציה Google Cloud מחזירה את השגיאה הבאה: Failed to create subnetwork.
Couldn't find free blocks in allocated IP ranges.
יכול להיות שהשגיאה הזו מופיעה כי הטווח שהוקצה לא מספיק לשימוש שלכם, או כי מסלול מותאם אישית סטטי או דינמי מונע שימוש מלא בטווח שהוקצה. מידע נוסף על שיקולים לגבי ניתוב זמין במאמר בחירת טווח כתובות IP לטווח שהוקצה.
אפשר להרחיב את ההקצאה הקיימת או להוסיף הקצאות חדשות. ההקצאה המורחבת חייבת להיות טווח כתובות IP רציף שכולל את הטווח הקיים. מומלץ להגדיל את ההקצאה כי אין הגבלה על הגודל שלה, אבל יש הגבלה על מספר ההקצאות שאפשר ליצור לכל פרויקט ולכל חיבור. מידע נוסף זמין במאמרים בנושא כתובות IPv4 פנימיות גלובליות סטטיות וטווחים של כתובות IP שהוקצו לכל חיבור פרטי.
כדי להרחיב הקצאה קיימת:
- מציגים את רשימת החיבורים הפרטיים ורושמים את השם של הטווח שהוקצה שצריך להרחיב.
- מוחקים את טווח הכתובות המוקצה הקיים שרוצים להרחיב.
- יוצרים טווח חדש שהוקצה עם אותו שם כמו הטווח שנמחק. מציינים טווח כתובות IP שכולל את טווח כתובות ה-IP שנמחק. כך, משאבים קיימים שמשתמשים בטווח המוקצה הישן יכולים להמשיך להשתמש באותן כתובות IP בלי שיהיו התנגשויות עם משאבים ברשת ה-VPC. לדוגמה, אם הטווח הקודם שהוקצה היה
192.168.0.0/20, יוצרים טווח חדש שהוקצה
כדי להוסיף טווחים שהוקצו לחיבור פרטי קיים:
- יצירת טווח חדש שהוקצה. הטווח הזה לא חייב להיות רציף עם טווחים קיימים שהוקצו.
- מוסיפים את הטווח שהוקצה לחיבור הפרטי הקיים.
הרשאות של חשבון שירות
אם אתם רואים שגיאה לגבי ההרשאה compute.globalAddresses.list בפרויקט כשאתם יוצרים טווח מוקצה, או אם אתם נתקלים בשגיאות כמו Error 400: Precondition check failed כשאתם יוצרים, מציגים או משנים חיבורים פרטיים, יכול להיות שיש בעיה בתפקידים של ניהול זהויות והרשאות גישה (IAM) עבור חשבון השירות של Service Networking API. חשבון השירות הזה נוצר באופן אוטומטי אחרי שמפעילים את Service Networking API. יכול להיות שיעבור זמן עד שהחשבון יוקצה ויוצג בדף IAM.
המסוף
כדי לוודא שלחשבון השירות יש את תפקיד ה-IAM הנכון, מבצעים את הפעולות הבאות:
נכנסים לדף IAM במסוף Google Cloud .
מסמנים את תיבת הסימון Include Google-provided role grants.
בעמודה Name, מחפשים את החשבון הראשי Service Networking Service Agent ולוחצים על Edit principal בשורה המתאימה.
בשדה תפקיד, מוודאים שהתפקיד Service Networking Service Agent (
roles/servicenetworking.serviceAgent) מופיע.אם התפקיד Service Networking Service Agent לא מופיע, לוחצים על Add role או על Add another role.
לוחצים על בחירת תפקיד.
בתיבת הטקסט Filter (סינון), מזינים
Service Networking Service Agent.בוחרים באפשרות 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.iam.gserviceaccount.com \ --role=roles/servicenetworking.serviceAgent
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_NAME: שם פרויקט המארח. -
HOST_PROJECT_NUMBER: מספר פרויקט המארח.
נתיב של רשת משנה ב-Peering נשאר אחרי עדכון של טווח שהוקצה
אחרי שמעדכנים את טווח כתובות ה-IP המוקצה של חיבור לשירותים פרטיים, יכול להיות שהנתיב הישן של רשת המשנה של ה-peering עדיין יופיע בטבלת הניתוב של רשת ה-VPC. המסלול נשמר כי טווח כתובות ה-IP עדיין בשימוש.
כדי לפתור את הבעיה:
- אם מוחקים טווח שהוקצה, חשוב גם לעדכן את החיבור הפרטי.
- מוחקים או מעדכנים את כל המשאבים שמשתמשים בטווח כתובות ה-IP הישן.
נתיב תת-הרשת של ה-peering מוסר באופן אוטומטי אחרי שטווח כתובות ה-IP כבר לא בשימוש. יכול להיות שיהיה עיכוב בין מחיקת המשאב לבין המחיקה המלאה של המשאב על ידי הבעלים של השירות המנוהל. לדוגמה, אם טווח כתובות ה-IP הישן נמצא בשימוש על ידי מופע של Cloud SQL, יכול להיות שיחלפו עד ארבעה ימים עד שהבעלים של שירות מנוהל ימחק את המופע באופן מלא. נתיב הרשת המשנה של ה-peering מוסר אחרי שהמחיקה מסתיימת.
לא ניתן ליצור חיבור פרטי חדש
אם תנסו ליצור חיבור פרטי חדש אחרי שתמחקו את חיבור ה-VPC Network Peering שמשויך לחיבור פרטי קודם,יכול להיות שתקבלו שגיאה. Google Cloudמידע על פתרון בעיות מופיע בהודעות השגיאה הבאות.
כדי למנוע את הבעיה הזו, צריך לפעול לפי ההליך למחיקת חיבור פרטי במקום למחוק ישירות את החיבור המשויך של קישור בין רשתות VPC שכנות (peering).
שגיאה: אי אפשר לשנות את הטווחים שהוקצו:
ERROR: Cannot modify allocated ranges in CreateConnection. Please use UpdateConnection. Existing allocated IP ranges: ALLOCATED_RANGE_NAMES.
אם הודעת השגיאה הזו מוצגת, צריך:
יוצרים מחדש את החיבור הפרטי שמחקתם ומשתמשים בשמות של הטווחים שהוקצו שהוחזרו בשגיאה. כשיוצרים מחדש את החיבור, צריך להשתמש באותם שמות של טווחים שהוקצו, אבל טווחי כתובות ה-IP התואמים (בלוקים של CIDR) יכולים להיות זהים או שונים.
כדי ליצור את החיבור הפרטי, אפשר לעיין במאמר יצירת חיבור פרטי.
במקרה הצורך, משנים את החיבור הפרטי כדי להוסיף או להסיר טווחים שהוקצו. יכול להיות שתרצו להשתמש בטווחים מוקצים שונים מאלה שציינתם כששחזרתם את החיבור הפרטי בשלב הקודם.
כדי לשנות את החיבור הפרטי, אפשר לעיין במאמר שינוי חיבור פרטי.
שגיאה פנימית זמנית:
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.