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

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

טעינת דף אינה שאילתה

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

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

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

ספרו את המטמונים לפני שתסיקו

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

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

תעדו את האירוע, לא את הרושם

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

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

בצעו את ההשוואה פעמיים באותה דרך

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

resolvectl flush-caches
ipconfig /flushdns
dig +noall +answer internal.example @10.44.0.53
dig +short internal.example

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

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

מאמרים קשורים