DNS önbelleği, daha önce çözümlenen bir alan adı için alınan yanıtın geçici olarak saklanmasıdır. Aynı alan adına yeniden erişildiğinde her defasında bütün DNS çözümleme zincirinin çalışması gerekmez; geçerli yanıt doğrudan önbellekten kullanılabilir.

Önbellek tek bir yerde tutulmaz. Tarayıcı, işletim sistemi ve recursive resolver (özyinelemeli DNS çözümleyicisi) birbirinden bağımsız yanıtlar saklayabilir. Bu nedenle eski bir IP adresi veya daha önce alınmış bir “kayıt bulunamadı” sonucu yalnız belirli bir katmanda kalabilir.

DNS önbelleğini temizlemek, seçilen yerel katmandaki yanıtı kaldırır ve sonraki istekte DNS sorgusunun yenilenmesini sağlar. Bu işlem yetkili DNS kaydını değiştirmez, genel kullanıma açık recursive resolver hizmetlerinin önbelleğini zorla silmez ve her bağlantı sorununu çözmez.

DNS Önbelleği Ne İşe Yarar?

Bir uygulama alan adının IP adresini istediğinde DNS çözümleme süreci birden fazla sunucuya başvurmayı gerektirebilir. Daha önce alınmış ve geçerliliğini koruyan bir yanıtın saklanması, tekrar eden sorguların önbellekten karşılanmasına imkan verir. Böylece yanıt süresi kısalabilir ve DNS altyapısına gönderilen gereksiz sorgu sayısı azalır.

Önbellekte yalnız IP adresleri bulunmaz. DNS yanıtının içeriğine bağlı olarak A, AAAA, CNAME, MX ve diğer kayıt türleri saklanabilir. Bir yanıtın önbellekte ne kadar süre geçerli kabul edileceğini, saniye cinsinden verilen TTL değeri belirler.

TTL bütün dünyadaki önbellekleri aynı anda yenileyen ortak bir sayaç değildir. Her recursive resolver, yanıtı aldığı anda kendi saklama süresini izler. Bu nedenle bir DNS değişikliği bazı kullanıcılar tarafından görülürken başka kullanıcılar önceki yanıtı bir süre daha alabilir.

DNS Önbelleği Hangi Katmanlarda Tutulur?

DNS yanıtının neden eski göründüğünü araştırırken yalnız bilgisayardaki tek bir önbelleğe odaklanmak yeterli değildir. İsteği yapan uygulama, işletim sistemi ve recursive resolver gibi farklı katmanlarda geçici kayıt bulunabilir.

Tarayıcı DNS Önbelleği

Bazı tarayıcılar çözümlenen alan adlarını kendi süreçleri içinde geçici olarak saklar. Tarayıcıdaki kayıt eski kaldığında aynı bilgisayardaki başka bir uygulama doğru adrese ulaşırken yalnız belirli bir tarayıcı eski hedefi açabilir.

Tarayıcı DNS önbelleği, sayfa görselleri ve dosyaları için kullanılan web önbelleğiyle aynı değildir. Tarama geçmişini, çerezleri veya web dosyalarını silmek DNS yanıtlarını her durumda kaldırmaz.

İşletim Sistemi DNS Önbelleği

İşletim sistemi, farklı uygulamalardan gelen alan adı çözümleme sonuçlarını yerel olarak saklayabilir. Aynı cihazdaki birden fazla uygulama eski IP adresini kullanıyor, ancak başka cihazlar doğru hedefe ulaşıyorsa işletim sistemi önbelleği olası nedenlerden biridir.

Bu katman temizlendiğinde saklanan yerel yanıtlar kaldırılır. Sonraki çözümleme isteği, cihazın ayarlarında seçilen DNS sunucusuna yeniden gönderilir. Recursive resolver eski ancak geçerliliğini koruyan bir yanıt tutuyorsa aynı sonuç tekrar alınabilir.

Recursive Resolver Önbelleği

Recursive resolver, istemci adına DNS sorgularını tamamlayan hizmettir. Bu hizmet, internet servis sağlayıcısının, kurumun veya harici bir DNS sağlayıcısının sunucularında çalışabilir. Çok sayıda kullanıcının aynı alan adı için yaptığı sorgular, saklanan yanıtla karşılanabilir.

Bilgisayarda veya tarayıcıda yapılan temizlik, recursive resolver önbelleğini silmez. Recursive resolver, yanıtı kalan TTL süresine ve kendi önbellek politikasına göre kullanmaya devam edebilir.

Modem ve Yönlendiricide DNS Önbelleği

Modem veya yönlendirici, cihazlardan gelen DNS sorgularını başka bir DNS hizmetine ileten DNS forwarder (DNS yönlendirici) olarak çalışabilir. Önbellekleme özelliği etkinse yanıtları cihaz üzerinde de saklayabilir.

Bilgisayarın önbelleğini temizlemek modemdeki kopyayı kaldırmaz. Bu nedenle eski yanıtın kaynağı araştırılırken modem üzerinden iletilen sorgularla doğrudan harici DNS hizmetine gönderilen sorgular da birbirinden ayrılmalıdır.

Olumsuz DNS Yanıtları da Önbelleğe Alınır mı?

DNS önbelleğinde yalnız başarılı yanıtlar tutulmaz. Bir alan adının bulunmadığını belirten NXDOMAIN yanıtı veya alan adı mevcut olduğu halde istenen kayıt türünün bulunmadığını gösteren NODATA sonucu da belirli bir süre saklanabilir. Buna olumsuz önbellekleme denir.

Olumsuz yanıtların saklanması, bulunmayan bir kayıt için sürekli aynı sorguların gönderilmesini azaltır. Ancak kayıt daha sonra oluşturulursa bazı recursive resolver sunucuları önceki olumsuz yanıtın saklama süresi bitene kadar yeni kaydı göstermeyebilir.

Bu durumda yerel önbelleği temizlemek yalnız cihazdaki olumsuz yanıtı kaldırır. Aynı yanıtın recursive resolver önbelleğindeki geçerlilik süresi dolmadıysa cihaz, temizlikten sonra yeniden NXDOMAIN veya NODATA sonucu alabilir.

DNS Önbelleği Ne Zaman Temizlenir?

DNS önbelleğini belirli aralıklarla temizlemek gerekmez. Eski veya hatalı bir yerel yanıt kullanıldığını gösteren belirtiler varsa önbelleği temizlemek işe yarayabilir.

  • DNS kaydı değiştirildiği halde yalnız bir cihaz eski IP adresine bağlanır.
  • Bir tarayıcı yanlış hedefi açarken başka bir tarayıcı veya uygulama doğru hedefe ulaşır.
  • Daha önce bulunmayan bir kayıt eklendiği halde cihaz eski olumsuz yanıtı göstermeyi sürdürür.
  • Cihazın kullandığı DNS sunucusu değiştirildiği halde cihaz önceki çözümleme sonucunu kullanır.
  • Yetkili DNS yanıtı doğru olduğu halde yanlış yönlendirme yalnız belirli bir istemcide görülür.

Sorunun hangi önbellek katmanından kaynaklandığını anlamak için sonuçları farklı cihaz, tarayıcı ve ağlarda karşılaştırmak gerekir. Sorun yalnız tek tarayıcıda görülüyorsa önce tarayıcı önbelleğini; aynı cihazdaki bütün uygulamalarda görülüyorsa işletim sistemi önbelleğini kontrol etmek gerekir.

DNS Önbelleğini Temizlemek Ne Zaman Yetersiz Kalır?

Sorun bütün cihazlarda, farklı ağlarda ve farklı recursive resolver hizmetlerinde aynı biçimde görülüyorsa yalnız yerel önbelleğe odaklanmak doğru değildir. Yetkili DNS kaydını, delegasyonu, DNS sunucularının erişilebilirliğini ve genel ağ durumunu ayrıca kontrol etmek gerekir.

Yerel temizlik, genel kullanıma açık veya kurumsal recursive resolver hizmetinin sakladığı kaydı silemez. Bu hizmetteki yanıtın TTL süresi henüz dolmadıysa yerel önbellek temizlendikten sonra aynı eski yanıt yeniden gelebilir.

Bazı recursive resolver sunucuları, yetkili DNS sunucusuna geçici olarak ulaşılamadığında kesintiyi azaltmak için süresi dolmuş veriyi sınırlı bir süre sunabilir. Bu davranış, verinin süresiz saklandığı anlamına gelmez; yalnız yanıt yenilenemediğinde kullanılan bir dayanıklılık mekanizmasıdır.

Eski DNS Yanıtının Kaldığı Katmanı Belirleme

İlk adım, beklenen DNS kaydının gerçekten doğru olup olmadığını kontrol etmektir. DNS Sorgulama aracı, bir alan adı için görünen kayıtları karşılaştırmaya yardımcı olur. Ancak tek bir sorgu sonucu, eski yanıtın tarayıcıda mı, işletim sisteminde mi yoksa recursive resolver önbelleğinde mi tutulduğunu tek başına göstermez.

  1. Alan adının beklenen DNS kaydını döndürüp döndürmediğini kontrol edin.
  2. Aynı adresi başka tarayıcıda veya uygulamada deneyin.
  3. Sonucu başka cihaz ve mümkünse farklı internet bağlantısıyla karşılaştırın.
  4. Yalnız etkilendiği düşünülen yerel önbellek katmanını temizleyin.
  5. Sonraki sorguda aynı eski yanıtın tekrar gelip gelmediğini kontrol edin.

Önbellek Temizlendikten Sonra Ne Olur?

Bir önbellek katmanı temizlendiğinde o katmandaki geçici yanıt kaldırılır. Alan adına yapılan sonraki istek, artık silinen yerel kopyadan karşılanamaz ve çözümleme işlemi yeniden başlar.

Yalnız tarayıcı DNS önbelleği temizlendiyse, işletim sisteminin DNS hizmetini kullanan bir tarayıcı aynı yanıtı işletim sistemi önbelleğinden yeniden alabilir. Tarayıcı kendi şifreli DNS ayarını kullanıyorsa seçtiği DNS sunucusuna doğrudan sorgu gönderebilir. Hangi önbelleğe başvurulacağı, uygulamanın ve ağın DNS ayarlarına bağlıdır.

İstek cihaz dışına çıktığında modem önbelleğinden veya recursive resolver hizmetinden karşılanabilir. Bu önbelleklerde kullanılabilir yanıt yoksa recursive resolver gerekli DNS sunucularına başvurarak yeni yanıtı alır. Başka bir önbellekten eski yanıt gelirse yerel kopya yeniden eski veriyle oluşur; yetkili kayıt yanlışsa temizlik bu hatayı gidermez.

Yeni kayıt alındığında yerel önbelleğe güncel yanıt yazılır. Yanıt yeniden sorgulandığı için ilk erişimde kısa bir ek gecikme oluşabilir.