كيف يعمل DNS
يترجم نظام أسماء النطاقات (DNS) اسمًا مثل www.example.com إلى عنوان IP تستخدمه الحواسيب للاتصال. يقوم المحلِّل التكراري (recursive resolver) بالعمل نيابةً عنك: يسأل الخوادم الجذرية، ثم خوادم نطاق المستوى الأعلى، ثم الخوادم الموثوقة للنطاق، ويخزّن الإجابة لاستخدامها لاحقًا. يستغرق ذلك عادةً بضعة أجزاء من الثانية.
مسار التحليل
عندما تفتح www.example.com تحدث هذه الخطوات إذا لم يكن شيء مخزّنًا مؤقتًا:
- Stub resolver. في نظام التشغيل لديك عميل صغير مدمج. يفحص ذاكرته المؤقتة وملف hosts، ثم يرسل السؤال إلى المحلل التكراري المُعدّ (يأتي عادةً من جهاز التوجيه أو المزود، أو يكون محللًا عامًا).
- المحلل التكراري. يفحص ذاكرته المؤقتة. فإن لم تكن لديه إجابة، يبدأ من القمة ويطرح الأسئلة حتى يجد الإجابة النهائية.
- الخوادم الجذرية. يسأل المحلل خادمًا جذريًا عن
www.example.com. لا يعرف الخادم الجذري العنوان، لكنه يرد بالخوادم المسؤولة عن.com. - خوادم TLD. لا تعرف خوادم
.comالعنوان أيضًا، لكنها ترد بخوادم الأسماء الخاصة بـexample.com(سجلات NS). - الخوادم الموثوقة. يحتفظ خادم أسماء النطاق بالسجلات الفعلية ويعيد سجل A أو AAAA للاسم
www.example.com. - يعيد المحلل الإجابة إلى stub resolver ويخزنها في ذاكرته المؤقتة، ثم يتصل المتصفح.
يمكنك تتبع هذه السلسلة لأي نطاق باستخدام فاحص DNS لدينا.
التخزين المؤقت وTTL
لكل سجل DNS قيمة TTL (مدة البقاء)، وهي عدد من الثواني تخبر المحللات بالمدة التي يجوز لها فيها الاحتفاظ بالإجابة. تعني القيمة 3600 ساعة واحدة. يجعل التخزين المؤقت DNS سريعًا ويقلل الحمل على الخوادم الموثوقة، لكنه يعني أيضًا أن التغيير لا يظهر في كل مكان دفعة واحدة. توجد الذاكرات المؤقتة في عدة أماكن: المتصفح ونظام التشغيل وجهاز التوجيه والمحلل التكراري.
تخزّن المحللات مؤقتًا أيضًا الإجابات السلبية، مثل «هذا الاسم غير موجود» (NXDOMAIN)، لمدة يحددها سجل SOA.
أنواع السجلات الشائعة
| النوع | الغرض | مثال على القيمة |
|---|---|---|
| A | يربط اسمًا بعنوان IPv4 | 192.0.2.10 |
| AAAA | يربط اسمًا بعنوان IPv6 | 2001:db8::10 |
| CNAME | اسم مستعار من اسم إلى آخر. لا يمكن أن يوجد عند جذر المنطقة (zone apex) بجانب سجلات أخرى. | www.example.com → example.com |
| MX | خوادم البريد للنطاق، مع أولوية (يُجرَّب الرقم الأصغر أولًا) | 10 mail.example.com |
| NS | خوادم الأسماء الموثوقة للمنطقة | ns1.example.com |
| TXT | نص حر؛ يُستخدم لـ SPF وDKIM وDMARC والتحقق من ملكية النطاق | "v=spf1 mx -all" |
| SOA | بداية السلطة: الخادم الأساسي وجهة اتصال المسؤول والرقم التسلسلي والمؤقتات | ns1.example.com hostmaster.example.com 2026110401 ... |
| CAA | أي جهات إصدار الشهادات يُسمح لها بإصدار شهادات للنطاق | 0 issue "ca.example.net" |
| SRV | المضيف ومنفذ خدمة محددة | 10 5 5060 sip.example.com |
| PTR | بحث عكسي: يربط عنوان IP باسم | 10.2.0.192.in-addr.arpa → host.example.com |
تُعدّ سجلات MX وSPF وDKIM الصحيحة مهمة لوصول البريد. استخدم أداة البريد والقوائم السوداء لدينا لفحص خادم بريد ومعرفة ما إذا كان عنوان IP الخاص به مدرجًا في قوائم حظر البريد المزعج.
ما هو انتشار DNS فعلًا
«انتشار DNS» (DNS propagation) اسم شائع للمدة التي تمضي حتى تتخلص كل الذاكرات المؤقتة في العالم من الإجابة القديمة وتجلب الجديدة. لا يُدفع شيء عبر الإنترنت. يملك الخادم الموثوق البيانات الجديدة فورًا؛ أما المحللات فتحتفظ ببساطة بالبيانات القديمة حتى تنتهي مدة TTL الخاصة بها. لذلك فإن أقصى تأخير لسجل تغيّر يساوي تقريبًا قيمة TTL القديمة، وليس الجديدة.
تغيير خوادم الأسماء لدى المسجِّل (registrar) أبطأ، لأن سجلات NS في منطقة TLD تكون عادةً بقيمة TTL تبلغ يومًا إلى يومين. وخلال تلك المدة يصل بعض المستخدمين إلى الخوادم القديمة ويصل آخرون إلى الجديدة. يمكنك فحص تفويض النطاق باستخدام بحث WHOIS، وفحص السجلات نفسها باستخدام فاحص DNS.
كيف تجعل التغيير ينتشر بسرعة
- قبل التغيير بمدة لا تقل عن فترة TTL القديمة (مثلًا 24 ساعة إذا كانت TTL تساوي 86400)، اخفض قيمة TTL للسجل إلى قيمة صغيرة مثل 300 ثانية.
- انتظر حتى تمرّ مدة TTL القديمة، لكي تحتفظ كل الذاكرات المؤقتة بالنسخة القصيرة العمر.
- أجرِ التغيير. ستسأل المحللات من جديد خلال نحو 5 دقائق.
- افحص النتيجة من عدة مواقع باستخدام فاحص DNS.
- بعد أن يعمل كل شيء، ارفع TTL مرة أخرى لتقليل حمل الاستعلامات.
الرقم التسلسلي في SOA والخوادم الثانوية
تستخدم معظم النطاقات خادمين موثوقين على الأقل. أحدهما أساسي والآخرون ثانويون ينسخون المنطقة منه عبر نقل المنطقة (AXFR أو IXFR). ويتحكم سجل SOA في ذلك:
- Serial: رقم إصدار. ينقل الخادم الثانوي المنطقة عندما يكون الرقم التسلسلي على الخادم الأساسي أعلى من رقمه. والصيغة الشائعة هي التاريخ مع عدّاد، مثل
2026110401. إذا عدّلت منطقة ونسيت رفع الرقم التسلسلي، تظل الخوادم الثانوية تخدم البيانات القديمة. - Refresh: عدد مرات فحص الخادم الثانوي للرقم التسلسلي.
- Retry: المدة التي ينتظرها الخادم الثانوي قبل المحاولة من جديد بعد فشل الفحص.
- Expire: بعد مرور هذه المدة دون اتصال، يتوقف الخادم الثانوي عن الرد.
- Minimum (TTL السلبي): المدة التي تخزّن فيها المحللات إجابات «غير موجود».
إذا أعاد نطاق إجابات مختلفة من خوادم أسماء مختلفة، فمن الأسباب المحتملة خادم ثانوي قديم البيانات. قارن الأرقام التسلسلية لكل خوادم NS.
محللات Anycast
تستخدم المحللات العامة، مثل تلك التي تشغّلها كبرى الشركات المزودة، تقنية anycast: يُعلَن عن عنوان IP نفسه من عدة مراكز بيانات، وتوجه الشبكة كل استعلام إلى أقربها. يمنح ذلك زمن تأخير منخفضًا ومرونة. ولكل موقع ذاكرته المؤقتة الخاصة، ولهذا قد يرى شخصان يستخدمان عنوان المحلل نفسه إجابتين مختلفتين لوقت قصير بعد التغيير. وتُستخدم التقنية نفسها في الخوادم الجذرية وفي كثير من خدمات DNS الموثوقة.
للاطلاع على الأساسيات ذات الصلة، اقرأ ما هو عنوان IP ونموذج OSI، حيث يقع DNS في طبقة التطبيقات.