Domain Name Server (DNS)
Last updated
Last updated
Selamlar! Bir sabah uyandığınızı ve youtube.com ya da twitter.com gibi web sitesi isimlerini yazarak erişim sağlayamadığınızı düşünün. Bunun yerine, YouTube'a girmek için 142.250.72.206 ya da Twitter'da gezmek için 104.244.42.65 gibi bir dizi sayıyı ezberleyip yazmanız gerektiğini hayal edin. Haydi, itiraf edelim, internet gezinmesi bir gecede son derece sıkıcı ve karmaşık hale gelirdi, değil mi?
Neyse ki, DNS (Domain Name System) adı verilen harika bir sistem sayesinde bu kabus senaryosu gerçekleşmeyecek. DNS, hatırlanması zor olan IP adreslerini kolayca hatırlanabilir alan adlarıyla eşleştirerek internet gezinmemizi oldukça keyifli ve sorunsuz hale getiriyor.
Şimdi, bu hayati internet omurgasının nasıl çalıştığını daha yakından inceleyelim ve arka planda neler olup bittiğini keşfedelim. DNS'in büyülü dünyasına hoş geldiniz!
DNS, internetin adres defteri olarak işlev gören dağıtık ve hiyerarşik bir sistemdir. Alan adlarını IP adreslerine çevirerek, dünya genelindeki cihazlar arasında sorunsuz ve verimli iletişimi sağlar. DNS'in temel amacı, kullanıcıların kolayca hatırlayabileceği alan adlarıyla web sitelerine ve kaynaklara erişmesini sağlarken, bilgisayarlar ve sunucuların IP adresleri aracılığıyla iletişim kurmasına olanak tanımaktır.
DNS, Uygulama katmanı hizmeti olarak çalışır. Ağın çekirdeğini basit tutarken, karmaşıklığı ağın kenarına yerleştirir. Bu, internetin tasarım felsefesini yansıtan bir yaklaşımdır.
DNS, internetin işleyişini kolaylaştırmak için çeşitli hizmetler sunar. İşte DNS'in sağladığı bazı hayati hizmetler:
Host-to-IP Adres Eşlemesi DNS, alan adları ve bunlara karşılık gelen IP adreslerinin bir veritabanını tutar. Bu eşleştirme, cihazların internet üzerinde birbirlerini bulabilmesi için gereklidir. Örneğin, "www.google.com" alan adını düşünelim. Host-to-IP adres eşlemesi, bu alan adıyla ilişkili IP adresinin belirlenmesini içerir, örneğin "172.67.21.11".
Host Aliasing (Takma Ad Oluşturma) DNS, CNAME (Canonical Name) kayıtları aracılığıyla yaygın olarak bilinen bir özellik olan host aliasing'i destekler. Bu, tek bir IP adresi veya birincil alan adıyla birden fazla alan adı takma adının ilişkilendirilmesine olanak tanır. Örneğin, "sibervatan.org" birincil alan adını düşünelim. Web sitesinin "sibervatan.org"un yanı sıra "www.sibervatan.org", "web.sibervatan.org" ve "blog.sibervatan.org" gibi çeşitli takma adlar aracılığıyla erişilebilir olmasını isteyebilirsiniz. Uygun CNAME kayıtlarını DNS'e ayarlayarak, bu takma adların tümü "sibervatan.org" birincil alan adına işaret edebilir. Sonuç olarak, kullanıcılar bu alan adlarından herhangi birini kullanarak web sitesine erişebilirler ve hepsi aynı hedef IP adresine yönlendirilir.
Email Yönlendirme DNS, MX kayıtları aracılığıyla e-posta yönlendirmede hayati bir rol oynar. Bu kayıtlar, bir alan adının hangi posta sunucularının adına e-posta mesajları alacağını belirlemesine olanak tanır. Bu mekanizma, e-posta yapılandırmalarında esneklik sağlar. Örneğin, "bytebytego.com" alanı için e-postaları almak üzere atanmış birincil posta sunucusunun "mail.bytebytego.com" olduğunu varsayalım. "@sales.bytebytego.com" veya "@support.bytebytego.com" gibi belirli e-posta adreslerine sahip olmak isteyebilirsiniz, ancak bu adresler için gelen tüm e-postaları "mail.bytebytego.com" sunucusuna yönlendirmek istersiniz. MX kayıtlarını uygun şekilde yapılandırarak, bu adreslere gönderilen e-postalar belirlenen birincil posta sunucusuna yönlendirilir.
IP-to-Host Adres Eşlemesi DNS, öncelikle alan adlarını IP adreslerine çevirmek için kullanılsa da, tersine arama yaparak IP adreslerini alan adlarına çevirebilir. Bu, güvenlik ve loglama amaçları için faydalıdır.
Yük Dengeleme DNS, aynı alan adı sorgusuna farklı IP adresleri dönerek gelen ağ trafiğini birden fazla sunucuya dağıtabilir. Bu, yükün dengelenmesine ve çevrimiçi hizmetlerin performansının ve güvenilirliğinin artırılmasına yardımcı olur.
DNS, dağıtık hiyerarşik bir veritabanı olarak çalışır. İşte DNS hiyerarşisinin yüksek seviyeli bir görünümü:
DNS hiyerarşisinin en üstünde root sunucular bulunur. Root sunucuları, bir sunucu bir adı çözemediğinde başvurulan ilk noktadır. İnternetin merkezi sinir sistemi gibi hareket ederler ve bu nedenle güvenlik son derece önemlidir. Root sunucularının altyapısının büyük bir kısmı ICANN (Internet Corporation for Assigned Names and Numbers) tarafından yönetilir. Dünya genelinde 13 mantıksal root sunucusu vardır, ancak her bir mantıksal root sunucusu çoğaltılmıştır, bu nedenle bu 13 mantıksal sunucuya karşılık gelen neredeyse bin fiziksel sunucu bulunmaktadır.
Root sunucularının bir alt seviyesinde TLD (Top-Level Domain) sunucuları bulunur ve bu sunucular, .com, .edu, .net ve .org gibi uzantılara sahip adresleri çözmekten sorumludur. ICANN, internet üzerinde kullanılan tüm TLD'ler üzerinde yetkiye sahiptir ve bu TLD'lerin sorumluluğunu çeşitli kuruluşlara devreder. Yeni bir alan adı kaydetmek isteyen bireyler veya kuruluşlar genellikle kayıt sürecini yönetmek için çeşitli Domain Name Registrar'lara başvururlar.
Yetkili sunucular, belirli bir alan adı içindeki ad çözümlemelerinin kesin kaynağıdır. Bu sunucular, belirli bir alan adı için gerçek ad-IP adresi eşlemelerini depolar. İnternet genelinde ad çözümlemelerini hızlandırmak için çeşitli önbellekleme mekanizmaları bulunsa da, kesin ve nihai yanıtı yetkili sunucular sağlar. Alan adı sahipleri veya yöneticileri, alan adlarının kayıtlarını yapılandırır, ancak gerçek altyapı genellikle DNS hosting sağlayıcıları veya GoDaddy, Namecheap gibi kayıt şirketleri tarafından işletilir.
Recursive sunucular, bilgisayarlar ve akıllı telefonlar gibi istemci cihazlardan gelen DNS sorgularını işler. Bir cihaz bir alan adını çözmek istediğinde, bu sunuculara başvurur. Recursive sunucular, istemci adına DNS hiyerarşisini gezerek alan adıyla ilişkili IP adresini belirler. Yanıtı aldıklarında, istemciye geri dönerler. Verimlilik için recursive sunucular genellikle yanıtları önbelleğe alır, böylece aynı bilgiyi tekrar tekrar sorgulamaktan kaçınırlar.
DNS çözümlemesinde iki ana sorgu yöntemi vardır: İteratif sorgu çözümlemesi ve Rekursif sorgu çözümlemesi.
İteratif sorgu çözümlemesinde, DNS sunucusu sorguyu alan sunucuya yönlendirmeler sağlar, böylece sorgulayan sunucu DNS hiyerarşisini dolaşır. Sorgulayan sunucu, aldığı yönlendirmeler temelinde sonraki sorguları göndererek aktif olarak sürece katılır.
Örneğin, sibervatan.org ismini çözmek isteyen bir ana makineyi düşünelim. Bu işlem şu şekilde gerçekleşir:
Ana makine ilk olarak yerel DNS çözümleyicisine sorgu mesajı gönderir. Sorgu mesajı çevrilmesi gereken sibervatan.org alan adını içerir.
Çözümleyici, IP adresini önbelleğinde bulamazsa, root DNS sunucusuna bir sorgu gönderir.
Root DNS sunucusu, .com son ekini tanıyarak .com TLD sunucularına bir yönlendirme sağlar.
Çözümleyici, bu TLD sunucularından birine yeni bir sorgu gönderir.
TLD sunucusu, sibervatan.org için yetkili DNS sunucusuna bir yönlendirme sağlar.
Çözümleyici, yetkili DNS sunucusuna başka bir sorgu gönderir.
Yetkili DNS sunucusu, sibervatan.org için tanımlı olan IP adresini içeren bir yanıt gönderir.
Çözümleyici, aldığı IP adresini önbelleğe alır ve ana makineye geri gönderir.
Ana makine, artık çözümlenen IP adresini kullanarak sibervatan.org'a erişim sağlayabilir.
Rekürsif sorgu çözümlemesinde, sorguyu alan DNS sunucusu, müşteri adına IP adresini bulma sorumluluğunu üstlenir. İstenen alan adı için yetkili DNS sunucusuna ulaşana kadar DNS hiyerarşisini gezinmek için kendisi de iteratif sorguları kullanabilir.
Önceki örneği kullanarak sibervatan.org'un IP adresini rekürsif sorgu çözümlemesi kullanarak çözmeyi deneyelim. Bu işlem, aşağıdaki gösterimde olduğu gibi gerçekleşir:
Bu yaklaşım, bir DNS sunucusunun istemci adına alan adının IP adresini çözme sürecini adım adım açıklar. Müşteri cihazının alan adını çözmek için DNS sunucusuna bir sorgu gönderdiği noktada, sunucu bu sorguyu alır ve DNS hiyerarşisini takip ederek gerekli bilgileri bulur ve müşteriye geri döndürür.
Rekürsif sorgu çözümlemesi, kullanıcı dostu bir deneyim sunmak için önemlidir çünkü kullanıcılar, IP adreslerini bilmek zorunda kalmadan kolayca alan adları aracılığıyla kaynaklara erişebilirler. Bu süreç, DNS'in temel işlevlerinden biridir ve internetin güvenilir ve verimli bir şekilde çalışmasını sağlar.
DNS Zehirleme (DNS Spoofing): Saldırgan, sahte DNS yanıtları göndererek, hedefin DNS sorgularını değiştirir ve kullanıcıları yanıltır. Böylece, kullanıcılar yanlış web sitelerine yönlendirilir ve hassas bilgileri ele geçirilir.
DNS İzleme (DNS Hijacking): Saldırgan, meşru bir DNS sunucusunu ele geçirerek, trafik yönlendirmesini değiştirir ve kullanıcıları yanıltır. Bu saldırı, kullanıcıların hedeflenen web sitelerine güvenli olmayan bağlantılar üzerinden erişmelerine neden olabilir.
Distributed Denial of Service (DDoS): Saldırganlar, DNS sunucularını aşırı yükleyerek, hizmet dışı bırakabilirler. Bu, hedeflenen web sitelerine erişimi engeller ve kurumların işlerini aksatabilir.
DNS Taraması (DNS Scanning): Saldırganlar, geniş bir IP adresi aralığında DNS sunucularını taramak ve zayıf noktaları tespit etmek için DNS sorguları gönderebilirler. Bu, saldırganların hedef sistemlere giriş yapmasını kolaylaştırabilir.
Güçlü Şifreleme Kullanımı: DNS trafiğini şifrelemek için DNS over HTTPS (DoH) veya DNS over TLS (DoT) gibi güvenli iletişim protokolleri kullanımı. Bu, DNS sorgularının saldırganlar tarafından izlenmesini ve değiştirilmesini önler.
Güvenilir DNS Sunucuları Kullanımı: Kurumsal ağlar için, güvenilir DNS sunucuları veya DNS güvenlik duvarları kullanılır. Bu, kötü amaçlı DNS trafiğini filtreleyebilir ve zararlı etkilere karşı koruma sağlayabilir.
DNS Güncellemelerinin İzlenmesi: DNS sunucularını düzenli olarak güncellemek ve güvenlik yamalarını uygulamak gerekir. Bu, potansiyel güvenlik açıklarını kapatır ve saldırılara karşı direnci artırır.
DNS Günlüklerini İzlemek: DNS trafiğini izlemek ve analiz etmek için günlük dosyalarını düzenli olarak kontrol gerekir. Bu, saldırı girişimlerini tespit etmeye ve önlem almaya yardımcı olabilir.
DDoS Koruması Sağlamak: DNS sunucularında DDoS koruma hizmetleri kullanmak ve yük dengeleme tekniklerini uygulamak gerekir. Bu, aşırı trafik nedeniyle hizmet dışı kalma riskini azaltır.
DNS güvenliği, internetin güvenliği ve güvenilirliği için hayati öneme sahiptir. Bu nedenle, DNS saldırılarına karşı korunma önlemleri almak ve güvenlik politikalarını güçlendirmek önemlidir.