DNS Yayılma Süresi Ne Kadar? (Propagation)
Değişikliğin neden hemen görünmediği ve dünya genelinde kontrol yöntemi.
DNS kaydını değiştirdiniz, siz yeni sitenizi görüyorsunuz, müşteri eskisini görüyor. Ya da tam tersi. Buna yaygın olarak DNS yayılması (propagation) deniyor ve süresi için "24 ile 48 saat" diye bir rakam dolaşıyor.
O rakam çoğu değişiklik için fazla, bazıları için doğru. Aslında olan şey yayılma değil, önbelleklerin süresinin dolması: TTL süresini hesaplamayı ayrı bir yazıda anlattık. Bu yazı pratik soruya bakıyor: değişiklik görünmüyorsa hangi katman eski cevabı tutuyor ve bunu nasıl bulursunuz?
Değişiklik türüne göre beklenen süre
"DNS değişikliği" tek bir işlem değil. Hangi kaydı değiştirdiğiniz, beklemeniz gereken süreyi belirliyor:
| Değişiklik | Neye bağlı | Tipik süre |
|---|---|---|
| A / AAAA / CNAME kaydı güncelleme | Eski kaydın TTL'i | Dakikalar – birkaç saat |
| MX kaydı güncelleme | Eski MX kaydının TTL'i | Dakikalar – birkaç saat |
| İsim sunucusu (NS) değişikliği | Üst bölgedeki NS kaydının TTL'i | Birkaç saat – 2 gün |
| Yeni alan adı, ilk kez yayında | Kayıt şirketinin bölgeye iletmesi | Dakikalar – birkaç saat |
| Yeni alt alan adı, önceden sorgulandıysa | "Bulunamadı" cevabının önbelleği | SOA kaydındaki süre kadar |
"48 saat" rakamı üçüncü satırdan geliyor. Sitenizi başka bir barındırma firmasına taşıyıp isim sunucularını değiştirdiğinizde üst bölgedeki (.com, .com.tr) kayıt günlerce önbellekte kalabiliyor ve bunun üzerinde sizin bir kontrolünüz yok. NS kaydı yazısında bu katmanın neden sizin elinizde olmadığını anlattık.
Tek bir A kaydını değiştirdiyseniz ve TTL 3600 saniyeyse, bir saat sonra hâlâ eski adresi görmek yayılma değil, bir katmanın kuralı çiğnediği anlamına geliyor. Onu bulmak lazım.
Teşhis merdiveni: yukarıdan aşağı
Bir DNS cevabı sizin tarayıcınıza gelene kadar beş durağa uğruyor. Her birinde eski cevap takılı kalabilir. Kontrolü kaynaktan başlayıp size doğru yapın; kaynak yanlışsa aşağıdakilere bakmanın anlamı yok.
- Yetkili sunucu. Kaydın asıl sahibi. Değişikliği doğru yere mi yaptınız? Alan adınız başka bir firmanın isim sunucularını gösteriyorsa, kayıt şirketinin panelinde yaptığınız değişiklik hiçbir yere gitmez.
- Genel çözümleyiciler. Google, Cloudflare, operatörünüzün sunucusu. Her biri kaydı kendi TTL'i dolana kadar tutuyor.
- İşletim sistemi önbelleği. Windows ve macOS cevapları kendi içinde de saklıyor.
- Tarayıcı. Chrome ve Firefox'un ayrı bir DNS önbelleği var; üstüne açık bağlantıları yeniden kullanıyorlar.
- Barındırma ve CDN. DNS doğru olsa bile karşı taraftaki sunucu eski sayfayı önbellekten veriyor olabilir.
Her katmanı nasıl kontrol edersiniz
| Katman | Kontrol | Ne görmelisiniz |
|---|---|---|
| Yetkili sunucu | nslookup alanadi.com ns1.saglayici.com | Yeni adres |
| nslookup alanadi.com 8.8.8.8 | Yeni ya da eski adres | |
| Cloudflare | nslookup alanadi.com 1.1.1.1 | Yeni ya da eski adres |
| Kendi bilgisayarınız | nslookup alanadi.com | Operatörün ya da modemin cevabı |
| Tarayıcı | Gizli pencere + farklı tarayıcı | Sayfa neyi gösteriyor |
Birinci satırı atlamayın. "Yayılmıyor" diye beklenen vakaların önemli bir kısmında sorun yetkili sunucuda: değişiklik yanlış panele yapılmış, kaydet düğmesine basılmamış ya da aynı ada iki çelişen kayıt girilmiş. Yetkili sunucu eskiyi veriyorsa beklemenin sonu yok.
Yetkili sunucunun adını bilmiyorsanız DNS sorgulama aracında NS kaydını sorgulayın; çıkan adresler yetkili sunuculardır. Komut satırından sorgulamanın diğer yollarını da ayrıca anlattık.
Genel çözümleyici eskiyi veriyorsa
Yetkili sunucu yeni adresi veriyor, Google eskisini veriyor: bu normal. Google değişiklikten önce kaydı sorgulamış ve TTL dolana kadar tutuyor. Beklemek dışında iki seçenek var:
- Google'ın ve Cloudflare'ın herkese açık önbellek temizleme sayfaları var. Alan adını girip kayıt türünü seçerek o çözümleyicinin önbelleğini boşaltabiliyorsunuz. Operatör sunucuları için böyle bir yol yok.
- Kendi bilgisayarınızda geçici olarak DNS sunucusunu değiştirmek. Windows için yolu ayrı bir yazıda anlattık.
Operatörünüzün çözümleyicisi TTL'i uzatıyor olabilir — bazı sunucular çok kısa TTL'leri alt sınıra yuvarlıyor. Böyle bir durumda sizin yapabileceğiniz tek şey beklemek; müşterinizin de aynı operatörü kullandığını varsayarak iletişim kurmak.
Bilgisayar ve tarayıcı eskiyi tutuyorsa
nslookup alanadi.com 8.8.8.8 yeni adresi veriyor ama sayfa hâlâ eski: sorun sizin makinenizde. Sırası şu:
- İşletim sistemi önbelleğini temizleyin (komutlar burada).
- Tarayıcıyı tamamen kapatıp açın; yalnızca sekmeyi değil.
- Hosts dosyasına bakın. Test için eklenmiş bir satır DNS'i tamamen devre dışı bırakır ve aylarca unutulabilir.
Hosts dosyası maddesi sık gözden kaçıyor. Taşıma öncesinde yeni sunucuyu denemek için eklenen satır, taşıma bittikten sonra bu kez tersine çalışıyor: herkes yeni sunucuyu görürken siz eskisini görüyorsunuz, ya da eski sunucu kapatıldıysa hiçbir şey göremiyorsunuz.
"Dünya genelinde kontrol" siteleri ne ölçüyor
Farklı ülkelerdeki sunuculardan aynı kaydı sorgulayıp harita üzerinde yeşil ve kırmızı gösteren siteler var. Faydalılar, ama neyi ölçtüklerini bilmek gerekiyor:
| Ölçtüğü | Ölçmediği |
|---|---|
| Belirli genel çözümleyicilerin o anki cevabı | Sizin operatörünüzün cevabı |
| Kaydın yetkili sunucuda doğru olup olmadığı (dolaylı) | Ziyaretçinin bilgisayarındaki önbellek |
| Farklı bölgelerde farklı cevap olup olmadığı | Sitenin gerçekten açılıp açılmadığı |
Haritanın tamamı yeşilse ama müşteri hâlâ eski siteyi görüyorsa, sorun onun bilgisayarında ya da onun operatöründe. Haritanın tamamı kırmızıysa, yani hiçbir yerde yeni adres yoksa, sorun büyük ihtimalle yetkili sunucuda — birinci basamağa dönün.
DNS doğru, site hâlâ eski
Her katman yeni adresi gösteriyor ama sayfa değişmedi. Bu DNS sorunu değil. Olası sebepler:
- Barındırma firmasının önbellek katmanı eski sayfayı veriyor.
- Site bir CDN arkasında ve CDN eski sunucunun adresini tutuyor (CDN panelindeki kaynak adresi DNS'ten ayrı bir ayar).
- Yeni sunucuya dosyalar gerçekten yüklenmemiş.
Hangi sunucunun cevap verdiğini HTTP başlık kontrolüyle görebilirsiniz: Server ve önbellek başlıkları cevabın nereden geldiğini çoğunlukla ele veriyor.
Taşımadan önce yapılacak tek şey
Bekleme süresini baştan kısaltmanın yolu, değişiklikten en az bir gün önce ilgili kaydın TTL'ini 300 saniyeye indirmek. Değişikliği yapıp sorunsuz çalıştığını gördükten sonra TTL'i eski değerine çekin. Bu adım NS değişikliğinde işe yaramıyor, çünkü o TTL üst bölgenin elinde; ama A, CNAME ve MX kayıtlarında bekleme süresini dakikalara indiriyor.
Sıkça sorulan sorular
DNS yayılması gerçekten 48 saat mi sürer?
Çoğu kayıt değişikliği için hayır. A, CNAME ve MX kayıtları eski kaydın TTL süresi kadar sürer; bu çoğunlukla bir saat ya da daha azdır. 48 saat rakamı isim sunucusu değişikliğinden gelir.
Ben yeni siteyi görüyorum, başkası eskisini görüyor. Neden?
İki kişi farklı DNS çözümleyicisi kullanıyor ve biri kaydı değişiklikten önce önbelleğe almış. Onun çözümleyicisinin TTL süresi dolunca o da yeni siteyi görür.
Yayılmayı hızlandırmanın yolu var mı?
Değişiklikten sonra dünya genelini hızlandıramazsınız. Değişiklikten bir gün önce TTL’i 300 saniyeye indirmek bekleme süresini kısaltır. Kendi bilgisayarınızda önbellek temizleyebilir ya da DNS sunucusunu değiştirebilirsiniz.
Hiçbir yerde yeni adres görünmüyorsa ne yapmalıyım?
Önce yetkili sunucuyu doğrudan sorgulayın. Orada da eski adres varsa değişiklik yanlış panele yapılmıştır ya da kaydedilmemiştir; beklemek sorunu çözmez.
DNS doğru ama site hâlâ eski. Sebep ne olabilir?
Barındırma firmasının ya da CDN’in önbelleği, tarayıcı önbelleği veya hosts dosyasında unutulmuş bir satır. HTTP başlıklarına bakarak cevabı hangi sunucunun verdiğini görebilirsiniz.