הגדרת מדיניות ניתוב של DNS ובדיקות תקינות

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

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

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

  • מדיניות ניתוב DNS תומכת במספר כתובות IP לכל מיקום גיאוגרפי במדיניות הניתוב לפי מיקום גיאוגרפי. כשמציינים כמה כתובות IP למיקום גיאוגרפי, Cloud DNS מחזיר את כל כתובות ה-IP שצוינו למיקום הזה. אי אפשר לשלב מדיניות ניתוב לפי מיקום גיאוגרפי עם מדיניות WRR מותאמת אישית עם משקלים.

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

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

  • לפני שמגדירים מדיניות ניתוב DNS לאזורים ציבוריים, צריך להשבית את constraints/compute.disableInternetNetworkEndpointGroupהאילוץ של מדיניות הארגון. מידע נוסף זמין במאמר בנושא אילוצים של מדיניות הארגון.

  • חשוב לוודא שיש לכם את ההרשאות הנדרשות כדי להגדיר מדיניות ניתוב DNS.

יצירת כללי מדיניות לניתוב DNS עבור תחומים פרטיים

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

  1. יצירת אזור פרטי
  2. מגדירים אחד ממאזני העומסים הפנימיים הבאים:
  3. יוצרים כללי העברה למאזן העומסים הפנימי.
  4. מגדירים בדיקות תקינות למאזן העומסים הפנימי.

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

המסוף

התחלת ההגדרה

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

    מעבר לאזורים ב-Cloud DNS

  2. לוחצים על השם של האזור המנוהל שרוצים להוסיף אליו את הרשומה.

  3. בדף פרטי האזור, לוחצים על הוספה עם מדיניות ניתוב.

נתוני בסיס

  1. אופציונלי: בדף Create record set with routing policy, בשדה DNS name, מזינים תת-דומיין של שם ה-DNS. לדוגמה, mail. הנקודה בסוף מתווספת אוטומטית.

  2. בוחרים אפשרות בשדה Resource record type.

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

  4. אופציונלי: בשדה יחידת TTL, בוחרים את יחידת הזמן – לדוגמה, minutes. ערך ברירת המחדל הוא minutes.

  5. לוחצים על הבא.

סוג מדיניות תכנון המסלול

  1. בקטע Routing policy (מדיניות ניתוב), בוחרים באפשרות Weighted round robin (סדר סיבובי משוקלל), Geolocation (מיקום גאוגרפי) או Failover (יתירות כשל).
  2. לוחצים על הבא.

נתונים של מדיניות תכנון מסלול

WRR

  1. בקטע משקל, מזינים את המשקל שמתאים לקטע המשנה הזה בנתוני רשומת המשאב (RR).

    המשקל הזה חייב להיות מספר לא שלילי בין 0.0 ל-1000.0. היחס בין נפח התנועה שמופנה ליעד מחושב על סמך היחס בין המשקל האישי לבין המשקל הכולל של כל המשקלים. לדוגמה, אם ליעד א' יש משקל של 25 וליעד ב' יש משקל של 75, והמשקל הכולל הוא 100, מערכת Cloud DNS תנתב 25/100 = 0.25 (25%) מהתנועה הכוללת ליעד א', ו-75/100= 0.75 (75%) ליעד ב'.

  2. בקטע IPv4 health checked targets:

    1. בקטע Project (פרויקט), בוחרים את הפרויקט שבו קיים כלל ההעברה.
    2. בקטע כלל העברה, בוחרים כלל העברה.

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

  3. לוחצים על סיום.

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

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

    1. בוחרים באפשרות Allow IPv4 addresses without health checking (אישור כתובות IPv4 ללא בדיקת תקינות).
    2. בקטע IPv4 Address, מזינים כתובת IPv4.
  6. אופציונלי: כדי להוסיף עוד נתונים של ניתוב מדיניות WRR, לוחצים על הוספת נתוני ניתוב.

  7. לוחצים על הבא.

מיקום גיאוגרפי

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

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

  2. בשדה אזור מקור, בוחרים אזור מקור תקין Cloud de Confiance.

  3. בקטע IPv4 health checked targets:

    1. בקטע Project (פרויקט), בוחרים את הפרויקט שבו קיים כלל ההעברה.
    2. בקטע כלל העברה, בוחרים כלל העברה.

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

  4. לוחצים על סיום.

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

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

    1. בוחרים באפשרות Allow IPv4 addresses without health checking (אישור כתובות IPv4 ללא בדיקת תקינות).
    2. בקטע IPv4 Address, מזינים כתובת IPv4.
  7. אופציונלי: כדי להוסיף עוד נתוני ניתוב של מדיניות מיקום גיאוגרפי, לוחצים על הוספת נתוני ניתוב.

  8. לוחצים על הבא.

מעבר לגיבוי (Failover)

  1. בקטע Primary health checked targets:

    1. בקטע Project (פרויקט), בוחרים את הפרויקט שבו קיים כלל ההעברה.
    2. בקטע כלל העברה, בוחרים כלל העברה.

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

  2. בקטע Backup geolocation policy:

    1. בקטע גידור גיאוגרפי, בוחרים באפשרות מושבת או מופעל. הפעלת גידור גיאוגרפי מגבילה את התנועה למיקום גיאוגרפי ספציפי גם אם כל נקודות הקצה במיקום הגיאוגרפי הזה לא תקינות.
    2. בשדה אזור מקור, בוחרים אזור מקור תקין Cloud de Confiance.
    3. בקטע IPv4 health checked targets:

      1. בקטע Project (פרויקט), בוחרים את הפרויקט שבו קיים כלל ההעברה.
      2. בקטע כלל העברה, בוחרים כלל העברה.

        כלל ההעברה מציין אחת מהאפשרויות הבאות:

        • כתובת IP פנימית, יציאה ושירות לקצה העורפי אזורי
        • שרת proxy ל-HTTP(S)
        • שרת proxy ל-TCP

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

  3. לוחצים על סיום.

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

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

    1. בוחרים באפשרות Allow IPv4 addresses without health checking (אישור כתובות IPv4 ללא בדיקת תקינות).
    2. בקטע IPv4 Address, מזינים כתובת IPv4.
  6. אופציונלי: כדי להוסיף עוד נתוני ניתוב של מדיניות גיבוי למיקום גיאוגרפי, לוחצים על הוספת נתוני ניתוב.

  7. בשדה פיזור תעבורת הנתונים (%), מזינים את אחוז תעבורת הנתונים שנשלחת ליעדי הגיבוי, ללא קשר לסטטוס בדיקת התקינות של היעדים העיקריים.

  8. לוחצים על הבא.

בדיקה ויצירה

  1. לוחצים על בדיקה.
  2. בודקים את קבוצת רשומות ה-DNS ב-Cloud DNS עם הגדרת מדיניות הניתוב.
  3. לוחצים על יצירה.

gcloud

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

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

מריצים את הפקודה gcloud dns record-sets create:

WRR

gcloud dns record-sets create RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=WRR \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-health-checking

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

  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, כמו service.example.com.
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30.
  • RRSET_TYPE: סוג רשומת המשאב של ResourceRecordSet, למשל A. רשימה של סוגי הרשומות הנתמכים זמינה במאמר סוגי רשומות נתמכים למדיניות ניתוב DNS.
  • MANAGED_ZONE: האזור המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet הזה צריך להסתיים בסיומת של שם ה-DNS של האזור המנוהל.
  • ROUTING_POLICY_DATA: מזינים רשימה של ערכים מופרדים באמצעות נקודה-פסיק בפורמט ${weight_percent}:${rrdatas}, למשל .8=203.0.113.1;.2=198.51.100.1. מציינים את המשקל כמספר עשרוני לא שלילי. יחס תנועת הגולשים שמופנית ליעד מחושב על סמך היחס בין המשקל האישי לבין המשקל הכולל של כל המשקלים. שמות של כללי העברה הם ערכים קבילים ומובילים לבדיקת תקינות.
  • --enable-health-checking: הדגל להפעלת בדיקת התקינות. כשמשתמשים בדגל הזה, צריך לציין את שם כלל ההעברה במקום את כתובת ה-IP בשדה --routing-policy-data.

מיקום גיאוגרפי

gcloud dns record-sets create RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=GEO \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-health-checking

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

  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, כמו service.example.com.
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30.
  • RRSET_TYPE: סוג רשומת המשאב של ResourceRecordSet, למשל A. רשימה של סוגי הרשומות הנתמכים זמינה במאמר סוגי רשומות נתמכים למדיניות ניתוב DNS.
  • MANAGED_ZONE: האזור המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet הזה צריך להסתיים בסיומת של שם ה-DNS של האזור המנוהל.
  • ROUTING_POLICY_DATA: מזינים רשימה של ערכים מופרדים באמצעות נקודה-פסיק בפורמט ${region}=${IP_address}, למשל asia-east1=198.51.100.1;us-central1=203.0.113.1. כדי לציין כמה כתובות IP לאזור אחד, מוסיפים את כתובות ה-IP מופרדות בפסיק. שמות של כללי העברה הם ערכים קבילים ומובילים לבדיקת תקינות.
  • --enable-health-checking: הדגל להפעלת בדיקת התקינות. כשמשתמשים בדגל הזה, צריך לציין את שם כלל ההעברה במקום את כתובת ה-IP בשדה --routing-policy-data.

מיקום גיאוגרפי עם גבול וירטואלי

gcloud dns record-sets create RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=GEO \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-geo-fencing \
  --enable-health-checking

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

  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, כמו service.example.com.
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30.
  • RRSET_TYPE: סוג רשומת המשאב של ResourceRecordSet, למשל A. רשימה של סוגי הרשומות הנתמכים זמינה במאמר סוגי רשומות נתמכים למדיניות ניתוב DNS.
  • MANAGED_ZONE: האזור המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet הזה צריך להסתיים בסיומת של שם ה-DNS של האזור המנוהל.
  • ROUTING_POLICY_DATA: מזינים רשימה של ערכים מופרדים באמצעות נקודה-פסיק בפורמט ${region}=${IP_address}, למשל asia-east1=198.51.100.1;us-central1=203.0.113.1. כדי לציין כמה כתובות IP לאזור אחד, מוסיפים את כתובות ה-IP מופרדות בפסיק. שמות של כללי העברה הם ערכים קבילים ומובילים לבדיקת תקינות.
  • --enable-geo-fencing: במדיניות ניתוב של GEO, ההגדרה הזו קובעת אם התנועה תעבור אוטומטית לאזורים אחרים אם כל נקודות הקצה באזור מסוים לא תקינות. כשמגדירים את האפשרות הזו, Cloud DNS תמיד מפנה שאילתות לאזור הקרוב ביותר, גם אם כל נקודות הקצה באזור הזה לא תקינות. כדי להשבית את הגידור הגיאוגרפי, משתמשים ב---no-enable-geo-fencing. אם לא מגדירים את האפשרות הזו, Cloud DNS מפנה שאילתות לאזור הקרוב הבא אם כל נקודות הקצה באזור מסוים לא תקינות. ברירת המחדל היא false.
  • --enable-health-checking: הדגל להפעלת בדיקת התקינות. כשמשתמשים בדגל הזה, צריך לציין את שם כלל ההעברה במקום את כתובת ה-IP בשדה --routing-policy-data.

מעבר לגיבוי (Failover)

gcloud dns record-sets create RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=FAILOVER  \
  --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \
  --routing-policy-backup-data-type=ROUTING_POLICY_BACKUP_DATA_TYPE \
  --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \
  --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \
  --enable-geo-fencing \
  --enable-health-checking

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

  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, כמו service.example.com.
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30.
  • RRSET_TYPE: סוג רשומת המשאב של ResourceRecordSet, למשל A. רשימה של סוגי הרשומות הנתמכים זמינה במאמר סוגי רשומות נתמכים למדיניות ניתוב DNS.
  • MANAGED_ZONE: האזור המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet הזה צריך להסתיים בסיומת של שם ה-DNS של האזור המנוהל.
  • ROUTING_POLICY_PRIMARY_DATA: היעד הראשי לשימוש במדיניות הניתוב של FAILOVER. היעד הזה צריך להיות הפניה לכלל העברה אחד או יותר, כמו forwarding-rule-1. כל עוד לפחות אחד מכללי ההעברה האלה תקין, כתובות ה-IP של כל כללי ההעברה התקינים משמשות למענה על שאילתות לגבי השם הזה.
  • ROUTING_POLICY_BACKUP_DATA_TYPE: במדיניות ניתוב של FAILOVER, סוג מדיניות הניתוב שנתוני הגיבוי משתמשים בה. הערך חייב להיות GEO.
  • ROUTING_POLICY_BACKUP_DATA: יעד הגיבוי שבו יש להשתמש עבור מדיניות הניתוב FAILOVER. יעדי ההעברה האלה משמשים כשהמצב של כל כללי ההעברה שצוינו ב---routing-policy-primary-data הוא לא תקין. ‫Cloud DNS תומך רק ביעדי גיבוי שמבוססים על מיקום גיאוגרפי. הפורמט של השדה הזה זהה לפורמט של --routing-policy-data כש--routing-policy-type = 'GEO', למשל asia-east1=forwarding-rule-2.
  • BACKUP_DATA_TRICKLE_RATIO: היחס של התנועה שתישלח ליעדי הגיבוי, גם כשהיעדים הראשיים תקינים. היחס צריך להיות בין 0 ל-1, למשל 0.1. ערך ברירת המחדל הוא 0.
  • --enable-geo-fencing: במדיניות ניתוב של GEO, ההגדרה הזו קובעת אם התנועה תעבור אוטומטית לאזורים אחרים אם כל נקודות הקצה באזור מסוים לא תקינות. כשמגדירים את האפשרות הזו, Cloud DNS תמיד מפנה שאילתות לאזור הקרוב ביותר, גם אם כל נקודות הקצה באזור הזה לא תקינות. כדי להשבית את הגידור הגיאוגרפי, משתמשים ב---no-enable-geo-fencing. אם לא מגדירים את האפשרות הזו, Cloud DNS מפנה שאילתות לאזור הקרוב הבא אם כל נקודות הקצה באזור מסוים לא תקינות. ברירת המחדל היא false.
  • --enable-health-checking: הדגל להפעלת בדיקת התקינות. כשמשתמשים בדגל הזה, צריך לציין את שם כלל ההעברה במקום את כתובת ה-IP בשדה --routing-policy-data.

API

משתמשים בשיטה resourceRecordSets.create.

WRR

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "wrr": {
      "items": [
        {
          "weight": WEIGHT,
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        },
        {
          "weight": WEIGHT,
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        }
      ]
    }
  }
}

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

  • PROJECT_ID: מזהה הפרויקט
  • MANAGED_ZONE: התחום המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet חייב להסתיים בסיומת של שם ה-DNS של התחום המנוהל
  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, למשל service.example.com
  • RRSET_TYPE: סוג רשומת המשאבים של ResourceRecordSet, למשל A
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30
  • WEIGHT: למדיניות WRR, רשימה מופרדת באמצעות נקודה-פסיק בפורמט ${weight_percent}=${rrdatas}, כמו .8=10.128.1.1;.2=10.130.1.1. מציינים את המשקל כמספר עשרוני לא שלילי. הערה: חובה לציין את המשקל כמספר לא שלילי. יחס תנועת הגולשים שמופנית ליעד מחושב על סמך היחס בין המשקל האישי לבין המשקל הכולל של כל המשקלים.
  • LOAD_BALANCER_TYPE: סוג מאזן העומסים, למשל regionalL4ilb,‏ globalL7ilb או regionalL7ilb. ההגדרה הזו היא אופציונלית.
  • IP_ADDRESS: כתובת ה-IP שהכלל להעברת תעבורה משרת
  • PORT_NUMBER: זהו מספר היציאה
  • IP_PROTOCOL: מגדיר את הפרוטוקול שמשמש לבדיקת תקינות. האפשרויות התקינות הן tcp ו-udp.
  • NETWORK_URL: כתובת ה-URL ברשת שאליה חל כלל ההעברה הזה
  • REGION: האזור שבו יצרתם את כלל ההעברה

מיקום גיאוגרפי

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "geo": {
      "items": [
        {
          "location": "LOCATION",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        },
        {
          "location": "LOCATION",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        }
      ]
    }
  }
}

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

  • PROJECT_ID: מזהה הפרויקט
  • MANAGED_ZONE: התחום המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet חייב להסתיים בסיומת של שם ה-DNS של התחום המנוהל
  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, למשל service.example.com
  • RRSET_TYPE: סוג רשומת המשאבים של ResourceRecordSet, למשל A
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30
  • LOCATION: במדיניות GEO, המיקום הגיאוגרפי שעבורו צריך ליצור את המדיניות, למשל asia-east1
  • LOAD_BALANCER_TYPE: סוג מאזן העומסים, למשל regionalL4ilb,‏ globalL7ilb או regionalL7ilb. ההגדרה הזו היא אופציונלית.
  • IP_ADDRESS: כתובת ה-IP שהכלל להעברת תעבורה משרת
  • PORT_NUMBER: מספר היציאה של מאזן העומסים הפנימי
  • IP_PROTOCOL: מגדיר את הפרוטוקול שמשמש לבדיקת תקינות. האפשרויות התקינות הן tcp ו-udp.
  • NETWORK_URL: כתובת ה-URL ברשת שאליה חל כלל ההעברה הזה
  • REGION: האזור שבו יצרתם את כלל ההעברה

מעבר לגיבוי (Failover)

באפשרות המעבר לגיבוי, Cloud DNS תומך רק במדיניות GEO.

POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "primaryBackup": {
      "trickleTraffic": TRICKLE_TRAFFIC,
      "primaryTargets": {
        "internalLoadBalancers": [
          {
            "ipAddress": "IP_ADDRESS"
            "ipProtocol": "IP_PROTOCOL"
            "loadBalancerType": "LOAD_BALANCER_TYPE"
            "networkUrl": "NETWORK_URL"
            "port": "PORT_NUMBER"
            "project": "PROJECT_ID"
            "region": "REGION"
          }
        ]
      },
      "backupGeoTargets": {
        "enableFencing": ENABLE_FENCING,
        "items": [
          {
            "location": "LOCATION",
            "rrdatas": [
              "RRDATA"
            ]
          },
          {
            "location": "LOCATION",
            "rrdatas": [
              "RRDATA"
            ]
          }
        ]
      }
    }
  }
}

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

  • PROJECT_ID: מזהה הפרויקט
  • MANAGED_ZONE: התחום המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet חייב להסתיים בסיומת של שם ה-DNS של התחום המנוהל
  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, למשל service.example.com
  • RRSET_TYPE: סוג רשומת המשאבים של ResourceRecordSet, למשל A
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30
  • TRICKLE_TRAFFIC: היחס של התנועה לשליחה ליעדי הגיבוי גם כשהיעדים הראשיים תקינים. היחס חייב להיות בין 0 ל-1, למשל 0.1
  • IP_ADDRESS: כתובת ה-IP שהכלל להעברת תעבורה משרת
  • PORT_NUMBER: זהו מספר היציאה
  • IP_PROTOCOL: מגדיר את הפרוטוקול שמשמש לבדיקת תקינות. האפשרויות התקינות הן tcp ו-udp.
  • NETWORK_URL: כתובת ה-URL ברשת שאליה חל כלל ההעברה הזה
  • PORT_NUMBER: מספר היציאה של מאזן העומסים הפנימי
  • REGION: האזור שבו יצרתם את כלל ההעברה
  • ENABLE_FENCING: במדיניות הניתוב של GEO, ההגדרה הזו קובעת אם התנועה תעבור אוטומטית לאזור אחר אם כל נקודות הקצה באזור מסוים לא תקינות. כשההגדרה הזו מופעלת, Cloud DNS תמיד מפנה שאילתות לאזור הקרוב ביותר, גם אם כל נקודות הקצה באזור הזה לא תקינות. אם לא מגדירים את ההגדרה הזו, Cloud DNS מפנה שאילתות לאזור הקרוב הבא אם כל נקודות הקצה באזור מסוים לא תקינות. ברירת המחדל היא false.
  • LOCATION: במדיניות GEO, המיקום הגיאוגרפי שעבורו צריך ליצור את המדיניות, למשל asia-east1
  • WEIGHT: למדיניות WRR, רשימה מופרדת באמצעות נקודה-פסיק בפורמט ${weight_percent}=${rrdatas}, כמו .8=10.128.1.1;.2=10.130.1.1. צריך לציין את המשקל כמספר עשרוני לא שלילי.
  • RRDATA: ערך שרירותי שמשויך לקבוצת רשומות של המשאב, כמו 198.51.100.5. אפשר גם להזין כמה ערכים, כמו rrdata1 rrdata2 rrdata3, למשל 198.51.100.1 203.0.113.1...

עדכון מדיניות ניתוב DNS

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

המסוף

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

    מעבר לאזורים ב-Cloud DNS

  2. לוחצים על האזור שרוצים לעדכן את מדיניות הניתוב של קבוצת רשומות המשאבים שלו.

  3. בדף Zone details (פרטי האזור), לצד קבוצת רשומות המשאבים שרוצים לעדכן, לוחצים על Edit (עריכה).

  4. אחרי שמסיימים לעדכן, לוחצים על שמירה.

gcloud

מריצים את הפקודה gcloud dns record-sets update:

WRR

gcloud dns record-sets update RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=WRR \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-health-checking

מיקום גיאוגרפי

gcloud dns record-sets update RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=GEO \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-health-checking

מיקום גיאוגרפי עם גבול וירטואלי

gcloud dns record-sets update RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=GEO \
  --routing-policy-data=ROUTING_POLICY_DATA \
  --enable-geo-fencing
  --enable-health-checking

מעבר לגיבוי (Failover)

gcloud dns record-sets update RRSET_NAME \
  --ttl=TTL \
  --type=RRSET_TYPE \
  --zone=MANAGED_ZONE \
  --routing-policy-type=FAILOVER \
  --enable-geo-fencing \
  --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \
  --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \
  --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \
  --enable-health-checking

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

  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, למשל service.example.com
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30
  • RRSET_TYPE: סוג רשומת המשאבים של ResourceRecordSet, למשל A

    רשימה של סוגי הרשומות הנתמכים זמינה במאמר בחירת סוגים של רשומות משאבים.

  • MANAGED_ZONE: האזור המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet הזה צריך לכלול את שם ה-DNS של האזור המנוהל כסיומת

  • ROUTING_POLICY_TYPE: סוג מדיניות הניתוב.

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

  • ROUTING_POLICY_DATA: נתוני מדיניות הניתוב

    • בעמודה --routing-policy-type=WRR, מזינים רשימה של ערכים מופרדים באמצעות נקודה-פסיק בפורמט ${weight_percent}:${rrdatas}, למשל .8=203.0.113.1;.2=198.51.100.1. מציינים את המשקל כמספר עשרוני לא שלילי. יחס תנועת הגולשים שמופנית ליעד מחושב על סמך היחס בין המשקל האישי לבין המשקל הכולל של כל המשקלים. שמות של כללי העברה הם ערכים קבילים ומובילים לבדיקת תקינות.
    • בעמודה --routing-policy-type=GEO, מזינים רשימה של ערכים מופרדים באמצעות נקודה-פסיק בפורמט ${region}=${IP_address}, למשל asia-east1=198.51.100.1;us-central1=203.0.113.1. כדי לציין כמה כתובות IP לאזור אחד, מוסיפים את כתובות ה-IP מופרדות בפסיק. שמות של כללי העברה הם ערכים קבילים ומובילים לבדיקת תקינות.
    • בשדה --routing-policy-type=FAILOVER, מזינים את השם של כלל ההעברה שיצרתם בפורמט ${region}=${Forwarding rule name}.

  • --enable-geo-fencing: במדיניות ניתוב של GEO, ההגדרה הזו קובעת אם התנועה תעבור אוטומטית לאזורים אחרים אם כל נקודות הקצה באזור מסוים לא תקינות. כשמגדירים את האפשרות הזו, Cloud DNS תמיד מפנה שאילתות לאזור הקרוב ביותר, גם אם כל נקודות הקצה באזור הזה לא תקינות. כדי להשבית את הגידור הגיאוגרפי, משתמשים ב---no-enable-geo-fencing. אם לא מגדירים את הערך הזה, כל נקודות הקצה באזור לא תקינות, ו-Cloud DNS מפנה את השאילתות לאזור הקרוב הבא. הגדרת ברירת המחדל היא false.

  • ROUTING_POLICY_PRIMARY_DATA: היעד הראשי לשימוש במדיניות הניתוב של FAILOVER. היעד הזה צריך להיות הפניה לאחד או יותר כללי העברה, כמו forwarding-rule-1. כל עוד לפחות אחד מכללי ההעברה האלה תקין, כתובות ה-IP של כל כללי ההעברה התקינים משמשות למענה על שאילתות לגבי השם הזה.

  • ROUTING_POLICY_BACKUP_DATA: יעד הגיבוי שבו יש להשתמש עבור מדיניות הניתוב FAILOVER. יעדי ההעברה האלה משמשים כשהמצב של כל כללי ההעברה שצוינו ב---routing-policy-primary-data הוא לא תקין. ‫Cloud DNS תומך רק ביעדי גיבוי שמבוססים על מיקום גיאוגרפי. הפורמט של השדה הזה זהה לפורמט של --routing-policy-data כש--routing-policy-type = 'GEO', למשל asia-east1=forwarding-rule-2.

  • BACKUP_DATA_TRICKLE_RATIO: היחס בין התנועה שצריך לשלוח ליעדי הגיבוי גם כשהיעדים הראשיים תקינים. היחס צריך להיות בין 0 ל-1, למשל 0.1. ערך ברירת המחדל הוא 0.

  • --enable-health-checking: הפעלה של בדיקת תקינות של כללי העברה שמוגדרים כ-rrdata ל---routing-policy-data.

API

משתמשים בשיטה resourceRecordSets.patch. צריך לציין רק אחד מהמאפיינים rrset.rrdatas או rrset.routingPolicy. אם מציינים את routingPolicy, צריך לציין את השדה החדש routingPolicy במלואו.

WRR

למדיניות WRR, משתמשים בשיטה הבאה:

PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "wrr": {
      "items": [
        {
          "weight": WEIGHT,
          "rrdatas": ["RRDATA"]
        },
        {
          "weight": WEIGHT,
          "rrdatas": ["RRDATA"]
        }
      ]
    }
  }
}

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

  • PROJECT_ID: מזהה הפרויקט
  • MANAGED_ZONE: התחום המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet חייב להסתיים בסיומת של שם ה-DNS של התחום המנוהל
  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, למשל service.example.com
  • RRSET_TYPE: סוג רשומת המשאבים של ResourceRecordSet, למשל A
  • WEIGHT: למדיניות WRR, רשימה מופרדת באמצעות נקודה-פסיק בפורמט ${weight_percent}=${rrdatas}, כמו .8=10.128.1.1;.2=10.130.1.1. צריך לציין את המשקל כמספר עשרוני לא שלילי.
  • RRDATA: ערך שרירותי שמשויך לקבוצת רשומות של המשאב, כמו 198.51.100.5. אפשר גם להזין כמה ערכים, כמו rrdata1 rrdata2 rrdata3, למשל 198.51.100.1 203.0.113.1...

מיקום גיאוגרפי

משתמשים בשיטה הבאה:

PATCH https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
{
  "name": "RRSET_NAME",
  "type": "RRSET_TYPE",
  "ttl": TTL,
  "routingPolicy": {
    "geo": {
      "items": [
        {
          "location": "LOCATION",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        },
        {
          "location": "LOCATION",
          "healthCheckedTargets": {
            "internalLoadBalancers": [
              {
                "loadBalancerType": "LOAD_BALANCER_TYPE"
                "ipAddress": "IP_ADDRESS"
                "port": "PORT_NUMBER"
                "ipProtocol": "IP_PROTOCOL"
                "networkUrl": "NETWORK_URL"
                "project": "PROJECT_ID"
                "region": "REGION"
              }
            ]
          }
        }
      ]
    }
  }
}

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

  • PROJECT_ID: מזהה הפרויקט
  • MANAGED_ZONE: התחום המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet חייב להסתיים בסיומת של שם ה-DNS של התחום המנוהל
  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, למשל service.example.com
  • RRSET_TYPE: סוג רשומת המשאבים של ResourceRecordSet, למשל A
  • TTL: ה-TTL, בשניות, שבו מפענח ה-DNS שומר במטמון את ResourceRecordSet, למשל 30
  • LOCATION: במדיניות GEO, המיקום הגיאוגרפי שצריך לעדכן את המדיניות לגביו, למשל asia-east1
  • LOAD_BALANCER_TYPE: סוג מאזן העומסים, למשל regionalL4ilb,‏ globalL7ilb או regionalL7ilb. ההגדרה הזו היא אופציונלית.
  • IP_ADDRESS: כתובת ה-IP שהכלל להעברת תעבורה משרת
  • PORT_NUMBER: זהו מספר היציאה
  • IP_PROTOCOL: מגדיר את הפרוטוקול שמשמש לבדיקת תקינות. האפשרויות התקינות הן tcp ו-udp.
  • NETWORK_URL: כתובת ה-URL ברשת שאליה חל כלל ההעברה הזה
  • REGION: האזור שבו יצרתם את כלל ההעברה

מחיקת כללי מדיניות לניתוב DNS

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

המסוף

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

    מעבר לאזורים ב-Cloud DNS

  2. לוחצים על האזור שבו רוצים למחוק את קבוצת רשומות המשאבים.

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

  4. לוחצים על מחיקת סט הרשומות.

gcloud

מריצים את הפקודה gcloud dns record-sets delete:

gcloud dns record-sets delete RRSET_NAME \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \

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

  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, למשל service.example.com
  • RRSET_TYPE: סוג רשומת המשאבים של ResourceRecordSet, למשל A

    רשימה של סוגי הרשומות הנתמכים זמינה במאמר בחירת סוגים של רשומות משאבים.

  • MANAGED_ZONE: התחום המנוהל שאליו משויך ResourceRecordSet, למשל service-zone. השם של ResourceRecordSet חייב להסתיים בסיומת של שם ה-DNS של התחום המנוהל

API

משתמשים בשיטה resourceRecordSets.delete:

DELETE https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE

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

  • PROJECT_ID: מזהה הפרויקט
  • MANAGED_ZONE: התחום המנוהל שאליו משויך ResourceRecordSet, למשל my-zone-name. השם של ResourceRecordSet חייב להסתיים בסיומת של שם ה-DNS של התחום המנוהל
  • RRSET_NAME: שם ה-DNS שתואם לשאילתות הנכנסות עם שם ה-DNS של האזור הזה כסיומת, למשל test.example.com
  • RRSET_TYPE: סוג רשומת המשאבים של ResourceRecordSet, למשל A

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