الخلاصة في فقرة واحدة
من كتابة google.com في المتصفح إلى الحصول على IP يستغرق الأمر في المتوسط ما بين 15 و150 مللي ثانية. وخلال هذه المدة تجري 4 عمليات استعلام في ذاكرات التخزين المؤقت، إضافة إلى ما يصل إلى 3 استعلامات عبر الشبكة: ذاكرة المتصفح المؤقتة → ذاكرة stub في نظام التشغيل → ذاكرة جهاز التوجيه → ذاكرة المحلل العودي لدى مزود خدمة الإنترنت → سؤال الجذر (.) → سؤال TLD (.com) → سؤال الخادم الموثوق (ns.google.com) → استلام سجل A. وكلما وجدت الإجابة في ذاكرة مؤقتة أبكر كانت أسرع — لكن الذاكرة المؤقتة تنتهي صلاحيتها وفق TTL، وعندها يعاد المسار كاملًا. وفيما يلي الشرح خطوة بخطوة.
1. المسار الكامل في 8 خطوات
┌─────────────────────────────────────────────────────────────┐
│ المتصفح (Chrome / Firefox) — كتابة google.com │
└────────────────┬────────────────────────────────────────────┘
│ ① ذاكرة DNS المؤقتة في المتصفح (Chrome ~60s)
↓ غير موجود
┌─────────────────────────────────────────────────────────────┐
│ محلل stub في نظام التشغيل + ذاكرة DNS المؤقتة للنظام │
└────────────────┬────────────────────────────────────────────┘
│ ② غير موجود في ذاكرة النظام → يرسل استعلام UDP إلى جهاز التوجيه
↓
┌─────────────────────────────────────────────────────────────┐
│ تمرير DNS في جهاز التوجيه المنزلي + ذاكرته المؤقتة │
└────────────────┬────────────────────────────────────────────┘
│ ③ غير موجود في ذاكرة جهاز التوجيه → يمرره إلى المحلل العودي لمزود خدمة الإنترنت
↓
┌─────────────────────────────────────────────────────────────┐
│ محلل عودي لمزود الإنترنت أو عام (1.1.1.1 / 8.8.8.8 / 223.5.5.5) │
│ موجود في الذاكرة: يعيد الإجابة مباشرة، وتستغرق العملية كلها 1-5ms │
│ غير موجود: ينتقل إلى مسار «الاستعلام الكامل» أدناه │
└────────────────┬────────────────────────────────────────────┘
│ ④ يسأل NS الجذر: «أين google.com؟»
↓
13 مجموعة من خوادم أسماء الجذر (a~m.root-servers.net)
│ ⑤ يرد: «لا أعرف، اسأل خادم NS للنطاق .com: a.gtld-servers.net»
↓
خوادم TLD الموثوقة للنطاق .com (Verisign)
│ ⑥ يرد: «ليست لدي الإجابة كاملة أيضًا، اسأل خادم NS للنطاق google.com: ns1.google.com»
↓
الخوادم الموثوقة للنطاق google.com (تديرها Google بنفسها)
│ ⑦ يرد: «سجل A للنطاق google.com = 142.250.x.x»
↓
┌─────────────────────────────────────────────────────────────┐
│ ⑧ يخزن المحلل العودي الإجابة مؤقتًا (وفق TTL) │
│ ويعيدها إلى العميل — وتحتفظ كل طبقة على طول المسار │
│ بنسخة خاصة بها أيضًا │
└─────────────────────────────────────────────────────────────┘فكرة أساسية: في الواقع العملي، لا يكاد المسار الكامل ذو الخطوات الثماني يحدث أبدًا. فعناوين IP للمواقع الكبرى موجودة في الغالب في ذاكرة المحلل العودي المؤقتة، لذا لا يتجاوز المستخدم العادي الخطوة ④ قبل أن يتلقى الإجابة. ولا يمر بالمسار الكامل إلا النطاقات غير المشهورة، أو المواقع نادرة الزيارة، أو عند انتهاء TTL، أو النطاقات المسجلة حديثًا.
2. شرح طبقات التخزين المؤقت الخمس في DNS
عندما صمم DNS عام 1983، أخذ مصمموه في الحسبان حقيقة واحدة: عدد الاستعلامات يفوق عدد التغييرات بمقدار 100,000 ضعف. لذلك يوجد التخزين المؤقت في كل مكان، وتحتفظ كل طبقة بالبيانات طوال مدة TTL (Time To Live).
| الطبقة | الموقع | TTL المعتاد | العرض / المسح |
|---|---|---|---|
| ① المتصفح | داخل عملية Chrome / Firefox | 60 ثانية (Chrome) | العرض / المسح عبر chrome://net-internals/#dns |
| ② محلل stub في نظام التشغيل | Windows DNS Client / macOS mDNSResponder / systemd-resolved | يطابق TTL السجل | Windows: العرض بالأمر ipconfig /displaydns، والمسح بالأمر ipconfig /flushdns |
| ③ جهاز التوجيه المنزلي | خدمة تمرير DNS المدمجة في جهاز التوجيه | يعتمد على تنفيذ جهاز التوجيه | تمسح بإعادة تشغيل جهاز التوجيه / يدويًا من لوحة الإدارة |
| ④ محلل عودي (مزود خدمة الإنترنت / عام) | 1.1.1.1 / 8.8.8.8 / 223.5.5.5 | يطابق TTL السجل | لا يستطيع المستخدم مسحها — يجب انتظار انتهاء TTL |
| ⑤ الخادم الموثوق | خادم NS لدى الجهة المالكة للنطاق | لا يخزن مؤقتًا — فهو المصدر الأصلي للبيانات | — |
3. الاستعلام العودي مقابل التكراري — مفاهيم أساسية
3.1 العودي (Recursive)
يقول العميل (المتصفح / محلل stub في نظام التشغيل) للمحلل العودي لدى مزود خدمة الإنترنت: «ابحث لي عن IP للنطاق google.com — ولا يهمني كيف تفعل ذلك.» ويجب على المحلل العودي إتمام عملية الاستعلام كاملة وإعادة النتيجة النهائية.
3.2 التكراري (Iterative)
عندما يتواصل المحلل العودي مع خوادم الجذر وTLD والخوادم الموثوقة، يكون هذا التبادل تكراريًا — فهو يسأل الجذر، فيرد الجذر: «اسأل .com»، فيذهب ويسأل .com، فيرد .com: «اسأل google»، فيذهب ويسأل google. ولا تتجاوز كل خطوة قفزة واحدة — فليس الأمر أن «أسأل الجذر فيتولى الجذر كل شيء نيابة عني».
العميل ↔ المحلل العودي = عودي4. جربه بنفسك — dig +trace
يفرض dig +trace إجراء استعلام تكراري كامل ويعرض كل خطوة:
$ dig +trace cleanip.io
; <<>> DiG 9.10.6 <<>> +trace cleanip.io
;; global options: +cmd
؛ ① القفزة 1 — سؤال الجذر (.)
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
... (13 سجلًا من نوع NS للجذر)
;; Received 525 bytes from 127.0.0.53#53 in 5 ms
؛ ② القفزة 2 — سؤال TLD للنطاق .io
io. 172800 IN NS a0.nic.io.
io. 172800 IN NS b0.nic.io.
... (4 خوادم NS للنطاق .io)
;; Received 822 bytes from 198.41.0.4#53(a.root-servers.net) in 121 ms
؛ ③ القفزة 3 — سؤال الخوادم الموثوقة للنطاق cleanip.io
cleanip.io. 86400 IN NS nolan.ns.cloudflare.com.
cleanip.io. 86400 IN NS treasure.ns.cloudflare.com.
;; Received 109 bytes from 156.154.150.6#53(a0.nic.io) in 53 ms
؛ ④ الحصول على الإجابة أخيرًا
cleanip.io. 300 IN A 104.21.x.x
cleanip.io. 300 IN A 172.67.x.x
cleanip.io. 86400 IN NS nolan.ns.cloudflare.com.
cleanip.io. 86400 IN NS treasure.ns.cloudflare.com.
;; Received 154 bytes from 173.245.59.108#53(nolan.ns.cloudflare.com) in 12 msالتفسير:
- استغرقت العملية كلها 5 + 121 + 53 + 12 = 191 ms — فالاستعلام البارد الأول بطيء فعلًا
- لكن الاستعلام عن النطاق نفسه بعد ثانية واحدة لا يستغرق سوى 1-2 ms، لأن الذاكرة المؤقتة العودية لدى مزود خدمة الإنترنت تحتوي عليه بالفعل (TTL مدته 300 ثانية)
104.21.x.x / 172.67.x.xعناوين CDN تابعة لشركة Cloudflare — أما IP الخادم الأصلي الحقيقي لموقعنا فمخفي خلف CDN
5. شرح TTL — كم تدوم مدة التخزين المؤقت فعلًا
TTL (Time To Live) هو الحقل الذي يخبر فيه الخادم الموثوق كل محلل عودي: «يمكنك تخزين هذا مؤقتًا لهذه المدة كحد أقصى»، ويقاس بالثواني.
| TTL المعتاد | المعنى | مجال الاستخدام |
|---|---|---|
| 60 (دقيقة واحدة) | قصير جدًا، مناسب للخدمات التي تبدل عناوين IP كثيرًا | تجاوز الأعطال (Failover) / اختبار A/B |
| 300 (5 دقائق) | قصير، شائع لدى شبكات CDN | القيمة الافتراضية في Cloudflare |
| 3600 (ساعة واحدة) | متوسط | المواقع العادية |
| 86400 (يوم واحد) | طويل | سجلات NS / سجلات A نادرة التغيير |
| 172800 (يومان) | القيمة المعيارية لسجلات NS في نطاقات TLD | سجلات NS للنطاقات .com / .io وما شابهها |
| 518400 (6 أيام) | القيمة المعيارية لسجلات NS للجذر | سجلات NS لمجموعات خوادم الجذر (13 مجموعة) |
ملاحظة: TTL هو «الحد الأقصى لمدة التخزين المؤقت» — إذ يمكن لأي محلل مسح ذاكرته المؤقتة قبل ذلك، لكنه لا يستطيع تمديدها أبدًا. لذا حتى لو كان TTL على الخادم الموثوق ساعة واحدة، فقد تعيد بعض المحللات الاستعلام بعد 10 دقائق فقط.
فخ شائع: قبل تبديل عنوان IP، قصر TTL أولًا (1-5 دقائق) وانتظر حتى تنتهي مدة TTL القديمة بالكامل قبل التحويل — وإلا فسيظل بعض المستخدمين يصلون إلى IP القديم لأكثر من ساعة.
6. مرجع سريع لأنواع سجلات DNS
| النوع | المعنى | مثال |
|---|---|---|
| A | عنوان IPv4 | cleanip.io → 104.21.x.x |
| AAAA | عنوان IPv6 | cleanip.io → 2606:4700::6810:x |
| CNAME | اسم مستعار (يشير إلى نطاق آخر) | www.cleanip.io → cleanip.io |
| NS | خادم NS الموثوق للنطاق | cleanip.io → nolan.ns.cloudflare.com |
| MX | خادم البريد | cleanip.io → mx1.cleanip.io (10) |
| TXT | نص حر (SPF / DKIM / التحقق) | SPF / Google verification |
| SOA | بداية السلطة للمنطقة (Start of Authority) — يتضمن NS الرئيسي / البريد الإلكتروني / الرقم التسلسلي | سجل واحد لكل منطقة |
| PTR | استعلام عكسي: IP → اسم المضيف | 8.8.8.8 → dns.google |
| CAA | من المسموح له بإصدار شهادة SSL لنطاقي | cleanip.io → letsencrypt.org |
| SRV | سجل خدمة (يتضمن المنفذ) | SIP / XMPP / Matrix |
7. تحسين DNS — كيف تجعل التحليل أسرع
7.1 اختر محللًا عوديًا قريبًا
في البر الرئيسي الصيني: 223.5.5.5 (Alibaba) / 119.29.29.29 (DNSPod) هما الأسرع في تحليل المواقع داخل الصين. وفي بقية العالم: 1.1.1.1 (Cloudflare، صاحب أوسع انتشار لنقاط Anycast) / 8.8.8.8 (Google). راجعدليل محللات DNS العامة.
7.2 تفعيل DoH (DNS-over-HTTPS)
يمنع تشفير استعلامات DNS عبر HTTPS مزودي خدمة الإنترنت من الاطلاع عليها أو التلاعب بها (ويصد اختطاف NXDOMAIN). تدعمه Chrome وFirefox وEdge جميعها — ما عليك سوى تفعيله من الإعدادات.
7.3 التحليل المسبق (DNS Prefetch)
أضف <link rel="dns-prefetch" href="//api.example.com"> إلى <head> في موقعك ليحلل المتصفح النطاق في أوقات الخمول — وعند حدوث الطلب الفعلي تكون الإجابة جاهزة في الذاكرة المؤقتة.
7.4 استخدم CDN مع NS بتقنية Anycast
ضع خوادم NS الموثوقة على Anycast (Cloudflare / Route 53) ليصل المستخدمون حول العالم إلى أقرب نسخة — مما يخفض زمن الاستجابة في الخطوة ③ من 100ms إلى 10ms.
7.5 اضبط TTL بحكمة
اضبط TTL طويلًا (1-7 أيام) للسجلات نادرة التغيير (NS / MX)؛ واضبط TTL قصيرًا (5-60 دقيقة) لسجلات A التي قد تحتاج إلى التبديل.
8. الأسئلة الشائعة
8.1 غيرت DNS لكن لم يحدث شيء — لماذا؟
فكر أولًا في قيمة TTL الحالية. بعد تغيير DNS، سيواصل كل محلل عودي إعادة IP القديم حتى تنتهي مدة TTL القديمة. ويستغرق «الانتشار العالمي» عمومًا نحو ضعف مدة TTL (لمراعاة عدم تزامن المحللات فيما بينها).
- على جهاز العميل:
ipconfig /flushdns(Windows) /sudo killall -HUP mDNSResponder(macOS) - انتظار انتهاء صلاحية الذاكرة المؤقتة لمحلل عودي عام: يوفر كل من 1.1.1.1 / 8.8.8.8 أداة «purge» خاصة به لمسحها يدويًا
8.2 بعض المستخدمين يصلون إلى الموقع وآخرون لا — تلويث DNS
شائع عند الوصول إلى مواقع خارجية من البر الرئيسي الصيني — بسبب حقن GFW استجابات DNS مزيفة / واختطاف مزودي خدمة الإنترنت للاستعلامات. ويمكن بالتحول إلى DoH (DNS مشفر في المتصفح) تجاوز معظم حالات تلويث DNS.
8.3 متى يمكنني استخدام النطاق بعد تسجيله؟
بعد التسجيل، تدفع جهة تسجيل TLD سجلات NS الخاصة بك إلى الخوادم الموثوقة للنطاقات العليا مثل .com / .net وغيرها — ويستغرق ذلك عادةً من 15 دقيقة إلى 24 ساعة. وقد تتطلب نطاقات .cn / .com.cn الحصول على ترخيص ICP قبل أن يتسنى تحليلها داخل البر الرئيسي الصيني.
قراءات إضافية
- لماذا توجد 13 مجموعة فقط من خوادم الجذرقمة مسار DNS — الخطوة ④
- دليل DNS العام حول العالمأي محلل DNS هو الأسرع في التحليل
- RFC 1035 — المواصفة الأصلية لبروتوكول DNS
- RFC 8484 — DoH (DNS عبر HTTPS)