تعلم DNS: أنواع السيرفرات وحل الاستعلامات

x32x01
  • بواسطة x32x01 ||
الـ DNS (Domain Name System) هو زي دفتر عناوين الإنترنت 📖، وظيفته يحوّل أسماء النطاقات القابلة للقراءة (زي example.com) إلى عناوين IP رقمية (زي 93.184.216.34) والعكس صحيح.
من غير الـ DNS، المستخدمين هيبقوا محتاجين يحفظوا أرقام IP لكل موقع يزوروه 😅.

ازاي بيحصل الاستعلام على DNS؟ 🔍

عملية حل الاسماء (DNS resolution) بتحصل كده خطوة خطوة:
  1. جهازك (stub resolver) يطلب اسم زي: www.example.com من recursive resolver (غالبًا عند مزود الإنترنت أو سيرفر داخلي).
  2. لو الـ recursive resolver عنده النتيجة في الكاش، يرد على طول. لو لأ، يبدأ سلسلة استعلامات:
    • يسأل root server → يدي مرجع لـ TLD servers (.com, .org…)
    • يسأل TLD server → يدي مرجع لـ authoritative name server للنطاق.
    • يسأل authoritative server → يرجع الـ A/AAAA/CNAME record.
  3. الـ recursive resolver يخزّن النتيجة في الكاش حسب الـ TTL ويرجعها لجهازك.

ملاحظة: لو فيه forwarder أو cached answer، العملية ممكن تكون أسرع وتتجاوز بعض الخطوات ⏱️.



أنواع خوادم DNS ووظائفها 🖥️

  • Root servers: أعلى مستوى، يوجّه الاستعلامات للـ TLD.
  • TLD servers: تدير نطاقات المستوى الأعلى (.com, .org…).
  • Authoritative name servers: المصدر الرسمي لسجلات النطاق (مثل example.com).
  • Recursive/caching resolvers: يبحثوا، يخزنوا النتائج، ويردوا للمستخدمين.
  • Forwarders: خوادم داخلية تبعت الاستعلامات لسيرفرات خارجية بدل ما تعمل كل الاستعلام من الصفر.
  • Stub resolvers: العميل على جهازك، يرسل الطلب للـ recursive resolver.



Public DNS Servers - وليه تستخدمهم؟ 🌍

خوادم DNS عامة متاحة لأي حد على الإنترنت. أشهر الأمثلة:
Code:
Google Public DNS: 8.8.8.8 , 8.8.4.4
Cloudflare DNS: 1.1.1.1 , 1.0.0.1
OpenDNS (Cisco): 208.67.222.222 , 208.67.220.220

مميزاتها:
  • سرعة عالية 🏎️ وموثوقية كبيرة (CDN وتقنيات كاش متقدمة).
  • سهلة الإعداد: غير IP الـ resolver على جهازك أو الراوتر.
  • بعضهم يوفر حماية: تصفية، مكافحة تصيّد، دعم DoT/DoH لتشفير الاستعلامات 🔒.

عيوب/اعتبارات:
  • الخصوصية: بعض المزودين يسجلوا الاستعلامات (logs).
  • ممكن يتعارض مع سياسات الشركة الداخلية.
  • لا يستطيع حل أسماء داخلية مثل server.corp.local.



Private / Internal DNS Servers - ايه ومين يستخدمهم؟ 🏢

خوادم DNS داخلية للشبكات المحلية، مش متاحة للعامة.

وظائفها:
  • حل أسماء داخلية (زي dc01.corp.local).
  • تكامل مع Active Directory (AD DNS) للخدمات زي Kerberos وGPO.
  • إدارة سجلات داخلية واستخدام split-horizon لتقسيم الرؤية الداخلية والخارجية.

مميزاتها:
  • تحكم كامل بالـ namespace والسياسات والسجلات.
  • أمان أعلى، RPZ لحظر الدومينات الخبيثة.
  • منع تسرب أسماء داخلية للعالم الخارجي.

عيوبها:
  • مسؤولية إدارة، باك أب، تحديثات.
  • لو مش معمول لها forwarders صح، ممكن تكون بطيئة للوصول للعالم الخارجي.



Split-Horizon / Split-View DNS 🔄

يعني نفس الاسم ممكن يرجع نتيجة مختلفة حسب مصدر الطلب:
  • داخل الشبكة: app.example.com10.0.0.5
  • من الإنترنت: app.example.com → public IP
ده مفيد لفصل السجلات الداخلية عن الخارجية وحماية البيانات.



أمان الـ DNS 🔐

  • DNSSEC: يضمن صحة البيانات ويمنع تزوير الاستجابات.
  • TSIG: توقيع عمليات نقل النطاق بين الخوادم.
  • تعطيل recursion على authoritative servers لو مش محتاجينها.
  • Rate limiting لمنع هجمات DDoS عبر DNS.
  • تشفير الاستعلامات: DoT وDoH لتحسين الخصوصية.
  • RPZ: فلترة أو حظر أسماء خبيثة.



تصميم عملي للمؤسسات 🏢

  1. خوادم DNS داخلية للمستخدمين الداخليين (recursive resolvers).
  2. Conditional forwarding للنطاقات الخاصة بالسحابة أو البائعين.
  3. توجيه لمزودين موثوقين مثل 1.1.1.1 / 8.8.8.8.
  4. منع zone transfers للعامة واستخدام TSIG بين master وslaves.
  5. تمكين سجلات ومراقبة لتحليل نشاط DNS.
  6. استخدام أسماء عامة للنطاق بدل .local لتحسين التوافق مع SSL وcloud.



أوامر وأدوات للفحص والتشخيص 🛠️

Bash:
dig @8.8.8.8 example.com A +trace  # تتبع المسار من root للـ authoritative
dig example.com @<internal-resolver>  # استعلام خادم معين
nslookup example.com
host example.com
tcpdump -n port 53  # لمشاهدة حزم DNS



أمثلة تكوين بسيطة​


BIND options:
Code:
options {
  directory "/var/named";
  recursion yes;
  allow-query { localhost; 192.168.0.0/24; };
  allow-transfer { none; };
  forwarders { 1.1.1.1; 8.8.8.8; };
};

zone "corp.internal" IN {
  type master;
  file "corp.internal.zone";
  allow-update { none; };
};

Zone file (مبسط):
Code:
$TTL 86400
@   IN SOA  ns1.corp.internal. admin.corp.internal. (
        2025092001 ; serial
        3600       ; refresh
        900        ; retry
        604800     ; expire
        86400 )    ; minimum

ns1  IN A 192.168.1.10
www  IN A 192.168.1.20

Windows/AD DNS:
  • افتح DNS Manager → New Zone → Primary zone → اضف سجلات A/PTR.
  • للـ branch servers استخدم Conditional Forwarder لمزود DNS الداخلي.
 
التعديل الأخير:
المواضيع ذات الصلة
x32x01
  • x32x01
الردود
0
المشاهدات
739
x32x01
x32x01
x32x01
الردود
0
المشاهدات
473
x32x01
x32x01
x32x01
الردود
0
المشاهدات
798
x32x01
x32x01
x32x01
الردود
0
المشاهدات
128
x32x01
x32x01
x32x01
الردود
0
المشاهدات
663
x32x01
x32x01
x32x01
الردود
0
المشاهدات
605
x32x01
x32x01
x32x01
الردود
0
المشاهدات
718
x32x01
x32x01
x32x01
الردود
0
المشاهدات
585
x32x01
x32x01
x32x01
الردود
0
المشاهدات
729
x32x01
x32x01
x32x01
الردود
0
المشاهدات
790
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
1,827
المشاركات
2,025
أعضاء أكتب كود
468
أخر عضو
عبدالله احمد
عودة
أعلى