การเปิดหน้าเว็บไม่กี่วินาทีหลังอุโมงค์ขึ้นไม่ใช่หลักฐานว่า DNS ทำงานแล้ว แม้ตั๋วจะมักบอกเช่นนั้น ไม่มีอะไรในการสังเกตนั้นที่ต้องมีการค้นหา ชื่ออาจถูกแก้ก่อนการเปลี่ยนแปลงและนำกลับมาใช้จากแคชที่อุโมงค์ไม่เคยแตะ การทดสอบสองแบบให้หน้าจอเดียวกัน

เปรียบเทียบว่าการทดสอบแต่ละครั้งได้ฝึกอะไรจริง ๆ ก่อนจะให้เครดิตกับการเปลี่ยนแปลง

การโหลดหน้าไม่ใช่การค้นหา

ทุกชั้นระหว่างแอปพลิเคชันและตัวแก้ไขได้รับอนุญาตให้จำคำตอบไว้ตลอดอายุ ระบบปฏิบัติการเก็บหนึ่ง เบราว์เซอร์เก็บของตัวเอง และแอปที่มีการเชื่อมต่ออายุยาวอาจไม่แก้สิ่งใดอีกเลยในเซสชัน ดังนั้นการโหลดที่สำเร็จหลังเปลี่ยนอุโมงค์อาจเป็นการสาธิตความจำ ไม่ใช่การกำหนดเส้นทาง การไม่มีข้อล้มเหลวไม่ใช่การมีการค้นหา

ความแตกต่างนี้เปลี่ยนสิ่งที่คุณควรทดสอบต่อไป หากเป้าหมายคือแสดงว่าตัวแก้ไขใหม่ตอบได้ คุณต้องมีคำค้นหาที่ให้บริการจากแคชที่คุณยังไม่ได้ล้างไม่ได้

การอ่านความสำเร็จที่แคชไว้เป็นหลักฐานว่าเซิร์ฟเวอร์ที่เคยเข้าถึงไม่ได้ฟื้นตัวแล้วเป็นรูปแบบที่แพงที่สุดของความผิดพลาดนี้ เพราะมันปิดเหตุการณ์บนสมมติฐานที่ผิด

นับแคชก่อนสรุป

สี่อย่างที่ควรเอ่ยถึง การแก้ของแอปพลิเคชันเอง แคชไคลเอนต์ของระบบปฏิบัติการ สถานะภายในของเบราว์เซอร์ และตัวแก้ไขแบบเรียกซ้ำใดก็ตามที่คำค้นหาไปถึงในที่สุด แต่ละอย่างมีอายุและวิธีล้างแยกกัน การล้างหนึ่งแล้วทดสอบอีกอันคือวิธีที่ผู้คนสรุปว่าการล้างไม่ได้ทำอะไร คำสั่งล้างเพียงคำสั่งเดียวไม่เคยตัดสินคำถาม

คำตอบเชิงลบก็ถูกแคชเช่นกัน ชื่อที่ถูกรายงานว่าหายไปอาจยังหายไปหลังแก้เครือข่ายแล้ว ซึ่งอ่านว่าเป็นอุโมงค์ที่เสียทั้งที่เป็น TTL ที่ยังไม่หมดอายุ ข้อกำหนด DNS อธิบายว่าข้อมูลนี้ควรถูกเก็บและนำกลับมาใช้อย่างไร

บันทึกเหตุการณ์ ไม่ใช่ความรู้สึก

เขียนว่าสิ่งใดในสามอย่างเปลี่ยนไป: ระเบียน เส้นทางไปยังตัวแก้ไข หรือการตั้งค่าไคลเอนต์ การแก้ระเบียนแพร่กระจายตามกำหนดของตัวเอง การเปลี่ยนเส้นทางมีผลเมื่อเชื่อมต่อใหม่ และการตั้งค่าเบราว์เซอร์ใช้กับเบราว์เซอร์นั้นเท่านั้น การรวมเป็นก่อนและหลังเพียงครั้งเดียวสร้างไทม์ไลน์ที่ไม่มีใครตรวจสอบได้

บันทึกเวลา ตัวแก้ไขที่ใช้ และคำตอบที่ได้รับ รวมถึงกรณีที่คำตอบเป็นเชิงลบ นั่นคือข้อเท็จจริงที่คนอื่นตรวจสอบได้

ทำการเปรียบเทียบสองครั้งด้วยวิธีเดียวกัน

ล้างแคชที่คุณตั้งใจจะทดสอบ เก็บการสังเกตเดิมไว้ แล้วค้นหาด้วยวิธีที่เลี่ยงความจำให้มากที่สุด การระบุชื่อตัวแก้ไขอย่างชัดเจนบอกคุณว่าตัวแก้ไขนั้นรู้อะไร แต่ไม่ได้บอกคุณว่าแอปจะเลือกตัวแก้ไขใด

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

บน Windows การล้างแคชไคลเอนต์จะล้างแคชไคลเอนต์ DNS และไม่มีอย่างอื่น มันไม่ได้อธิบายสถานะส่วนตัวของเบราว์เซอร์และไม่ได้ล้างเซิร์ฟเวอร์ต้นทาง ดังนั้นการทดสอบที่สร้างบนมันจึงตีความได้แคบ ๆ เท่านั้น บอกว่าคุณล้างแคชใดทุกครั้งที่รายงานผล

จากนั้นทดสอบแอปจริงอีกครั้งด้วยคำขอใหม่และนโยบายตัวแก้ไขที่ตั้งใจไว้ทำงานอยู่ ผลลัพธ์ที่สร้างภายใต้นโยบายอื่นไม่ถ่ายโอน

บทความที่เกี่ยวข้อง