DNS Propagation Süresi: Yayılma Neden Uzun Sürer, Ne Yapılır
Nameserver’ı değiştirdiniz, kaydı doğru girdiniz, panelde her şey yeşil görünüyor. Ama siteye girdiğinizde hâlâ eski sunucu açılıyor. Meslektaşınız aynı adrese girdiğinde yeni site geliyor. Ortada bir hata yoktur; DNS önbelleğinin nasıl çalıştığını görüyorsunuzdur.
DNS yayılması aslında bir yayılma değildir. Değişikliğiniz kendi nameserver’ınızda anında geçerli olur. Bekleyen şey, dünyadaki çözümleyicilerin ellerindeki eski cevabın son kullanma süresinin dolmasıdır.
Bu farkı anlamak süreci yönetilebilir kılar: bekleme süresini önceden kısaltabilir, geçişi kesintisiz planlayabilir ve kendi bilgisayarınızda yeni sunucuyu herkesten önce test edebilirsiniz.
Neden anında olmuyor
Bir adresi yazdığınızda tarayıcı doğrudan sizin nameserver’ınıza gitmez. Arada bir önbellek zinciri vardır ve her halka cevabı bir süre saklar:
- Tarayıcı önbelleği: Chrome ve Firefox kendi içlerinde kısa süreli DNS önbelleği tutar, genelde birkaç dakika.
- İşletim sistemi önbelleği: Windows’ta DNS Client servisi, macOS’ta mDNSResponder cevabı saklar.
- Yerel ağ: Modem veya ofis sunucusu üzerindeki çözümleyici.
- ISP çözümleyicisi: Türk Telekom, Superonline gibi operatörlerin çözümleyicileri. Zincirin en yavaş halkası genelde budur; bazı operatörler TTL değerini yok sayıp kendi minimum sürelerini uygular.
- Yetkili nameserver: Sizin bölgenizi barındıran sunucu. Değişiklik burada zaten yapılmıştır.
Yani gecikme sizin tarafınızda değil, aradaki halkalardadır. Nameserver değişikliği yapıyorsanız zincire bir de üst seviye alan adı sunucularının kayıt yenileme süresi eklenir; bu yüzden kayıt değişikliği ile nameserver değişikliği aynı hızda ilerlemez. Ayrımı nameserver değiştirme yazısında ayrıntılandırdık.
TTL nedir ve neyi belirler
TTL (Time To Live), her DNS kaydına iliştirilmiş saniye cinsinden bir ömür değeridir. Çözümleyici kaydı aldığında bu süre boyunca tekrar sormaz.
| TTL değeri | Karşılığı | Ne zaman kullanılır |
|---|---|---|
| 300 | 5 dakika | Geçiş öncesi ve geçiş sırasında |
| 1800 | 30 dakika | Sık değişen kayıtlar |
| 3600 | 1 saat | Yaygın varsayılan |
| 14400 | 4 saat | Oturmuş yapılar |
| 86400 | 24 saat | Nadiren değişen kayıtlar |
Kritik nokta şudur: TTL’i düşürmek, düşürdüğünüz anda işe yaramaz. Çözümleyicilerdeki eski kayıt hâlâ eski TTL ile duruyordur. Bu yüzden TTL indirimi geçişten en az bir eski TTL süresi önce yapılmalıdır.
Gerçekte kaç saat sürer
Yaygın olarak söylenen 24-48 saat, en kötü senaryodur. Pratikte tipik süreler şöyledir:
- Aynı sunucudaki bir A kaydı değişikliği: TTL 3600 ise çoğu kullanıcı için 1 saat içinde.
- TTL 300 ile yapılan planlı geçiş: 5-15 dakika.
- Nameserver değişikliği: Genelde 2-6 saat, uçlarda 24 saate kadar.
- MX kaydı değişikliği: Gönderen sunucular da önbellek tuttuğu için 1-4 saat; e-postalarda kayıp yaşamamak için eski sunucuyu bu süre boyunca kapatmayın.
- Bazı ISP çözümleyicileri: TTL’i yok sayıp 24 saate kadar tutabilir. Kontrolünüz dışındadır.
48 saati geçen bir durumda beklemeyi bırakıp kayda bakın; büyük ihtimalle kayıt yanlış girilmiştir ya da alan adı hâlâ eski nameserver’ları gösteriyordur.
Geçişi kesintisiz planlama
- Geçişten 24-48 saat önce tüm ilgili kayıtların TTL değerini
300yapın. Bu adım en önemlisidir ve çoğu kişi atlar. - Yeni sunucuda siteyi kurun, dosyaları ve veritabanını taşıyın, hosts dosyasıyla test edin.
- E-posta hesaplarını yeni sunucuda birebir aynı adreslerle oluşturun ve içerikleri aktarın.
- Geçişi trafiğin en düşük olduğu saatte, tercihen gece yapın.
- Eski sunucuyu en az 7 gün açık tutun. Geç güncellenen çözümleyicilerden gelen ziyaretçiler ve e-postalar oraya düşmeye devam eder.
- Her şey oturduktan sonra TTL’i
3600veya14400değerine geri çıkarın.
Site taşıma sürecinin dosya ve veritabanı tarafını hosting taşıma rehberi yazısında bulabilirsiniz. Yeni sunucuda SSL sertifikasını da hazırlamayı unutmayın; DNS geçtiği anda sertifika yoksa ziyaretçiler uyarı ekranıyla karşılaşır. Sertifika seçenekleri için SSL sertifikaları sayfasına bakabilirsiniz.
Hosts dosyasıyla önden test
DNS’e hiç dokunmadan yeni sunucuyu kendi bilgisayarınızda test edebilirsiniz. Hosts dosyası, çözümleyicilerden önce okunur.
Windows’ta C:WindowsSystem32driversetchosts dosyasını Not Defteri’ni yönetici olarak çalıştırıp açın. macOS ve Linux’ta dosya /etc/hosts yolundadır. Sona şu satırları ekleyin:
203.0.113.10 firma.com
203.0.113.10 www.firma.com
IP adresini yeni sunucunuzunkiyle değiştirin. Kaydettikten sonra tarayıcıda firma.com adresine girdiğinizde yeni sunucu açılır, dünyanın geri kalanı hâlâ eskisini görür. Test bitince eklediğiniz satırları silmeyi unutmayın; unutulan hosts kaydı aylar sonra teşhis edilemeyen tuhaf sorunlara yol açar.
Önbellek temizleme komutları
- Windows: Komut istemini yönetici olarak açıp
ipconfig /flushdnsçalıştırın.Successfully flushed the DNS Resolver Cachemesajını görmelisiniz. - macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Chrome: Adres çubuğuna
chrome://net-internals/#dnsyazıp Clear host cache düğmesine basın. - Modem: Yeniden başlatmak yerel çözümleyici önbelleğini temizler.
Bu komutlar yalnızca sizin cihazınızı etkiler. ISP çözümleyicisindeki kaydı temizleyemezsiniz; orada TTL süresinin dolmasını beklemek gerekir.
Farklı noktalardan kontrol
Kendi bilgisayarınızdan gördüğünüz sonuç sizi yanıltır. Sorguyu farklı çözümleyicilere sorarak durumu ölçün:
nslookup firma.com 8.8.8.8ile Google’ın,nslookup firma.com 1.1.1.1ile Cloudflare’in ne gördüğünü öğrenin.- Linux veya macOS’ta
dig firma.com +noall +answerkomutu kalan TTL saniyesini de gösterir; sayı her sorguda azalıyorsa önbellekten okunuyor demektir. - Nameserver’ın gerçekte ne söylediğini görmek için doğrudan yetkili sunucuya sorun:
dig @fr1.cir.net.tr firma.com. Buradaki cevap doğruysa yapılacak tek şey beklemektir. - Telefonun mobil verisiyle siteye girin; farklı operatör, farklı çözümleyici demektir.
- Çevrimiçi propagation kontrol araçları farklı ülkelerden aynı anda sorgu atarak dünya genelindeki durumu tablo hâlinde gösterir.
Özetle
- DNS yayılması, değişikliğin dağılması değil eski önbelleklerin süresinin dolmasıdır.
- Geçişten en az bir TTL süresi önce TTL değerini
300yapın; asıl hız kazancı buradadır. - Kayıt değişikliği genelde 1 saat, nameserver değişikliği 2-6 saat içinde oturur; 48 saat en kötü senaryodur.
- Hosts dosyasıyla yeni sunucuyu önceden test edin, test bitince satırları silin.
- Eski sunucuyu en az bir hafta açık tutun, özellikle e-posta kaybı yaşamamak için.