שימוש ברישום ביומן ובמעקב

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

שימוש ברישום ביומן של Cloud DNS

רישום ביומן של Cloud DNS עוקב אחרי שאילתות ששרתי שמות פותרים עבור רשתות הענן הווירטואלי הפרטי (VPC), וגם אחרי שאילתות מישות חיצונית ישירות לאזור ציבורי.

שאילתות שנרשמות ביומן יכולות להגיע ממופעים של מכונות וירטואליות (VM) של Compute Engine, מקונטיינרים של Google Kubernetes Engine באותה רשת VPC, מאזורי קישור בין רשתות שכנות (peering) או מלקוחות מקומיים שמשתמשים בהעברת DNS נכנס. יכול להיות שבסופו של דבר שאילתות יקבלו מענה מתחומי DNS פרטיים, מתחומי DNS להעברה, משרתי שמות חלופיים, מתחומי DNS פנימיים או מתחומי DNS חיצוניים.Google Cloud

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

הפעלה והשבתה של רישום ביומן לתחומים מנוהלים פרטיים

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

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

gcloud

gcloud dns policies create POLICY_NAME \
    --networks=NETWORK \
    --enable-logging \
    --description=DESCRIPTION

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

  • POLICY_NAME: השם של מדיניות ה-DNS
  • NETWORK: רשימה מופרדת בפסיקים של רשת אחת או יותר
  • DESCRIPTION: תיאור של המדיניות

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

gcloud

gcloud dns policies update POLICY_NAME \
    --networks=NETWORK \
    --enable-logging

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

  • POLICY_NAME: השם של מדיניות ה-DNS
  • NETWORK: רשימה מופרדת בפסיקים של רשת אחת או יותר

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

gcloud

gcloud dns policies update POLICY_NAME \
    --networks=NETWORK \
    --no-enable-logging

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

  • POLICY_NAME: השם של מדיניות ה-DNS
  • NETWORK: רשימה מופרדת בפסיקים של רשת אחת או יותר

כדי למחוק את המדיניות לגמרי, מריצים את הפקודה dns policies delete.

gcloud

gcloud dns policies delete POLICY_NAME \

מחליפים את POLICY_NAME בשם של מדיניות ה-DNS שרוצים למחוק.

הפעלה והשבתה של רישום ביומן לאזורים ציבוריים מנוהלים

כדי להפעיל את הרישום ביומן עבור אזור ציבורי מנוהל קיים, מריצים את הפקודה dns managed-zones update.

gcloud

gcloud dns managed-zones update ZONE_NAME --log-dns-queries \

מחליפים את ZONE_NAME בשם של תחום ה-DNS המנוהל שרוצים להפעיל עבורו את הרישום ביומן.

כדי להשבית את הרישום ביומן של אזור מנוהל ציבורי קיים, מריצים את הפקודה dns managed-zones update.

gcloud

gcloud dns managed-zones update ZONE_NAME --no-log-dns-queries \

מחליפים את ZONE_NAME בשם של אזור DNS מנוהל שרוצים להשבית את הרישום שלו ביומן.

צפייה ביומנים

אפשר לראות את היומנים במסוף Google Cloud .

המסוף

נכנסים לדף Logs Explorer במסוף Google Cloud .

כניסה לדף Logs Explorer

הצגת שדות של פורמט רשומה

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

שדה סוג השדה תיאור בשימוש במדדים
alias_query_response_code String קוד התגובה שמוחזר מהשאילתה כדי לפתור את השם הקנוני של רשומת ה-ALIAS כן
authAnswer בוליאני / DNS תשובה סמכותית, פרמטרים של DNS ב-IANA: דגלים בכותרת של DNS לא
destinationIP מחרוזת / יעד כתובת ה-IP של היעד, רלוונטי רק למקרים של העברה לא
egressError String

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

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

לא
healthyIps String

קבוצת כתובות ה-IP ב-ResourceRecordSet שידועות כ-HEALTHY ל-Cloud DNS בזמן השאילתה

לא
location String Google Cloud region, for example us-east1, from which the response was served כן
project_id String מזהה הפרויקטGoogle Cloud של הרשת שממנה התקבלה השאילתה כן
protocol מחרוזת / DNS TCP | UDP לא
queryName מחרוזת / DNS שם שאילתת DNS, ‏ RFC 1035 4.1.2 לא
queryType מחרוזת / DNS סוג שאילתת DNS, פרמטרים של DNS של IANA: סוגים של רשומות משאבים (RR) לא
responseCode מספר / DNS קוד תגובה, פרמטרים של DNS‏ IANA: קודי DNS RCODE לא
rdata מחרוזת / DNS תשובת DNS בפורמט הצגה, פרמטרים של DNS של IANA: סוגים של רשומות משאבים (RR), קטועה ל-260 בייט לא
sourceIP מחרוזת / מקור כתובת ה-IP שממנה נשלחה השאילתה לא
sourceNetwork מחרוזת / מקור הרשת שממנה השאילתה הגיעה למערכת שלנו לא
source_type String מקור השאילתה: inbound-forwarding, gce-vm, internet, peering-zone, fqdn-forwarding-target לא
target_name String שם היעד, לדוגמה שם אזור, שם מדיניות, שם אזור פנימי, שם דומיין חיצוני כן
target_type String סוג היעד שפותר את שאילתת ה-DNS: ‏ private-zone, ‏ forwarding-zone,‏ forwarding-policy, ‏ peering-zone, ‏ internal, ‏ external,‏ response-policy, ‏ service-directory-zone, ‏ reverse-lookup-zone,‏ zonal-private-zone כן
unHealthyIps String

קבוצת כתובות ה-IP ב-ResourceRecordSet שידועות כ-UNHEALTHY ל-Cloud DNS בזמן השאילתה

לא
vmInstanceId מספר / מקור מזהה מכונת VM ב-Compute Engine, רלוונטי רק לשאילתות שהופעלו על ידי מכונות VM ב-Compute Engine לא
vmInstanceName מחרוזת / מקור שם מכונת VM של Compute Engine, רלוונטי רק לשאילתות שהופעלו על ידי מכונות VM של Compute Engine לא
vmProjectId מחרוזת / מקור Google Cloud מזהה הפרויקט של הרשת שממנה נשלחה השאילתה, רלוונטי רק לשאילתות שמופעלות על ידי מכונות וירטואליות ב-Compute Engine לא
vmZoneName מחרוזת / מקור השם של אזור המכונה הווירטואלית שממנו נשלחה השאילתה. רלוונטי רק לשאילתות שהופעלו על ידי מכונות וירטואליות של Compute Engine לא

תמחור

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

לצורך חישוב, Cloud DNS כותב כ-5MB של נתוני יומן לעיבוד של 10,000 שאילתות DNS.

למידע על התמחור של Cloud Logging, ראו תמחור של Google Cloud Observability: ‏Cloud Logging.

פתרון בעיות בהעברה של הודעות יוצאות

אם אתם מקבלים יומנים שמכילים SERVFAIL וחסרים בהם שדות מסוימים כמו destinationIP, ‏egressIP ו-egressError, כדאי לעיין בקטע שקשור לכך במסמכי פתרון הבעיות.

מעקב אחרי מדדים

‫Cloud DNS מייצא מדדי מעקב ל-Cloud Monitoring.

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

‫שרת DNS פרטי מייצא את dns.googleapis.com/query/response_count מדד הדלתא שכולל את התווית response_code כדי לספור את מספר השאילתות לכל קוד תגובה.

התווית response_code היא מסוג string והערכים האפשריים שלה הם NOERROR,‏ FORMERR,‏ SERVFAIL,‏ NXDOMAIN,‏ NOTIMP ו-UNKNOWN. ההגדרות של הקודים האלה מפורטות במאמר בנושא קודי R של DNS ב-IANA.

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

מדדים של זיהוי איומים ב-DNS

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

יש שני סוגים של מדדים:

  • networksecurity.googleapis.com/dnsthreatdetector/sent_dns_log_count: יומני שאילתות DNS שנשלחים לספק לבדיקה.
  • networksecurity.googleapis.com/dnsthreatdetector/received_dns_threat_count: מספר יומני האיומים שזוהו. המדד הזה כולל את חומרת האיום ואת סוג האיום.

מעקב אחרי הפצת DNS

כשמשתמשים ב-Google Cloud CLI או ב-API בארכיטקטורת REST כדי לבצע שינויים, השינויים מסומנים בהתחלה כשינויים בהמתנה עד שהפעולה מסתיימת. אפשר להשתמש ב-CLI של gcloud או ב-API בארכיטקטורת REST כדי לבדוק את סטטוס השינויים או לקבל היסטוריה של שינויים.

פעולה מסתיימת (סטטוס: done) כש-Cloud DNS מעדכן בהצלחה את המערכת ששולטת בשרתים. יכול להיות שעדיין יהיו עיכובים עד שכל שרתי השמות יתעדכנו.

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

כדי לכלול ברשימה את השינויים באזור מנוהל, מריצים את הפקודה dns record-sets changes list.

gcloud

gcloud dns record-sets changes list --zone=ZONE

מחליפים את ZONE בשם של האזור המנוהל שרוצים לנהל את קבוצות הרשומות שלו.

אימות של הפצת DNS

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

כדי לחפש את שרתי השמות של האזור, מריצים את הפקודה dns managed-zones describe:

gcloud

gcloud dns managed-zones describe ZONE_NAME

מחליפים את ZONE_NAME בשם האזור של Cloud DNS.

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

gcloud

watch dig example.com in MX @ZONE_NAME_SERVER

מחליפים את ZONE_NAME_SERVER באחד משרתי השמות מהאזור המנוהל.

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

כדי להריץ את הפקודה dig מול שרת השמות של המערכת, אפשר להסיר את dig מהפקודה dig.@<address> אם רוצים לעקוב אחרי ההפצה לשרתי שמות אחרים, אפשר לשנות את address כך שיצביע על שרתי שמות אחרים.

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