فتح صفحة بعد ثوانٍ من ظهور النفق ليس دليلاً على أن DNS يعمل الآن، رغم أن التذكرة تقول ذلك عادةً. لا شيء في تلك الملاحظة اقتضى إجراء استعلام: ربما حُلَّ الاسم قبل التغيير وأُعيد استخدامه من ذاكرة تخزين لم يمسّها النفق. اختباران مختلفان ينتجان الشاشة نفسها.

قارن ما مارسه كل اختبار فعلياً قبل أن تنسب الفضل إلى التغيير.

تحميل الصفحة ليس استعلاماً

يُسمح لكل طبقة بين التطبيق والمحلّل بتذكّر إجابة طوال عمرها. يحتفظ نظام التشغيل بواحدة، ويحتفظ المتصفح بواحدة خاصة به، وقد لا يحلّ تطبيق ذو اتصال طويل الأمد أي شيء مرة أخرى خلال الجلسة. لذلك قد يكون التحميل الناجح بعد تغيير النفق إظهاراً للذاكرة لا للتوجيه. غياب الفشل ليس حضور استعلام.

هذا التمييز يغيّر ما ينبغي أن تختبره بعد ذلك. إذا كان الهدف إثبات أن المحلّل الجديد يجيب، فأنت بحاجة إلى استعلام لا يمكن تقديمه من ذاكرة لم تمسحها.

قراءة نجاح مخزّن كدليل على أن خادماً كان غير قابل للوصول قد تعافى هي أغلى نسخة من هذا الخطأ، لأنها تغلق الحادثة على فرضية خاطئة.

عُدّ ذاكرات التخزين قبل أن تستنتج

أربع ذاكرات تستحق التسمية: حلّ التطبيق نفسه، وذاكرة عميل نظام التشغيل، والحالة الداخلية للمتصفح، وأي محلّل عودي يصل إليه الاستعلام في النهاية. لكل منها عمر منفصل وطريقة منفصلة في المسح. مسح واحدة واختبار أخرى هو كيف يستنتج الناس أن المسح لم يفعل شيئاً. أمر مسح واحد لا يحسم المسألة أبداً.

تُخزَّن الإجابات السلبية أيضاً. قد يبقى اسم أُبلغ عنه كمفقود مفقوداً بعد تصحيح الشبكة، ما يُقرأ كنفق معطوب بينما هو TTL لم ينتهِ. تصف مواصفة DNS كيف يُفترض الاحتفاظ بهذه البيانات وإعادة استخدامها.

سجّل الحدث، لا الانطباع

اكتب أيّ الأمور الثلاثة تغيّر: السجل، أو المسار إلى المحلّل، أو إعداد العميل. ينتشر تعديل السجل وفق جدوله الخاص، ويسري تغيير المسار عند إعادة الاتصال، وينطبق إعداد المتصفح على ذلك المتصفح وحده. دمجها في «قبل وبعد» واحد ينتج خطاً زمنياً لا يستطيع أحد تدقيقه.

دوّن الوقت والمحلّل المستخدم والإجابة المستلمة، بما في ذلك حالة كون الإجابة سلبية. تلك حقيقة يستطيع شخص آخر التحقق منها.

نفّذ المقارنة بالطريقة نفسها مرتين

امسح الذاكرة التي تنوي اختبارها، واحتفظ بالملاحظة الأصلية، ثم استعلم بطريقة تتجاوز أكبر قدر ممكن من الذاكرة. تسمية المحلّل صراحةً تخبرك بما يعرفه ذلك المحلّل؛ ولا تخبرك أي محلّل كان التطبيق سيختار.

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

على Windows، يمسح مسح ذاكرة العميل ذاكرة عميل DNS ولا شيء غيرها. لا يصف حالة المتصفح الخاصة ولا يمسح خادماً أعلى، لذا لا يمكن تفسير اختبار مبني عليه إلا تفسيراً ضيقاً. قل أي ذاكرة مسحت كلما أبلغت عن النتيجة.

ثم أعد اختبار التطبيق الفعلي بطلب جديد وسياسة المحلّل المقصودة مفعّلة. النتيجة المنتجة في ظل سياسة مختلفة لا تنتقل.

مقالات ذات صلة