Tarayıcıya veya başka bir uygulamaya alan adı girdiğinizde uygulama ve işletim sistemi, varsa yerel önbelleklerini kontrol eder. Geçerli bir yanıt bulunamazsa uygulamanın ya da işletim sisteminin DNS sorgularını ileten stub resolver bileşeni, ayarlarda belirtilen DNS sunucusundan yanıt ister. Kendi şifreli DNS ayarını kullanan bir tarayıcı, işletim sisteminin seçtiği DNS sunucusuna başvurmadan da sorgu gönderebilir.

Cihaz adına kayıtları arayan recursive resolver (özyinelemeli DNS çözümleyicisi), önbelleğinde geçerli bir yanıt bulursa sorguyu hemen tamamlayabilir. Sorguyu başka bir DNS sunucusuna iletecek biçimde ayarlanmamışsa ve önbelleğinde yeterli bilgi yoksa kök DNS sunucularından başlayarak ilgili yetkili DNS sunucusuna ulaşır. Bu sırada aldığı yönlendirmeleri izleyerek yaptığı arama iterative (yinelemeli) çözümleme olarak adlandırılır.

DNS Çözümleme Sürecindeki Bileşenlerin Görevleri

DNS çözümleme sürecini doğru anlamak için sorguyu başlatan bileşenle kayıtların sahibi olan sunucuyu birbirinden ayırmak gerekir. Aynı altyapıda birden fazla işlev bulunabilse de bu görevlerin sorumlulukları birbirinden farklıdır.

İstemci ve Stub Resolver

İstemci, alan adına ihtiyaç duyan tarayıcı, e-posta uygulaması veya başka bir yazılımdır. Uygulama çoğu durumda işletim sisteminin çözümleme arayüzünü kullanır; stub resolver da tam DNS hiyerarşisini dolaşmak yerine sorguyu ayarlarda belirtilen DNS sunucusuna iletir.

Stub resolver genellikle nihai yanıtı bu sunucudan bekler. Kök, üst düzey alan adı (TLD) ve yetkili DNS sunucularına gerekli sorguları kendisi göndermek yerine bu işi recursive resolver hizmetine bırakır; arada sorguyu ileten başka DNS sunucuları da bulunabilir.

DNS Forwarder

DNS forwarder (DNS yönlendirici), aldığı sorguyu yanıtlaması için başka bir DNS sunucusuna gönderir. Örneğin bir modem, cihazlara DNS sunucusu olarak görünüp sorguları internet servis sağlayıcısının recursive resolver hizmetine iletebilir.

DNS forwarder önbellek de kullanabilir; her sorgunun yeniden başka bir sunucuya gönderilmesi gerekmez. Cihazın DNS ayarında modemin adresinin bulunması, modemin kök ve yetkili sunuculara bütün sorguları kendisinin gönderdiği anlamına gelmez.

Recursive Resolver

Recursive resolver, istemci adına kullanılabilir bir yanıt arayan sunucudur. Önce önbelleğini inceler. Gerekli bilgi yoksa diğer DNS sunucularına sorgu gönderir, yönlendirmeleri izler ve istemciye nihai yanıtı ya da ilgili hata yanıtını döndürür.

Recursive resolver hizmetinin tüm hiyerarşiyi her sorguda yeniden dolaşması gerekmez. Örneğin nihai kayıt önbellekte bulunmasa bile ilgili TLD veya yetkili sunucu bilgisi daha önce saklandıysa çözümleme zincirinin bazı adımları atlanabilir.

Kök, TLD ve Yetkili Sunucular

Kök DNS sunucuları genellikle istenen alan adının son kaydını vermez; sorgunun hangi üst düzey alan sunucularına yöneltileceğini bildirir. TLD sunucuları da ilgili alan için yetkili olan DNS sunucularını bildirir.

Yetkili DNS sunucusu, yönettiği DNS bölgesindeki kayıtlara dayanarak yanıt verir. İstenen kayıt mevcutsa kaydı iletir. Sorgulanan ad bir CNAME kaydıyla başka bir ada işaret ediyorsa yetkili sunucu bu kaydı döndürebilir. Alan adı veya istenen kayıt türü bulunmuyorsa yetkili olumsuz yanıt verir. Yetkili sunucu normalde istemci adına başka sunucularda recursive arama yapmaz.

DNS Önbelleğinin Çözümleme Sürecine Etkisi

DNS önbelleği çözümlemeyi hızlandırır ve aynı kayıt için yinelenen sorguları azaltır. Uygulama, işletim sistemi ve recursive resolver daha önce alınmış yanıtları farklı düzeylerde saklayabilir; her bileşenin önbellek davranışı aynı olmak zorunda değildir.

Bir DNS kaydının TTL değeri, kaydın normal koşullarda önbellekte kaç saniye yeniden kullanılabileceğini belirtir. Süre dolmuş bir kayda yeniden ihtiyaç duyulduğunda ilgili bileşen güncel yanıtı almaya çalışır. Bazı recursive resolver hizmetleri, yetkili sunucuya ulaşılamadığında kesintiyi azaltmak için süresi dolmuş kaydı geçici olarak kullanabilir.

Gerekli bilgi önbellekteyse recursive resolver kök ve TLD sunucularına yeni sorgu göndermeyebilir. Bu durum gecikmeyi ve DNS altyapısına ulaşan yinelenen sorgu sayısını azaltır. Bir sorgunun hangi önbellekten yanıtlandığı ise yapılandırmaya ve önceki sorgulara bağlıdır.

Önbellekte Yeterli Bilgi Yoksa Sorgunun İzlediği Yol

Recursive resolver sorguyu başka bir recursive resolver hizmetine iletmiyorsa ve önbelleğinde yeterli bilgi yoksa DNS hiyerarşisini aşama aşama izleyen iterative çözümleme sürecini başlatır. Her sunucunun nihai yanıtı vermesi gerekmez. Sorgulanan sunucu, recursive resolver'ın sonraki adımda başvurabileceği DNS sunucularını bildiren bir yönlendirme döndürebilir.

  1. Recursive resolver, ilgili üst düzey alanın sunucularını öğrenmek için bir kök sunucuya sorgu gönderir.
  2. Kök sunucu, alan adının sonundaki TLD için görevli sunuculara yönlendirme döndürür.
  3. Recursive resolver, ilgili alanın yetkili DNS sunucularını öğrenmek için uygun TLD sunucularından birine sorgu gönderir.
  4. TLD sunucusu, ilgili alanın yetkili DNS sunucularını bildirir.
  5. Recursive resolver yetkili sunucuya sorgu gönderir ve istenen kaydı, CNAME kaydını veya yetkili olumsuz yanıtı alır.

QNAME minimisation kullanan recursive resolver, kök ve TLD sunucularına tam sorgu adını göndermek yerine yalnız o aşama için gereken bölümünü iletir. Sorduğu kayıt türü de istemcinin istediğinden farklı olabilir. Alt alanlar ayrıca devredilmişse yukarıdaki sıralamaya ek yetkili sunucular dahil olur.

Yanıt başka bir alan adına işaret eden bir kayıt içeriyorsa recursive resolver hedef ad için ek çözümleme yapabilir. Bu nedenle istemcinin tek bir sorgusu, kök, TLD ve yetkili sunuculardan oluşan temel zincire ek olarak başka adlar için yeni sorgular doğurabilir.

Yanıtın İstemciye Dönmesi ve Önbelleğe Alınması

Yetkili sunucudan yeterli bilgi alındığında recursive resolver, istemcinin istediği kayıt türüne uygun yanıtı hazırlar. Bu yanıt bir veya daha fazla IPv4 ya da IPv6 adresi olabileceği gibi MX, NS, TXT veya başka bir kaynak kaydı da olabilir; DNS çözümlemesinin sonucu her zaman IP adresi değildir.

Recursive resolver aldığı kayıtları ve bazı yönlendirme bilgilerini ilgili TTL süreleri boyunca önbelleğe alabilir. Ardından yanıtı stub resolver'a, oradan da sorguyu başlatan uygulamaya iletir. Uygulama bir adres kaydı istemişse dönen IP adresini kullanarak asıl ağ bağlantısını başlatır; DNS'in görevi bağlantıyı kurmak değil, uygulamaya gerekli DNS kaydını sağlamaktır.

Alan adı veya istenen kayıt bulunmadığında recursive resolver yine de istemciye bir yanıt döndürebilir. Var olmayan bir ad, mevcut bir ad altında bulunmayan kayıt türü ve geçici çözümleme hatası aynı durum değildir; istemciye dönen sonuç, yetkili veriye ve recursive resolver hizmetinin karşılaştığı koşula göre değişir.

Recursive Sorgu ile Iterative Çözümleme Arasındaki Farklar

Recursive (özyinelemeli) sorguda istemci, recursive resolver hizmetinden nihai yanıtı ya da hata bilgisini ister; başka bir sunucuya yönlendirme beklemez. Bu, stub resolver ile recursive resolver arasındaki temel iş bölümüdür.

Iterative çözümlemede sorgulanan sunucu elindeki en iyi bilgiyi verir: doğrudan yanıt verebilir veya başka bir sunucu grubuna yönlendirebilir. Recursive resolver kök, TLD ve yetkili sunucular arasında ilerlerken çoğunlukla bu modeli kullanır.

Bir sunucu teknik olarak birden fazla görevi üstlenebilir, ancak bu görevler aynı değildir. Yetkili yanıt vermek belirli bir DNS bölgesinin verisini sunmak, recursive çözümleme yapmak ise istemci adına başka sunuculara başvurarak sonuç aramak anlamına gelir.

DNS Sorgusunun Her Zaman Aynı Yolu İzlememesinin Nedenleri

Her sorgu kök sunucudan başlamaz ve bütün adımları eksiksiz izlemez. Nihai kayıt, yetkili sunucu bilgisi veya TLD yönlendirmesi önbellekteyse recursive resolver yalnızca eksik kalan aşamalara başvurabilir.

Bir alanın birden fazla yetkili DNS sunucusu olabilir. Recursive resolver kullanılabilir sunuculardan birini seçer. Seçilen sunucu yanıt vermezse başka bir sunucuya geçme, zaman aşımı ve yeniden deneme davranışları yazılıma ve yapılandırmaya göre değişir.

Sorgulanan kayıt türü de izlenen yolu etkiler. A sorgusu IPv4 adresini, AAAA sorgusu ise IPv6 adresini arar. CNAME kaydı, recursive resolver hizmetinin başka bir ad için ek sorgu başlatmasına neden olabilir. Bu nedenle aynı alan adına yöneltilen farklı kayıt türleri aynı yanıtı vermeyebilir veya aynı sayıda adım gerektirmeyebilir.

DNS Sorgulama Araçlarının Gösterdiği Bilgiler

Bir alan adı için dönen kayıtları DNS Sorgulama aracıyla inceleyebilirsiniz. Dönen kayıtlar, sorgunun geçtiği bütün DNS sunucularını ve kullanılan önbellekleri tek başına göstermez.