لنتخيل تغيير عنوان خادم نطاق: يفتح الموقع الجديد في المنزل، بينما يتصل الهاتف بالخادم القديم. رغم إدخال الاسم نفسه في الجهازين، قد تختلف النتيجة مؤقتًا إذا مرّا بذاكرتين مؤقتتين مختلفتين لـDNS. فذاكرة HTTP التي تعيد استخدام الصفحة وذاكرة DNS التي تساعد على معرفة عنوان الاتصال تختلفان حتى في الشيء الذي ينبغي فحصه.
تتتبع هذه المقالة المضيف الافتراضي للمكتبة www.library.example لفهم علاقة تحليل الاسم بالتخزين المؤقت. الاسم والجدول الزمني أمثلة أُنشئت للشرح، وليسا قياسًا لاستجابات خدمة حقيقية. هدفنا فصل عملية حصول DNS على العنوان، وأسباب تأخر ظهور التغيير، والإخفاقات التي تقع بعد تحليل الاسم.
1. لدى DNS أنواع متعددة من الإجابات للاسم الواحد
يوفر DNS المعلومات المرتبطة باسم النطاق في سجلات مختلفة الأنواع. يشير A إلى عنوان IPv4، وAAAA إلى عنوان IPv6، وقد يقابل الاسم الواحد عدة عناوين. أما CNAME فهو اسم مستعار يشير إلى اسم آخر، وMX يحدد خادم استقبال البريد، وNS يحدد خادم الأسماء المرجعي للمنطقة المعنية. لذلك قد تختلف الإجابة عن الاسم نفسه باختلاف نوع السجل المطلوب.
كما يوضح شرح Cloudflare لسجلات DNS، قيمة CNAME اسم آخر وليست عنوان IP. وإذا احتجنا إلى عنوان فقد يستمر تحليل ذلك الاسم. كذلك فإن اسم المضيف الذي يعالجه DNS في https://www.library.example/books هو www.library.example. لا يُسجَّل المسار /books ولا محتوى الصفحة في DNS. وإعداد CNAME لا ينشئ تلقائيًا إعادة توجيه HTTP تغيّر شريط عنوان المتصفح.
2. كيف يصل المحلل التكراري إلى الخادم المرجعي
تطلب آلية تحليل الأسماء في الجهاز الإجابة عادة من المحلل التكراري المضبوط لديها. يستخدم المحلل المعلومات المطلوبة إن كانت مخزنة مؤقتًا، وإلا يستعلم من خوادم DNS أخرى ليعيد الإجابة النهائية أو الخطأ. يميز معيار مصطلحات DNS، RFC 9499 بين دور التحليل بالنيابة هذا وبين الخادم المرجعي الذي يملك معلومات المنطقة الواقعة ضمن مسؤوليته. ينبغي فهم مصدر الإجابة بحسب الدور الذي يؤديه الخادم عند الرد.
في مسار مبسط بلا ذاكرة مؤقتة ولا وسيط لإعادة الإرسال، تُرشد خوادم الجذر المحلل إلى خوادم نطاق المستوى الأعلى، ثم ترشده هذه إلى الخادم المرجعي للمنطقة المطلوبة. ومن الخادم المرجعي الأخير يحصل على السجل أو الاسم المستعار. لا يحتفظ خادم جذر واحد بعناوين IP لجميع المواقع. وقد يبدأ الواقع بمعلومات تفويض محفوظة أو بإحالة الطلب إلى محلل آخر، فلا يلزم تكرار التسلسل كله عند كل زيارة.
3. TTL وقت متبقٍّ في الذاكرة المؤقتة، لا ساعة عالمية
TTL السجل معلومة عن عمر التخزين المؤقت تُنقل بالثواني. في الإجابة المعتادة من الذاكرة المؤقتة يتناقص الوقت المتبقي أثناء حفظ النسخة. مثلًا، إذا حفظ المحلل عنوانًا عند 10:00 بقيمة TTL تبلغ 300 ثانية، فالمتبقي في إجابة النسخة نفسها عند 10:02 نحو 180 ثانية. يفترض الجدول الافتراضي التالي محللًا واحدًا لا يعيد الاستعلام ولا يجدد استباقيًا ولا يقدم إجابات متقادمة.
| الوقت الافتراضي | العنوان لدى الخادم المرجعي | تصرف هذا المحلل |
|---|---|---|
| 10:00 | العنوان القديم | يحفظ العنوان القديم بقيمة TTL قدرها 300 ثانية |
| 10:01 | تغير إلى العنوان الجديد | ما زال في عمر النسخة المحفوظة 240 ثانية |
| 10:03 | العنوان الجديد | يمكنه إعادة استخدام العنوان القديم خلال 120 ثانية متبقية |
| أول استعلام بعد 10:05 | العنوان الجديد | نفترض أنه يعيد الاستعلام ليحصل على العنوان الجديد بدل النسخة المنتهية |
ربما حفظ محلل آخر السجل في وقت لاحق، أو لم يره من قبل. لا يمكن لقيمة TTL واحدة تحديد لحظة يتغير فيها الجميع عالميًا في آن واحد، لأن مواعيد التجديد تختلف. وقد تتخلص الذاكرة المؤقتة من المعلومة قبل انقضاء عمرها؛ وتحديث صفحة الويب لا يمحو نسخة المحلل المشترك. TTL دليل لفهم إعادة استخدام إجابات DNS، وليس مهلة لكامل اتصال الويب أو تحديث الشاشة.
4. توقيت خفض TTL وتخزين إجابة «غير موجود»
الذاكرة التي حصلت سابقًا على العنوان القديم بقيمة TTL تبلغ 3,600 ثانية لا تعلم فورًا أن المشغّل خفضها الآن إلى 60 ثانية. عند التخطيط لتغيير العنوان، ينبغي تعديل TTL مسبقًا ومراعاة مدة بقاء الإجابات المحفوظة بالعمر الطويل السابق. قد تجعل القيمة المنخفضة فحص التغيير أكثر تكرارًا، لكنها تزيد أيضًا عبء الاستعلامات والاعتماد على الخادم المرجعي. بدل تطبيق رقم قصير واحد على كل خدمة، راجع خطة التغيير والتعامل مع الأعطال معًا.
يمكن تخزين NXDOMAIN، الذي يفيد بعدم وجود الاسم، وNODATA، حيث يوجد الاسم لكن لا يوجد سجل من النوع المطلوب. يحدد معيار التخزين السلبي RFC 2308 عمر الإجابة السلبية بالأصغر من TTL سجل SOA لدى الخادم المرجعي وقيمة MINIMUM في SOA. لذلك قد تبقى إجابة «غير موجود» القديمة بعد إضافة مضيف لم يكن موجودًا مباشرة. وإذا نظرت فقط إلى TTL سجل A الجديد وافترضت مساواة عمر الإجابة به فقد تفوتك العلة.
5. افحص مع تثبيت الاسم والنوع والخادم
دوّن في سجل الفحص الاسم الدقيق المطلوب، ونوعًا مثل A أو AAAA، وخادم DNS الذي سألته، والوقت. إذا كانت أداة dig مثبتة يمكنك تحديد الاسم والنوع مثل dig example.com A. وعند بحث مشكلة حقيقية استبدل example.com بالمضيف الذي تتحقق منه. الأمر مثال لإجراء عملي، وليس أمرًا نُفذ فعلًا أو قياسًا لزمن استجابة في هذه المقالة.
انظر إلى حالة الإجابة وإلى الاسم والنوع والقيمة وTTL في ANSWER معًا. عند تكرار السؤال نفسه للمحلل نفسه، افحص انخفاض TTL، لكن لا تعتبر زيادة القيمة خطأ فورًا. فقد وقع تجديد استباقي أو أجابت عقدة مختلفة من عدة عقد تخزين. ويساعد تسجيل A وAAAA كلٍّ على حدة، دون خلط النتيجتين، على معرفة عائلة العناوين التي يظهر فيها الفرق.
يمكن للمشغّل مقارنة إجابة المحلل التكراري المستخدم بإجابة الخادم المرجعي للمنطقة التي يديرها، للاسم والنوع نفسيهما. عند الاختلاف افحص تباعًا عمر التخزين المتبقي، واتساق بيانات الخوادم المرجعية، وإعدادات التفويض. لا تعمم إجابة محلل عام واحد على حالة جميع المستخدمين. وقد يغير DNS الداخلي في شبكة الشركة أو إعداد DNS منفصل للمتصفح مسار الاستعلام، لذا سجّل بيئة الاتصال أيضًا عند المقارنة.
6. افصل أخطاء DNS والاتصال والحالات الاستثنائية
NXDOMAIN إجابة بأن الاسم غير موجود، وNODATA حالة غياب نوع السجل المطلوب. أما SERVFAIL فهو إخفاق الخادم في معالجة الاستعلام، وانتهاء المهلة ملاحظة مفادها أن الإجابة لم تصل ضمن الانتظار المحدد. لا تفسرها جميعًا على أنها حذف للنطاق. يجب أولًا حفظ ما إذا وصل رمز استجابة، وأي خادم سُئل، لتحديد موضع الفحص التالي.
رؤية إجابة قديمة بعد انقضاء TTL ليست دائمًا مخالفة. يعرّف أسلوب serve-stale في RFC 8767 استخدام المعلومات المنتهية لتحسين التوافر في الحالات الاستثنائية التي يتعذر فيها التجديد من الخادم المرجعي. ولا يعني هذا أن جميع المحللات تستخدمه بالإعدادات نفسها. بدل الجزم بوقت سريان التغيير من TTL منفرد، افحص سلوك المحلل الذي استُخدم فعلًا.
وأخيرًا، لا يضمن نجاح الاستعلام عن العنوان نجاح فتح الموقع. فالشبكة المؤدية إلى العنوان، وشهادة TLS، وخادم الويب، والتطبيق مراحل مستقلة. إن أعاد DNS العنوان المتوقع ولم تفتح الصفحة، فانقل البحث إلى مرحلة الاتصال التالية. ويساعد تسجيل إجابة تحليل الاسم واستجابة الويب منفصلتين على تضييق موضع الإخفاق بدقة قبل حذف ذاكرة الصفحة أو تغيير إعدادات DNS عشوائيًا.