ما هو TTL؟
TTL (مدة البقاء) إعداد في DNS يحدد بالثواني المدة التي يجوز للمحللات والمتصفحات والأنظمة الأخرى خلالها تخزين سجل DNS قبل طلب نسخة جديدة من خوادم الأسماء الموثوقة. توازن قيم TTL بين الانتشار السريع لتغييرات DNS عند استخدام قيمة منخفضة، وتقليل حمل الخادم وتحسين الأداء عند استخدام قيمة مرتفعة.كيف يعمل TTL؟
DNS Query Flow with TTL:
1. Client queries resolver for example.com
2. Resolver checks cache - not found
3. Resolver queries authoritative server
4. Server returns: A record 192.0.2.1, TTL 3600
5. Resolver caches for 3600 seconds (1 hour)
6. Subsequent queries served from cache
7. After 3600s, cache expires, cycle repeats
قيم TTL الشائعة
| TTL (بالثواني) | المدة | حالة الاستخدام |
|---|---|---|
| 60-300 | 1-5 دقائق | أثناء تغييرات DNS أو التحويل عند الفشل |
| 300-900 | 5-15 دقيقة | الخدمات الديناميكية |
| 3600 | ساعة واحدة | المواقع المعتادة |
| 14400 | 4 ساعات | السجلات المستقرة |
| 86400 | 24 ساعة | السجلات التي نادراً ما تتغير |
TTL في سجلات DNS
صيغة السجل
example.com. 3600 IN A 192.0.2.1
│
└── TTL in seconds
TTL مختلف لكل سجل
; Stable nameservers - high TTL
example.com. 86400 IN NS ns1.example.com.
; Web server - moderate TTL
www.example.com. 3600 IN A 192.0.2.1
; Dynamic content - low TTL
api.example.com. 300 IN A 192.0.2.50
استراتيجية TTL
قبل تغييرات DNS
اخفض TTL قبل التغييرات المخطط لها:
Timeline:
Day -2: Lower TTL from 86400 to 300
Day 0: Make DNS change
Day 0+: Change propagates within 5 minutes
Day +1: Raise TTL back to 86400
المفاضلات
| TTL منخفض (60-300) | TTL مرتفع (3600+) |
|---|---|
| انتشار سريع | انتشار بطيء |
| استعلامات DNS أكثر | استعلامات DNS أقل |
| حمل أعلى على الخادم | حمل أقل على الخادم |
| أفضل للتحويل عند الفشل | أفضل للاستقرار |
| زمن استجابة أعلى | زمن استجابة أقل |
TTL وانتشار DNS
يؤثر TTL مباشرة في زمن الانتشار:
Max propagation time ≈ Highest cached TTL
If TTL = 86400 (24 hours):
- Some users see old IP for up to 24 hours
- Global propagation: up to 24-48 hours
If TTL = 300 (5 minutes):
- Most users see new IP within 5-10 minutes
- Global propagation: under 1 hour
فحص TTL الحالي
باستخدام dig
dig example.com A
;; ANSWER SECTION:
example.com. 3542 IN A 192.0.2.1
│
└── Remaining TTL (seconds until cache expires)
باستخدام nslookup
nslookup -debug example.com
أفضل الممارسات
1. استخدم قيماً مناسبة: طابق TTL مع تقلب السجل.
2. اخفض القيمة قبل التغييرات: خفض TTL قبل التحديث بـ24-48 ساعة.
3. راعِ طبقات التخزين: تضيف CDN والمتصفحات تأخيرات.
4. وازن الحمل والسرعة: لا تضع قيمة منخفضة بلا حاجة.
5. راقب بعد التغييرات: تحقق من اكتمال الانتشار.
6. وثق المعايير: ضع سياسات TTL واضحة.
TTL مفهوم أساسي في DNS، يؤثر مباشرة في سرعة سريان تغييرات DNS عبر الإنترنت وفي مقدار الحمل الذي تعالجه خوادم الأسماء.