DNS (Alan Adı Sistemi), İnternet’in telefon rehberidir. İnsanlar, nytimes.com veya espn.com gibi alan adları aracılığıyla çevrimiçi bilgilere erişirler. Web tarayıcıları, İnternet Protokolü (IP) adresleri aracılığıyla etkileşimde bulunurlar. DNS, alan adlarını IP adreslerine çevirerek tarayıcıların İnternet kaynaklarını yüklemesini sağlar.

İnternete bağlı her cihazın benzersiz bir IP adresi vardır ve diğer makineler cihazı bulmak için bu adresi kullanır. DNS sunucuları, insanların 192.168.1.1 gibi IP adreslerini (IPv4’te) veya daha karmaşık alfasayısal IP adreslerini (IPv6’da) hatırlamalarına gerek kalmadan kullanıcıya IP adresiyle ulaşma imkanı sağlar.

DNS nasıl çalışır?

DNS çözümleme süreci, bir ana bilgisayar adını (örneğin www.example.com) bilgisayar dostu bir IP adresine (örneğin 192.168.1.1) dönüştürme işlemini içerir. İnternet’teki her cihaza bir IP adresi verilir ve bu adres, ilgili İnternet cihazını bulmak için gereklidir – bir evi bulmak için kullanılan bir sokak adresi gibi. Bir kullanıcı bir web sayfasını yüklemek istediğinde, kullanıcının web tarayıcısına girdiği şey (example.com) ile example.com web sayfasını bulmak için gereken makine dostu adres arasında bir çeviri yapılması gerekmektedir.

DNS çözümleme sürecinin ardındaki süreci anlamak için DNS sorgusunun geçmesi gereken farklı donanım bileşenleri hakkında bilgi sahibi olmak önemlidir. Web tarayıcısı için DNS araması “arka planda” gerçekleşir ve kullanıcının bilgisayarından başka bir etkileşim gerektirmez, yalnızca başlangıç isteğinden başka.

Bir web sayfasını yüklemek için 4 DNS sunucusu bulunmaktadır:

Özyineli DNS çözümleyici – Özyineli çözümleyici, kütüphanede belirli bir kitabı bulmak için görevlendirilen bir kütüphaneci gibi düşünülebilir. Özyineli DNS çözümleyici, web tarayıcıları gibi uygulamalar aracılığıyla istemci makinelerden gelen sorguları almak için tasarlanmış bir sunucudur. Genellikle çözümleyici, istemcinin DNS sorgusunu karşılamak için ek sorgular yapmakla sorumludur.

Kök (root) isim sunucusu – Kök sunucusu, insan tarafından okunabilir ana bilgisayar adlarını IP adreslerine dönüştürmek (çözmek) için ilk adımdır. Bir kütüphanedeki farklı raflara işaret eden bir dizin gibi düşünülebilir – genellikle diğer daha spesifik konumlara referans olarak hizmet eder.

TLD (En Üst Düzey Alan) isim sunucusu – TLD sunucusu, kütüphanedeki belirli bir kitap rafı gibi düşünülebilir. Bu isim sunucusu, belirli bir IP adresini arama sürecinde bir sonraki adımdır ve ana bilgisayar adının (Örneğin, example.com’da TLD sunucusu “com” dur) son bölümünü barındırır.

Yetkili isim sunucusu – Bu son isim sunucusu, bir raf üzerindeki bir sözlük gibi düşünülebilir, burada belirli bir isim, tanımına çevrilebilir. Yetkili isim sunucusu, isim sunucusu sorgusunun son durağıdır. Yetkili isim sunucusu istenen kayda erişimi varsa, istemci tarafından yapılan başlangıç isteğine yönelik IP adresini istemciye (özyineli DNS çözümleyiciye/kütüphaneciye) geri döndürür.

Yetkili DNS sunucusu ile özyineli DNS çözümleyici arasındaki fark nedir?

Her iki kavram da DNS altyapısında önemli bir role sahip olan sunucuları (sunucu gruplarını) ifade eder, ancak her biri farklı bir rolü yerine getirir ve DNS sorgusu sürecinde farklı konumlarda yer alır. Farkı düşünmenin bir yolu, özyineli (recursive) çözümleyicinin DNS sorgusunun başında olduğu ve yetkili isim sunucusunun ise sorgunun sonunda olduğudur.

Özyineli DNS Çözümleyici

Özyineli çözümleyici, istemciden gelen özyineli bir isteğe yanıt veren ve DNS kaydını bulmak için zaman harcayan bilgisayardır. Bu, yetkili DNS isim sunucusuna ulaşana kadar bir dizi istek yaparak gerçekleştirilir (veya kayıt bulunamazsa zaman aşımına uğrar veya hata döndürür). Neyse ki, özyineli DNS çözümleyicileri, istemciye yanıt vermek için gerekli kayıtları bulmak için her zaman birden fazla istek yapmak zorunda değillerdir; önbellekleme, DNS aramasında istemciye daha önce sunulan kaynağı daha önce hizmet ederek gerekli istekleri kısaltan bir veri saklama işlemidir.

Yetkili DNS Sunucusu

Basitçe söylemek gerekirse, yetkili DNS sunucusu, gerçekten DNS kaynak kayıtlarını tutan ve sorumlu olan bir sunucudur. Bu, DNS arama zincirinin en altında bulunan sunucudur ve sorgulanan kaynak kaydını yanıtlayarak, talepte bulunan web tarayıcısının web sitesine veya diğer web kaynaklarına erişmek için gereken IP adresine ulaşmasını sağlar. Bir yetkili isim sunucusu, kendi verilerinden gelen sorguları başka bir kaynağa sormadan karşılayabilir, çünkü belirli DNS kayıtları için nihai doğru kaynaktır.

Değerli bir nokta da, foo.example.com veya blog.cloudflare.com gibi bir alt etki alanı için yapılan sorgularda, yetkili isim sunucusundan sonra alt etki alanının CNAME kaydını tutan ek bir isim sunucusunun sıraya ekleneceğidir.

Birçok DNS hizmeti ile Cloudflare’ın sunduğu hizmet arasında önemli bir fark vardır. Google DNS, OpenDNS gibi farklı DNS özyinelemeli çözümleyiciler ve Comcast gibi sağlayıcılar, DNS özyinelemeli çözümleyicilerin veri merkezi kurulumlarını sürdürürler. Bu çözümleyiciler, optimize edilmiş DNS uyumlu bilgisayar sistemlerinin kümeleri aracılığıyla hızlı ve kolay sorgulara izin verirler, ancak temel olarak Cloudflare tarafından barındırılan isim sunuculardan farklıdırlar.

Cloudflare, internetin işleyişi için temel olan altyapı düzeyinde isim sunucularını korur. Bunlardan biri, kısmen Cloudflare tarafından barındırılan f-root sunucu ağıdır. F-root, günlük milyarlarca internet isteğinden sorumlu olan kök düzeyi DNS isim sunucusu altyapı bileşenlerinden biridir. AnyCast ağımız, hizmet kesintisi olmadan büyük miktarda DNS trafiği yönetmek için bizi benzersiz bir konuma getirir.

DNS Aramasında Hangi Adımlar İzlenir?

Çoğu durumda, DNS, bir alan adının uygun IP adresine çevrilmesiyle ilgilenir. Bu sürecin nasıl çalıştığını anlamak için, bir DNS aramasının web tarayıcısından başlayarak DNS arama sürecinden geçip tekrar geri döndüğü yolunu takip etmek faydalı olur. İşte adımlara bir göz atalım.

Not: DNS arama bilgileri genellikle sorgulayan bilgisayarın içinde yerel olarak veya DNS altyapısında uzaktan önbelleğe alınır. DNS bilgisi önbelleğe alındığında, DNS arama sürecinden bazı adımlar atlanır ve bu süreci daha hızlı hale getirir. Aşağıdaki örnek, hiçbir şeyin önbelleğe alınmadığı durumda tüm 8 adımı açıklar.

DNS Aramasında 8 Adım:

  1. Kullanıcı ‘example.com’ yazısını bir web tarayıcısına girer ve sorgu internete iletilir ve bir DNS özyinelemeli çözümleyici tarafından alınır.
  2. Çözümleyici daha sonra bir DNS kök sunucusuna (. root sunucusu) sorgu gönderir.
  3. Kök sunucusu daha sonra çözümleyiciye, alan adlarının bilgilerini depolayan bir Üst Düzey Alan (TLD) DNS sunucusunun (örneğin .com veya .net) adresini verir. example.com’u ararken, talebimiz .com TLD’sine yönlendirilir.
  4. Çözümleyici daha sonra .com TLD’sine bir istek yapar.
  5. TLD sunucusu, alan adının isim sunucusunun IP adresi olan example.com’un adresini çözümleyiciye yanıt olarak gönderir.
  6. Son olarak, özyinelemeli çözümleyici, alan adının isim sunucusuna bir sorgu gönderir.
  7. Example.com için IP adresi isim sunucusundan çözümleyiciye geri döner.
  8. DNS çözümleyici, başlangıçta istenen alan adının IP adresini web tarayıcısına yanıt olarak gönderir.

DNS aramasının 8 adımı, example.com için IP adresini döndürdüğünde, tarayıcı web sayfası için isteği yapabilir:

  1. Tarayıcı, IP adresine bir HTTP isteği yapar. (9. Adım)
  2. O IP adresindeki sunucu, tarayıcıda görüntülenecek web sayfasını döner. (10. Adım )

DNS Çözümleyici Nedir?

DNS çözümleyici, DNS aramasının ilk adımıdır ve başlangıçta isteği yapan istemciyle ilgilenir. Çözümleyici, URL’nin gerekli IP adresine çevrildiği sorgu dizisini başlatır.

Not: Tipik bir önbelleksiz DNS araması, özyinelemeli ve yinelemeli sorguları içerir.

Özyinelemeli DNS sorgusu ve özyinelemeli DNS çözümleyici arasında ayrım yapmak önemlidir. Sorgu, sorgunun çözümünü gerektiren bir DNS çözümleyiciye yönelik yapılan isteği ifade eder. DNS özyinelemeli çözümleyici ise özyinelemeli bir sorguyu kabul eden ve gerekli istekleri yaparak yanıtı işleyen bilgisayardır.

DNS Sorgularının Tipleri Nelerdir?

Tipik bir DNS aramasında üç tür sorgu gerçekleşir. Bu sorguların bir kombinasyonunu kullanarak DNS çözümlemesi için optimize edilmiş bir süreç, kat edilen mesafeyi azaltabilir. İdeal bir durumda önbelleğe alınmış kayıt verileri mevcut olacak ve DNS ad sunucusu bir özyinelemeli sorgu dışında bir yanıt döndürecektir.

3 Tür DNS Sorgusu:

Özyinelemeli sorgu – Özyinelemeli bir sorguda, bir DNS istemcisi (genellikle bir DNS özyinelemeli çözümleyici) istemciye istenen kaynak kaydını veya çözümleyici kaydı bulamazsa bir hata mesajıyla yanıt verecektir.

Yinelemeli sorgu – Bu durumda DNS istemcisi, bir DNS sunucusunun en iyi yanıtı döndürmesine izin verir. Sorgulanan DNS sunucusu, sorgu adı için eşleşme bulunmadığında, alan adı ad alanının daha düşük bir düzeyi için yetkilendirilmiş bir DNS sunucusuna yönlendirme yapar. DNS istemcisi daha sonra yönlendirme adresine bir sorgu yapar. Bu süreç, sorgu zincirindeki ek DNS sunucularıyla devam eder ve ya bir hata veya zaman aşımı olana kadar devam eder.

Özyineleme yapılmayan sorgu – Tipik olarak, bir DNS çözümleyici istemci, hem kaynak kaydının yetkilisi olduğu için hem de kaydın önbellekte bulunduğu için erişim sağladığı bir kaydı sorguladığında gerçekleşir. Genellikle bir DNS sunucusu, ek bant genişliği tüketimini ve yukarı yönlü sunuculardaki yükü önlemek için DNS kayıtlarını önbelleğe alır.

DNS Önbelleğe Alma Nedir? DNS Önbelleğe Alma Nerede Gerçekleşir?

Önbelleğe alma, veri taleplerinde performans ve güvenilirlik açısından iyileştirmeler sağlamak için veriyi geçici bir konumda depolama amacını taşır. DNS önbelleğe alma, DNS sorgusunun daha erken çözümlenmesini sağlamak için veriyi talep eden istemciye daha yakın bir konumda depolama işlemidir ve DNS aramasının altında kalan ek sorguların önüne geçerek yükleme sürelerini iyileştirir ve bant genişliği/CPU tüketimini azaltır. DNS verileri, zamanla yaşam süresi (TTL) tarafından belirlenen bir süre boyunca depolayan çeşitli konumlarda önbelleğe alınabilir.

Tarayıcı DNS Önbelleğe Alması

Modern web tarayıcıları varsayılan olarak DNS kayıtlarını belirlenen bir süre boyunca önbelleğe alacak şekilde tasarlanmıştır. Buradaki amaç açıktır; DNS önbelleğe alması, web tarayıcısına ne kadar yakın gerçekleşirse, önbelleği kontrol etmek ve doğru istekleri bir IP adresine yapmak için daha az işlem adımı atılması gerekir. Bir DNS kaydı için istek yapıldığında, tarayıcı önbelleği istenen kayıt için ilk kontrol edilen konumdur.

Chrome’da DNS önbelleğinizin durumunu görmek için chrome://net-internals/#dns adresine giderek kontrol edebilirsiniz.

İşletim Sistemi (OS) Seviyesinde DNS Önbelleğe Alma

İşletim sistemi seviyesindeki DNS çözümleyici, DNS sorgusu cihazınızı terk etmeden önceki ikinci ve son yerel duraktır. Bu sorguyu işlemek için işletim sisteminiz içindeki süreç genellikle “stub çözücü” veya DNS istemcisi olarak adlandırılır. Bir stub çözücü, bir uygulamadan bir istek aldığında, istenen kaydı kendi önbelleğinde kontrol eder. Eğer kayıt bulunmuyorsa, yerel ağı dışında, İnternet servis sağlayıcısının (ISP) içinde bulunan bir DNS özyinelemeli çözümleyiciye (recursive resolver) DNS sorgusu (özyinelemeli bayrağı ayarlı olarak) gönderir.

ISP içindeki özyinelemeli çözümleyici bir DNS sorgusu aldığında, tüm önceki adımlarda olduğu gibi, istenen ana bilgisayar-IP adresi çevirisinin zaten yerel kalıcılık katmanında saklanıp saklanmadığını kontrol eder.

Özyinelemeli çözümleyici, önbelleğinde bulunan kayıtların türüne bağlı olarak ek işlevselliğe sahiptir:

  1. Çözümleyici, A kayıtlarını bulundurmasa bile yetkilendirilmiş ad sunucuları için NS kayıtlarını bulunduruyorsa, bu ad sunucularını doğrudan sorgular ve DNS sorgusundaki birkaç adımı atlar. Bu kısayol, kök ve .com ad sunucularını (örneğin example.com arayışımızda) sorgulamayı önler ve DNS sorgusunun daha hızlı gerçekleşmesine yardımcı olur.
  2. Çözümleyici, NS kayıtlarını bulundurmasa, TLD sunucularına (bizim durumumuzda .com) bir sorgu gönderir ve kök sunucusunu atlar.
  3. Çözümleyicinin TLD sunucularına işaret eden kayıtları bulundurmadığı nadir bir durumda, o zaman kök sunucularına bir sorgu gönderir