דוח DNS של VPN: מה לכלול כדי שיהיה ניתן לשחזור
דוח DNS שימושי מציין את קטגוריית הכשל, את נתיב הפותר ואת התגובה המדויקת. הסתירו את מרחב השמות ושמרו על הקשרים שמסבירים אותו.
«ה-DNS שבור» הוא מסקנה, והיא אינה מסקנה שמישהו יכול לפעול לפיה. החלק השימושי בדוח הוא צורת הכשל: איזה שם, דרך איזה פותר, עם איזו תגובה. שלושה פרטים הופכים תלונה למשהו שניתן לשחזר, ושלושתם בטוחים לשיתוף לאחר שהחלקים הפרטיים שונו. להלן המינימום שדוח DNS של VPN צריך לפני שמישהו יכול לעזור.
קטגוריה של שם, לא פסק דין
התחילו מהשם עצמו וסווגו אותו: ציבורי, פנימי, קצר, מלא, או כזה שמוגש על ידי סיומת מסוימת אחת. שם פנימי שנכשל בזמן ששמות ציבוריים נפתרים מצביע על בחירת הפותר ולא על נגישות. אם כל השמות נכשלים, הדבר מצביע על הנתיב אל הפותר, וזו חקירה אחרת עם ראיות אחרות. הקטגוריה נושאת את האבחנה, ואת המחרוזת המדויקת אפשר להסתיר.
אמרו אם הכשל דורש שהמנהרה תהיה פעילה, או מתרחש לאחר שהיא מתנתקת. שם שנשבר רק כשהמנהרה פעילה מרמז על התצורה לכל קישור, ואילו כזה שנשבר לאחר התנתקות מרמז על מצב שנשאר. דוחות בדרך כלל משמיטים זאת ואז תוהים מדוע ההצעה הראשונה לא עוזרת.
תעדו את נתיב הפותר
שאילתה שנשלחת לשרת שנבחר במפורש וחיפוש רגיל של יישום הם ניסויים שונים. אמרו איזה מהם יצר את הכשל, כי שאילתה ידנית לשרת שעובד מוכיחה רק שהשרת עובד. הפקודות שלהלן מפרידות בין נתיב המערכת לבין שאלה ישירה.
resolvectl status --no-pager
getent hosts host.internal
dig +short host.internal @10.20.30.53
פלט המצב מציין את השרתים לכל קישור ואת דומיינים הניתוב, כלומר היכן שנקבע split DNS. הקריאה ל-getent עוברת באותו נתיב שהיישום עובר, כולל סדר nsswitch. השאילתה הישירה עוקפת את שניהם ובודקת שרת אחד בבידוד. דווחו איזה משלושת אלה נכשל ואיזה הצליח, והקורא כבר לא צריך לנחש את הנתיב.
ציינו את ההשוואה המבוקרת
שנו משתנה אחד ואמרו מה השתנה. שמות ציבוריים שנפתרים בזמן שפנימיים נכשלים הם בעיית בחירה; כל שם שמגיע לפקיעת זמן הוא בעיית נתיב; ושם פרטי שנפתר לכתובת ציבורית הוא דליפה לפותר הלא נכון. לשניים מהשלושה אין שום קשר לשאלה אם המנהרה פעילה. דוח שטוען שכל השאילתות שבורות מכיל בדרך כלל השוואה שמעולם לא בוצעה.
הפרידו בין הפענוח לאספקה. כשהשם נפתר והאתר עדיין נכשל, שלב ה-DNS הצליח והדוח צריך לומר זאת, כי הצעד הבא הוא נתיב או מאזין ולא פותר. ההבחנה האחת הזו חוסכת סבב שאלות לעתים קרובות יותר מכל קטע לוג.
הסתירו את מרחב השמות, שמרו על הקשרים
אפשר להחליף שמות פנימיים, כל עוד ההחלפות משמרות את המבנה. מפו כל שרת וסיומת נפרדים לתווית יציבה, והשאירו את המיפוי הזה מחוץ לעותק המשותף. החלפת כל מארח פנימי באותו מציין מקום הורסת בדיוק את הראיה שהדוח צריך, כי הקורא כבר לא יכול לראות שסיומת אחת נפתרה ואחרת לא. אותו כלל חל על כתובות: שמרו על יחסי הקידומת ושנו את סיביות המארח אם המדיניות דורשת זאת.
שלחו את הרשומה בערוץ המאומת והשאירו בחוץ את מה שהאבחנה לא צריכה לעולם. סיסמאות, מפתחות פרטיים ושמות חברות לא קשורות אינם חלק משאלת DNS. מה שהקורא צריך הוא קטגוריית הכשל, נתיב הפותר, השגיאה המדויקת וההשוואה האחת שהרצתם.