יצירה ועדכון של נקודות קצה יוצאות

בדף הזה מוסבר איך ליצור, לעדכן ולשייך נקודות קצה יוצאות לאזורי העברה ולכללי מדיניות של שרתי DNS, כדי לאפשר העברה ישירה של שאילתות DNS באמצעות כתובות IP פרטיות מרשת ה-VPC. כך אתם מקבלים שליטה מפורטת יותר על תנועה יוצאת. לסקירה כללית על נקודות קצה (endpoint) יוצאות

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

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

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

    • בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים?

    כניסה לדף לבחירת הפרויקט

  2. מוודאים שהחיוב מופעל בפרויקט ב- Google Cloud .

  3. מפעילים את ממשקי ה-API של Cloud DNS,‏ Compute Engine ו-Network Services, אם הם עדיין לא מופעלים.

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

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    הפעלת ממשקי ה-API

מוודאים שיש לכם רשת VPC עם קישוריות לשרתי שמות ה-DNS המקומיים או החיצוניים. בכל אזור שבו אתם מתכננים לפרוס נקודת קצה יוצאת, לרשת ה-VPC צריכה להיות תת-רשת רגילה ותת-רשת פעילה של שרת proxy בלבד (--purpose=REGIONAL_MANAGED_PROXY ו---role=ACTIVE בגודל מינימלי של /26 או 64 כתובות) באזור היעד. מידע נוסף זמין במאמר יצירה וניהול של רשתות VPC.

חשוב גם לוודא שברשת המקומית יש נתיב חזרה לטווח כתובות ה-IP של תת-הרשת האזורית של שרתי proxy בלבד, ולהגדיר כללים של חומת אש מקומית כדי לאפשר שאילתות DNS נכנסות (יציאות UDP ו-TCP‏ 53) מטווח כתובות ה-IP של תת-הרשת האזורית של שרתי proxy בלבד.

יצירת נקודת קצה יוצאת

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

המסוף

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

    כניסה ל-Cloud DNS

  2. עוברים לכרטיסייה נקודות קצה יוצאות ולוחצים על יצירת נקודת קצה יוצאת.

  3. בשדה Name, מזינים שם ייחודי לנקודת הקצה.

  4. (אופציונלי) בשדה Description, מזינים תיאור לנקודת הקצה.

  5. בשדה Region, בוחרים את אזור היעד.

  6. ברשימה Network, בוחרים את רשת ה-VPC.

  7. בשדה Subnet, בוחרים את רשת המשנה הרגילה באזור שנבחר.

  8. בשדה Endpoint IP address, מזינים מחרוזת חוקית של כתובת IPv4 מטווח רשת המשנה שנבחרה.

  9. בשדה Proxy-only subnet, המסוף מזהה באופן אוטומטי את רשת המשנה האזורית של שרתי ה-proxy בלבד ברשת ה-VPC ובאזור שנבחרו לתעבורת נתונים יוצאת של שאילתות. אם לא מזוהה רשת משנה מסוג proxy-only, לוחצים על Reserve subnet כדי ליצור אחת לפני שממשיכים.

  10. לוחצים על יצירה.

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/VPC_NETWORK_NAME או רק VPC_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)
  • ‫ENDPOINT_NAME: השם של נקודת הקצה (endpoint) לתעבורה יוצאת
  • ‫VPC_NETWORK: רשת ה-VPC שמשויכת לנקודת הקצה היוצאת
  • ‫REGULAR_SUBNET: רשת המשנה הרגילה שממנה מוקצית כתובת ה-IP הפנימית של נקודת הקצה להאזנה
  • ‫IP_ADDRESS: כתובת IPv4 פנימית זמינה מטווח ה-IP הראשי של רשת המשנה הרגילה
  • ‫DESCRIPTION: תיאור אופציונלי של נקודת הקצה

עדכון של נקודת קצה יוצאת

כדי לעדכן נקודת קצה יוצאת:

המסוף

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

    כניסה ל-Cloud DNS

  2. עוברים לכרטיסייה Outbound endpoints ולוחצים על השם של נקודת הקצה שרוצים לעדכן.

  3. לוחצים על 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: תיאור מעודכן של נקודת הקצה (endpoint) היוצאת

שיוך נקודות קצה לאזור העברה

המסוף

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

    כניסה ל-Cloud DNS

  2. עוברים לכרטיסייה Zones ולוחצים על Create zone, או בוחרים אזור העברה קיים ולוחצים על Edit.

  3. מגדירים את הפרמטרים של האזור:

    1. בשדה Zone type, בוחרים באפשרות Private.
    2. בשדה Zone name, מזינים מזהה ייחודי לאזור.
    3. בשדה DNS name, מזינים את סיומת האתר שרוצים להעביר. לדוגמה, corp.example.com.
    4. (אופציונלי) בשדה Description, מזינים תיאור.
    5. בקטע Options, בוחרים באפשרות Forward queries to another server.
    6. בקטע Networks, בוחרים את רשתות ה-VPC שמורשות לפתור שאילתות באזור הזה.
  4. בקטע Destination DNS servers, מזינים את כתובות ה-IPv4 או את ה-FQDN של שרתי השמות החיצוניים או המקומיים.

  5. בקטע נתיב העברה, בוחרים באפשרות נקודות קצה יוצאות.

  6. בקטע Outbound Endpoints, בוחרים נקודת קצה אחת או יותר לטיפול בהעברת שאילתות:

    • בחירה מינימלית: בוחרים לפחות נקודת קצה אחת של דואר יוצא (חובה כשבוחרים בנקודות קצה של דואר יוצא כנתיב ההעברה).
    • אילוץ של VPC יחיד: כל נקודות הקצה שנבחרו חייבות להיות שייכות לאותה רשת VPC.
    • שיטה מומלצת לזמינות גבוהה (HA): כדי להגדיר תוכנית התאוששות מאסון (DR) בין אזורים ויתירות כשל אוטומטית, מגדירים ובוחרים לפחות שתי נקודות קצה באזורים שונים ברשת ה-VPC הזו.
  7. לוחצים על יצירה (או על שמירה אם עורכים אזור קיים).

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": {
        "targetNameServers": [
              {
                 "ipv4Address": "TARGET_IP_ADDRESS"
              }
        ],
        "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: (אופציונלי) תיאור מעודכן של אזור ההעברה
  • ‫TARGET_IP_ADDRESS: כתובת ה-IPv4 (או domainName: TARGET_FQDN) של שרת השמות החיצוני או המקומי של DNS
  • ‫REGION_1 ו-REGION_2: האזורים שבהם נפרסו נקודות הקצה (כל נקודות הקצה היוצאות שמופיעות ב-forwardingConfig חייבות להיות שייכות לאותה רשת VPC)
  • ‫ENDPOINT_NAME_1: השם של נקודת הקצה הראשונה שרוצים לשייך לאזור ההעברה
  • ‫ENDPOINT_NAME_2: השם של נקודת הקצה השנייה שרוצים לשייך לאזור ההעברה

שיוך נקודות קצה למדיניות של שרת DNS

המסוף

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

    כניסה ל-Cloud DNS

  2. עוברים לכרטיסייה DNS server policies ולוחצים על Create Policy (או בוחרים מדיניות קיימת של שרת DNS ולוחצים על Edit).

  3. קובעים את ההגדרות הבאות:

    1. בשדה Policy name, מזינים שם ייחודי למדיניות השרת.
    2. (אופציונלי) בשדה Description, מזינים תיאור.
    3. בשדה Inbound query forwarding, מציינים אם לקוחות חיצוניים ישלחו שאילתות לעומסי עבודה ב-VPC באמצעות נקודות קצה נכנסות.
    4. בקטע DNS64, מפעילים או משביתים את סינתזת IPv6 לפי הצורך.
    5. בקטע Logs, מפעילים או משביתים את רישום ה-DNS ביומן לפי הצורך.
    6. בקטע VPC networks, בוחרים את רשתות ה-VPC שעליהן חלה מדיניות השרת.
  4. בקטע Alternative DNS servers, מזינים את כתובות ה-IPv4 של שרתי השמות החיצוניים או המקומיים.

  5. בקטע נתיב העברה, בוחרים באפשרות נקודות קצה יוצאות.

  6. בקטע Outbound Endpoints, בוחרים נקודת קצה אחת או יותר כדי לנתב את כל השאילתות שהן לא פרטיות ב-VPC:

    • בחירה מינימלית: צריך לבחור לפחות נקודת קצה אחת לתקשורת יוצאת.
    • אילוץ של VPC יחיד: כל נקודות הקצה שנבחרו חייבות להיות שייכות לאותה רשת VPC.
    • שיטה מומלצת לזמינות גבוהה (HA): כדי להגדיר תוכנית התאוששות מאסון (DR) בין אזורים ויתירות כשל אוטומטית, מגדירים ובוחרים לפחות שתי נקודות קצה באזורים שונים ברשת ה-VPC הזו.
  7. לוחצים על יצירה (או על שמירה אם זו מדיניות קיימת).

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": {
        "targetNameServers": [
            {"ipv4Address": "TARGET_IP_ADDRESS"}
        ],
        "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 שרוצים לעדכן
  • ‫TARGET_IP_ADDRESS: כתובת ה-IPv4 של שרת השמות החלופי החיצוני או המקומי
  • ‫REGION_1 ו-REGION_2: האזורים שבהם נפרסו נקודות הקצה
  • ‫ENDPOINT_NAME_1: השם של נקודת הקצה הראשונה שצריך לשייך למדיניות של שרת ה-DNS
  • ‫ENDPOINT_NAME_2: השם של נקודת הקצה השנייה שצריך לשייך למדיניות של שרת ה-DNS

הצגת נקודות קצה יוצאות

כדי להציג רשימה של נקודות קצה יוצאות באזור מסוים או לתאר אותן:

המסוף

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

    כניסה ל-Cloud DNS

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

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: האזור שבו נפרסה נקודת הקצה (endpoint)

API

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

GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints

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

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫REGION: האזור שבו נפרסה נקודת הקצה (endpoint)

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

GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME

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

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫REGION: האזור שבו נפרסה נקודת הקצה (endpoint)
  • ‫ENDPOINT_NAME: השם של נקודת הקצה (endpoint) לתעבורה יוצאת

מחיקת נקודת קצה יוצאת

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

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

המסוף

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

    כניסה ל-Cloud DNS

  2. עוברים לכרטיסייה נקודות קצה יוצאות.

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

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: האזור שבו נפרסה נקודת הקצה (endpoint)

API

משתמשים ב-method‏ outboundEndpoints.delete:

DELETE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME

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

  • ‫PROJECT_ID: מזהה הפרויקט
  • ‫REGION: האזור שבו נפרסה נקודת הקצה (endpoint)
  • ‫ENDPOINT_NAME: השם של נקודת הקצה היוצאת שרוצים למחוק

פתרון בעיות

במאמר פתרון בעיות מוסבר איך לאבחן ולפתור שגיאות שקשורות לנקודות קצה יוצאות.

המאמרים הבאים