فحص سجل Start of Authority (SOA)
سجل SOA (Start of Authority) بيمثل القلب الإداري لأي منطقة DNS. ده سجل إلزامي؛ من غير SOA صالح، الدومين بيكون ملوش وجود على مستوى جدول الـ Routing العالمي. الـ SOA Payload بيحدد معايير التشغيل الأساسية للدومين، وبيحدد أنهي سيرفر هو المصدر النهائي للمعلومات (Source of truth)، ومين بيديره، وبيحط آليات الوقت الصارمة اللي بتتحكم في إزاي سيرفرات الأسماء الثانوية والاحتياطية (Secondary Nameservers) بتنسخ (Replicate) بيانات الـ Zone.
رقم الـ Zone Serial وعملية الـ State Replication
أهم رقم (Integer) جوه الـ SOA Payload هو الـ Serial Number. وحسب المعايير المتعارف عليها، الرقم ده بيتكتب على شكل Date-stamp (زي 2023102401 للتعديل الأول يوم 24 أكتوبر 2023). كل مرة الـ Admin بيعدل فيها أي سجل A أو MX أو TXT، لازم الـ Serial ده يزيد (Increment). سيرفرات الأسماء الثانوية (Slaves) بتعمل Polling بشكل دوري لسجل SOA اللي على السيرفر الرئيسي. لو لاحظوا إن الـ Serial Number بقى أعلى من اللي متخزن عندهم في الـ Local Cache، ده بيشغل فوراً عملية Zone Transfer (AXFR أو IXFR) عشان تسحب جداول الـ Routing المتحدثة. لو نسيت تزود الـ Serial وإنت بتعدل، السيرفرات الثانوية عمرها ما هتعمل Sync، وده هيؤدي لاستجابات DNS متضاربة ومكسورة.
التوقيتات الإدارية: Refresh، Retry، و Expire
سجل SOA بيحدد 3 توقيتات (Timers) معينة بتتحكم في استقرار الـ Zone:
- Refresh: دي الفترة (بالثواني) اللي السيرفر الثانوي بيستناها قبل ما يعمل Poll للسيرفر الرئيسي عشان يشوف لو حصل أي تغيير في الـ Serial.
- Retry: لو السيرفر الرئيسي كان Offline وقت الـ Poll، التوقيت ده بيحدد السيرفر الثانوي هيستنى قد إيه قبل ما يحاول تاني.
- Expire: ده أقصى وقت مطلق السيرفر الثانوي هيفضل فيه يعرض السجلات من الكاش لو السيرفر الرئيسي وقع بشكل دائم. بمجرد ما التوقيت ده يخلص، السيرفر الثانوي هيبطل يرد على أي Queries، وده فعلياً بيسقط الدومين عشان يمنع إنه يقدم بيانات قديمة جداً.
الـ Negative Caching والـ Minimum TTL
من المعايير اللي بتفهم غلط كتير في سجل SOA هي قيمة الـ Minimum TTL. تاريخياً كانت بتستخدم عشان تحدد وقت الكاش الأساسي، لكن RFC 2308 خلى الرقم ده مخصص حصرياً للـ Negative Caching. لو المستخدم طلب Subdomain مش موجود (زي fake.example.com)، السيرفر الأساسي بيرد بخطأ NXDOMAIN. الـ Resolver هنا بيستخدم الـ SOA Minimum TTL عشان يحدد بالظبط هيحتفظ بالخطأ ده في الكاش لمدة قد إيه. لو القيمة قليلة، ده بيمنع انقطاع الخدمة لفترة طويلة لو الـ Admin صلح غلطة في الكتابة بسرعة، أما القيمة العالية فبتحمي السيرفر الأساسي من هجمات الـ DDoS اللي بتعمل Queries على Subdomains عشوائية ومش موجودة.