"Kaydı değiştirdim, neden hâlâ eski sunucuya gidiyor?" — DNS destek hayatının en sık sorusu ve cevabı çoğu zaman iki harftir: TTL. Alan adı sistemleri dağıtık bir önbellek ağıdır; tarayıcıdan işletim sistemine, yerel çözümleyiciden sağlayıcıya kadar her katman cevabı bir süreliğine saklar. O sürenin adı TTL, yani Time To Live. Değişiklik, bu süreler dolduğunda anında değil, katman katman duyulur.

TTL: Sizin belirlediğiniz gecikme

TTL, cevabın önbellekte yaşayacağı saniye sayısıdır. Kayıtlarınızı 86400 saniyeye, yani bir güne ayarladıysanız, dünyanın bir ucundaki çözümleyici eski cevabı bir gün daha saklama hakkına sahiptir. Bu bir hata değil, tasarımın ta kendisidir. Taşınma planı yaparken kural şudur: geçişten 24-48 saat önce TTL'i kısın, alçak bir değere — 300 saniyeye — indirin; geçiş günü değişikliği yapın, her şey oturduktan sonra TTL'i normale döndürün.

; Taşınma öncesi: kısa TTL, hızlı geri dönüş imkânı
gazete.test.        300  IN  A     203.0.113.7
www.gazete.test.    300  IN  CNAME gazete.test.

; Taşınma oturduktan sonra: normale dön
gazete.test.      3600  IN  A     203.0.113.7

Yayılımın aslı: yayılmaz, dolar

"DNS yayılması" deyimi yanlış bir resim çizer: yeni cevap her yere aktarılmaz, eskiler sona erer. Sağlayıcınızın sunucuları değişikliği hemen bilir; gecikme, dünyadaki önbelleklerin dolmasından gelir. Bundan iki pratik sonuç çıkar. Birincisi, eski cevabı önbelleğine almış kullanıcıya değişikliği geriye dönüşü olmayan bir yolla erişemezsiniz — sabır tek çare. İkincisi, test yaparken kendi makinenizin önbelleğini atlamak gerektiğidir.

# Önbelleği atlayarak yetkili sunucudan doğrudan sorgu
dig @ns1.saglayici.test gazete.test A +norecurse

# Yerel çözümleyicinin gördüğü TTL'i görmek
dig gazete.test A | grep -E '^gazete|^;; ANSWER'

Sabır planı: taşınma gecesi için checklist

Taşınma gecesini kaosa çevirmemek için önceden yazılmış bir plan yeter. Önce tüm kayıtları ve mevcut TTL'leri envara çıkarın — CNAME zincirleri bile. TTL'i kısaltın ve eski cevapların önbelleklerde dolmasını bekleyin. Değişiklikten sonra iki yetkili sunucudan doğrulayın. En kritiği: eski sunucuyu hemen kapatmayın; en düşük TTL'iniz kadar, ısrarlı istemciler için bir kat daha uzun süre çalışmaya devam etsin. Kesintinin gerçek sebebi çoğu zaman DNS değil, aceleye getirilmiş bir kapatmadır.

DNS sabır işidir; plansız sabır kaosa, planlı sabır ise sorunsuz bir taşınmaya dönüşür. TTL'i yönetmek, envara çıkmak ve eski sunucuyu aceleyle kapatmamak — taşınma gecesinin üç sütunu. Gerisini, düşük TTL'li bir gece kendiliğinden halleder.

Bir de dünyanın değişen tarafı var: HTTP kesirli TTL'leri, tarayıcıların kendi DNS önbellekleri, ağ geçitlerinin ısrarcı çözümleyicileri. Modern istemcilerin çoğu kısa TTL'i saygıyla bekler ama bazı kurumsal ağlar kendi önbelleklerini kendi kurallarıyla yönetir ve sizin TTL'inize hiç bakmaz. Bu yüzden taşınma penceresini asla TTL toplamına eşit sanmayın; kayıtları değiştirdikten sonra en az bir gün, eski adresi hâlâ gören kullanıcı raporu gelebileceğini varsayın. Eski sunucuyu bu süre boyunca basit bir yönlendirmeyle yaşatırken, ona gelen istekleri loglayın — rapor gelen kullanıcıyı kendi ağınızda tanımak, "bizde düzgün gözüküyor" ile "kullanıcı haklı" tartışmasını bir kanıtla bitirir. Sabır, ölçüldüğünde savunulur.