DNS
DNS (İngilizce: Domain Name System, Türkçe: Alan Adı Sistemi), internet uzayını bölümlemeye, bölümleri adlandırmaya ve bölümler arası iletişimi organize etmeye yarayan, bilgisayar, servis, internet veya özel bir ağa bağlı herhangi bir kaynak için hiyerarşik dağıtılmış bir adlandırma sistemidir.
İnternet ağını oluşturan her birim sadece kendine ait bir IP adresine sahiptir. Bu IP adresleri kullanıcıların kullanımı için www.site_ismi.com gibi kolay hatırlanır adreslere karşılık düşürülür. DNS sunucuları, internet adreslerinin IP adresi karşılığını kayıtlı tutmaktadır.
Katılımcı kuruluşların her birine atanmış alan adları çeşitli bilgileri ilişkilendirir. En belirgin olarak, insanlar tarafından kolayca ezberlenebilen alan adlarını, dünya çapında bilgisayar servisleri ve cihazlar için gerekli sayısal IP adreslerine çevirir (dönüştürür). DNS, çoğu internet servisinin işlevselliği için temel bir bileşendir, çünkü Internetin temel yönetici servisidir.
Alan Adı Sistemi DNS her alan için yetkili ad sunucuları atayarak alan adlarını atama ve bu adların IP adreslerine haritalanması sorumluluğunu verir. Yetkili ad sunucuları desteklenen alanları için sorumlu olmakla görevlidirler ve diğer ad sunucuları yerine alt alanlara yetki (otorite) verebilirler. Bu mekanizma dağıtılmış ve arızaya toleranslı servis sağlar ve tek bir merkezi veri tabanına ihtiyacı önlemek için tasarlanmıştır.
DNS aynı zamanda özünde (çekirdekte) bulunan veritabanı servisinin teknik işlevselliğini de belirtir. DNS protokolünü – DNS’de kullanılan veri yapılarının ve veri iletişim alışverişinin (değiş tokuş) detaylı tanımlaması- İnternet Protocol Suite’in bir parçası olarak tanımlar. Tarihsel olarak DNS’ den önceki yönetici servisleri orijinal olarak metin dosyalarına ve belirgin bir şekilde HOSTS.TXT çözücüsüne dayandığı için büyük veya küresel yöneticilere göre ölçeklenebilir değildi. DNS 1980’ den bu yana yaygın olarak kullanılır olmuştur.
İnternet hiyerarşi alan adı ve İnternet Protokol (IP) adres boşluğu olmak üzere iki ana ad boşluğunu sağlar. DNS sistemi alan adı hiyerarşisi sağlar ve onunla adres boşluğu arasında çeviri servisi sağlar. İnternet adı sunucuları ve iletişim protokolü Domain Name Sistemini etkin kılar. Bir DNS ad sunucusu, alan DNS kayıtlarını alan adı için depolayan bir sunucudur; DNS ad sunucusu veri tabanına karşı sorulara cevaplarla karşılık verir.
DNS veri tabanında depolanan en yaygın kayıt türleri; DNS bölgesinin yetkisi otoritesi (SOA), IP adresleri (A ve AAAA), SMTP posta değiştiriciler (MX), ad sunucuları (NS), ters DNS aramaları için işaretçiler (PTR) ve alan adı takma isimleridir (CNAME).
Genel amaçlı bir veri tabanı olmak için tasarlanmamasına rağmen, DNS diğer veri türleri için DNSSEC kayıtları gibi şeyler için otomatik makine aramalarını ya da Sorumlu kişi (RP) kayıtları gibi insan sorularını da depolayabilir. DNS kayıt türlerinin tam listesi için, DNS kayıt türlerinin listesi bakın. Genel amaçlı veritabanı olarak, DNS veri tabanında saklanan gerçek zamanlı kara delik listesi kullanılarak istenmeyen e-posta (Spam) ile mücadelede kullanımında da DNS görülebilir. İnternet adlandırma için veya genel amaçlı kullanımlar için olsun, DNS veritabanı, yapılandırılmış bölge dosyasında geleneksel olarak depolanır.
Amaçları
İnternette bulunan her nesnenin, etkileşime giren her sunucu ve ucun bir internet adresi olması gerekir. Bu adres, protokol seviyesinin IPv4 ve IPv6 olmasına göre 32 bit ya da 128 bit uzunluğundadır. Alan adı, bu 32 ya da 128 bit uzunluğundaki sayı yerine insanların anlayacağı, akılda tutacağı, kurumsal kimlik ve marka ile özdeşleştirebileceği isimlerin kullanılmasını sağlar. Örneğin tr.wikipedia.org alan adı ile 207.142.131.210 şeklindeki IP nosu ile bağlantıyı Alan Adı Sistemi sağlar. Sırayla; org, wikipedia.org ve tr.wikipedia.org içiçe geçmiş İnternet alanları ya da bölmeleridir.
İnsan dostu bilgisayar sistem adlarını IP adreslerine çevirerek İnternet için telefon rehberi hizmeti sunan sitem, DNS i tanımlamak için sıkça kullanılan bir benzetmedir. Mesela, alan adı www.example.com, 93.184.216.119 (IPv4) ve 2606:2800:220:6d:26bf:1447:1097:aa7 (IPv6) adreslerine çevrilir. Bir telefon rehberi aksine DNS aynı ana bilgisayar adını kullanmaya devam eden son kullanıcıları etkilemeden ağdaki servisin konumunun değişmesine izin vererek çabuk bir şekilde güncellenebilir. Kullanıcılar anlamlı bir Değişmeyen Kaynak Konum Belirleyici (URL) ve bilgisayarın servisleri nasıl yerleştirdiğini bilmek zorunda kalmadan e-mail adresi kullandıklarında bundan avantaj sağlarlar.
Alan Adı Sistemi'nin yarattığı ilişkiler birebir ilişki olmak zorunda değildir. Bir alan adına birden fazla IP adresi atanabilir. Bu yoğun talep olan hallerde geçerlidir. Wikipedia.org, yahoo.com, google.com gibi adreslerde bu çok olur. Ama daha yaygını, birçok alan adı tek bir IP'ye atanabilir. Buna da "Sanal Evsahipliği" (Virtual Hosting) denir.
Alan Adı Sistemi hiyararşik bir yapı gösterir. En üste .com, .org, .net, .int, .edu, .info, .biz, .aero, .travel, .jobs, .gov, .mil gibi "jenerik" üst düzey alanlarla (gTLD) .tr, .us, .de, .uk, .jp, .az gibi ülke alanlarından (ccTLD) oluşur. Buna son olarak .eu ve .asia gibi bölgesel birkaç üst düzey alan adı daha eklenmiştir.
DNS’in tarihçesi
Bilgisayar ağları üzerindeki isimlendirme sorunu ilk olarak internetin babası sayılan Arpanet zamanında ortaya çıkmıştır. 1970’lerde ArpaNet günümüz ağları ile karşılaştırılamayacak kadar küçük durumdaydı ve yalnızca birkaç yüz ile ifade edilebilen sisteme hizmet veriyordu. Bu tarihlerde isimlendirme için tek noktada tutulan bir dosyanın bulunması ve diğer tüm sistemlerin bu dosyayı belli aralıklarla kendi taraflarında güncellemesi isimlendirme sorununu çözmüştü.
Adres-isim tanımlamalarını içeren HOSTS.TXT dosyası SRI tarafından SRI-NIC (Stanford Research Institute – Network Information Center) adında bir bilgisayar üzerinde tutulmaktaydı. Bu dosya her adrese bir isim karşılık gelecek şekilde düzenlenmişti. Arpanet üzerindeki yeni isim tanımlamaları ve değişiklikleri SRI’ya gönderilen e-postalar arcılığı ile yapılıyor ve HOSTS.TXT’in kopyası File Transfer Protocol ile alınıyordu.
Arpanet üzerinde TCP/IP kullanımına paralel olarak ortaya çıkan bağlantı patlaması, isim çözümü için birçok sunucuda ve her bilgisayara özgün bir isim atanmasında problemler yaşanmaktaydı. Ayrıca yalnızca isim çözümlenmesi için oldukça yüksek miktarda bant genişliği harcanmaktaydı. Buna rağmen kullanılan isim veritabanlarının uyumlu olması her zaman sağlanamamaktaydı.
Bu durumun ortaya çıkmasından sonra Arpanet daha ölçeklenebilir bir isim çözümleme yapısı için araştırmalara başladı. Paul Mockapetris bu işle görevlendirildi. Mockapetris 1984 yılında Domain Name System (DNS)’i tanımlayan RFC 882 ve RFC 883’ü yayınladı. Bunlar daha sonra hâlen geçerli olan RFC 1034 ve RFC 1035 tarafından güncellendiler.
DNS'in yapısı
DNS sistemi, isim sunucuları ve çözümleyicilerinden oluşur. İsim sunucuları olarak düzenlenen bilgisayarlar, host isimlerine karşılık gelen IP adresi bilgilerini tutarlar. Çözümleyiciler ise DNS istemcilerdir. DNS istemcilerde, DNS sunucu ya da sunucuların adresleri bulunur.
Bir DNS istemci bir bilgisayarın ismine karşılık IP adresini bulmak istediği zaman isim sunucuya başvurur. İsim sunucu, yani DNS sunucu da eğer kendi veritabanında öyle bir isim varsa, bu isme karşılık gelen IP adresini istemciye gönderir. DNS veritabanına kayıtların elle, tek tek girilmesi gerekir.
İnternet adresleri, ilk önce ülkelere göre ayrılır. Adreslerin sonundaki tr, de, uk gibi ifadeler adresin bulunduğu ülkeyi gösterir. Örneğin tr Türkiye'yi, de Almanya'yı, uk İngiltere'yi gösterir. ABD adresleri için bir ülke takısı kullanılmaz çünkü DNS ve benzeri uygulamaları oluşturan ülke ABD’dir. Öte yandan, ABD'ye özel kuruluşlar için us uzantısı oluşturulmuştur. İnternet adresleri ülkelere ayrılıdıktan sonra com, edu, gov gibi daha alt bölümlere ayrılır. Bu ifadeler DNS'te üst düzey (top-level) domain'lere karşılık gelir. Üst düzey domain'ler aşağıdaki gibidir.
Resolving (Çözümleme) - Aranılan bir kaydı bulma işlemi
- Mesela http://google.com.tr adresine karşılık gelen IPv4 adresinin olmasının bulunması. Çözümleme yapan yazılımlar iki çeşit işlem yaparlar; özyineli çözümeme ve özyineli olmayan çözümleme. Sorgularda gönderilen RD (recursion required - özyineli gerekli) bitlerine göre sorgunun türü belirlenir. Özyineli olmayan sorgulara cevap veren sunucular cevap olarak ardışık isim sunucuları verirler. Sonuç olarak yapılan bir sorgu özyineli değil ise http://google.com.tr için doğrudan 8.8.8.8 IP'si ya da "makina bulunamadı" cevabı verilebilir. Fakat özyineli bir sorguda cevabı bulmak için başka bir isim sunucusunun IP'sini verebilir.
Authoritive Nameserving (Yetkili İsim Sunumu)
- Bir alan hakkında bilgi bulunduran sunucudur. Mesela yildiz.edu.tr alanının MX (Mail eXchanger), NS (Name Server), A (Address)(Bunlar - Resource Record - Özkaynak Kaydı olarak bilinir) kayıtlarının tutulduğu isim sunucusudur
DNS Sorgulama
DNS; mail sunucuları, domain isimleri ve IP adresleri gibi bilgileri tutan hiyerarşik bir yapıdır. Bir DNS istemcisi, ad çözümlemesi yapmak için DNS sunucularını sorgular. DNS hizmetleri; kullanıcının girdiği bir DNS adını çözüp, IP adresi gibi o ad ile ilişkili bilgileri oluşturur.
DNS sorgulaması yapmadan önce yapılan bir tarama sonucunda, DNS bilgileri 'name servers(NS)' ya da 'domain servers' olarak görülür. Bu bilgiilerin erişiminden sonra DNS sorgulamasıyla daha fazla bilgiye ulaşılır.
Yanlış yapılandırılmış bir DNS sunucusu sonucunda 'Bölge Transferi(Zone Transfer)' olarak bilinen atak yapılabilir. Bölge transferi ile DNS sorgusu yapılan hedefle ilgili birçok bilgiye ulaşılabilir. Bölge transferi; DNS sunucusunun çalıştığı domain ile ilgili bütün verileri içerir. Bu önemli bilgilerin içinde e-posta sunucusunun ismi, IP adresi, kullanılan işletim sistemi ile ilgili bilgiler vardır.
Bölge transferlerine karşı bir önlem olarak güvenlik duvarında(firewall) veya ağ geçitlerindeki yönlendiricilerde 53 numaralı TCP portu gelen tüm yetkisiz bağlantılara karşı kapalı tutulmalıdır.
DNS sorgulasından bir korunma yöntemi olarak alan adı bir domain değilse, -.tr uzantı ile sonlanmıyorsa 'private domain' haline getirmek bazı tehlikelerden korur. Private domain olan alan adlarında kişisel bilgiler 'Private' halini alır. Yani gerçek bilgiler gizlenir. Ama, private domain her domain sağlayıcıda yoktur.
DNS Sorgulamalarına Karşı Alınacak Önlemler
- DNS bilgileri önemli bilgilerdir. DNS sunucuları ayarlanırken sistemle ilgili çok az bilgi verilmelidir. Sunucuya isim verilirken işletim sistemini çağrıştıracak bir isim verilmemelidir. Ayrıca kulanılan işletim sistemiyle ilgili yer boş bırakılmalıdır.
- Güvenlik duvarı kullanılmalıdır ya da yetkisiz bağlantıları önlemek için ağ geçitlerindeki yönlendiricilerdeki port durumlarına dikkat edilmelidir. DNS, UDP ile 53 numaralı portu; bölge transferi(Zone Transfer) ise TCP ile 53 numaralı portu kullandığından bunun önlemleri alınmalıdır. Bu portlar yetkisiz bağlantılara karşı kapatılmalıdır.
- İç ağ için ayrı, internet için ayrı bir DNS sunucusu kullanmak. Kullanıcı internete çıkmak isterse iç DNS sunucusu bu isteği alıp proxy sunucusu gibi davranarak isteği dış DNS sunucusuna iletir. Böylece ağ dışından olan biri sadece dış DNS'teki isimlere erişir.
- com : Ticari kuruluşları gösterir.
- edu : Eğitim kurumlarını gösterir.
- org : Ticari olmayan, hükûmete de bağlı bulunmayan kurumları gösterir.
- net : Internet omurgası işlevini üstlenen ağları gösterir.
- gov : Hükümete bağlı kurumları gösterir.
- mil : Askeri kurumları gösterir.
- num : Telefon numaralarını bulabileceğiniz yerleri gösterir.
- arpa : Ters DNS sorgulaması yapılabilecek yerleri gösterir.
Bu isimlere yakın zaman önce biz gibi uzantılar da eklenmiştir. Alan isimleri, ağaç yapısı denilen ve belli bir kurala göre dallanan bir yapıda kullanılmaktadır. Amerika Birleşik Devletleri haricinde, internete bağlı olan tüm ülkelerdeki adresler, o ülkenin ISO3166 ülkekodu ile bitmektedir. Türkiye'deki tüm alt alan adresleri, .tr ile bitmektedir. Örneğin; marine.ulakbim.gov.tr adresinde;
- tr Türkiye'yi,
- gov alt alanın devlet kurumu olduğunu
- ulakbim bu devlet kurumunu
- marine bu kurumda bulunan bir makineyi göstermektedir.