TTL nedir?
TTL (Time To Live), bir DNS kaydının çözümleyiciler, tarayıcılar ve diğer sistemler tarafından yetkili ad sunucularından güncel kopyası istenmeden önce kaç saniye önbellekte tutulacağını belirleyen DNS ayarıdır. TTL değerleri, DNS değişikliklerinin hızlı yayılmasıyla (düşük TTL) daha az sunucu yükü ve daha iyi performans (yüksek TTL) arasında denge kurar.TTL nasıl çalışır?
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
Çözümleyici önbellekte bir kayıt bulduğunda kalan TTL'yi azaltarak yanıt verebilir. Yetkili sunucudaki yeni değer, eski önbellek girdisinin TTL'si dolana kadar bazı istemcilere gösterilmeyebilir. Negatif yanıtların saklanma süresi SOA ayarlarına da bağlı olabilir.
Yaygın TTL değerleri
| TTL (saniye) | Süre | Kullanım alanı |
|---|---|---|
| 60-300 | 1-5 dakika | DNS değişiklikleri ve yük devretme sırasında |
| 300-900 | 5-15 dakika | Dinamik hizmetler |
| 3600 | 1 saat | Standart web siteleri |
| 14400 | 4 saat | Kararlı kayıtlar |
| 86400 | 24 saat | Nadiren değişen kayıtlar |
DNS kayıtlarında TTL
Kayıt biçimi
example.com. 3600 IN A 192.0.2.1
│
└── TTL in seconds
TTL, kaynak kaydında saniye cinsinden belirtilir. Yüksek TTL sorgu yükünü azaltır ancak planlı değişikliklerin görünmesini geciktirir; düşük TTL ise taşınma veya sık değişen uç noktalar için daha hızlı güncelleme sağlayabilir.
Kayıt başına farklı TTL değerleri
; 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
İsim sunucuları gibi seyrek değişen kayıtlar için uzun, web sunucuları için orta, dinamik içerik veya yük devretme uç noktaları için daha kısa TTL seçilebilir. Kısa TTL hızlı güncelleme garantisi değildir; istemci ve ara ağ önbellekleri ayrıca davranabilir.
TTL stratejisi
DNS değişikliklerinden önce
Planlanan değişikliklerden önce TTL'yi düşürün:
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
Eski TTL değerini önceden düşürmek, değişiklik anında hâlâ yüksek TTL taşıyan önbelleklerin sayısını azaltır. Değişiklikten sonra farklı özyinelemeli çözümleyicilerde, doğrudan yetkili sunucuda ve uygulamanın gerçek istemci yolunda ayrı test yapın.
Ödünleşimler
| Düşük TTL (60-300) | Yüksek TTL (3600+) |
|---|---|
| Hızlı yayılım | Yavaş yayılım |
| Daha çok DNS sorgusu | Daha az DNS sorgusu |
| Daha yüksek sunucu yükü | Daha düşük sunucu yükü |
| Yük devretme için daha iyi | Kararlılık için daha iyi |
| Daha yüksek gecikme | Daha düşük gecikme |
TTL ve DNS yayılımı
TTL yayılma süresini doğrudan etkiler:
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
Yüksek önbelleğe alınmış TTL, teorik en uzun yayılma süresini belirler. Örneğin TTL 86400 (24 saat) ise bazı kullanıcılar eski IP'yi 24 saate kadar görebilir ve küresel yayılım 24-48 saat sürebilir. TTL 300 (5 dakika) olduğunda çoğu kullanıcı yeni IP'yi 5-10 dakika içinde görür, ancak tüm gözlem noktaları bir saatten kısa sürede güncellenmeyebilir.
Geçerli TTL'yi kontrol etme
dig kullanımı
dig example.com A
;; ANSWER SECTION:
example.com. 3542 IN A 192.0.2.1
│
└── Remaining TTL (seconds until cache expires)
dig çıktısındaki kalan TTL, yanıtın önbellekte ne kadar daha geçerli olabileceğini saniye cinsinden gösterir.
nslookup kullanımı
nslookup -debug example.com
TTL'yi yalnızca yayılma göstergesi olarak yorumlamayın. Kayıt türünü, çözümleyici önbellek durumunu, negatif önbelleğe almayı ve DNSSEC doğrulamasını da kaydedin. Sağlık raporlarında TTL süresi içinde geçerli olan eski yanıtı hata diye sınıflandırmak yerine gözlenen TTL'yi ve sorgu zamanını belirtin.
En iyi uygulamalar
1. Uygun değerler kullanın: TTL'yi kaydın değişkenliğine göre belirleyin
2. Değişikliklerden önce düşürün: TTL'yi 24-48 saat önceden azaltın
3. Önbellekleme katmanlarını hesaba katın: CDN'ler ve tarayıcılar ek gecikme yaratabilir
4. Yük ile hızı dengeleyin: Gereksiz derecede düşük değerler kullanmayın
5. Değişikliklerden sonra izleyin: Yayılımın tamamlandığını doğrulayın
6. Standartları belgeleyin: TTL politikaları oluşturun
TTL, DNS değişikliklerinin internet genelinde ne kadar hızlı etkili olacağını ve ad sunucularının ne kadar yük taşıyacağını doğrudan etkileyen temel bir DNS kavramıdır.