הודעות שגיאה

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

שגיאות כלליות

בקטע הזה מתוארות שגיאות כלליות.

alreadyExists

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

פעולה מומלצת: כשיוצרים משאב, כדאי להשתמש ב-get/list API המתאים כדי לגלות אילו משאבים כבר קיימים.

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

accessNotConfigured

הגישה לא הוגדרה

כדי לפתור את השגיאה הזו, צריך להפעיל את Cloud DNS API בפרויקט.

inactiveBillingState

אי אפשר לקבל בקשות בפרויקט example_project כשהחיוב לא פעיל. יכולות לחלוף כמה דקות עד שהסטטוס של החיוב יתעדכן.

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

preconditionFailed

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

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

הודעת השגיאה כוללת את הנתיב לחלק הבעייתי בבקשה. לדוגמה, entity.change.deletions[6] מתייחס לרכיב השביעי במערך deletions של אובייקט השינוי בגוף בקשת ה-POST.

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

required

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

הפעולה המומלצת: צריך למלא את הפרמטר הנדרש ולנסות שוב.

notFound

המשאב שצוין לא קיים.

פעולה מומלצת: מוודאים שמשתמשים בשם של משאב קיים.

quotaExceeded

השגיאה הזו מוצגת כששינוי שעומד להתבצע יגרום לחריגה מהמכסה הנוכחית. המכסה משויכת לפרויקט. לדוגמה, מותר לכם להשתמש רק במספר מסוים של קבוצות רשומות של משאבים בכל אזור. אם אתם צריכים להגדיל את המכסה, אתם יכולים לפנות לצוות המכירות שלכם. Google Cloud לפרויקטים חדשים יש מכסה שמוגדרת כברירת מחדל, כמו שמפורט במאמר מכסות ומגבלות של משאבים ב-Cloud DNS. לכל המאפיינים השונים שמוגבלים על ידי DNS, אפשר לעיין בפעולה Projects.get.

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

שגיאות שקשורות לאזורים מנוהלים

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

invalidFieldValue

ערך לא תקין לentity.managedZone.name.

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

managedZoneDnsNameNotAvailable

האזור המנוהל שצוין לא זמין, ולכן אי אפשר ליצור אותו.

הפעולה ליצירת אזור מנוהל עלולה להיכשל עם השגיאה הזו מהסיבות הבאות:

  • שם ה-DNS של האזור המוצע שמור, לדוגמה, נקודה (.), .com או .co.uk.
  • אין יותר שרתי שמות זמינים לאירוח שם ה-DNS של האזור. ‫Cloud DNS משתמש במאגר של שרתי שמות, והמאגר הזה סופי. שאילתת DNS לכל שרת שמות צריכה להיות ממופה באופן חד-משמעי לאזור מנוהל אחד. פרטים נוספים זמינים במאמר בנושא מגבלות של שרתי שמות.

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

verifyManagedZoneDnsNameOwnership

צריך לאמת את הבעלות על הדומיין example.com (או על דומיין הורה) ואז לנסות שוב.

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

שגיאות שקשורות לרשומות מנוהלות

השגיאות בקטע הזה קשורות לרשומות.

containerNotEmpty

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

הפעולה המומלצת: אם רוצים למחוק את המשאב, צריך לרוקן אותו קודם.

invalidZoneApex

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

Apex בהקשר של DNS מייצג את שם ה-DNS עם המספר הקטן ביותר של תוויות שמותרות באזור. היא גם נמצאת בראש היררכיית האזורים. הקודקוד של אזור הוא שם ה-DNS ששווה ל-ManagedZone.dnsName.

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

  • ניסית למחוק את קבוצת רשומות המשאבים NS הנדרשת בנקודת השיא.
  • ניסית למחוק את קבוצת רשומות המשאבים SOA הנדרשת בנקודת השיא.
  • ניסית ליצור קבוצת רשומות משאבים מסוג SOA not בנקודת השיא.

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

invalidRecordCount

מותר להגדיר רק רשומה אחת לקבוצת רשומות המשאבים entity.change.additions[XX] כי הסוג שלה הוא <SOA_OR_CNAME>.

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

  {
    kind: "dns#rrset"
    name: "blog.example.com.",
    type: "CNAME",
    rrdata: [ "www.example.com.", "www2.example.com." ],
    ...
  }

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

cnameResourceRecordSetConflict

הקבוצה של רשומות המשאבים entity.change.additions[XX] לא תקינה כי לשם ה-DNS‏ example.com יכולה להיות קבוצה אחת של רשומות משאבים מסוג CNAME או קבוצות של רשומות משאבים מסוגים אחרים, אבל לא שניהם.

השגיאה הזו מתרחשת כשיוצרים שני סוגים של קבוצות רשומות משאבים, כמו רשומת A ורשומת CNAME לאותו שם DNS. סיבה נפוצה לשגיאה הזו היא ניסיון ליצור רשומת CNAME בנקודת השיא של האזור. אי אפשר לעשות את זה כי זה יתנגש עם הרשומות הנדרשות SOA ו-NS באותו שם.

הפעולה המומלצת: צריך לבחור אחת מהאפשרויות.

wildcardNotAllowed

הסוג של קבוצת רשומות המשאבים שצוינה לא מתאים להיות תבנית wildcard.

ב-DNS, ‏ תו כללי לחיפוש הוא סוג מיוחד של קבוצת רשומות משאבים שתואמת לבקשות לשמות דומיין שלא קיימים. מגבלה אחת של Cloud DNS היא שאי אפשר ליצור קבוצה של רשומות משאבים עם התו הכללי לחיפוש מסוג NS.

הפעולה המומלצת: בשלב הזה אין תמיכה בערכות של רשומות משאבים עם תו כללי לחיפוש NS. אפשר לפנות אל התמיכה של Cloud DNS או להצטרף אל cloud-dns-discuss ולשתף את המטרה שלכם.

recordTypeDisallowedAtZoneApex

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

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

הפעולה המומלצת: שימוש ברשומת משאבים מסוג ALIAS. רשומת משאב ALIAS היא סוג רשומת DNS בהתאמה אישית ב-Cloud DNS, שפועלת כמו רשומת משאב CNAME אבל אפשר להשתמש בה רק בנקודת השיא של האזור, והיא מגיבה רק לשאילתות של רשומת כתובת (A או AAAA). מידע נוסף זמין במאמר רשומות ALIAS.

invalidValue

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

  • ציינתם קבוצה של רשומות משאבים עם שם לא תקין. לדוגמה, cymbal...group הוא לא שם DNS תקין (תווית אמצעית ריקה).
  • ציינתם קבוצה של רשומות משאבים עם סוג לא תקין. לדוגמה, A ו-CNAME הם סוגים תקינים, אבל group הוא לא סוג תקין.
  • ציינתם קבוצה של רשומות משאבים בלי רשומות.
  • ציינתם נתונים של רשומת משאב לא תקינה. לדוגמה, 1.1.1.1 הם נתונים תקינים של רשומת משאב מסוג A. הנתונים X.X.X.X ברשומת המשאבים לא חוקיים עבור סוג A.
  • ציינתם קבוצת רשומות משאבים עם TTL לא תקין. ה-TTL חייב להיות מספר שלם לא שלילי.
  • ציינתם שם משאב ארוך מדי.

הפעולה המומלצת: צריך לתקן את הבקשה.

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

הגישה עם הרשאות ניהול מותרת רק מ-ThreatDetectorAdmin

כדי להפעיל את התכונה 'זיהוי איומים ב-DNS', צריך להיות לכם תפקיד Threat Detector Admin.

הפעולה המומלצת: צריך להקצות לכם את התפקיד roles/networksecurity.dnsThreatDetectorAdmin.

FAILED_PRECONDITION

כבר קיים גלאי איומי DNS תחת ההורה שצוין.

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

gcloud

gcloud network-security dns-threat-detectors describe --location=global  RESOURCE_REPORTED_IN_ERROR_MESSAGE

מחליפים את RESOURCE_REPORTED_IN_ERROR_MESSAGE בגלאי האיומים האחר של DNS שכבר קיים תחת ההורה שצוין בהודעת השגיאה.

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

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