DNS Nedir?
İnternet üzerinde iletişim kurmanın temeline indiğimizde karşımıza IP (Internet Protocol) adresleri çıkıyor. IP adresini aslında eviniz adresi olarak düşünebilirsiniz. Eğer bir arkadaşınız ya da sevdiğiniz size mektup göndermek istediğinde üzerine ev adresinizi yazması gerekiyor ki o mektup size ulaşabilsin. Peki bir web sitesine bağlanmak istediğinizde de benzer durum yaşanıyor mu?
Elbette ki her web tasarım bir web serverda ya da daha açık bir ifade ile bir web sunucusunda tutuluyor. Örneğin google.com adresine gitmek istediğinizde o web sitenin ilgili web sunucusunun adresine ihtiyaç duyarsınız. Hatta google.com yazmak yerine 172.217.17.238 IP adresini yazarsanız da Google’a ulaşmış olursunuz.
dns http concept
İşte burada devreye DNS (Domain Name System) giriyor. Hali hazırda elinizde google.com domaininin IP adresinin olmadığını düşünelim. İlk önce web tarayıcınız kendi bünyesinde ilgili domaine ait bir IP olup olmadığına bakar. Eğer herhangi bir sonuç bulunmazsa bilgisayarınızda mevcut olan DNS Resolver’a (Domain Name System Çözücü) web tarayıcınız istek gönderir. DNS Resolver aynı şekilde kendi hafızasında ilgili kayıdı arar eğer bulursa web tarayıcınıza cevap olarak gönderir ama bulamazsa artık internetteki DNS sunucularına istek göndererek gitmek istediğiniz adresin çözümlenmesini sağlar. İşte bu sistemin tamamına DNS diyebiliriz.
Gelin beraber bu sistemin detaylarına inelim.
DNS Sunucu Tipleri ve Kısaca Yaptıkları
DNS Recursor
DNS Recursor sunucular, clientlardan (istemci) uygulamalar yoluyla (web tarayıcı bir örnek olabilir) DNS istekleri almak üzerine tasarlanmıştır. Genel görevleri aldıkları DNS isteklerine cevap verebilmek için başka DNS sunucularına istek göndererek ilgili yanıtı yani istenilen IP adresini bulmaktır.
Root Nameserver (Kök İsim Sunucusu)
Kök isim sunucuları insanların okuyabildiği web adreslerini (örnek olarak google.com) ilgili IP adreslerine çözümleyen ilk aşamayı gerçekleştirir. Bu işlem başka bir DNS sunucusuna yönlendirme ile gerçekleştirilir. DNS’in çalışma mantığından da yola çıkarsak tümden gelim gibi düşünülebilir.
TLD (Top Level Domain) Nameserver (Üst Seviye Domain İsim Sunucusu)
TLD’ler .com, .net, .org, .edu gibi uzantılara ait web sunucuların adreslerinin tutulduğu DNS sunuculardır.Özetlemek gerekirse ilgili adrese TLD ile daha çok yaklaşıyoruz.
domains
Authoritative Nameserver (Yetkili İsim Sunucusu)
Yetkili isim sunucuları, DNS sorgularının en son aşamasını gerçekleştirmemizi sağlar. Gitmek istediğiniz web sitenin kesin adresini bünyesinde bulundurduğu için ilgili adresi size gönderir.
CNAME Kayıdı Nedir?
Subdomainleri yani alt domainleri bir web siteye ait alt kademedeki web siteleri içerisinde bulunduran adresler gibi düşünebilirsiniz. Eğer account.google.com web sitesine gitmek istiyorsanız ilgili IP adresinin sorgusunun son durağı Authoritative Nameserver (Yetkili İsim Sunucusu) değil subdomain adreslerini yani CNAME kayıtlarını tutan başka bir DNS sunucusudur.
Bir DNS Sorgusunun Aşamaları
DNS resolver, DNS root nameserver’a istek gönderir.
Sonra DNS root nameserver, DNS resolverdan aldığı isteği değendirir ve ilgili Top Level Domain Name DNS sunucusunun adresini DNS resolvera gönderir.
Bu aşamada DNS resolver TLD’ye bir istek yollar.
TLD, resolverdan aldığına karşılık ilgili isim sunucusunun adresini resolvera gönderir.
Son olarak DNS resolver TLD’den öğrendiği ilgili isim sunucusuna bir istekte bulunur.
İsim sunucusu bünyesinde bulunan ilgili IP adresini resolvera gönderir.
DNS resolver aldığı IP adresini web tarayıcıya ileterek istenen web siteye ulaşılmasını sağlar.
DNS Sorgu Tipleri Nelerdir?
Recursive (Yinelemeli) Sorgu
Yinelemeli sorgulama, DNS istemcinin, isteklere bulduğu kayıtlarla ya da hatalar ile geri dönüş yapacak bir DNS sunucuya (Genellikle Recursive Resolver) ihtiyacı olduğu zaman yapılır.
Iterative (Tekrarlı) Sorgu
Bu durumda bir DNS istemcisi istekte bulunduğu bir DNS sunucusunun kendisine yanıt olarak en iyi sonucu göndermesini ister. Eğer iletişimde bulunulan DNS sunucusunda ilgili domain ile alakalı kesin bir sonuç yoksa başka bir referans sunucusuna yönlendirme yapılır. Bunun ardından DNS istemcisi kendisinin yönlendirildiği diğer DNS sunucusuna istek yollar. Bu işlemler DNS sunucularının hata mesajı göndermesine ya da gecikme yaşanmasına kadar devam eder.
Non-recursive (Yinelemeli Olamayan) Sorgu
Bu sorgular genellikle DNS resolver (Çözücü) istemcilerin ilgili kayıtları kesin olarak tuttuğunu bildiği bir authoritative (Yetkili) DNS sunucusuna istek göndermesi ile gerçekleşir. Non-recursive sorguya zemin hazırlamak için DNS sunucular fazladan internet trafiği oluşturmamak için daha önceden gelen isteklerin cevaplarını kayıt olarak kendi hafızalarında tutar.
DNS Kayıtları Nasıl ve Nerelerde Tutulur?
Web Tarayıcılarda
Modern web tarayıcılar web sitelere ulaşımı daha hızlı bir hale getirmek için önceden DNS sorguları ile öğrenilmiş web sitelerin IP adreslerini kendi hafızalarında tutar. Böylelikle çok kısa bir zamanda herhangi bir DNS sorgusuna gerek kalmadan web tasarımlar kullanıcılara sunulur.
İşletim Sistem Düzeyinde
İşletim sistemi düzeyinde DNS resolver (çözücü), DNS sorgularının yapılması gerekmeden önceki son çıkış noktasıdır. İşletim sistemlerinin bünyesinde bulunan Stub resolver bir başka adlandırma ile DNS istemcisi işletim sistemi üzerinde çalışan bir uygulamadan DNS sorgusu alarak işlemlerine başlar. İlk olarak kendi hafızasında hali hazırda bir kayıt olup olmadığına bakar. Eğer ilgili kayıt mevcut ise DNS sorgusunu gönderen uygulamaya istenen IP adresini gönderir. Fakat herhangi bir kayıt bulunmuyorsa artık işletim sistemindeki DNS istemcisi internet üzerindeki çeşitli DNS sunucularına istekler göndererek adres çözümlemesi yapar. Bu işlemler de bittikten sonra aynı şekilde DNS sorgusu yapan uygulamaya ilgili web sitesinin IP adresi cevap olarak gönderilir.
Recursive Resolver’ın (Yinelemeli Çözücünün) Takip Ettiği Bazı Kısayollar
Eğer hali hazırda DNS çözücüsü authoritative (Yetkili) DNS sunucusunun adresini bilmiyor fakat nameserver’ın (İsim Sunucusu) adresini biliyorsa aradaki ekstra aşamaları atlayarak direkt olarak nameserver’a DNS sorgusu gönderir.
Başka bir durumda ise eğer DNS çözücüsü nameserver’ın adresini bilmiyor ama TLD (Top Level Domain) sunucusunun adresini biliyorsa aradaki işlemlere gerek kalmaksızın TLD’ye DNS sorgusu gönderir.
Sor Bakalım
İnternet üzerinde ne kadar web site mevcut?
2020 verilerine göre toplamda 2 milyar web sitesi mevcuttur. Fakat aktiflik olarak baktığımızda bu sayı 400 milyondan daha azdır.
İnternet üzerinde iletişim kurmanın temeline indiğimizde karşımıza IP (Internet Protocol) adresleri çıkıyor. IP adresini aslında eviniz adresi olarak düşünebilirsiniz. Eğer bir arkadaşınız ya da sevdiğiniz size mektup göndermek istediğinde üzerine ev adresinizi yazması gerekiyor ki o mektup size ulaşabilsin. Peki bir web sitesine bağlanmak istediğinizde de benzer durum yaşanıyor mu?
Elbette ki her web tasarım bir web serverda ya da daha açık bir ifade ile bir web sunucusunda tutuluyor. Örneğin google.com adresine gitmek istediğinizde o web sitenin ilgili web sunucusunun adresine ihtiyaç duyarsınız. Hatta google.com yazmak yerine 172.217.17.238 IP adresini yazarsanız da Google’a ulaşmış olursunuz.
dns http concept
İşte burada devreye DNS (Domain Name System) giriyor. Hali hazırda elinizde google.com domaininin IP adresinin olmadığını düşünelim. İlk önce web tarayıcınız kendi bünyesinde ilgili domaine ait bir IP olup olmadığına bakar. Eğer herhangi bir sonuç bulunmazsa bilgisayarınızda mevcut olan DNS Resolver’a (Domain Name System Çözücü) web tarayıcınız istek gönderir. DNS Resolver aynı şekilde kendi hafızasında ilgili kayıdı arar eğer bulursa web tarayıcınıza cevap olarak gönderir ama bulamazsa artık internetteki DNS sunucularına istek göndererek gitmek istediğiniz adresin çözümlenmesini sağlar. İşte bu sistemin tamamına DNS diyebiliriz.
Gelin beraber bu sistemin detaylarına inelim.
DNS Sunucu Tipleri ve Kısaca Yaptıkları
DNS Recursor
DNS Recursor sunucular, clientlardan (istemci) uygulamalar yoluyla (web tarayıcı bir örnek olabilir) DNS istekleri almak üzerine tasarlanmıştır. Genel görevleri aldıkları DNS isteklerine cevap verebilmek için başka DNS sunucularına istek göndererek ilgili yanıtı yani istenilen IP adresini bulmaktır.
Root Nameserver (Kök İsim Sunucusu)
Kök isim sunucuları insanların okuyabildiği web adreslerini (örnek olarak google.com) ilgili IP adreslerine çözümleyen ilk aşamayı gerçekleştirir. Bu işlem başka bir DNS sunucusuna yönlendirme ile gerçekleştirilir. DNS’in çalışma mantığından da yola çıkarsak tümden gelim gibi düşünülebilir.
TLD (Top Level Domain) Nameserver (Üst Seviye Domain İsim Sunucusu)
TLD’ler .com, .net, .org, .edu gibi uzantılara ait web sunucuların adreslerinin tutulduğu DNS sunuculardır.Özetlemek gerekirse ilgili adrese TLD ile daha çok yaklaşıyoruz.
domains
Authoritative Nameserver (Yetkili İsim Sunucusu)
Yetkili isim sunucuları, DNS sorgularının en son aşamasını gerçekleştirmemizi sağlar. Gitmek istediğiniz web sitenin kesin adresini bünyesinde bulundurduğu için ilgili adresi size gönderir.
CNAME Kayıdı Nedir?
Subdomainleri yani alt domainleri bir web siteye ait alt kademedeki web siteleri içerisinde bulunduran adresler gibi düşünebilirsiniz. Eğer account.google.com web sitesine gitmek istiyorsanız ilgili IP adresinin sorgusunun son durağı Authoritative Nameserver (Yetkili İsim Sunucusu) değil subdomain adreslerini yani CNAME kayıtlarını tutan başka bir DNS sunucusudur.
Bir DNS Sorgusunun Aşamaları
DNS resolver, DNS root nameserver’a istek gönderir.
Sonra DNS root nameserver, DNS resolverdan aldığı isteği değendirir ve ilgili Top Level Domain Name DNS sunucusunun adresini DNS resolvera gönderir.
Bu aşamada DNS resolver TLD’ye bir istek yollar.
TLD, resolverdan aldığına karşılık ilgili isim sunucusunun adresini resolvera gönderir.
Son olarak DNS resolver TLD’den öğrendiği ilgili isim sunucusuna bir istekte bulunur.
İsim sunucusu bünyesinde bulunan ilgili IP adresini resolvera gönderir.
DNS resolver aldığı IP adresini web tarayıcıya ileterek istenen web siteye ulaşılmasını sağlar.
DNS Sorgu Tipleri Nelerdir?
Recursive (Yinelemeli) Sorgu
Yinelemeli sorgulama, DNS istemcinin, isteklere bulduğu kayıtlarla ya da hatalar ile geri dönüş yapacak bir DNS sunucuya (Genellikle Recursive Resolver) ihtiyacı olduğu zaman yapılır.
Iterative (Tekrarlı) Sorgu
Bu durumda bir DNS istemcisi istekte bulunduğu bir DNS sunucusunun kendisine yanıt olarak en iyi sonucu göndermesini ister. Eğer iletişimde bulunulan DNS sunucusunda ilgili domain ile alakalı kesin bir sonuç yoksa başka bir referans sunucusuna yönlendirme yapılır. Bunun ardından DNS istemcisi kendisinin yönlendirildiği diğer DNS sunucusuna istek yollar. Bu işlemler DNS sunucularının hata mesajı göndermesine ya da gecikme yaşanmasına kadar devam eder.
Non-recursive (Yinelemeli Olamayan) Sorgu
Bu sorgular genellikle DNS resolver (Çözücü) istemcilerin ilgili kayıtları kesin olarak tuttuğunu bildiği bir authoritative (Yetkili) DNS sunucusuna istek göndermesi ile gerçekleşir. Non-recursive sorguya zemin hazırlamak için DNS sunucular fazladan internet trafiği oluşturmamak için daha önceden gelen isteklerin cevaplarını kayıt olarak kendi hafızalarında tutar.
DNS Kayıtları Nasıl ve Nerelerde Tutulur?
Web Tarayıcılarda
Modern web tarayıcılar web sitelere ulaşımı daha hızlı bir hale getirmek için önceden DNS sorguları ile öğrenilmiş web sitelerin IP adreslerini kendi hafızalarında tutar. Böylelikle çok kısa bir zamanda herhangi bir DNS sorgusuna gerek kalmadan web tasarımlar kullanıcılara sunulur.
İşletim Sistem Düzeyinde
İşletim sistemi düzeyinde DNS resolver (çözücü), DNS sorgularının yapılması gerekmeden önceki son çıkış noktasıdır. İşletim sistemlerinin bünyesinde bulunan Stub resolver bir başka adlandırma ile DNS istemcisi işletim sistemi üzerinde çalışan bir uygulamadan DNS sorgusu alarak işlemlerine başlar. İlk olarak kendi hafızasında hali hazırda bir kayıt olup olmadığına bakar. Eğer ilgili kayıt mevcut ise DNS sorgusunu gönderen uygulamaya istenen IP adresini gönderir. Fakat herhangi bir kayıt bulunmuyorsa artık işletim sistemindeki DNS istemcisi internet üzerindeki çeşitli DNS sunucularına istekler göndererek adres çözümlemesi yapar. Bu işlemler de bittikten sonra aynı şekilde DNS sorgusu yapan uygulamaya ilgili web sitesinin IP adresi cevap olarak gönderilir.
Recursive Resolver’ın (Yinelemeli Çözücünün) Takip Ettiği Bazı Kısayollar
Eğer hali hazırda DNS çözücüsü authoritative (Yetkili) DNS sunucusunun adresini bilmiyor fakat nameserver’ın (İsim Sunucusu) adresini biliyorsa aradaki ekstra aşamaları atlayarak direkt olarak nameserver’a DNS sorgusu gönderir.
Başka bir durumda ise eğer DNS çözücüsü nameserver’ın adresini bilmiyor ama TLD (Top Level Domain) sunucusunun adresini biliyorsa aradaki işlemlere gerek kalmaksızın TLD’ye DNS sorgusu gönderir.
Sor Bakalım
İnternet üzerinde ne kadar web site mevcut?
2020 verilerine göre toplamda 2 milyar web sitesi mevcuttur. Fakat aktiflik olarak baktığımızda bu sayı 400 milyondan daha azdır.