ما هو DNS؟
نظام أسماء النطاقات (DNS) قاعدة بيانات موزعة تحوّل الأسماء التي نكتبها، مثل example.com، إلى عناوين IP تحتاجها الأجهزة للاتصال. يسأل جهازك خادماً يسمى المحلل التكراري، فيتتبع السلسلة من خوادم الجذر إلى الخادم المسؤول عن النطاق، ثم يعيد الجواب ويحفظه مدة يحددها صاحب النطاق.
أجزاء النظام
وضع المعيار RFC 1034 عام 1987 أساس النظام، وقسّمه إلى ثلاثة أجزاء:
- فضاء الأسماء والسجلات. شجرة من الأسماء، ولكل اسم سجلات تحمل بياناته، كعنوانه أو خادم بريده.
- خوادم الأسماء. كل خادم موثوق لجزء من الشجرة يسمى منطقة (zone)، ويجيب عنه من بياناته مباشرة.
- المحللات. برامج تستخرج المعلومات من خوادم الأسماء استجابة لطلبات البرامج.
ويميّز المعيار RFC 9499 لمصطلحات DNS بين نوعين من المحللات. المحلل الجذعي (stub resolver) في جهازك لا يستطيع إتمام البحث وحده. لذلك يرسل السؤال إلى محلل تكراري (recursive resolver) يتولى البحث كله ويحفظ الأجوبة.
شجرة الأسماء
تبدأ المستويات من آخر الاسم. في www.example.com يأتي الجذر أولاً وهو غير مكتوب، ثم النطاق العلوي com، ثم example، ثم www. وكل مستوى يفوّض المستوى الذي تحته إلى خوادم أخرى.
يحدد المعيار RFC 1035 حدود الاسم: كل جزء بين نقطتين لا يتجاوز 63 بايتاً، والاسم كله لا يتجاوز 255 بايتاً.
ماذا يحدث حين تكتب اسم موقع
- يبحث المتصفح ثم نظام التشغيل في ذاكرتهما المؤقتة. إن وُجد جواب صالح استُخدم فوراً.
- يرسل المحلل الجذعي السؤال إلى المحلل التكراري المضبوط في جهازك أو موجّهك، عبر UDP على المنفذ 53 في الأصل.
- إن لم يكن الجواب في ذاكرة المحلل التكراري، سأل أحد خوادم الجذر. الجذر لا يعرف العنوان، لكنه يحيله إلى خوادم com.
- يسأل خوادم com، فتحيله إلى خوادم الأسماء المسؤولة عن example.com.
- يسأل الخادم الموثوق للنطاق، فيرد بالسجل المطلوب، كعنوان IPv4 أو IPv6.
- يحفظ المحلل التكراري الجواب مدة صلاحيته (TTL) ويعيده إلى جهازك، فيتصل الجهاز بالعنوان.
يعرّف المعيار TTL بأنه أقصى مدة يبقى فيها السجل في الذاكرة المؤقتة، ويحددها صاحب المنطقة. لهذا لا يظهر تغيير عنوان موقع عند الجميع في اللحظة نفسها. وإذا كان الجواب أكبر من أن يحمله UDP، وُضعت علامة الاقتطاع في الرد وأعاد المحلل السؤال عبر TCP على المنفذ نفسه.
أنواع السجلات الشائعة
| السجل | ما يحمله |
|---|---|
| A | عنوان IPv4 للاسم |
| AAAA | عنوان IPv6 للاسم، وعرّفه RFC 3596 |
| CNAME | اسم بديل يشير إلى اسم آخر |
| MX | خوادم البريد التي تستقبل رسائل النطاق |
| NS | خوادم الأسماء الموثوقة للمنطقة |
| TXT | نص حر، يُستخدم لإثبات ملكية النطاق وسياسات البريد |
| PTR | الاسم المقابل لعنوان، في البحث العكسي |
البحث العكسي
يمكن أيضاً السؤال في الاتجاه المعاكس: ما الاسم المرتبط بهذا العنوان؟ لهذا الغرض شجرة خاصة، يُكتب فيها عنوان IPv4 مقلوباً تحت النطاق in-addr.arpa، وعنوان IPv6 تحت ip6.arpa.
فالسؤال عن 192.0.2.10 يصبح سؤالاً عن سجل PTR للاسم 10.2.0.192.in-addr.arpa. وصاحب كتلة العناوين هو من يضع هذه السجلات، لا صاحب الموقع الذي يستخدم العنوان.
يستخدم مزودو البريد البحث العكسي للتحقق من الخوادم المرسلة. ويضع كثير من المشغّلين في أسماء موجّهاتهم رموز المدن، فيستفيد منها من يقدّر مواقع العناوين.
dig -x 9.9.9.9 +short
من يرى أسئلتك
استعلامات DNS التقليدية غير مشفرة. كل من يقع على المسار بين جهازك والمحلل يرى أسماء المواقع التي تسأل عنها، ومنهم مشغّل الشبكة المحلية ومزود الإنترنت.
- المحلل التكراري يرى كل سؤال وعنوان الجهاز الذي أرسله. هو أكثر طرف يعرف عن تصفحك من خلال DNS.
- الخادم الموثوق يرى عنوان المحلل لا عنوانك. بعض المحللات ترسل معه جزءاً من شبكتك ليختار الخادم أقرب نسخة من الموقع إليك.
- مزود الشبكة يرى الأسئلة إن لم تكن مشفرة، حتى لو استخدمت محللاً غير محللّه.
التشفير يغلق المسار بين جهازك والمحلل: DNS over TLS وDNS over HTTPS، ويشرح الثاني مقال DNS عبر HTTPS. أما DNSSEC فيثبت صحة الجواب بالتوقيع، ولا يخفي السؤال.
المحلل يغيّر ما تراه
كثير من المواقع الكبيرة تعطي جواباً مختلفاً حسب مكان السائل، لتوجّهه إلى أقرب خادم. لهذا يؤثر مكان المحلل في سرعة الموقع، وأحياناً في النسخة التي تراها منه.
وحين تستخدم VPN أو بروكسي، يجب أن تمر أسئلة DNS عبر النفق أيضاً. إن ذهبت إلى محلل مزودك المحلي، رأى المزود أسماء المواقع، ورأى الموقع تناقضاً بين مكان العنوان ومكان المحلل. هذا ما يسمى تسريب DNS.
من أين يأتي المحلل الذي تستخدمه
حين يتصل جهازك بشبكة، يعطيه الموجّه عنوانه ومعه عنوان المحلل، عبر DHCP عادةً. والموجّه المنزلي يمرر الأسئلة غالباً إلى محلل المزود.
يمكنك تغيير المحلل في إعدادات الموجّه فيشمل كل الأجهزة، أو في إعدادات نظام التشغيل فيشمل جهازاً واحداً. وبعض المتصفحات لها إعداد DNS مشفر خاص بها، يتجاوز إعداد النظام حين يكون مفعّلاً.
تطبيقات VPN تضبط المحلل أيضاً حين يعمل النفق. لذلك قد يستخدم الجهاز الواحد ثلاثة محللات مختلفة، حسب البرنامج وحالة الاتصال.
كيف تفحص DNS بنفسك
اسأل عن سجل محدد بأداة dig على لينكس وماك، أو nslookup على ويندوز:
dig example.com A +noall +answer
dig @9.9.9.9 example.com AAAA +short
nslookup example.com
الأمر الأول يعرض سطر الجواب بهذا الشكل، والعنوان هنا للتوضيح فقط. الحقل الثاني في السطر هو ما بقي من مدة الصلاحية بالثواني:
example.com. 3600 IN A 192.0.2.10
ولمعرفة المحلل الذي يستخدمه جهازك:
resolvectl status # Linux with systemd-resolved
ipconfig /all # Windows: "DNS Servers"
scutil --dns # macOS
كيف تختار محللاً وتحمي أسئلتك
- اقرأ سياسة المحلل. المحلل يرى قائمة المواقع التي تزورها، فاختر جهة تعرف ما تحتفظ به من سجلات ومدته.
- شفّر الاستعلامات على الشبكات العامة. أغلب المتصفحات وأنظمة التشغيل الحديثة تدعم DNS المشفر.
- اجعل DNS يتبع النفق. مع أي VPN تأكد أن المحلل المستخدم هو محلل الخدمة أو محلل في بلد الخروج.
- امسح الذاكرة المؤقتة بعد تغيير الإعدادات. على ويندوز بالأمر ipconfig /flushdns، وإلا بقيت أجوبة قديمة حتى تنتهي صلاحيتها.
DNS في syriaproxy
مع syriaproxy تُحلّ أسماء المواقع داخل سوريا عبر خوادم سيريتل، لا عبر محلل في بلدك. لذلك تحصل على الأجوبة نفسها التي يحصل عليها هاتف متصل بشبكة سيريتل داخل سوريا.
أسئلة شائعة
لماذا لا يظهر تغيير عنوان موقعي فوراً؟
لأن المحللات تحتفظ بالجواب القديم حتى تنتهي مدة صلاحيته. خفّض قيمة TTL قبل أي تغيير مخطط بوقت كافٍ.
هل يغيّر تبديل خادم DNS عنواني؟
لا. يغيّر الجهة التي تحوّل الأسماء إلى عناوين فقط. المواقع ما زالت ترى عنوانك العام عند الاتصال بها.
ما معنى أن الاسم «لا يُحلّ»؟
أن المحلل لم يحصل على عنوان. قد لا يكون الاسم موجوداً، أو يكون خادمه الموثوق معطلاً، أو يحجب المحلل الاسم عمداً.
هل يكفي DNS مشفر لإخفاء المواقع التي أزورها؟
لا وحده. المزود ما زال يرى عناوين الخوادم التي تتصل بها، وقد يرى اسم الموقع في بداية اتصال HTTPS.
افحص المحلل الذي يستخدمه اتصالك بأداة فحص تسريب DNS المجانية.