DNS Nedir? Alan Adları IP Adreslerine Nasıl Dönüşür?
DNS, insanların kolayca hatırladığı alan adlarını bilgisayarların ağ üzerinde kullandığı IP adresleriyle eşleştirir. Bu eşleştirme; resolver, yetkili DNS sunucuları ve önbellek gibi bileşenlerin birlikte çalışmasıyla gerçekleşir. TTL ise DNS yanıtlarının ne kadar süre saklanacağını belirler.
Bu yazıda (5)
Bir alan adına bağlanmak için yalnızca akılda kalıcı metin yeterli değildir; ağ üzerindeki cihazların sayısal IP adreslerine ihtiyaç vardır. DNS, bu iki farklı gösterim biçimi arasında sorgulanabilir bir eşleştirme sağlar.
DNS'nin tanımı ve temel amacı
DNS, alan adlarını ağ üzerindeki kaynaklarla ilişkilendiren hiyerarşik ve dağıtık bir adlandırma sistemidir. İnsanlar için anlamlı olan alan adlarını, bilgisayarların ve ağ protokollerinin kullandığı IP adreslerine çevirmesinin yanında alan adlarıyla ilgili başka bilgilerin tutulmasını da sağlar. Böylece kullanıcıların her hizmet için sayısal adres ezberlemesi gerekmez.
DNS'nin çalışma mantığı, bilgilerin tek bir merkezde tutulması yerine alan adlarına göre yetkili sunuculara dağıtılmasına dayanır. Bir alan adı için hangi DNS sunucusunun cevap vereceği belirlenir; sorgu geldiğinde bu sunucu, kendi sorumlu olduğu alan adına ait bilgiyi döndürür. Örneğin bir kullanıcı www.example.com adresini sorduğunda DNS, bu adın karşılık geldiği IPv4 veya IPv6 adresini bulmaya yardımcı olur. Hizmetin ağ üzerindeki konumu değişse bile alan adı aynı kalabilir; yalnızca DNS'deki eşleştirme güncellenir.
DNS kayıtları, alan adlarıyla ilişkilendirilen bilgi öğeleridir; kayıt türlerinin ayrıntıları ve yapılandırılması ayrı bir konudur. DNSSEC ve DNS güvenliği de bu temel ad çözümleme işleyişinin ötesinde incelenen bir konudur.
Alan adı, IP adresi ve DNS arasındaki fark
Alan adı, insanların okuyup hatırlayabileceği metinsel addır. Örneğin example.com bir alan adıdır. IP adresi ise ağ üzerindeki bir cihazı veya hizmeti bulmak ve tanımlamak için kullanılan sayısal adrestir; IPv4 ve IPv6, İnternet Protokolü'nün farklı sürümleridir; adresleri farklı uzunluk ve gösterim kurallarına sahiptir. DNS bu iki kavramdan biri değildir: Alan adı isim, IP adresi sayısal adres, DNS ise aralarındaki eşleştirmeyi sağlayan sistemdir.
Bu fark, DNS'nin neden gerekli olduğunu gösterir. Kullanıcı bir alan adını seçer ve DNS sorgusu bu adın hangi IP adresiyle ilişkilendirildiğini öğrenir. Bir alan adı tek bir IP adresiyle sınırlı olmak zorunda değildir; aynı ad için birden fazla adres bulunabilir. Tersine, bir IP adresi birden fazla alan adıyla ilişkilendirilebilir. Örneğin www.example.com alan adı, kaynak pasajında verilen IPv4 adresi 93.184.216.34 ve IPv6 adresi 2606:2800:220:1:248:1893:25c8:1946 ile örneklendirilmiştir. Burada alan adı kullanıcıya yönelik isim, adresler ağ konumunu gösteren değerler, DNS ise bu ilişkiyi sağlayan aracıdır.
DNS'nin farklı kullanıcılar için aynı alan adıyla farklı adresler döndürebilmesi de mümkündür. Bu, dağıtık hizmetlerde kullanıcıya daha yakın bir kaynağın seçilmesine yardımcı olabilir; ancak bu davranış, alan adı ile IP adresinin aynı şey olduğu anlamına gelmez.
Temel DNS sorgusu ve ad çözümleme akışı
Kullanıcı bir uygulamada alan adı gerektiren bir işlem başlattığında uygulama genellikle DNS sunucusuyla doğrudan konuşmaz. İstek, işletim sisteminin yerel DNS çözümleyicisine, yani resolver'a iletilir. Resolver önce kendi önbelleğine bakar. Daha önce öğrenilmiş ve hâlâ geçerli bir yanıt varsa bu kayıt kullanılır; yoksa resolver, kendisi için belirlenmiş DNS sunucularına sorgu gönderir. Bu sunucular gerekli bilgiyi bulana kadar ilgili DNS hiyerarşisindeki sunucularla iletişim kurabilir. Sonuç bulunduğunda yanıt resolver'a döner, resolver da sonucu isteyen uygulamaya iletir ve sonraki sorgular için önbelleğe alabilir.
Basitleştirilmiş akış şöyledir: alan adı yazılır, yerel resolver sorguyu alır, önbellekte yanıt aranır, yanıt yoksa uygun DNS sunucularına başvurulur, alan adının IP adresi bulunur ve sonuç uygulamaya verilir. Örneğin ornek.com için ilk sorguda adres önbellekte bulunmuyorsa resolver dışarıdan yanıt arar; aynı ad kısa süre sonra yeniden sorulduğunda doğrudan önbellekteki geçerli sonucu kullanabilir. DNS'den bir IP adresi yanıtı alınması yalnızca adın bir adresle eşleştirildiğini gösterir; ilgili hizmetin gerçekten erişilebilir veya çalışır durumda olduğunu garanti etmez.
Recursive resolver ve yetkili DNS sunucusunun görevleri
Recursive resolver, uygulama adına DNS sorgusunu takip eden ve sonuçlandırmaya çalışan bileşendir. Kullanıcının cihazına veya ağına atanmış olabilir; ev kullanıcılarında bu sunucu adresi çoğu zaman internet bağlantısını sağlayan kuruluş tarafından verilir. Resolver, doğrudan bildiği bir yanıtı önbellekten döndürür. Yanıtı bilmiyorsa başka DNS sunucularına sorular yöneltir, aldığı sonucu bir araya getirir ve son yanıtı isteği başlatan uygulamaya verir.
Yetkili DNS sunucusu ise belirli bir alan adından veya DNS bölgesinden sorumlu olan ve o alana ait kayıtları tutan sunucudur. Alan adı için yetki bu sunuculara devredildiğinde, alan adıyla ilgili soruların güvenilir kaynağı onlar olur. Recursive resolver'ın görevi kullanıcı adına aramak ve sonucu ulaştırmaktır; yetkili sunucunun görevi ise sorumlu olduğu alan için kayıtlı bilgiyi yanıtlamaktır. Örneğin resolver ornek.com için bir adres bilmiyorsa yetkili sunucuya ulaşıp bu alan adının adres kaydını sorabilir. Alan adı kayıt türlerinin ayrıntılı anlamları ve yapılandırma adımları burada ele alınmaz.
DNS önbelleği ve TTL'nin temel etkisi
DNS önbelleği, daha önce alınmış yanıtların geçici olarak saklandığı alandır. Resolver bir alan adını yeniden sorduğunda, geçerli bir kayıt önbellekte bulunuyorsa aynı bilgiyi baştan aramak yerine bu yanıtı kullanır. Böylece tekrarlanan sorgular azalır ve sonuç daha hızlı elde edilir. Önbellek yalnızca resolver'da değil, DNS çözümleme sürecindeki farklı bileşenlerde de bulunabilir; temel amaç daha önce öğrenilmiş bilgiden belirli bir süre yararlanmaktır.
TTL, bir DNS kaydının veya yanıtının önbellekte ne kadar süre geçerli sayılacağını belirtir. TTL süresi dolmadan önce alan adı için yeni bir sorgu geldiğinde eski yanıt kullanılabilir. Süre dolduktan sonra resolver yeniden güncel bilgi arar. Bu nedenle bir alan adının IP adresi değiştirildiğinde değişiklik her kullanıcıda aynı anda görünmeyebilir: bazı resolver'lar eski yanıtı TTL süresi boyunca saklamaya devam ederken, süresi dolanlar yeni yanıtı sorar. Örneğin TTL'si henüz bitmemiş bir adres kaydı, yetkili sunucuda değiştirilmiş olsa bile bir süre daha önbellekten dönebilir.
DNS sorunlarını giderme veya DNS sunucusu değiştirme işlemleri, önbellek ve çözümleme mantığının ötesinde ayrı bir uygulama konusudur.
Bir kullanıcı telefonundaki veya bilgisayarındaki bir uygulamada alan adı kullandığında cihaz, bu adı doğrudan sayısal IP adresi olarak bilmek zorunda kalmaz; DNS resolver uygun adresi bulur ve sonucu uygulamaya iletir. Alan adı adresi değişmişse, TTL nedeniyle bazı cihazlarda eski eşleştirme bir süre daha kullanılabilir.
DNS ile IP adresini karıştırmamak ayırt edici noktadır: alan adı isimdir, IP adresi ağ adresidir, DNS ise bu ikisi arasındaki eşleştirmeyi sağlayan sistemdir. Recursive resolver sorguyu kullanıcı adına takip eder; yetkili DNS sunucusu ise sorumlu olduğu alanın kayıtlı bilgisini sağlar.
Sık sorulan sorular
DNS tam olarak neyi çözer?
DNS, insanların kullandığı alan adlarını ağ üzerindeki kaynakların IP adresleriyle eşleştirir. Böylece kullanıcıların sayısal adresleri bilmesi gerekmez.
Alan adı ile IP adresi aynı şey midir?
Hayır. Alan adı okunabilir bir isim, IP adresi ağ üzerinde kullanılan sayısal adrestir. DNS, bu ikisi arasındaki ilişkiyi sağlar.
DNS sorgusunda recursive resolver ne yapar?
Recursive resolver, uygulama adına DNS sorgusunu yürütür. Önbellekte yanıt yoksa diğer DNS sunucularına başvurur, sonucu alır ve uygulamaya iletir.
DNS önbelleği nedeniyle değişiklikler neden hemen görünmeyebilir?
Önceki DNS yanıtı TTL süresi dolana kadar önbellekte kullanılabilir. Bu nedenle yetkili sunucudaki yeni IP adresi bazı kullanıcılara daha sonra ulaşabilir.
DNS'den IP adresi alınması hizmetin çalıştığı anlamına gelir mi?
Hayır. DNS yanıtı yalnızca alan adının bir IP adresiyle eşleştiğini gösterir; ilgili hizmetin erişilebilir olduğunu garanti etmez.
- •Wikipedia (EN) — Domain Name System — Domain Name System / girisen.wikipedia.org