7.08.2024

DNS Nedir?


DNS (Domain Name System) internetin telefon defteri olarak düşünülebilir. Günümüzde telefon numaralarını cep telefonlarımız dışında bir yerde saklamak ya da ezberlemek (!) durumunda değiliz. Geçmişte durum böyle değildi. Küçük defterlerimize telefon numaralarını yazar ve hata çok kullandığımız telefon numaralarını ezberimizde tutardık. O zamanlardan ezberlediğim bazı numaralar hala aklımdadır.

 

Elbette bir kişiye ulaşmak için bir çok sayıyı aklında tutmak ve her ihtiyaç duyulduğunda bu numaraları doğru sırada bir cihaza girmek çok pratik değil. Aynı şey internet için de geçerli. Daha önce bu yazıda bahsettiğim gibi, internete bağlı cihazlar bir IP adresine sahiptir. 212.154.234.45 gibi bir sayı dizisinden ya da IPv6 kullanan cihazlar için 2400:cb00:2048:1::c629:d7a2 gibi bir alfanümerik diziden oluşan bu IP adreslerini, ziyaret etmek istediğimiz her web sitesi ya da sunucu için ezberlemek zorunda olsak hiç pratik olmazdı. Bir bilgisayar başında olduğumuz için ilk çözüm arayışı da bu sayı dizisini daha sonra anlayacağımız bir isimle birlikte bilgisayarımızda saklamak olurdu. Örneğin aşağıdaki gibi bir tablo hazırlayabilirdik.

 


Her birimizin kişisel olarak bu tabloları tutması yine de pratik olmazdı. Ayrıca ulaşmak istediğimiz web sitesi/hizmet sunucusunu ya da kullandığı IP adresini değiştirebilir ve biz bundan habersiz kalabilirdik.

 

Daha pratik, okunabilir, günlük hayatta kullanılırken hatırlanması ve insandan insana aktarması daha kolay olan alan adlarının, ilgili sunucuların IP adresleri ile ilişkilendirilmesi işini, tüm internet için Domain Name System yani DNS bizim için yapıyor. Üstelik çoğunlukla arka planda neler olduğunun farkına bile varmıyoruz. :)

 

Sistemi tamam ama bu Domain Name (Alan Adı) nedir? Yukarıda bahsettiğim gibi internet kullanımı sırasında insan hayatını kolaylaştırmak adına anlamsız karakter dizileri ya da numaralar yerine kullanılan adreslere ihtiyacımız var. Bu adreslerin tekil olması da bir diğer gereklilik. Evinizin adresinin postacının sadece sizin evinizi bulmasını sağlayacak şekilde biçimlendirilmiş olması gibi.

 


Alan adları benzersiz olacak şekilde basit bir yapıda tasarlanmıştır. Alan adının bölümleri noktalarla ayrılır ve en sağındaki kısım TLD'dir. TLD Top Level Domain'in kısaltmasıdır. Prensip olarak TLD bu alan adının ne amaçla kullanıldığı hakkında bilgi verir. Com, net, org gibi TLD'ler için sıkı bir şekilde kontrol edilen kurallar olmamakla birlikte, ülkeler tarafından kontrol edilen uk, fr, tr gibi TLD'leri kullanmak için şartlar vardır. 


Sağdan sola doğru incelemeye devam edersek göreceğimiz ikinci bölüm alan adını benzersiz kılan label kısmıdır. 3. ve daha sonraki kısımlar ise aynı labelın içindeki alt labelları ifade ederler. Çoğunlukla konuşurken alan adı içindeki bu ilk labeldan alan adı olarak sonraki labellardan ise alt alan adı olarak bahsederiz. Tr ve Uk TLD'lerinde olduğu gibi bazı ülkeler com.tr, gov.uk gibi ilk label'ı da kendilerine ayırmış sanki TLD'nin bir parçası gibi kullanmıştır. Bu nedenle bu ülke alan adlarından alacak kullanıcılar 2. label'ı seçerek kendi alan adlarını belirleyebilirler.

 

Bir alan adını kullanmak istediğimizde daha önce başkası tarafından kullanılmıyorsa ya da kullanılmak üzere ayırılmadıysa, registrar denen firmalar aracılığıyla alan adını kendi adımıza kaydederiz. Bu kayıt işleminin takibi için de yıllık olarak registrara ödeme yaparız. Bu işlem alan adını satın almamızı değil; ödemeleri yaptığımız sürece bu alan adının kullanım hakkına sahip olmamızı sağlar. Alan Adları ve WWW hakkında detaylı bilgilere yazının sonundakikaynaklardan ulaşabilirsiniz.

 

DNS tarafından yapılan çözümleme (alan adından IP adresine dönüşüm) işlemi gerçekleştirilirken arka planda neler olduğunu anlamak için, web tarayıcınızda başlayan bu sürecin geçtiği bileşenleri de anlamak gerekir. Bu amaçla 4 farklı DNS sunucusundan bahsedeceğiz.

 

DNS Resolver: DNS Resolver web tarayıcıları gibi client'lar tarafından yapılan sorguları yanıtlamak üzere tasarlanmıştır. Kullanıcıdan gelen sorguda yer alan alan adını çözümlemek için, bir kütüphanecinin kendisine sorulan bir kitabı bulmasına benzer şekilde gerekli taramayı yapar ve ulaştığı bilgiyi istek sahibiyle paylaşır.

 

Root Nameserver: Çözümleme işleminin ilk adımı root server'dır. Bir index tutarak daha sonra sorgunun iletilmesi gereken yerleri belirler.

 

TLD Nameserver: com, net gibi TLD'lerin çözümlenmesini sağlar.

 

Authoritative Nameserver: Çözümleme işleminin son aşamasında görev alır. Sorgulanan alan adının karşılık geldiği IP adresi kayıtlıysa bilgileri DNS Resolver'a gönderir.

 

Yazının sonundaki kaynaklarda bu sunucular ve aralarındaki iş bölümü hakkında daha detaylı bilgi bulabilirsiniz. Biz DNS çözümleme işlemini adım adım inceleyerek devam edelim.


  1. Web tarayıcının adres satırına yazılan adres, örneğin: alperguclu.com tarayıcı tarafından işletim sistemi üzerinde tanımlanmış DNS Resolverr'a  iletilir.
  2. DNS Resolver, sorguyu ilgili root nameserver'a iletir.
  3. Root server ulaşılmak istenen TLD'ye ait DNS server'ın adresini resolver'a döner.
  4. Resolver TLD sunucusuna (bu durumda com TLD sunucusu) ilgili isteği iletir.
  5. TLD sunucusu alan adının nameserver'ına ait IP adresini resolver'a döner.
  6. Resolver artık öğrenmiş olduğu domain'in nameserverına isteği iletir.
  7. alperguclu.com için kayıtlı IP adresi DNS sunucusu tarafından resolver'a dönülür.
  8. Son olarak DNS resolver tarayıcıya istenen alan adının bulunduğu web sunucusunun IP adresini bildirir.

DNS çözümleme işlemi bittikten sonra, web tarayıcı öğrendiği IP adresine bir HTTP isteği yaparak (9) web sayfasına (10) ulaşır.

 

Aşağıdaki şemada bu adımları görebilirsiniz.

 


DNS Caching (Önbellek)

DNS sorgulama işleminin performansını arttırmak için daha önce elde edilen sonuçlar önbellekte tutulur. DNS çözümleme işlemine ilişkin bilgilerin, isteği yapan client'a yakın tutularak, harcanan zaman ve bant genişliğinin azaltılması hedeflenir. DNS kayıtları bir çok yerde cachelenir ve önbelleğe alınan bu bilgiler DNS kayıtlarında belirtilen TTL (time-to-live) değeri kadar süre saklanır. Örneğin web tarayıcısında ya da işletim sisteminde daha önce sorgulanmış olan  bir adres için saklanan IP adresi bilgisi kullanabilir ya da Nameserver, daha önce sorgulanmamışsa da Root Server ve TLD Server bilgileri yeniden sorgulanmadan geçerli oldukları süre boyunca yeniden kullanılırlar.

 

Kaynaklar:

https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_domain_name

 

https://www.cloudflare.com/en-gb/learning/dns/glossary/what-is-a-domain-name/

 

https://en.wikipedia.org/wiki/World_Wide_Web

 

https://developer.mozilla.org/en-US/docs/Glossary/DNS

 

https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/

 

https://howdns.works/