ما هو انتشار DNS؟
يشير انتشار DNS إلى الوقت الذي تستغرقه تغييرات سجلات DNS حتى تُعرف عبر الإنترنت. فعند تغيير خوادم الأسماء أو سجلات A أو MX لا تصبح التغييرات فعالة فوراً، بل تنتهي النسخ المخزنة مؤقتاً وتُجلب الإجابات الجديدة من الخوادم الموثوقة.
فهم «الانتشار»
مصطلح «الانتشار» مضلل قليلاً، لأن تغييرات DNS لا تنتشر كرسالة نشطة. بل:
1. تحدّث السجلات لدى خادم الأسماء الموثوق.
2. تنتهي النسخ المؤقتة وفق TTL (مدة البقاء).
3. تجلب الاستعلامات الجديدة السجلات المحدثة.
4. تستمر النسخ القديمة حتى ينتهي TTL.
الأدق وصف العملية بانتهاء ذاكرة DNS المؤقتة، لكن مصطلح الانتشار شائع الاستخدام.
كيف تعمل تغييرات DNS؟
عملية التحديث
Step 1: Update DNS records
example.com A record: 203.0.113.50 → 203.0.113.51
Step 2: Authoritative nameserver immediately serves new record
Step 3: Existing cached copies remain valid until TTL expires
Step 4: New queries after TTL expiration receive updated record
Step 5: All caches eventually expire and refresh
→ "Propagation complete"
مثال على الجدول الزمني
Time: 10:00 - DNS updated (TTL: 300s / 5 minutes)
Resolver A (cached at 09:58):
09:58 - Cached old IP, expires 10:03
10:03 - Cache expires, queries again, gets new IP
Resolver B (cached at 10:01):
10:01 - Cached old IP, expires 10:06
10:06 - Cache expires, queries again, gets new IP
Resolver C (queries at 10:05):
10:05 - No cache, queries immediately, gets new IP
All resolvers have new IP by: 10:06
Propagation time: 6 minutes (worst case based on TTL)
عوامل تؤثر في مدة الانتشار
TTL (مدة البقاء)
أهم عامل منفرد:
| قيمة TTL | مدة الانتشار | حالة الاستخدام |
|---|---|---|
| 60s | 1-2 دقيقة | عمليات الترحيل النشطة وموازنة الحمل |
| 300s (5 دقائق) | 5-10 دقائق | تغييرات الإنتاج والافتراض المعقول |
| 3600s (ساعة) | 1-2 ساعة | بنية مستقرة |
| 86400s (24 ساعة) | 24-48 ساعة | سجلات نادراً ما تتغير |
تغييرات خوادم الأسماء
تستغرق تغييرات خوادم الأسماء وقتاً أطول:
Registry Level: 24-48 hours (TLD nameserver cache)
Resolver Level: Based on NS record TTL
Total Time: Up to 48 hours worst case
سلوك مزود الإنترنت والمحلل
لا تحترم كل محللات DNS قيم TTL تماماً:
المحللات المنضبطة: Google (8.8.8.8) وCloudflare (1.1.1.1) وOpenDNS.- تحترم TTL بدقة.
- انتشار سريع.
- قد تتجاهل TTL المنخفض.
- تخزن أطول من المحدد.
- قد تؤخر الانتشار ساعات.
التوزيع الجغرافي
تتحدث المناطق المختلفة في أوقات مختلفة بحسب ذاكرة محللها:
North America: 10:05 - Updated
Europe: 10:08 - Updated
Asia: 10:12 - Updated
التخزين المؤقت لدى العميل
قد تحتفظ ذاكرات محلية بالقيم القديمة:
- ذاكرة المتصفح: 60 ثانية عادةً.
- ذاكرة نظام التشغيل: من دقائق إلى ساعات.
- ذاكرة التطبيق: تختلف حسب التطبيق.
فحص انتشار DNS
أدوات الفحص الإلكترونية
whatsmydns.net: يعرض الحل من أكثر من 20 موقعاً حول العالم. dnschecker.org: يفحص سجلات A وAAAA وCNAME وMX وTXT عالمياً. فحص صحة DomScan:curl "https://domscan.net/v1/health?domain=example.com"
# Shows current DNS configuration
فحوصات سطر الأوامر
فحص محللات متعددة:# Google DNS
dig @8.8.8.8 example.com
# Cloudflare DNS
dig @1.1.1.1 example.com
# Your ISP (no @ server specified)
dig example.com
# Compare results
الاستعلام من خادم الأسماء الموثوق مباشرةً:
# Find nameservers
dig example.com NS
# Query authoritative NS directly
dig @ns1.example.com example.com
يعرض ذلك «الحقيقة» فوراً من دون ذاكرة مؤقتة.
الفحص من مواقع متعددة
# Using curl with DNS over HTTPS
curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
تقليل مدة الانتشار
قبل إجراء التغييرات
الخطوة 1: خفض TTL (قبل التغيير بـ24-48 ساعة)Old: example.com. 3600 IN A 203.0.113.50
New: example.com. 300 IN A 203.0.113.50
^^^
Reduced to 5 minutes
الخطوة 2: انتظر انتهاء TTL القديم
انتظر المدة الكاملة لـTTL القديم (3600 ثانية = ساعة).
الخطوة 3: غيّر DNSexample.com. 300 IN A 203.0.113.51
الخطوة 4: راقب الانتشار
افحص المحللات حول العالم.
الخطوة 5: أعد TTL بعد التأكد من النجاح:example.com. 3600 IN A 203.0.113.51
أثناء التغييرات
استخدم DNS Anycast عندما يناسبك، وراقب الانتشار باستمرار، واحتفظ بخطة رجوع وبالبنية القديمة حتى اكتمال التحديث.
سيناريوهات الانتشار الشائعة
تغيير سجل A
الوقت المتوقع: 5-30 دقيقة (بحسب TTL)# Before
example.com → 203.0.113.50
# After
example.com → 203.0.113.51
# Propagation: 1x TTL duration
تغيير سجل MX
الوقت المتوقع: 5-30 دقيقة (بحسب TTL) الخطر: قد تصل الرسائل إلى الخادم القديم أثناء الانتشار. التخفيف: أبقِ خادم البريد القديم فعالاً 24-48 ساعة.تغيير خوادم الأسماء
الوقت المتوقع: 24-48 ساعةWhy so long?
- TLD registry caches NS records
- Registry TTL often 24-48 hours
- No control over registry cache
أفضل ممارسة: جهز جميع السجلات لدى الخوادم الجديدة قبل التبديل.
إضافة نطاق فرعي جديد
الوقت المتوقع: من لحظي إلى ساعة. المشكلة الخفية: التخزين السلبي.If subdomain was queried and didn't exist:
→ NXDOMAIN cached (SOA minimum TTL)
→ New subdomain won't resolve until cache expires
التخفيف: خفض SOA minimum TTL قبل إضافة سجلات جديدة.
استكشاف مشكلات الانتشار
التغيير لا ينتشر
الفحص 1: تحقق من خادم الأسماء الموثوقdig @ns1.example.com example.com
# Should show new value
الفحص 2: تحقق من TTL
dig example.com | grep -i ttl
الفحص 3: افحص SOA للذاكرة السلبية
dig example.com SOA
# Look at minimum TTL field
الفحص 4: امسح الذاكرة المحلية
امسح ذاكرة المتصفح ونظام التشغيل والتطبيق.
انتشار جزئي
العرض: يرى بعض المستخدمين السجلات الجديدة ويرى آخرون القديمة. السبب: خزنت محللات مختلفة الإجابة في أوقات مختلفة. الحل: انتظر أقصى مدة TTL ثم امسح ذاكرات العملاء.انتشار عالق
العرض: بعد أيام، ما زالت بعض المحللات تقدم السجلات القديمة. السبب: تجاهل محلل مزود الإنترنت TTL أو كان مهيأً بصورة خاطئة. الحل:1. تحقق من صحة خادم الأسماء الموثوق.
2. تواصل مع مزود الإنترنت عند استمرار المشكلة.
3. يمكن للمستخدمين التبديل إلى DNS عام (8.8.8.8 و1.1.1.1).
انتشار DNS مقابل TTL الخاص بـDNS
| المفهوم | ما هو | المدة |
|---|---|---|
| TTL | مدة إمكانية تخزين السجل | يحددها مالك النطاق |
| الانتشار | زمن انتهاء جميع النسخ | نحو ضعفي TTL |
| TTL خادم الأسماء | مدة تخزين سجلات NS | غالباً 24-48 ساعة لدى السجل |
| التخزين السلبي | مدة تخزين NXDOMAIN | Minimum في SOA |
أفضل الممارسات
1. اخفض TTL قبل التغييرات: قبل تحديث DNS بـ24-48 ساعة.
2. استخدم TTL مناسباً: وازن بين الأداء والمرونة.
3. راقب عالمياً: افحص DNS من مناطق جغرافية متعددة.
4. أبقِ الخدمات القديمة فعالة: حتى اكتمال الانتشار.
5. وثّق التغييرات: سجل ماذا تغير ومتى.
6. اختبر بدقة: تحقق من السجلات قبل التبديل.
7. أبلغ المستخدمين: حذرهم من الاضطرابات القصيرة المحتملة.
8. استخدم DNS مُداراً: تقلل شبكات Anycast مدة الانتشار.
9. أتمت المراقبة: اضبط تنبيهات لتغييرات DNS وحالة الانتشار.
10. جهز خطة رجوع: اعرف كيف تعكس التغيير.
قائمة تحقق الانتشار
☐ Lower TTL 24-48 hours before change
☐ Wait for old TTL to expire
☐ Make DNS change
☐ Verify on authoritative nameservers
☐ Check multiple public resolvers
☐ Test from multiple geographic locations
☐ Monitor for 2x TTL duration
☐ Verify no errors reported
☐ Restore higher TTL if desired
☐ Document change completion
انتشار DNS نتيجة طبيعية لتخزين DNS المؤقت. يضمن فهم سلوك TTL والتخطيط للتغييرات وفقاً له تحديثات سلسة ومتوقعة مع أقل قدر من الاضطراب.