Alan Adı & DNS

    DNS Önbelleği Nasıl Çalışır

    Sorguları hızlandıran DNS önbelleğinin katmanları ve TTL ile ilişkisi.

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Bir web sitesine bağlandığınızda tarayıcının yaptığı ilk iş, adres çubuğuna yazdığınız alan adını bir IP adresine çevirmektir. Bu çeviriyi her seferinde sıfırdan yapmak gerekseydi, her tıklama internetin öbür ucundaki yetkili sunuculara giden bir dizi sorguyla başlar ve sayfalar gözle görülür biçimde yavaşlardı. İnternetin bu kadar akıcı çalışmasının arkasındaki sessiz kahraman DNS önbelleğidir: bir kez öğrenilen "alan adı → IP" eşleşmesini belirli bir süre boyunca saklayarak aynı sorunun tekrar tekrar sorulmasını engeller.

    Bu rehberde DNS önbelleğinin ne olduğunu, ömrünü belirleyen TTL değerini, tarayıcıdan işletim sistemine ve çözümleyiciye uzanan katmanlı yapısını gerçek komut örnekleriyle ele alacağız. Ardından önbelleğin en çok kafa karıştıran yanına, yani DNS değişikliklerinin neden hemen görünmediğine ve propagasyon gecikmesiyle ilişkisine değinecek; en sonda da önbelleği ne zaman ve nasıl temizlemeniz gerektiğini bir sistem yöneticisinin bakış açısıyla açıklayacağız.

    DNS Önbelleği Nedir ve Neden Var#

    DNS önbelleği, daha önce çözümlenmiş bir alan adının cevabını (IP adresi, posta sunucusu, TXT kaydı vb.) geçici olarak yerel bir depoda tutan mekanizmadır. Amaç tek kelimeyle tekrardan kaçınmaktır. Aynı alan adına saniyede yüzlerce istek gelen bir sitede, her istek için kök sunuculardan başlayıp yetkili sunuculara kadar giden tam bir çözümleme yapılsaydı, hem gecikme birikirdi hem de dünyanın DNS altyapısı gereksiz trafik altında ezilirdi.

    Önbellek iki büyük fayda sağlar. Birincisi hız: elinizin altındaki bir cevaba erişmek milisaniyeden bile kısa sürerken, uzaktaki bir yetkili sunucuya gitmek onlarca hatta yüzlerce milisaniye alabilir. İkincisi yük azaltma: kök sunucular, TLD sunucuları (.com, .com.tr) ve alan adınızın yetkili sunucuları, kendilerine gelen sorguların büyük kısmının ara katmanlarda önbellekten cevaplanması sayesinde nefes alabilir. Bu iki fayda birlikte, ölçeklenebilir bir internetin temelini oluşturur.

    Önbelleğin mantığını gündelik bir benzetmeyle anlatalım. Bir arkadaşınızın telefon numarasını ilk kez rehberden bulursunuz; ama ikinci kez aramak istediğinizde tekrar rehberi karıştırmaz, aklınızda tuttuğunuz numarayı çevirirsiniz. DNS önbelleği de tam olarak budur: bilgisayarınızın "aklında tuttuğu" numara defteridir. Ancak bu defterin her kaydının bir son kullanma tarihi vardır ve o tarihi belirleyen değer TTL'dir.

    TTL — Önbelleğin Ömrünü Belirleyen Sayı#

    TTL (Time To Live, yaşam süresi), bir DNS kaydının önbellekte kaç saniye saklanacağını söyleyen sayıdır. Yetkili sunucu her kaydın yanında bu değeri gönderir; önbelleğe alan her sistem de sayaç dolana kadar cevabı yeniden sormaz. TTL dolduğunda kayıt "bayatlamış" sayılır, önbellekten atılır ve bir sonraki sorguda tekrar yetkili sunucudan taze cevap çekilir.

    Bir kaydın TTL değerini dig ile net biçimde görebilirsiniz. Cevaptaki ikinci sütun, o an geçerli olan kalan saniye sayısıdır:

    # ANSWER bölümündeki ikinci sütun TTL'dir (örnekte 3600 sn)
    dig clou.tr A +noall +answer
    # clou.tr.   3600   IN   A   203.0.113.10
    
    # Aynı sorguyu birkaç saniye sonra tekrarlayın; TTL'in azaldığını görürsünüz
    dig @1.1.1.1 clou.tr A +noall +answer
    # clou.tr.   3542   IN   A   203.0.113.10   <- sayaç geriye sayıyor
    

    İkinci sorguda TTL'in 3600'den 3542'ye düşmüş olması, cevabın çözümleyicinin önbelleğinden geldiğinin kanıtıdır; sayaç sıfıra ulaştığında değer yeniden 3600'e sıfırlanır. TTL seçimi doğrudan bir denge meselesidir. Yüksek TTL önbellek isabet oranını artırır, sorguları azaltır ve performansı iyileştirir; ama bir değişiklik yaptığınızda o değişikliğin dünyaya yayılması uzun sürer. Düşük TTL ise değişiklikleri hızlı yayar, fakat sorgu sayısını ve yetkili sunucu yükünü artırır.

    Pratikte hangi kayda ne kadar TTL vereceğinize dair yaygın bir yaklaşım şudur:

    SenaryoÖnerilen TTLGerekçe
    Nadiren değişen A/AAAA kaydı3600–86400 snKararlılık ve düşük yük
    MX (posta) kayıtları3600–14400 snE-posta akışı sık değişmez
    Yakında taşınacak site300 snGeçişte hızlı yayılım
    Yük devretme (failover) IP'si30–120 snArıza anında hızlı yönlendirme
    TXT/SPF/DKIM doğrulama3600 snDoğrulama nadiren değişir

    Altın kural şudur: büyük bir DNS değişikliği yapmadan birkaç gün önce ilgili kaydın TTL'ini düşürün (örneğin 300 saniyeye), değişikliği uygulayın, her şeyin oturduğundan emin olun ve ardından TTL'i tekrar yüksek bir değere çıkarın. Böylece hem geçiş anında çeviklik kazanır hem de normal zamanda önbelleğin tüm hız avantajından yararlanırsınız.

    Önbellek Katmanları — Tarayıcıdan Çözümleyiciye#

    DNS önbelleği tek bir yerde durmaz; bir sorgu, cevabına ulaşana kadar üst üste binmiş birkaç önbellek katmanından geçer. Her katman kendi kopyasını kendi TTL'iyle tutar. Bu katmanları anlamak, "kaydı değiştirdim ama hâlâ eski siteyi görüyorum" tarzı sorunları çözmenin anahtarıdır; çünkü sorunun hangi katmanda takıldığını bilmeden doğru yeri temizleyemezsiniz.

    Tarayıcı Önbelleği#

    Sıralamadaki ilk ve en yakın katman tarayıcının kendi iç DNS önbelleğidir. Chrome, Firefox ve diğer modern tarayıcılar, işletim sistemine sormadan önce kendi bellek içi tablolarına bakar. Bu tablonun ömrü kısadır (genellikle bir dakika mertebesinde) ama çok aktif bir gezinme oturumunda ciddi tekrar tasarrufu sağlar. Chrome'da mevcut durumu şu iç sayfadan görebilirsiniz:

    chrome://net-internals/#dns
    

    Buradaki "Clear host cache" düğmesi yalnızca tarayıcının kendi tablosunu boşaltır; altındaki katmanlara dokunmaz. Bu yüzden bir değişikliği test ederken önce tarayıcı önbelleğini ekarte etmek, en hızlı ilk adımdır.

    İşletim Sistemi Önbelleği#

    Tarayıcı bir cevap bulamazsa istek işletim sistemine iner. Windows'ta bu görevi DNS Client servisi, Linux'ta çoğunlukla systemd-resolved veya nscd, macOS'ta ise mDNSResponder üstlenir. Bu katman, makinedeki tüm uygulamalar için ortak bir yerel önbellek tutar; yani terminalden yaptığınız bir ping ile tarayıcıdaki bir istek aynı işletim sistemi önbelleğinden yararlanır.

    İşletim sistemi önbelleğinin içeriğini doğrudan inceleyebilirsiniz:

    # Windows — önbellekteki tüm kayıtları listeler
    ipconfig /displaydns
    
    # Linux (systemd-resolved) — önbellek istatistikleri
    resolvectl statistics
    
    # macOS — önbelleğin ömrü servise bağlıdır, doğrudan liste vermez
    sudo dscacheutil -statistics
    

    Bu katman, iki sorunun kesişme noktasıdır: hem uygulamalarınızın hızını belirler hem de bir DNS değişikliğinin makinenizde ne zaman görüneceğini etkiler. İşletim sistemi önbelleğini nasıl boşaltacağınızı platform platform ele aldığımız DNS önbellek temizleme rehberimiz, tam da bu katmanla uğraşırken elinizin altında bulunması gereken bir kaynaktır.

    Çözümleyici (Resolver) Önbelleği#

    Zincirin en güçlü ve en etkili katmanı, sorguyu sizin adınıza tüm internete soran özyinelemeli çözümleyicidir (recursive resolver). Bu, internet servis sağlayıcınızın DNS sunucusu ya da 1.1.1.1, 8.8.8.8 gibi genel bir çözümleyici olabilir. Milyonlarca kullanıcıya hizmet verdiği için buradaki önbellek isabet oranı çok yüksektir; sizden önce başka biri aynı alan adını sorduysa, cevap zaten oradadır ve size neredeyse anında döner.

    Çözümleyici önbelleğinin önemli bir özelliği, sizin kontrolünüz dışında olmasıdır. Kendi bilgisayarınızın önbelleğini istediğiniz an temizleyebilirsiniz, ama sağlayıcınızın çözümleyicisi kaydı kendi TTL sayacı dolana kadar tutar. İşte bir DNS değişikliğinin "internetin her yerinde aynı anda" görünmemesinin baş sebebi budur; her çözümleyici, kaydı kendi sayacına göre yeniler. Bu noktayı bir sonraki bölümde derinleştireceğiz.

    Bir Sorgunun Önbellek Yolculuğu#

    Katmanları tek tek gördükten sonra, hepsini birleştiren tam yolculuğu izlemek kavramı yerine oturtur. example.com adresini tarayıcıya ilk kez yazdığınızı düşünün. Sorgu şu sırayı takip eder ve herhangi bir katmanda cevap bulunursa oracıkta durur, aşağıya inmez:

    1. Tarayıcı önbelleği      -> var mı? Evet ise dur, cevabı ver.
    2. İşletim sistemi önbelleği -> var mı? Evet ise dur.
    3. hosts dosyası           -> elle tanımlı bir eşleşme var mı?
    4. Çözümleyici önbelleği   -> ISP/genel resolver'da var mı? Varsa dur.
    5. Özyinelemeli çözümleme  -> kök -> TLD -> yetkili sunucu zinciri
    

    Bu zincirde en pahalı adım beşinci basamaktır: çözümleyici hiçbir yerde cevap bulamazsa kök sunuculara "com kaydına kim bakıyor?" diye sorar, TLD sunucularına yönlendirilir, oradan alan adının yetkili sunucularını öğrenir ve nihayet asıl cevabı alır. Bu tam tur yalnızca soğuk önbellek (cache miss) durumunda, yani hiçbir katmanda kopya yokken yaşanır. Cevap bir kez alındığında geriye dönerken her katman kendi kopyasını TTL süresince saklar; böylece aynı adrese ikinci erişim, birinci basamakta biter.

    Bir de arada bir görmezden gelinen ama kritik bir istisna vardır: yerel hosts dosyası. Bu dosya (/etc/hosts veya Windows'ta C:\Windows\System32\drivers\etc\hosts) DNS'ten bile önce devreye girer ve orada tanımlı bir eşleşme varsa hiçbir önbelleğe veya sunucuya sorulmaz. Test amaçlı bir IP'yi zorlamak istediğinizde çok işe yarar, ama unutulan bir satır saatlerce süren kafa karışıklığına yol açabilir.

    Negatif Önbellek ve SOA Kaydı#

    Önbellek yalnızca "başarılı" cevapları saklamaz; bir alan adının var olmadığı bilgisini de saklar. Buna negatif önbellek (negative caching) denir. Yanlış yazılmış ya da henüz oluşturulmamış bir alt alan adını sorduğunuzda çözümleyici NXDOMAIN (böyle bir alan yok) cevabı alır ve bu olumsuz sonucu da bir süre önbelleğe koyar; böylece aynı hatalı sorgu tekrar tekrar yetkili sunucuya gitmez.

    Negatif cevabın ne kadar saklanacağını, kaydın kendi TTL'i değil, alan adının SOA (Start of Authority) kaydındaki son alan olan minimum TTL belirler. Bu değeri şöyle görebilirsiniz:

    # SOA kaydındaki son sayı, negatif önbelleğin ömrüdür
    dig clou.tr SOA +noall +answer
    # clou.tr. 3600 IN SOA ns1.clou.tr. hostmaster.clou.tr. (
    #   2026071001 ; serial
    #   7200       ; refresh
    #   3600       ; retry
    #   1209600    ; expire
    #   3600 )     ; minimum -> negatif önbellek TTL'i
    

    Bu detay pratikte şu yüzden önemlidir: yeni bir alt alan adı (blog.siteniz.com gibi) ekledikten sonra "hâlâ bulunamıyor" hatası alıyorsanız, sorun büyük olasılıkla negatif önbelleğin dolmasını beklemenizdir. Bu yüzden bir kaydı önce oluşturup sonra test etmek, önce test edip "yok" cevabını önbelleğe yazdırmaktan her zaman daha akıllıcadır. SOA minimum değerini makul tutmak (örneğin 300–3600 saniye), bu tür geçici hataların ömrünü kısaltır.

    Önbellek ve Propagasyon Gecikmesi İlişkisi#

    Kullanıcıların en çok yanlış anladığı konu şudur: "DNS değişikliğim neden anında yansımıyor?" Sanılanın aksine bu gecikmenin nedeni, değişikliğin fiziksel olarak "sunucudan sunucuya taşınması" değildir. Değişiklik yetkili sunucunuzda yapıldığı an oradadır. Gecikmenin gerçek kaynağı, dünya üzerindeki binlerce çözümleyicinin eski cevabı hâlâ önbelleğinde TTL süresince tutuyor olmasıdır. Yani propagasyon dediğimiz süre, aslında büyük ölçüde eski önbelleklerin süresinin dolmasını beklemektir.

    Bunu somutlaştıralım. Diyelim ki A kaydınızın TTL'i 86400 saniye (24 saat) ve IP'yi az önce değiştirdiniz. Değişiklikten hemen önce sitenizi ziyaret etmiş bir kullanıcının çözümleyicisi, eski IP'yi 24 saate kadar önbellekte tutabilir. Bu süre boyunca o kullanıcı eski sunucuya gitmeye devam eder; sizin yetkili sunucunuz yeni IP'yi versin veya vermesin fark etmez, çünkü ona hiç sorulmuyor. İşte "bende yeni site açılıyor, müşteride eski site" ikiliğinin teknik açıklaması budur ve tamamen önbellekle ilgilidir.

    Bu yüzden önbellek ve propagasyon, aynı madalyonun iki yüzüdür; birini anlamadan diğerini yönetemezsiniz. Geçiş sürelerini kısaltmanın en etkili yolu, daha önce anlattığımız gibi TTL'i önceden düşürmektir. Konunun bu geçiş boyutunu, gecikmenin neden bölgeden bölgeye değiştiğini ve ne kadar bekleneceğini ayrı bir yazıda derinlemesine işledik; bir taşıma veya IP değişikliği planlıyorsanız DNS propagasyon süresi rehberimizi mutlaka okuyun. Sunucunuzu başka bir sağlayıcıya taşıyorsanız, bu geçişi kesintisiz yönetmek için site taşıma hizmetimiz de tüm DNS ve TTL ayarlarını sizin için planlar.

    Önbelleği Ne Zaman ve Nasıl Temizlemeli#

    Önbellek varsayılan olarak sizin dostunuzdur; onu sürekli temizlemek performansı düşürür ve genelde gereksizdir. Temizlik yalnızca belirli durumlarda anlamlıdır: bir DNS kaydını yeni değiştirdiniz ve değişikliği hemen kendi makinenizde görmek istiyorsunuz; bir alan adı yanlış bir IP'ye takılı kaldı; ya da bir hatayı ayıklarken hangi katmanın eski cevabı verdiğini izole etmek istiyorsunuz. Bu senaryolar dışında önbelleği rahat bırakmak en iyisidir.

    Temizleme, yolculuğu tersinden yapmayı gerektirir; önce size en yakın katmandan başlarsınız:

    # 1) İşletim sistemi önbelleği
    # Windows
    ipconfig /flushdns
    
    # Linux (systemd-resolved)
    sudo resolvectl flush-caches
    
    # macOS
    sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
    

    Kendi bilgisayarınızı temizledikten sonra hâlâ eski cevabı görüyorsanız, sorun büyük olasılıkla sizin kontrolünüz dışındaki çözümleyici katmanındadır; orada yapabileceğiniz tek şey TTL'in dolmasını beklemek ya da geçici olarak farklı bir çözümleyici (1.1.1.1 gibi) kullanıp değişikliğin yetkili sunucuda doğru olduğunu teyit etmektir. Değişikliğin kaynakta doğru olduğunu, önbellekleri atlayarak doğrudan yetkili sunucuya sorarak kanıtlayabilirsiniz:

    # Yetkili sunucuya doğrudan sorar; hiçbir önbelleğe uğramaz
    dig @ns1.clou.tr clou.tr A +norecurse
    
    # Belirli bir genel çözümleyicinin ne gördüğünü test edin
    dig @8.8.8.8 clou.tr A +noall +answer
    

    Bir web sunucusu işletiyorsanız aynı mantık kendi sunucunuzun çözümleyici önbelleği için de geçerlidir. Örneğin yerel bir unbound veya dnsmasq çalışıyorsa, önbelleği o servisin kendi komutuyla boşaltmanız gerekir:

    # unbound önbelleğini temizle
    sudo unbound-control flush_zone clou.tr
    
    # dnsmasq'i yeniden başlatmak da önbelleği sıfırlar
    sudo systemctl restart dnsmasq
    

    Platform bazında tüm temizleme yöntemlerini ve sık yapılan hataları adım adım görmek isterseniz DNS önbellek temizleme yazımız kapsamlı bir başvuru kaynağıdır. DNS kayıtlarınızı zaten Clou.TR üzerinde yönetiyorsanız, panelinizden yaptığınız TTL ve kayıt değişiklikleri yetkili sunuculara anında yansır; geriye yalnızca önbellek sayaçlarının dolmasını beklemek kalır.

    Sıkça Sorulan Sorular#

    DNS önbelleği tam olarak neyi saklar?#

    Önbellek, daha önce çözümlenmiş DNS cevaplarını saklar; yani bir alan adının IP adresini (A/AAAA kaydı), posta sunucusunu (MX), metin kayıtlarını (TXT) ve hatta "bu alan adı yok" gibi olumsuz cevapları tutar. Her kayıt, yetkili sunucunun belirlediği TTL süresince bellekte kalır ve süre dolduğunda silinerek bir sonraki sorguda yeniden çekilir.

    Önbellek bir kaydı ne kadar süre tutar?#

    Bu süreyi tamamen kaydın TTL değeri belirler. TTL 300 saniyeyse cevap beş dakika, 86400 saniyeyse yaklaşık 24 saat önbellekte kalır. Olumsuz (NXDOMAIN) cevaplar ise kaydın kendi TTL'iyle değil, alan adının SOA kaydındaki minimum TTL değeriyle sınırlı bir süre saklanır.

    DNS kaydımı değiştirdim ama değişiklik görünmüyor, sebebi önbellek mi?#

    Evet, sebep neredeyse her zaman önbellektir. Değişiklik yetkili sunucunuzda anında yapılmıştır, ancak sizin ve ziyaretçilerinizin çözümleyicileri eski cevabı TTL süresi dolana kadar tutmaya devam eder. Kendi makinenizin önbelleğini temizleyebilirsiniz, fakat başkalarının çözümleyicilerindeki eski kayıt için TTL'in dolmasını beklemek gerekir; ayrıntılar için propagasyon süresi rehberimize göz atın.

    Tarayıcı önbelleğini temizlemek yeterli mi?#

    Çoğu zaman yeterli değildir. Tarayıcı önbelleği zincirin yalnızca ilk katmanıdır; onu temizleseniz bile işletim sistemi ve çözümleyici katmanları eski cevabı hâlâ tutuyor olabilir. Temiz bir test için sırasıyla tarayıcıyı, işletim sistemi önbelleğini (ipconfig /flushdns veya resolvectl flush-caches) boşaltmalı, gerekirse farklı bir çözümleyiciyle doğrulama yapmalısınız.

    Önbelleği sürekli temizlemek performansı düşürür mü?#

    Evet, gereksiz temizlik performansa zarar verir. Önbellek isabetleri sorguları milisaniyeler içinde cevaplarken, her temizlikten sonraki ilk sorgu tüm çözümleme zincirini baştan çalıştırır ve daha yavaştır. Önbelleği yalnızca bir değişikliği test ederken veya bir hatayı ayıklarken temizleyin; günlük kullanımda dokunmamak en doğrusudur.

    TTL'i çok düşük ayarlarsam ne olur?#

    Çok düşük TTL, değişikliklerin hızlı yayılmasını sağlar ama önbellek isabet oranını düşürür; çözümleyiciler kaydı sürekli yeniden sorar, bu da yetkili sunucularınızın yükünü ve sorgu gecikmesini artırır. En iyi yaklaşım, kaydı normalde yüksek TTL'de tutmak, yalnızca planlı bir değişiklikten birkaç gün önce geçici olarak 300 saniyeye düşürüp geçiş bitince tekrar yükseltmektir.

    Kapanış#

    DNS önbelleği, internetin görünmez ama vazgeçilmez bir hız katmanıdır; tekrarlayan sorguları saklayarak hem sayfaları hızlandırır hem de sunucu yükünü düşürür. Önbelleğin katmanlı yapısını (tarayıcı, işletim sistemi, çözümleyici), her katmanın kendi TTL'iyle çalıştığını ve bir değişikliğin neden hemen görünmediğini anladığınızda, "eski site açılıyor" tarzı sorunları paniklemeden, doğru katmanı hedefleyerek çözebilirsiniz. Temel ilke sabittir: TTL'i planlı yönetin, önbelleği yalnızca gerektiğinde temizleyin ve değişiklikleri kaynağa (yetkili sunucuya) doğrudan sorarak doğrulayın.

    Alan adınızı hızlı ve dayanıklı bir altyapıda barındırmak istiyorsanız, TTL yönetimi kolay DNS panelimizle gelen hosting paketlerimize ve yeni bir alan adı için domain sayfamıza göz atabilirsiniz. WordPress siteniz için optimize edilmiş bir ortam arıyorsanız WordPress hosting, tam kontrol isteyen projeler için ise sunucu çözümlerimiz DNS, TTL ve önbellek ayarlarını sizin adınıza optimize eden ekibimizle birlikte devrede olur. Sorularınız için destek ekibimiz her zaman ulaşılabilir mesafededir.

    DNSÖnbellekPerformans

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.