الخلاصة

  • تعيد ZONEVERSION مع الإجابة نفسها معرّف نسخة المنطقة التي ولّدتها، فتتجنب الفاصل الزمني الناتج عن سؤال SOA منفصل لاحقاً.
  • يخص المعرف إجابة واحدة شوهدت من موقع محدد؛ فهو ليس بصمة لمحتوى المنطقة، ولا شهادة اتساق للأسطول، ولا تغطيه RRSIG من دون حماية إضافية للمعاملة.

لا يبدأ المثال برسالة خطأ. يرسل مهندسان السؤال نفسه إلى عنوان anycast واحد من موقعين مختلفين، ويحصل كلاهما على NOERROR. غير أن الإجابة الأولى تحمل العنوان الجديد والثانية تحمل العنوان القديم. وفي ZONEVERSION يظهر SOA-SERIAL بقيمة 4120 للأولى و4119 للثانية.

لو سأل الفريق عن SOA بعد ثوان، قد تصل الاستعلامات اللاحقة كلها إلى الموقع المحدّث. سيحتفظ السجل بقيمتي 4120 ويخسر الدليل على أن الإجابة القديمة وُلدت فعلاً من 4119. قيمة RFC 9660 هي أن النسخة تسافر داخل الإجابة التي تصفها.

المشهد توضيحي لا ينسب حادثاً إلى شبكة أو منتج. كما يكشف حدود الدليل: 4119 لا يشرح سبب الاختلاف، و4120 لا يثبت صحة المحتوى، وعينة واحدة لا تمثل جميع الخوادم الموثوقة.

الطلب يسأل ولا يفرض نسخة

يضع العميل رمز EDNS رقم 19 في سجل OPT الزائف، ويكون OPTION-LENGTH صفراً من دون بيانات. لا يطلب «استخدم 4120» ولا يصدر أمراً بالترقية؛ بل يسأل عن النسخة التي استعملها الخادم لبناء هذه الاستجابة.

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

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

الخيار أيضاً hop-by-hop. لا يجوز لوسيط أن ينسخ الطلب إلى upstream ثم يلصق القيمة في إجابة أنشأها في سياق آخر. فالمنشأ يعتمد على بقاء الخادم والإجابة والمعرف معاً.

يحدد LABELCOUNT المنطقة التي ينتمي إليها الرقم

تبدأ بيانات الاستجابة ببايت LABELCOUNT ثم بايت TYPE ثم VERSION وفق النوع. يحسب LABELCOUNT التسميات من يمين QNAME الأصلي لتحديد المنطقة المحيطة؛ والصفر يعني الجذر.

في host.branch.example تشير القيمة 2 إلى branch.example، وتشير 1 إلى example. لا يجوز أن يتجاوز العدد تسميات الاسم المطلوب. تخزين «serial=4120» وحده يحذف نطاق الرقم ويجعل المقارنة غامضة.

قد يظهر الخيار في إحالة نزولية أنشأتها المنطقة الأم، أو في NXDOMAIN وNODATA موثوقتين، أو في بعض SERVFAIL حين يستطيع الخادم تحديد المنطقة ذات الصلة. يمكن للإجابة حمل أكثر من منطقة أو TYPE، لكن قيمة واحدة فقط لكل زوج TYPE وLABELCOUNT.

لذلك يجب أن يتضمن مفتاح الرصد QNAME والمنطقة المشتقة والنوع والقيمة والحزمة والخادم والموقع والزمن.

SOA-SERIAL ليس ساعة خطية ولا ملخصاً للمحتوى

TYPE 0، أي SOA-SERIAL، هو النوع العام المحدد في RFC 9660. تنسخ VERSION أربعة بايتات من SERIAL في SOA، فيصبح طول خيار الاستجابة ستة بايتات مع الحقلين الأولين.

الرقم محلي داخل المنطقة. تفرض RFC 1982 حساباً دائرياً من 32 بت؛ بعد الالتفاف قد تكون القيمة الأصغر أحدث، وبعض الأزواج لا تملك ترتيباً معرفاً. المقارنة العددية البسيطة قد تعلن تراجعاً غير موجود.

ولا يشكل serial بصمة للبيانات. قد تنشر منطقتان مختلفتا المحتوى القيمة نفسها بسبب خطأ تشغيلي، وقد تختلف الإجابات ضمن نسخة واحدة بسبب السياق أو السياسة. ينبغي مقارنة RRsets والأقسام والأعلام وTTL ونتيجة DNSSEC إلى جانب المعرف.

عندما يكون السؤال عن صحة محتوى المنطقة كاملاً، تقدم RFC 8976 آلية ZONEMD. تربط ZONEVERSION إجابة بمعرف، بينما تتحقق ZONEMD من digest للمنطقة. لكل أداة ادعاء مختلف.

يحول anycast «الخادم» إلى مجموعة قياس

قد يقود عنوان anycast واحد إلى عقد مختلفة بحسب موقع المصدر ووقته. تثبت الإجابة الناجحة ما وصل إليه مسار واحد في لحظة واحدة فحسب.

يبدأ التحقيق بحصر أسماء NS والعناوين وبادئات anycast ومجموعات الخدمة ونقاط الرصد. يجب أن يعطل كل سؤال مباشر recursion ويحفظ المصدر والوجهة والنقل والوقت وQNAME وRCODE وعلم AA والحزمة وTTL والخيار ونتيجة التحقق. يميز التكرار بين تغير مسار عابر وفارق مستمر.

يمكن لـ NSID أن يساعد في تمييز العقدة، لكن المشغل يحدد معناه ومدى تفرده. وجوده لا يصادقه، ولا يحل محل endpoint ونقطة القياس.

إذا كررت ثلاثة مواقع 4120 والجواب نفسه بينما أبقى رابع 4119 والعنوان القديم، فهناك دليل على اختلاف محدود ضمن العينة. أما السبب فيحتاج إلى journal النقل ومخرجات الموقّع والنسخة المحملة وربط المسار بالموقع.

لا توقع DNSSEC بايتات ZONEVERSION

تستطيع DNSSEC التحقق من RRsets الموقعة، لكن بايتات EDNS للخيار لا تغطيها RRSIG. في مسار غير محمي يستطيع وسيط تعديل المعرف أو حذفه مع بقاء البيانات الموقعة صالحة.

يجب تسجيل نتيجتين منفصلتين: «نجح تحقق RRset» و«حُفظ زوج الإجابة والنسخة عبر قناة محمية». يمكن استخدام نقل موثق ومشفر، أو TSIG، أو SIG(0)، مع تسجيل هوية الطرف أو المفتاح ونتيجة التحقق. لا تثبت هذه الحماية صحة المنطقة أو اكتمال النشر.

OPT ليس من بيانات المنطقة. لا يجوز تخزين ZONEVERSION أو نقله أو حفظه في cache كسجل RR عادي، ولا إعادة استعماله لوصف إجابة أخرى.

المصادر