İçeriğe geç
  • Hafta içi 08:00 – 18:00 · Destek 7/24
  1. Ana Sayfa
  2. Blog
  3. Alan Adı ve E-posta

DNS yayılımı nedir, ne kadar sürer? TTL'i kullanarak beklemeyi kısaltmak

DNS değişikliğiniz "yayılmıyor" değil, önbelleklerde eski cevabın süresi doluyor. Yayılmanın gerçekte nasıl çalıştığı, TTL ile beklemeyi önceden kısaltmak, NS değişikliğinin neden daha uzun sürdüğü ve önbellekleri temizleme komutları.

Merkezdeki bir sunucudan dünyaya yayılan bağlantı halkalarını anlatan izometrik çizim

"DNS yayılımı" denince değişikliğinizin internete yavaş yavaş dağıldığı düşünülür. Gerçekte hiçbir şey dağılmaz: yeni kayıt, kaydettiğiniz anda yetkili DNS sunucularındadır. Beklediğiniz şey, dünyanın dört bir yanındaki çözücülerin önbelleğinde duran eski cevabın süresinin dolmasıdır. Bu farkı anlamak, beklemeyi tahmin etmeyi ve çoğu zaman tamamen ortadan kaldırmayı sağlar.

Yayılım aslında nasıl işler?

Bir ziyaretçi alan adınızı yazdığında bilgisayarı doğrudan sizin DNS sunucunuza sormaz. Soru önce bir çözücüye (internet servis sağlayıcınızınki, 1.1.1.1, 8.8.8.8 ya da şirket ağındaki sunucu) gider. Çözücü cevabı yetkili sunucudan alır, kullanıcıya verir ve aynı soruyu bir daha sormamak için TTL (Time To Live) süresi boyunca önbelleğinde tutar. O süre içinde siz kaydı değiştirseniz bile o çözücüyü kullanan herkes eski cevabı alır.

Bunu test sunucumuzdan izleyebilirsiniz. Yetkili sunucu kaydı 300 saniyelik TTL ile veriyor; sunucunun kendi önbellekli çözücüsü ise aynı cevabı geri sayan bir TTL ile döndürüyor:

# Yetkili sunucu: her zaman tam TTL
$ dig +noall +answer A example.com @hera.ns.cloudflare.com
example.com.        300    IN    A    172.66.147.243
example.com.        300    IN    A    104.20.23.154

# Önbellekli çözücü: kalan süre
$ dig +noall +answer A example.com @127.0.0.53
example.com.        250    IN    A    104.20.23.154
# 20 saniye sonra
$ dig +noall +answer A example.com @127.0.0.53
example.com.        229    IN    A    172.66.147.243

Önbellekteki kayıt 229 saniye daha geçerli. Kayıt şu anda değişse bu çözücü yeni adresi en geç 229 saniye sonra öğrenir. "Yayılma süresi" dediğimiz şey, dünyadaki bütün çözücüler için bu sayının sıfıra inmesidir; yani en kötü durumda eski TTL kadar.

TTL zaman çizelgesi: TTL önceden düşürülürse değişiklik dakikalar içinde her yerde görünür Hazırlıksız değişiklik (TTL 86400) Değişiklik Bazı çözücüler 24 saate kadar eski adresi verir Planlı değişiklik TTL 86400 → 300 eski TTL kadar bekle (24 sa) Değişiklik ≤ 5 dakika İş bitince TTL yeniden yükseltilir (ör. 3600). Bekleme, değişiklikten ÖNCE yapılır.
TTL'i önceden düşürmek, değişiklik anındaki belirsizliği eski TTL'den yeni TTL'e indirir.

Kayıt değişikliği ile NS değişikliği aynı değildir

DeğişiklikBekleme süresini ne belirlerTipik süre
A, AAAA, CNAME, MX, TXT kaydıDeğiştirilen kaydın eski TTL değeriDakikalar - 1 gün
Yeni eklenen kayıtDaha önce sorulduysa "kayıt yok" cevabının önbellek süresi (SOA kaydının son alanı)Dakikalar - 1 saat
NS değişikliği (DNS sağlayıcısını değiştirmek)Üst alan adındaki yetkilendirme kaydının TTL'i.com.tr: 12 saat, .com: 48 saat

NS değişikliğini siz düşüremezsiniz, çünkü o kayıt sizin değil üst alan adının (.com.tr için TRABİS, .com için Verisign) sunucularındadır. .com.tr yetkilendirmesini doğrudan .tr sunucusuna sorduğumuzda TTL 43200 saniye (12 saat) dönüyor:

$ dig +noall +authority NS turkcell.com.tr @ns43.ns.tr
turkcell.com.tr.    43200   IN   NS   ns1.turkcell.com.tr.
turkcell.com.tr.    43200   IN   NS   ns2.turkcell.com.tr.

Bir de olumsuz önbellek var: Bir alt alan adını henüz oluşturmadan biri sorduysa (örneğin siz test etmek için), çözücü "böyle bir kayıt yok" cevabını da önbelleğe alır. Bu sürenin üst sınırı alan adınızın SOA kaydındaki son değerdir. Kaydı oluşturmadan sorgulamamak bu bekleyişi önler.

Kayıt silmek de aynı kurala tabidir: sildiğiniz bir kaydın eski cevabı, TTL'i dolana kadar önbelleklerde yaşamaya devam eder. Bir alt alan adını kapatıp başka bir yere yönlendirecekseniz silmeden önce TTL'ini düşürmek burada da işe yarar.

Beklemeyi kısaltma planı

  1. Mevcut TTL'i öğrenin: dig +noall +answer A ornek.com.tr @yetkili-sunucu. İkinci sütun TTL'dir.
  2. TTL'i düşürün: Değişiklik yapacağınız kayıtların TTL'ini 300 saniyeye çekin.
  3. Eski TTL kadar bekleyin: Eski değer 86400 ise bir gün. Bu bekleyiş değişiklikten önce yapıldığı için kimseyi etkilemez.
  4. Değişikliği yapın: Artık her çözücü en geç beş dakika içinde yeni cevabı alır.
  5. Eski sunucuyu hemen kapatmayın: Geç kalan çözücüler ve uygulama önbellekleri için bir-iki gün daha çalışır tutun. Site taşırken izlenecek sıra kesintisiz site taşıma yazımızda.
  6. TTL'i geri yükseltin: 3600 gibi bir değer, DNS sunucularınıza gereksiz yük bindirmez.

TTL'e uymayan önbellekler

Teori "en kötü durumda eski TTL kadar" der; pratikte birkaç istisna vardır ve "yayılmadı" şikâyetlerinin çoğu bunlardan gelir:

  • Asgari TTL uygulayan çözücüler: Bazı servis sağlayıcı çözücüleri çok kısa TTL'leri kendi belirledikleri asgari bir süreye yükseltir. 60 saniyelik bir TTL bu çözücülerde birkaç dakika yaşayabilir.
  • Tarayıcı ve işletim sistemi önbelleği: Tarayıcılar ve işletim sistemleri çözülmüş adresleri kısa süre kendileri de tutar; açık bir sekme, eski sunucuya bağlı kalmaya devam edebilir.
  • Uygulama önbelleği: Uzun süre çalışan sunucu uygulamaları (Java tabanlı servisler, bağlantı havuzları) adresi açılışta çözüp yeniden başlatılana kadar kullanabilir. Bir API'nin adresini değiştirdiyseniz onu çağıran servisleri yeniden başlatmak gerekebilir.
  • Sabit kayıtlar: Bilgisayarındaki hosts dosyasına adres yazmış bir geliştirici, DNS ne derse desin eski sunucuyu görür.

E-posta taşırken dikkat

MX kaydını yeni posta sunucusuna çevirdiğinizde, bazı gönderen sunucular eski TTL süresi boyunca iletiyi eski sunucuya teslim etmeye devam eder. Eski posta sunucusunu birkaç gün açık tutun ve geç gelen iletileri yeni sunucuya aktarın; aksi halde bu iletiler sessizce kaybolur. MX ile birlikte SPF kaydını da güncellemeyi unutmayın: yeni sunucunun IP'si kayıtta yoksa giden iletileriniz şüpheli işaretlenir. Ayrıntı: SPF kaydı nasıl yapılır.

Yayılımı nasıl kontrol edersiniz?

Kendi bilgisayarınızdan yaptığınız sorgu yalnız sizin çözücünüzün önbelleğini gösterir. Farklı ülkelerdeki ve farklı sağlayıcılardaki çözücülerin ne gördüğünü tek ekranda karşılaştırmak için DNS yayılım kontrolü aracını kullanın. Kaydın yetkili sunucudaki değerini görmek için ise DNS sorgulama aracı ya da komut satırında yetkili sunucuya doğrudan sorgu:

dig +short NS ornek.com.tr
dig +noall +answer A ornek.com.tr @ns1.saglayici.com

Yetkili sunucu yeni değeri veriyorsa sizin tarafınızda yapılacak iş bitmiştir; geri kalan, önbelleklerin süresinin dolmasıdır.

DNS sağlayıcısını değiştirirken izlenecek sıra

NS değişikliği, kayıt değişikliğinden daha uzun süren ve geri alınması daha zor bir işlemdir. Kesintisiz geçiş için:

  1. Yeni sağlayıcıda bölgeyi eksiksiz kurun. A, AAAA, MX, TXT (SPF, DKIM, DMARC), CNAME ve SRV kayıtlarının hepsini kopyalayın. Eski sağlayıcının panelindeki listeyi kayıt kayıt karşılaştırın; en sık unutulan, DKIM kayıtları ve doğrulama TXT'leridir.
  2. Yeni sunucuları doğrudan sorgulayın. dig +short MX ornek.com.tr @yeni-ns1.saglayici.com gibi sorgularla her kaydın yeni sunucuda doğru cevap verdiğini görün.
  3. DNSSEC açıksa önce onu çözün. Üst alan adında eski sağlayıcının anahtarına ait bir DS kaydı varken NS'i değiştirirseniz, doğrulama yapan çözücüler alan adınızı hiç çözemez. DS kaydını kaldırın, en az üst alan adındaki TTL kadar bekleyin, NS'i değiştirin, sonra yeni sağlayıcıda DNSSEC'i yeniden açın.
  4. NS kayıtlarını kayıt firmasının panelinden değiştirin.
  5. Eski sağlayıcıdaki bölgeyi hemen silmeyin. Üst alan adındaki yetkilendirme TTL'i (.com.tr'de 12 saat, .com'da 48 saat) dolana kadar bazı çözücüler hâlâ eski sunuculara sorar; o sürede eski bölge de doğru cevabı vermelidir.

Kendi önbelleğinizi temizlemek

Değişiklik yetkili sunucuda göründüğü halde kendi bilgisayarınızda eski site açılıyorsa önbellek yerel olabilir:

SistemKomut
Windowsipconfig /flushdns
macOSsudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux (systemd-resolved)resolvectl flush-caches
Chromechrome://net-internals/#dns → "Clear host cache"

Modeminiz de kendi önbelleğini tutabilir; yeniden başlatmak çoğu zaman yeterlidir. Kayıt türlerinin ne işe yaradığını DNS kayıtları rehberimizde anlattık.

Sık sorulan sorular

DNS yayılımı ne kadar sürer?

Bir A, MX ya da TXT kaydını değiştirdiğinizde bekleme süresi en fazla o kaydın eski TTL değeri kadardır; TTL 300 saniyeyse en geç beş dakikada her yer yeni cevabı görür. Alan adının DNS sunucularını (NS) değiştirdiğinizde ise üst alan adındaki yetkilendirme kaydının TTL'i belirleyicidir; bu .com.tr'de 12 saat, .com'da 48 saattir.

Sitemi bazı yerlerden eski, bazı yerlerden yeni görüyorum. Normal mi?

Evet. Her çözücü kaydı kendi önbelleğine farklı bir anda aldığı için, eski cevabın süresi her yerde aynı anda dolmaz. Geçiş süresince eski ve yeni sunucunun ikisi de çalışır durumda olmalıdır.

DNS yayılımını hızlandırmanın bir yolu var mı?

Değişiklikten sonra yok; önbelleklerdeki eski cevabı uzaktan silemezsiniz. Değişiklikten önce ise var: kaydın TTL değerini en az eski TTL kadar önceden düşürün. Kendi bilgisayarınızdaki ve tarayıcınızdaki önbelleği ise temizleyebilirsiniz.

Google ya da Cloudflare DNS önbelleğini temizleyebilir miyim?

İkisi de tek bir alan adı için önbellek temizleme sayfası sunar (Google Public DNS "Flush Cache", Cloudflare 1.1.1.1 "Purge Cache"). Bu yalnız o çözücüyü etkiler; internet servis sağlayıcınızın ya da başka kullanıcıların çözücüleri kendi sürelerini doldurur.

Neden her yerde "DNS yayılımı 24-48 saat sürer" yazıyor?

Bu süre çoğunlukla NS değişikliği için geçerlidir: .com gibi uzantılarda üst alan adındaki yetkilendirme kaydının TTL'i 48 saattir. Ayrıca birçok DNS panelinin varsayılan TTL değeri bir gün olduğu için sıradan kayıt değişikliklerinde de 24 saat yaygın bir üst sınır olarak verilir. TTL'i önceden düşürdüğünüz bir A kaydı değişikliği ise dakikalar içinde tamamlanır.

Yayılım kontrol aracında bazı konumlar eski adresi gösteriyor, sorun mu var?

Değişiklikten sonraki ilk saatlerde normaldir: o konumdaki çözücünün önbelleğindeki eski cevabın süresi henüz dolmamıştır. Yetkili DNS sunucunuz doğru cevabı veriyorsa beklemek yeterlidir. Eski TTL süresi geçtiği halde aynı konum hâlâ eski adresi gösteriyorsa yetkili sunucularınızdan birinin eski bölgeyi sunup sunmadığını kontrol edin.

  • #dns
  • #ttl
  • #dns yayılımı
  • #alan adı

Alan adınızı ve DNS kayıtlarınızı tek panelden yönetin. Alan adı kaydı, transfer ve DNS düzenleme bizde.

Alan adı sorgulayın
Devamı

İlgili yazılar