DNS Nedir?
DNS, DOMAIN NAME SYSTEM (domain isim sistemi)
DNS nedir?
DNS,Domain Name Systemin kısaltılmış şeklidir. Türkçe karşılığı ise
Alan İsimlendirme Sistemi olarak bilinir.
DNS, 256 karaktere kadar büyüyebilen host isimlerini IPye çevirmek
için kullanılan bir sistemdir. Host ismi,tümüyle tanımlanmış isim (full
qualified name) olarak da bilinir ve hem bilgisayarın ismini hem de
bilgisayarın bulunduğu Internet domainini gösterir. Örneğin murat.anadolu.com.tr
ismi. Bu isimde anadolu.com.tr ifadesi internet domainini, murat
ifadesi ise bu domaindeki tek bir makineyi belirtir. DNS , verilen
bir makina adının IP adresini çözerek makinaların Internet üzerinde
host isimleri ile haberleşmelerine olanak tanır.
DNSin amacı nedir?
DNS, kolay anlaşılabilir ve kullanılabilir makine ve alan isimleri
ile makine IP adresleri arasında çift taraflı dönüşümü sağlar. IP
adreslerinin gündelik hayatta kullanımı ve hatırlanması pek pratik
olmadığı için domain isimlendirme sistemi kullanılır.
Ana amacı, ağ uzerinden gelen alan adı veya IPnumarası ile ilgili
sorgulamalara yanıt vermektir. Bu amaç için cok yaygın olarak
"Berkeley Internet Name Domain (BIND)" yazılımı kullanılmaktadır.
Siz bir siteye erişmek istediğinizde, DNS sayesinde hangi site nerde
, hangi IP hangi bilğisayara ait olduğu belirlenir, ve istediğiniz
yere erişirsiniz.
DNS tarihçesi
1984 yılına kadar DNS diye bir şey yoktu. O yıla kadar isim-IP
çözümlemesi HOSTS adında bir metin dosyası ile yapılmaktaydı.
Internetteki bilgisayarların isimleri ve IP adresleri bu dosyaya
elle kaydediliyordu. Internetteki bilgisayarların herbirinde bu
dosyanın bir kopyası bulunmaktaydı. Bir bilgisayar bir başka
bilgisayara ulaşmak istediğinde bu dosyayı inceliyor,eğer dosyada o
bilgisayarın kaydı bulunuyorsa IP adresini alıyor ve iletişime
geçiyordu.
Bu sistemin iyi işleyebilmesi için HOSTS dosyası içeriğinin hep
güncel kalması gerekiyordu. Bunu sağlamak için de dosyanın aslının
saklandığı ABDdeki Stanford Universitesine belli aralıklarla
bağlanarak kopyalama yapılıyordu.
Ama internetteki bilgisayarların sayısı arttıkça hem bu dosyanın
büyüklüğü olağanüstü boyutlara ulaşmaya başladı,hemde internetteki
bilgisayarların dosyayı kopyalamak için yaptığı bağlantı
Standforddaki bilgisayarları kilitlemeye başladı.
Tek bir HOSTS dosyası kullanmanın başka bir kötülüğü de şuydu: bütün
bilgisayarlar aynı düzeyde yer aldığı için bir bilgisayar isminin
bütün internette bir eşinin daha bulunmamasını sağlamak gerekiyordu.
Bu sorunlar yüzünden internet yetkili organları 1984 yılında DNSi
ürettiler.DNS hem bilgisayar veri tabanını dağıtık bir yapıya
sokuyor,hemde bilgisayarlar arasında hiyerarşik bir yapı kurulmasını
sağlıyordu.
DNSde dağıtık veri tabanı şöyle sağlanıyordu. Bilgisayarlar
bulundukları yerlere,ait oldukları kurumlara göre
sınıflandırılıyorlardı. Örneğin türkiyedeki bilgisayarların
listesini(.tr domaini) türkiyeden sorumlu bir DNS sunucu makine
tutuyordu.böylece internet ortamındaki bütün bilgisayarların
bilgisinin tek bir yerde tutulması zorunluluğu kalmıyordu.
DNSin 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 yada 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.
Internet 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ürkiyeyi, de Almanyayı, uk İngiltereyi
gösterir. ABD adresleri için bir ülke takısı kullanılmaz çünkü DNS
ve benzeri uygulamaları yaratan ülke ABDdir.
Internet adresleri ülkelere ayrılıdıktan sonra com, edu, gov gibi
daha alt bölümlere ayrılır. Bu ifadeler DNSde üst düzey (top-level)
domainlere karşılık gelir. Üst düzey doainler aşağıdaki gibidir:
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.
Alan isimleri, agaç yapısı denilen ve belli bir kurala göre dallanan
bir yapıda kullanılmaktadır.
Amerika haricinde, internete baglı 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.
Yetki Bölgesi (Zone of Authority)
Yetki bölgesi DNS sisteminde belli bir adres aralığıdır. Örneğin,
yukarıda verdiğimiz örnekte murat.anadolu.com.tr , bir yetki
bölgesini gösterir.
Her yetki bölgesinden sorumlu bir isim sunucusu, yani DNS sunucusu
vardır. DNS sunucu yetkili olduğu bölgedeki bilgisayarların
isimlerini IP adreslerini içerir. Aynı zamanda bu bölgeye dair
sorgulamalara da yanıt verir.
DNS sunucunun yetki bölgesi en az bir tane domain içerir. Bu domain
bölgenin kök domaini olarak adlandırılır. Yetki bölgesinde kök
domainin altında bir veya birden fazla alt domain içerebilir. Bir
DNS sunucu birden fazla bölgeyi yönetebilir.
DNS sunucu çeşitleri
Çalışmalarına göre DNS sunucular üçe ayrılır.
Birincil isim sunucu(Primary Name Server): Bölgesiyle ilgili
bilgileri kendisinde bulunan bölgeden (zone file) elde eder. Bu
dosyaya bilgiler elle tek tek girilir.
İkincil isim sunucu(secondary name server): Bölgesiyle ilgili
bilgileri bağlı bulunduğu bir DNS serverdan alır. Yani bilgileri bu
sunucuya elle girmek gerekmez.
Yalnızca-Kaşeleyen isim sunucu (caching-Only name server):
Kendisinde bölge bilgilerinin tutulduğu bir dosya bulunmaz. Bağlı
bulunduğu sunucuya sorarak topladığı bilgileri hem istemcilere
ulaştırır, hemde kaşesine koyar
Birincil DNS Sunucu
Birincil DNS sunucu yetkili olduğu bölge ile ilgili bilgileri kendi
üzerinde bulunan bölge dosyasından (zone file) alır demiştik. O
bölgede bulunan bilgisayarlara da DNS sunucu adresi olarak Birincil
DNS sunucunun adresi verilir. Böylece isim/IP çözümlemesi yapan
istemci bilgisayarlar Birincil DNS sunucuya başvururlar, isme
karşılık IP adresi bilgisini ondan alırlar.
İkincil DNS Sunucu
Eğer ağımızda çok sayıda bilgisayar varsa bütün bilgisayarların tek
bir DNS sunucuya gitmeleri sonucunda isim/IP çözümleme
performansımız düşecektir. Bu durumda ikinci bir DNS sunucu kurup
bilgileri ona da tek tek elle gireriz ve bilgisayarların yarısında
DNS sunucu olarak bu bilgisayarı gösteririz. Ama ağımızda çok
bilgisayar olduğu için ikinci DNS sunucuya bilgileri girmek büyük
bir yük getirecektir. Üstelik işlerimiz ilk girişle bitmeyecek. Bir
de her iki DNS sunucusunun bilgilerinin güncel kalmasını sağlamamız
gerekecektir. İkinci DNS sunucuda burda bize kolaylık sağlar.
İkincil DNS sunucunun bilgilerini bağlı bulunduğu DNS sunucusundan
alması bölge bilgisi aktarımı(zone transfer) olarak adlandırılır.
İkincil DNS sunucu hem yük dağıtımı yapmamızı hem de bir arıza
durumunda sistemin ayakta kalmasını (isim/IP çözümlemesi
yapılabilmesi) sağlar.
Her bölgenin bilgisi ayrı dosyalarda saklanır. Bu yüzden birincil,
ikincil gibi gibi ayrımlar bölge temelinde yapılır. Yani bir DNS
sunucu bir bölge için birincil DNS sunucu iken, başka bir bölge için
ikincil DNS sunucu olabilir.
Yalnızca-Kaşeleyen DNS sunucu
İkincil DNS sunucu tek bir lokasyonda, hızlı bir ağ üzerinden
birbirine bağlanmış çok sayıda bilgisayarın bulunduğu kurumlar için
oldukça iyi bir çözümdür. Fakat kurumda çok sayıda bilgisayar
bulunuyorsa birincil ile ikincil DNS sunucular arasındaki bölge
bilgileri aktarımı büyük bir trafik üretecektir. Bunun çözümü için
yalnızca-kaşeleyen DNS sunucu kurulmalıdır.yalnızca-kaşeleyen
sunucuya bilgiler elle girilmez. İkinci lokasyondaki bilgisayarlara
DNS sunucu olarak kendi lokasyonlarındaki yalnızca-kaşeleyen
sunucunun adersi verilir.yalnıca-kaşeleyen DNS sunucuda birinci
lokasyondaki birincil ya da ikincil DNS sunucunun adresi vardır.
Bir bilgisayar isim/IP çözümlemesi yapacağı zaman bu yalnızca-kaşeleyen
DNS sunucuya gider. Yalnızca-kaşeleyen DNS sunucuda bir bilgi yoktur
bu yuzden yalnızca-kaşeleyen DNS sunucu iki lokasyon arasındaki
hatta çıkar, bağlı bulunduğu DNS sunucuya gider, sorgulamasını
yapar, aldığı yanıtı da soru soran kendi lokasyonundaki bilgisayara
iletir ve elde ettiği bilgiyi bir DNS kaşesinde saklar. Eğer aynı
bilgiye belli bir zaman diliminde ikinci bir bilgisayar daha erişmek
isterse artık aradaki hatta çıkmadan elimizdeki bilgiyi kullanırız.
DNS dosyaları
DNS için gerekli olan dosya türleri şunlardır:
1-named.boot: Bu dosya, DNS çalışmaya başladığında program
tarafından okunan ilk
dosyadır.
2-named.local: Bu dosya, "loopback" denilen ve makinenin kendisini
gösteren adresin
çözümlenmesi icin kullanılan bir dosyadır.
3. named.ca: En üst seviyede bulunan ve "root server (.)" denilen
makinelerin adreslerini içerir.
4. named.hosts: Bu dosya, DNS çalıştıran bir alt alanda bulunan
makinelerin adreslerinin yazıldığı yani sorumlu olduğunuz alanınızda
çalısan tüm bilgisayarların adreslerinin tutuldugu dosyadır.
5. named.reverse: Bu dosya, yukarıda açıkladığımız named.hosts
dosyasının içerdiği IP adreslerini makinelerin isimlerine çevirmek
için kullanılır ve yapı olarak named.local dosyasına benzer.
DNS`te kullanılan kaynak kodlar ve anlamları
Standart DNS kaynak kodlarının yazım formatı şu şekildedir:
; [isim] [ttl] [sınıf] [kod] [diger uygun tür - adres,açıklama vs.]
[isim/name] : Sorumlu olunan alt alan ismini
belirtir.
[ttl] : (Time To Live). Saniye olarak bellekte (cache)
tutulacak olan bilginin süresi.
[sinif/class] : Kaydın sınıfını belirler. Diğer
sınıflar olmasına rağmen DNS`te genelde IN kullanılır.
[kod] : Kaynak kodunun ne oldugunu gösterir. A,NS,MX,vs...
A Address : Belli bir makinenin internet adresini
bildirmek ve makine ismini IP adresine eslemek icin kullanılır.
CNAME - Canonical Name : Esas makine ismine ek
olarak başka bir isim daha tanımlamak için kullanılır.
HINFO - Host Information : Bilgisayarın donanım ve
işletim sistemi bilgilerini yazmak için kullanılır
MX - Mail Exchanger : Belli bir alan adına gelen
e-postaların hangi makineye dağıtılacağını gösterir
NS - Name Server: Internet üzerindeki belli bir
alandan sorumlu olan bilgisayarın adresini belirtir
PTR Pointer : Bilgisayar IP adresini bilgisayar
ismine eşlemek için kullanılır.
SOA - Start of Authority : SOA tanımı, internet
üzerindeki bir alanın başlangıcını ve bu alandan sorumlu olunduğunu
belirlemek için kullanılır.
TXT - Text Data : Açıklayıcı bilgi vermek amacıyla
kullanılır.
WKS - Well Known Services : Bilgisayar tarafindan
sunulan servisler hakkında bilgi verme amacıyla kullanılır
DNS dosyaları içinde kullanılan anahtar sözcükler
Directory: Belirtilen dosyaların bulunacağı dizin
burada verilir.
Cache: Cache dosyasını belirtir.
Primary: Ana sunucunun (Primary Name Server) adı
burada verilir. Alana ait temel bilgiler burada bulunur ve program
ilk olarak aramaya bu sunucudan başlar.
Forwarders: Ana sunucuda makine bulunamazsa burada
belirtilen sunucuda aramaya başlanır
Serial: Burada seri numarası bulunur ve bu
numaranın dosyada yapılan her değişiklikten sonra bir artırılması
gerekir.
Refresh: Burada, ayarlama yapılan dosyaların ne
kadar sürede bir kendini yenilediği belirtilir.
Retry: Burada ne kadar sürede bir aramanın yeniden
deneneceği belirtilir.
Expire: Ne kadar süre sonra aramanın
sonlandırılacağı belirtilir.
Ttl (Time-To-Live): Belirtilen süre kadar cache
tutulabileceğini belirtir. Burada süre verilmemişse SOA`daki değer
kullanılır.
Name : Makine adı belirtilir.
Data : IP numarası belirtilir.
Bir name serverın görevi
*İsim/IP çözümlemesi yapmak
*Yaptığı sorgulamaların sonuçlarını belli bir süre saklamak
*Kendi domaini için isim/IP bilgilerini sunmak
DNS sorgulaması
Bilgisayar herhangi bir adres sorgusu yapmak istediğinde bu
sorgusunu Lokal DNSe gönderir(1). Lokal DNS ise bu adresi bularak
isteğe cevap verir(2). Eğer Lokal DNS üzerinde bu bilgi yoksa
sorgulama işleri aşağıdaki şekilde görüldüğü gibi ilerler.
Bilgisayar sorgusunu Lokal DNSe gönderir(1). Lokal DNS bu isteği
alır. Kendi verilerinde bu isteğin karşılığı bulunmadığı için
kendisinin bir üst seviyesindeki yetkili root DNS makinasına bu
isteği iletir(2). Root DNS aranılan adresten sorumlu olan sunucunun
adresini yani uzaktaki DNSin adresini Lokal DNSe iletir(3). Lokal
DNS aldığı bu adrese istenen sorguyu gönderir(4). Uzaktaki DNS
istenen veriyi Lokal DNSe gönderir(5). Lokal DNS ise aldığı veriyi
sorgulama işleminin yapan ilk bilgisayara verir(6).
Aynı isteklerin bir yerde toplanması(cache) sorgulama işleminin
hızını arttırır. Lokal sunucu aynı adrese bağlanmak isteyen başka
bir bilgisayar için (2) ve (3).cü adımları atlayarak işlemi daha
hızlı gerçekleştirir.
Ters DNS Sorgulaması
DNS sunucusu herzaman isim/IP çözümlemesi yapmaz. Eğer uygun bir
şekilde kurulursaIP/isim çözümlemesi de yapabilir. Yani bir DNS
sunucuya IP adresi verip, karşılığında isim de alabiliriz. Buna ters
sorgulama (inverse query) denilir.
Ters sorgulamayı kolaylaştırmak için in-addr.arpa adında özel bir
domain yaratılır. Bu domainde de isim/IP eşlemeleri bulunur ama IP
adresleri soldan sağa doğru, isimler ise sağdan sola doğru
özelleştikleri için bu domaindeki adreslerin oktetleri tersten
yazılır.
In-addr.arpa domaini yaratıldıktan sonra işaretçi kayıtları (pointer
records) denilen kayıtlar bu domaine eklenir. Örneğin, 195.142.78.98
adresine karşılık gelen bilgisayar ismini bulmak için DNS sunucuya
98.78.142.195.in-addr.arpa kayıtı sorulur.
DNS Hizmetinin Kuruluşu
Anadolu.com.tr gibi bir domain ismine sahip bir işletmenin DNS
sunucusunu oluşturmak için izleyeceğimiz basamaklar şunlardır:
Öncelikle bu domain için C sınıfı adreslerin kullanıldığını
varsayalım. C sınıfı adresimiz 195.194.34.0 olsun. Yani bu
domaindeki adresler 195.194.34.1 ile 195.194.34.254 arasında yer
alacaktır.
DNS hizmetini yüklemeden önce TCP/IP özelliklerinden DNS sayfasına
gidip domain ismini girmemizde yarar vardır. DNS hizmeti de diğer ağ
hizmetleri gibi Denetim Masasındaki Ağ uygulamasından yüklenir, ve
sistem yeniden başlatılır.
Sistem açılınca Yönetimsel Araçlar menüsüne DNS yöneticisi şeklinde
bir şık eklenir, DNS hizmeti buradan düzenlenir.
DNS yöneticisi bölümüne girip DNS menüsünden New Server şıkkından
DNS sunucu ekleriz. Sonra bu sunucu altına yetkili olduğumuz bir
bölge (zone) yaratırız. Bunun için eklediğimiz sunucu üzerinde iken
DNS menüsünden Yeni Bölge(new zone) şıkkını tıklarız. Sunucumuzu
birincil yada ikincil olarak tanımlarız. Biz yeni bir kurulum
yaptığımız için birincili seceriz. Karşımıza Bölge İsmi(Zone Name)
ve Bölge Dosyası(zone file) isminin sorulduğu bir kutu gelir. Zone
name kısmına anadolu.com.tr yazıp TAB tuşuna bastığımız takdirde
bilgisayar otomatik olarak zone file bölümünü anadolu.com.tr.dns
olarak yazar. Bu bilgileri girdikten sonra işlem,i tamamlamak için
finish tuşuna basarız.
Yeni oluşturduğumuz bölgede kendiliğinden yaratılmış kayıtlar
vardır.bu kayıtların isimleri kayıt tipleri ve dataları
yazılıdır.kayıt tipi bölümünde NS,SOA, ve A gibi ifadeler görürüz bu
ifadeleri açıklamak gerekirse:
NS, bu satırdaki kayıtın isim çözümleyici (name server) bilgisayara
ait olduğunu gösterir.
SOA, ise yetki bölgesi başlangıcı(start of authority) anlamına gelir
ve DNS kuruluşu ile ilgili bilgiler içerir. Örneğin, kayıt sonunda
eğer administrator ifadesi varsa bu ifade bölgeden sorumlu kişinin
adını içerdiğini gösterir.
A kayıtı ise isim çözümleyici bilgisayarın, yani DNS sunucu
bilgisayarın IP adresini verir.
Ters sorgulama yapacaksak bu aşamada ters sorgulama bölgesini (reserve
look-up zone) de yaratmalıyız. Bunun için DNS New Zone şıkkını
tıklarız. Yaratacağımız bölge yine birincil olmalıdır. Bölgenin ismi
1.107.195.in-addr.arpa şeklinde olacak. Bu ismin ilk kısmı bir IP
adresine karşılık geliyor. İkinci kısım olan in-addr.arpa ise her
ters sorgulama bölgesinin isminde bulunması gereken bir ifadedir.
Girdiğimiz adres C sınıfı bir adres olduğu için de üç oktet
kullandık. Böylece sonuncu oktet ne olursa olsun bize 195.107.1 ile
başlayan bir adres sorulduğunda bu adrese karşılık gelen
sorgulayabilecez.
|