ما هو الـ DNS باختصار؟

(Domain Name System)

هو «دفتر عناوين الإنترنت» - بيحوِّل أسماء نطاقات قابلة للقراءة (زي example.com) إلى عناوين IP (زي 93.184.216.34) والعكس. من غير DNS المستخدمين هيتعبوا يفتكروا أرقام الـ IP لكل موقع.
كيف بيحصل الاستعلام؟ (DNS resolution - بالخطوات)
1. الجهاز (stub resolver) يطلب اسم (مثلاً:
www.example.com
) من recursive resolver (عادة عند الـ ISP أو خادم داخلي).
2. الـ recursive resolver لو عنده نتيجة في الكاش يرد فوراً. لو لا، يبدأ سلسلة استعلامات:

يسأل root server → يحصل على مرجع إلى TLD servers (مثلاً .com).

يسأل TLD server → يحصل على مرجع إلى authoritative name server للنطاق.

يسأل authoritative server → يرجع الـ A/AAAA/CNAME record.
3. الـ recursive يخزّن النتيجة في الكاش لمدة الـ TTL ويُعيدها للعميل.
(يمكن اختصار أو تجاوز بعض الخطوات إذا هناك forwarder أو cached answer.)
أنواع خوادم DNS ووظائفها

Root servers: أعلى مستوى (.) - يوجِّه لاستعلامات الـ TLD.

TLD servers: تدير نطاقات الأعلى (مثل .com, .org).

Authoritative name servers: المصدر الرسمي لبيانات نطاق معين (مثلاً سجلات example.com).

Recursive/caching resolvers: يقوموا بالبحث، يخزنوا النتائج، يقدِّموا استجابات للمستخدمين.

Forwarders: خوادم داخلية تُرسل الاستعلامات إلى سيرفرات أخرى (مثل public DNS) بدل إجراء العمليات الكاملة.

Stub resolvers: العميل على الجهاز (عادة جزء من نظام التشغيل) يرسل الطلب للـ recursive.

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 مخصصة لشبكة داخلية (LAN/Enterprise)، بتكون غير متاحة للعامة أو بتخدم نطاقات داخلية فقط.

️الوظائف الشائعة:

حل أسماء داخلية (مثل dc01.corp.company.local).

تكامل مع Active Directory (AD DNS) — ضروري لخدمات الدومين (Kerberos، GPO، إلخ).

إدارة سجلات موقفية (internal-only records)، واستخدام split-horizon.

سياسة أمان داخلية وسجلات تفصيلية للـ audit.
️مميزات: 
تحكم كامل بالـ namespace، سياسات الوصول، والسجلات.

يمكن عمل سياسات أمان خاصة، وRPZ لحظر دومينات خبيثة.

لا يتعرّض مخاطر الكشف عن أسماء داخلية للعالم الخارجي.
️عيوب: 
مسؤولية إدارة وصيانة وباك أب وتحديثات.

لو مش معمول لها forwarders صح، ممكن تكون بطيئة للوصول للعالم الخارجي.

Split-Horizon / Split-View DNS (أو Split-Brain)

يعني نفس الاسم يعطي نتائج مختلفة حسب مصدر الطلب (مثلاً داخل الشبكة: app.example.com → 10.0.0.5، من الإنترنت: app.example.com → public IP). مهم للمسرّعات الداخلية ولفصل الـ internal records عن الـ external.
️أمان الـ DNS (نقاط مهمة) 
DNSSEC: يضمن صحة البيانات (التوقيع الرقمي للسجلات) ويمنع تزوير الاستجابات (cache poisoning).

TSIG: توقيع لعمليات نقل النطاق (zone transfer) بين خوادم لتأمينها.

تعطيل recursion على authoritative servers إن لم تكن لازمة (حتى لا يستغلوا للخوادم مفتوحة).
Rate limiting / Response rate limiting لمنع هجمات DDoS عبر DNS.

تشفير الاستعلامات: DoT (DNS over TLS) وDoH (DNS over HTTPS) يحسن الخصوصية، لكن قد يخفي حركة DNS عن مراقبة الشركة — نقطة مهمة في بيئات المؤسسة.

RPZ (Response Policy Zones): آلية لفلترة أو حظر أسماء سيئة على مستوى الـ DNS.
تصميم عملي (نموذج موصى به للمؤسسات)
1. خوادم DNS داخلية (recursive resolvers) للمستخدمين الداخليين - تقوم بالحل الداخلي وتخزين الكاش.
2. Conditional forwarding: لو اسم لنطاق خارجي خاص بـ cloud/vendor، وجه الطلب لمزود DNS الخاص بهم.
3. Forward to trusted public resolvers (مثل
1.1.1.1/8.8.8.8
بدلًا من ترك كل جهاز يستخدم DoH خارجي.
4. منع الـ zone transfers للعامة، واستخدام TSIG بين الماستر والـ slaves.
5. تمكين سجلات ومراقبة لتحليل نشاط DNS وكشف محاولات الانتهاك.
6. اعتماد أسماء عامة للنطاق (مثل corp.example.com) بدلًا من .local إذا أمكن (مفيد لتهيئة SSL وcloud integration).
أوامر وأدوات للفحص والتشخيص

dig @8.8.8.8 example.com A +trace
- تتبُّع المسار من الـ root حتى الـ authoritative.

dig example.com @<internal-resolver>
- استعلم خادم معين.

nslookup, host (أدوات بسيطة).

tcpdump -n port 53 أو Wireshark - لمشاهدة حزم DNS (مفيد لتشخيص مشاكل).

راجع سجلات الخادم (bind logs, Windows DNS logging).

️أمثلة تكوين (موجز)

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 (integrate with Active Directory إذا مطلوب) → تضيف سجلات A/PTR. للـ branch servers ممكن تعمل Conditional Forwarder لمزود الـ DNS الداخلي للفرع.