בדף הזה מוסבר איך ליצור, לעדכן ולשייך נקודות קצה יוצאות עם אזורי העברה וכללי מדיניות של שרתי DNS, כדי לאפשר העברה ישירה של שאילתות DNS באמצעות כתובות IP פרטיות מרשת ה-VPC. השימוש בגישה הזו מאפשר לכם שליטה מפורטת יותר בתנועה היוצאת. מידע נוסף על נקודות קצה יוצאות זמין במאמר סקירה כללית על נקודות קצה יוצאות.
לפני שמתחילים
-
בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים?
-
מפעילים את ממשקי ה-API של Cloud DNS, Compute Engine ושירותי הרשת, אם הם עדיין לא מופעלים.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
מוודאים שיש לכם רשת VPC עם קישוריות לשרתי השמות של ה-DNS המקומיים או החיצוניים. בכל אזור שבו אתם מתכננים לפרוס נקודת קצה יוצאת, לרשת ה-VPC צריכה להיות רשת משנה רגילה ורשת משנה לשרת proxy בלבד באזור היעד. מידע נוסף זמין במאמר יצירה וניהול של רשתות VPC.
בנוסף, צריך לוודא שלרשת המקומית יש נתיב חזרה לטווח כתובות ה-IP של תת-הרשת האזורית של שרת proxy בלבד, ולהגדיר כללים של חומת אש מקומית כדי לאפשר שאילתות DNS נכנסות (יציאות UDP ו-TCP 53) מטווח כתובות ה-IP של תת-הרשת האזורית של שרת proxy בלבד.
יצירת נקודת קצה יוצאת
כדי ליצור נקודת קצה יוצאת, מבצעים את הפעולות הבאות:
המסוף
נכנסים לדף Cloud DNS במסוף Google Cloud .
עוברים לכרטיסייה Outbound endpoints ולוחצים על Create outbound endpoint.
בשדה שם, מזינים שם ייחודי לנקודת הקצה.
(אופציונלי) בשדה Description, מזינים תיאור לנקודת הקצה.
בשדה Region, בוחרים את אזור היעד.
ברשימה Network, בוחרים את רשת ה-VPC.
בשדה Subnet, בוחרים את רשת המשנה הרגילה באזור שנבחר.
בשדה Endpoint IP address, מזינים מחרוזת תקינה של כתובת IPv4 מטווח רשת המשנה שנבחרה.
בקטע Proxy-only subnet (רשת משנה של Proxy בלבד), המסוף מזהה באופן אוטומטי את רשת המשנה האזורית של Proxy בלבד ברשת ה-VPC ובאזור שנבחרו ליציאה של שאילתות. אם לא מזוהה רשת משנה מסוג proxy-only, לוחצים על Reserve subnet כדי ליצור אחת לפני שממשיכים.
לוחצים על יצירה.
gcloud
מריצים את הפקודה gcloud beta dns outbound-endpoints create:
gcloud beta dns outbound-endpoints create ENDPOINT_NAME \
--project=PROJECT_ID \
--network=VPC_NETWORK \
--subnetwork=REGULAR_SUBNET \
--location=REGION \
--endpoint-ip=IP_ADDRESS \
--description=DESCRIPTION
מחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT_NAME: השם של נקודת הקצה היוצאת -
PROJECT_ID: מזהה הפרויקט -
VPC_NETWORK: רשת ה-VPC שמשויכת לנקודת הקצה של התעבורה היוצאת, לדוגמה,projects/PROJECT_ID/global/networks/NETWORK_NAMEאו רקNETWORK_NAME -
REGULAR_SUBNET: רשת המשנה הרגילה שממנה מוקצית כתובת ה-IP הפנימית להאזנה של נקודת הקצה, לדוגמה,projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAMEאו רקSUBNET_NAME -
REGION: האזור שבו נפרסה נקודת הקצה (endpoint) -
IP_ADDRESS: כתובת IPv4 פנימית זמינה מטווח כתובות ה-IP הראשי של רשת המשנה הרגילה -
DESCRIPTION: תיאור אופציונלי של נקודת הקצה
API
מריצים את השיטה outboundEndpoints.create:
POST https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints?outboundEndpointId=ENDPOINT_NAME
{
"network": "projects/PROJECT_ID/global/networks/VPC_NETWORK",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/REGULAR_SUBNET",
"endpointIp": "IP_ADDRESS",
"description": "DESCRIPTION"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נקודת הקצה נפרסת -
ENDPOINT_NAME: השם של נקודת הקצה (endpoint) לתעבורה יוצאת -
VPC_NETWORK: רשת ה-VPC שמשויכת לנקודת הקצה של התעבורה היוצאת -
REGULAR_SUBNET: רשת המשנה הרגילה שממנה מוקצית כתובת ה-IP הפנימית להאזנה של נקודת הקצה -
IP_ADDRESS: כתובת IPv4 פנימית זמינה מטווח ה-IP הראשי של רשת המשנה הרגילה -
DESCRIPTION: תיאור אופציונלי של נקודת הקצה
עדכון של נקודת קצה יוצאת
כדי לעדכן נקודת קצה לחיבורים יוצאים:
המסוף
נכנסים לדף Cloud DNS במסוף Google Cloud .
עוברים לכרטיסייה Outbound endpoints ולוחצים על השם של נקודת הקצה שרוצים לעדכן.
לוחצים על Edit, מעדכנים את השדה Description ולוחצים על Save.
gcloud
מריצים את הפקודה gcloud beta dns outbound-endpoints update:
gcloud beta dns outbound-endpoints update ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION \
--description=UPDATED_DESCRIPTION
מחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT_NAME: השם של נקודת הקצה היוצאת שרוצים לעדכן -
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נפרסה נקודת הקצה (endpoint) -
UPDATED_DESCRIPTION: תיאור מעודכן אופציונלי של נקודת הקצה
API
מריצים את השיטה outboundEndpoints.patch:
PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME?updateMask=description
{
"description": "UPDATED_DESCRIPTION"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נפרסה נקודת הקצה (endpoint) -
ENDPOINT_NAME: השם של נקודת הקצה היוצאת שרוצים לעדכן -
UPDATED_DESCRIPTION: התיאור המעודכן של נקודת הקצה היוצאת
שיוך נקודות קצה לאזור העברה
המסוף
נכנסים לדף Cloud DNS במסוף Google Cloud .
עוברים לכרטיסייה Zones ולוחצים על Create zone, או בוחרים אזור העברה קיים ולוחצים על Edit.
מגדירים את הפרמטרים של האזור:
- בשדה Zone type, בוחרים באפשרות Private.
- בשדה Zone name, מזינים מזהה ייחודי לאזור.
- בקטע שם DNS, מזינים את סיומת אתר שרוצים להעביר. לדוגמה,
corp.example.com. - (אופציונלי) בשדה תיאור, מזינים תיאור.
- בקטע Options, בוחרים באפשרות Forward queries to another server.
- בקטע Networks, בוחרים את רשתות ה-VPC שמורשות לפתור שאילתות באזור הזה.
בקטע Destination DNS servers (שרתי DNS של היעד), מזינים את כתובות ה-IPv4 או את שמות הדומיין המלאים (FQDN) של שרתי השמות החיצוניים או המקומיים.
בקטע נתיב העברה, בוחרים באפשרות נקודות קצה של דואר יוצא.
בקטע Outbound Endpoints, בוחרים נקודת קצה אחת או יותר לטיפול בהעברת שאילתות:
- בחירה מינימלית: בוחרים לפחות נקודת קצה אחת לתקשורת יוצאת (חובה כשבוחרים בנקודות קצה לתקשורת יוצאת כנתיב ההעברה).
- הגבלה של VPC יחיד: כל נקודות הקצה שנבחרו צריכות להיות שייכות לאותה רשת VPC.
- שיטה מומלצת לזמינות גבוהה (HA): כדי להגדיר תוכנית התאוששות מאסון (DR) בין אזורים ויתירות כשל אוטומטית, מגדירים ובוחרים לפחות שתי נקודות קצה באזורים שונים ברשת ה-VPC.
לוחצים על יצירה (או על שמירה אם מדובר באזור קיים).
gcloud
משייכים את נקודות הקצה לאזור העברה באמצעות הפקודה gcloud beta dns managed-zones update:
gcloud beta dns managed-zones update ZONE_NAME \
--project=PROJECT_ID \
--outbound-endpoints=projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1,projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2
מחליפים את מה שכתוב בשדות הבאים:
-
ZONE_NAME: השם של אזור ההעברה שרוצים לעדכן -
PROJECT_ID: מזהה הפרויקט -
REGION_1ו-REGION_2: האזורים שבהם נפרסו נקודות הקצה -
ENDPOINT_NAME_1: השם של נקודת הקצה הראשונה שרוצים לשייך לאזור ההעברה -
ENDPOINT_NAME_2: השם של נקודת הקצה השנייה שרוצים לשייך לאזור ההעברה
API
מריצים את השיטה managedZones.patch:
PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/managedZones/ZONE_NAME
{
"name": "ZONE_NAME",
"dnsName": "DNS_NAME",
"description": "DESCRIPTION",
"visibility": "private",
"forwardingConfig": {
"outboundEndpoints": [
{
"name": "projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1"
},
{
"name": "projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2"
}
]
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
ZONE_NAME: השם של אזור ההעברה שרוצים לעדכן -
DNS_NAME: שם ה-DNS של אזור ההעברה -
DESCRIPTION: (אופציונלי) תיאור מעודכן של אזור ההעברה -
REGION_1ו-REGION_2: אזורים שבהם נקודות הקצה נפרסות (כל נקודות הקצה היוצאות שמופיעות ב-forwardingConfigחייבות להיות שייכות לאותה רשת VPC) -
ENDPOINT_NAME_1: השם של נקודת הקצה הראשונה שמשויכת לאזור ההעברה -
ENDPOINT_NAME_2: השם של נקודת הקצה השנייה שרוצים לשייך לאזור ההעברה
שיוך נקודות קצה למדיניות של שרת DNS
המסוף
נכנסים לדף Cloud DNS במסוף Google Cloud .
עוברים לכרטיסייה DNS server policies ולוחצים על Create Policy (או בוחרים מדיניות קיימת של שרת DNS ולוחצים על Edit).
קובעים את ההגדרות הבאות:
- בשדה שם המדיניות, מזינים שם ייחודי למדיניות השרת.
- (אופציונלי) בשדה Description, מזינים תיאור.
- בקטע העברת שאילתות לדואר נכנס, מציינים אם לקוחות חיצוניים ישאלו עומסי עבודה של VPC באמצעות נקודות קצה לדואר נכנס.
- בשביל DNS64, מפעילים או משביתים את סינתזת IPv6 לפי הצורך.
- בקטע Logs (יומנים), מפעילים או משביתים את הרישום ביומן של DNS לפי הצורך.
- בקטע VPC networks, בוחרים את רשתות ה-VPC שעליהן חלה מדיניות השרת.
בקטע Alternative DNS servers (שרתי DNS חלופיים), מזינים את כתובות ה-IPv4 של שרתי השמות החיצוניים או המקומיים.
בקטע נתיב העברה, בוחרים באפשרות נקודות קצה יוצאות.
בקטע Outbound Endpoints, בוחרים נקודת קצה אחת או יותר כדי לנתב את כל השאילתות שהן לא פרטיות ב-VPC:
- בחירה מינימלית: צריך לבחור לפחות נקודת קצה אחת ליציאה.
- הגבלה של VPC יחיד: כל נקודות הקצה שנבחרו צריכות להיות שייכות לאותה רשת VPC.
- שיטה מומלצת לזמינות גבוהה (HA): כדי להגדיר התאוששות מאסון (DR) בין אזורים ויתירות כשל אוטומטית, צריך להגדיר ולבחור לפחות שתי נקודות קצה באזורים שונים ברשת ה-VPC.
לוחצים על יצירה (או על שמירה אם מדובר במדיניות קיימת).
gcloud
משייכים את נקודות הקצה למדיניות של שרת ה-DNS באמצעות הפקודה gcloud beta dns policies update:
gcloud beta dns policies update POLICY_NAME \
--project=PROJECT_ID \
--outbound-endpoints=projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1,projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2
מחליפים את מה שכתוב בשדות הבאים:
POLICY_NAME: השם של מדיניות שרת ה-DNS שרוצים לעדכן-
PROJECT_ID: מזהה הפרויקט -
REGION_1ו-REGION_2: האזורים שבהם נקודות הקצה פרוסות -
ENDPOINT_NAME_1: השם של נקודת הקצה הראשונה שצריך לשייך למדיניות של שרת ה-DNS -
ENDPOINT_NAME_2: השם של נקודת הקצה השנייה שאותה רוצים לשייך למדיניות של שרת DNS
API
מריצים את השיטה policies.patch:
PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/policies/POLICY_NAME
{
"alternativeNameServerConfig": {
"outboundEndpoints": [
{"name": "projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1"},
{"name": "projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2"}
]
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט POLICY_NAME: השם של מדיניות שרת ה-DNS שרוצים לעדכן-
REGION_1ו-REGION_2: האזורים שבהם נפרסו נקודות הקצה -
ENDPOINT_NAME_1: השם של נקודת הקצה הראשונה שצריך לשייך למדיניות של שרת ה-DNS -
ENDPOINT_NAME_2: השם של נקודת הקצה השנייה שאותה רוצים לשייך למדיניות של שרת DNS
הצגת נקודות קצה יוצאות
כדי לראות רשימה של נקודות קצה של תעבורה יוצאת באזור מסוים או לתאר אותן:
המסוף
נכנסים לדף Cloud DNS במסוף Google Cloud .
בכרטיסייה Outbound endpoints אפשר לראות את כל נקודות הקצה היוצאות בפרויקט, את האזורים, הרשתות, רשתות המשנה, כתובות ה-IP והסטטוס שלהן.
gcloud
כדי להציג את כל נקודות הקצה לתעבורה יוצאת באזור מסוים, מריצים את הפקודה gcloud beta dns outbound-endpoints list:
gcloud beta dns outbound-endpoints list \
--project=PROJECT_ID \
--location=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נפרסה נקודת הקצה (endpoint)
כדי לראות את הפרטים של נקודת קצה ספציפית לתעבורה יוצאת, מריצים את הפקודה gcloud beta dns outbound-endpoints describe:
gcloud beta dns outbound-endpoints describe ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT_NAME: השם של נקודת הקצה היוצאת -
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נקודת הקצה נפרסת
API
כדי לראות רשימה של כל נקודות הקצה לתעבורה יוצאת באזור מסוים, שולחים בקשת GET:
GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נקודת הקצה נפרסת
כדי לראות פרטים של נקודת קצה יוצאת ספציפית, שולחים בקשת GET:
GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נקודת הקצה נפרסת -
ENDPOINT_NAME: השם של נקודת הקצה (endpoint) לתעבורה יוצאת
מחיקת נקודת קצה יוצאת
כדי למחוק נקודת קצה יוצאת, צריך לבטל את השיוך שלה לכל אזורי ההעברה או כללי המדיניות של שרת ה-DNS שמפנים אליה. מידע נוסף זמין במאמר ניהול משאבי רשת שמשויכים לנקודות קצה יוצאות.
אחרי שמבטלים את השיוך של נקודת הקצה לתעבורה יוצאת לכל אזורי ההעברה וכללי המדיניות של שרתי ה-DNS, פועלים לפי השלבים הבאים כדי למחוק את נקודת הקצה:
המסוף
נכנסים לדף Cloud DNS במסוף Google Cloud .
עוברים לכרטיסייה נקודות קצה יוצאות.
בוחרים את נקודת הקצה היוצאת שרוצים למחוק ולוחצים על Delete.
gcloud
מריצים את הפקודה gcloud beta dns outbound-endpoints delete:
gcloud beta dns outbound-endpoints delete ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
ENDPOINT_NAME: השם של נקודת הקצה היוצאת שרוצים למחוק -
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נקודת הקצה נפרסת
API
משתמשים בשיטה outboundEndpoints.delete:
DELETE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
REGION: האזור שבו נפרסה נקודת הקצה (endpoint) -
ENDPOINT_NAME: השם של נקודת הקצה היוצאת שרוצים למחוק
פתרון בעיות
במאמר פתרון בעיות מוסבר איך לאבחן ולפתור שגיאות שקשורות לנקודות קצה יוצאות.