DNS Anlatımı [Ayrıntılı]

Logic

New member
Katılım
19 Haz 2005
Mesajlar
137
Reaction score
0
Puanları
0
DNS

Daha önceki dokümanlarda açıklandığı şekilde bir IP ağı üzerinde çeşitli servislere ulaşmak için bu servislerin çalıştığı sistemlerin 4 sayıdan oluşan akılda kalması zor ve son kullanıcılar için hemen hiçbir şey ifade etmeyen adreslerinin bilinmesi gerekmektedir. Bu sorunun nasıl aşıldığı bu dokümanda ele alınacaktır.

1 DNS’in Tarihçesi

Yukarıda bahsedilen 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 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 aracılığı ile yapılıyor ve HOSTS.TXT’in kopyası ftp 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 sorunu da beraberinde getirdi. Öncelikle isim çakışmaları ortaya çıktı, sayı artmakta 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 harcanmakta ve 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 883’ü yayınladı. Bunlar daha sonra halen geçerli olan RFC 1034 ve 1035 tarafından güncellendiler.

2 DNS’in Yapısı

ArpaNet döneminde ortaya çıkan güçlükler nedeniyle DNS tasarlanırken uçlardaki sistemlerin kendi bilgilerini kendilerinin güncelleyebileceği bir yapı üzerinde durulmuştur. Ortaya çıkan yapı ise en üstten başlayarak hiyerarşik bir şekilde uçlara doğru açılan dağıtık bir varitabanı mimarisidir. Uçlar birbirleri ile istemci sunucu yöntemiyle konuşurlar.

Farklı tablolar ile tek veritabanında tanımlanmış bir alan adı sistemini icenlenirse yapısının hiyerarşik olduğu görülür. Her alan adı bir başka alan adının altında tanımlanmıştır. En üst seviyede bulunan bir tablo en üst seviye alan adları olan ‘.com’, ‘net’ vb içerir ve bu alan adlarının detaylarını içeren tabloları işaret eder. Aynı şekilde bu tablolar da kendi altlarında bulunan alan adlarını içerir ve detaylarını gösteren tablolara işaret eder.

Açıklana tablo yapısı Şekil 1 üzerinde gösterilmiştir.

sekil1.gif


Şekil 1

İlk tabloda en üst seviye alan adları tanımlanmış ve bu tabloda bulunan alt alan adlarının bilgileri ilgili tablolara işaret edilmiştir. Bu tek bir veritabanında gösterilmiş bir yapılanmadır. Bu yapıda tablolar farklı veritabanları üzerinde tutularak yönetim kolaylaştırılabilir. Bu durumda oldukça dinamik ve etkin bir mekanizma kurulmuş olur.

Dağıtık veritabanları arasında istemci-sunucu yöntemi ile bağlantı kurulur.

Az önce belirtilen en üst seviye alan adları arasında ‘com’, ‘net’, ‘gov’ vb yanında ülkelerin ISO tarafından belirlenen sembolleri de tanımlanmıştır (tr, uk, fr, gr gibi).

Yukarıdaki açıklamaların paralelinde oluşan hiyerarşik alan adı ağacı Şekil 2’de gösterilmiştir.

sekil2.gif


Alan adı dağılımı en üst seviyeden başlar ve alt dallara doğru bölünür. Bir alan adının okunuşu en alttan başlayarak en üste doğru yapılır. Ağacın en altında bulunan alan adı ‘ankara.ulak.net.tr’ şeklinde okunacaktır.

En üst seviye alan adlarının yönetimi InterNIC tarafından yapılmaktadır. ISO kodları ile tanımlanmış ülke adlarının yönetimi ülkelere göre değişiklik göstermektedir. Türkiye’nin ISO kodu olan ‘tr’ üst seviye alan adının yönetimi Orta Doğu Teknik Üniversitesi (ODTÜ) tarafından yapılmaktadır. Dolayısıyla ‘com’, ‘net’, ’gov’ gibi alan adlarına kayıt InterNIC tarafından; ‘com.tr’, ‘net.tr’ gibi alan adlarına kayıt ODTÜ tarafından yapılmaktadır. Alan adı kayıtlarıyla ilgili daha fazla bilgi için http://www.internic.net ve http://dns.metu.edu.tr adresleri incelenebilir.

‘ankara.ulak.net.tr’ örneğinde, ‘ankara.ulak.net.tr’ alan adı UlakNet sunucuları üzerinde, ‘ulak.net.tr’ alan adı ODTÜ sunucuları üzerinde, ‘net.tr’ alan adı yine ODTÜ sunucuları üzerinde, ‘tr’ alan adı ise root server adı verilen en üst seviye alan adı sunucuları üzerinde tanımlanmış durumdadır. Dikkat edilmesi gereken nokta alan adları alındıktan sonra bu alan adındaki isimlendirmenin lokalde yapıldığıdır. Bu daha önce de değinilen yönetimin dağıtık olarak yapılabilmesini sağlar.

Bu bilgiler ışığında ‘xxx.ankara.ulak.net.tr’ ya da ‘yyy.ulak.net.tr’ şeklindeki bir tanımlama UlakNet’in kontrolünde, benzer şekilde ‘abc.com.tr’ ya da ‘xyz.net.tr’ şeklindeki bir tanımlama ise ODTÜ’nün kontrolündedir.

İncelenen alan adı ağacı maksimum 127 basamaktan oluşabilir ki bu da pratikte ulaşılması imkansıza yakın bir değerdir.


3 DNS Çözümlemesi

DNS’in yapısı anlatılırken dağıtık bir veritabanı şeklinde oluşturulduğu ve uçların birbirbirleriyle istemci sunucu mantığı ile konuştuğunu söylenmişti. Bu işlevi yerine getiren programlara alan adı sunucu adı verilir (name server). Alan adı sunucularını alan adı ağacı üzerinde nokta ile gösterilirler.

Her alan adı sunucu bir veya birkaç alan adı bilgisini tutar ve bu alan adları için en yetkili alan adı sunucudur. Diğer alan adları için sorgularda bu alan adları için en yetkili alan adı sunucularını bulmaya çalışır.

Alan adı sunucular yerine getirdikleri kritik işlev nedeniyle genellikle yedekli olarak çalıştırılırlar. Bilgilerin tutulduğu ana veritabanı birincil alan adı sunucu olarak adlandırılır. İkincil sunucualr birincil alan adı sunucularının verilerini periyodik olarak kendi veritabanına kopyalarlar. Birincil sunucuda herhangi bir problem yaşandığında sorgulama ikinci sunucular üzerinde yapılır.

DNS çözümlemesi birkaç kademede incelenebilir. UlakNet alan adı sunucusunu kullanan bir istemcinin ‘www.ulak.net.tr’ adresini sorguladığı durumda sunucu kendi veritabanında tanımlı olan bu adresi istemciye döndürecektir. Bu, UlakNet alan adı sunucusu ‘ulak.net.tr’ alan adı altında bulunan tanımlar için en yetkili sunucu olduğu için bu şekilde gerçekleşmiştir.

Şekil 3’te bu sorgunun nasıl gerçekleştirildiği görülmektedir.

sekil3.gif


Şekil 3

Görüldüğü gibi istemci ‘www.ulak.net.tr’ adresini bu alan adı için en yetkili durumdaki alan adı sunucusunda sorgulamış ve bu adrese tanımlanmış IP adresi cevap olarak döndürülmüştür.

Benzer bir sorgulamayı Amerika kıtasında ‘ns.digex.net’ adlı alan adı sunucuyu kullanan bir istemcinin yaptığı durum incelenebilir.

‘ns.digex.net’ kendisine sorulan ‘www.ulak.net.tr’ için herhangi bir bilgiye sahip değildir. Bu yüzden kendi veritabanında tanımlı olan en üst seviye alan adı sunucularına (root-servers, daha sonra detaylı olarak açıklanacaktır) bu adresi sorar. Bu sunucu (a.root-servers.net) da ‘www.ulak.net.tr’ için kesin bilgiye sahip değildir. Ancak ‘.tr’ üst seviye alan adının ‘ns1.metu.edu.tr’ sunucusu tarafından kontrol edildiğini bilmektedir. Bu yüzden, ‘ns.digex.net’e sorguyu ‘ns1.metu.edu.tr’ üzerinde yapması bilgisini iletir. ‘ns.digex.net’ bu kez aynı adresi ‘ns1.metu.edu.tr’ üzerinde sorgulayacaktır. Ancak bu sunucu da ‘www.ulak.net.tr’ için kesin adresi bilemeyecek ve sorgunun ‘ulak.net.tr’ alan adı sunucusu olan ‘ns.ulak.net.tr’ adresine yönlendirilmesini bildirecektir. Son olarak ‘ns.digex.net’, ‘www.ulak.net.tr’ adresini ‘ns.ulak.ne.tr’ üzerinde sorgulayacak ve ‘ns.ulak.net.tr’ kendi veritabanında ‘www.ulak.net.tr’ için tanımlı olan 193.140.83.9 adresini döndürecektir. Bu bilgiye ulaşan ‘ns.digex.net’ de kendi istemcisine bu bilgiyi iletecektir.

Bu sorgulama şekil 4’te gösterilmiştir.

sekil4.gif
 
Bu analizde dikkati çekmesi gereken iki önemli nokta bulunmaktadır.

Öncelikle ‘.tr’ dan sorumlu gözüken ‘ns1.metu.edu.tr’nin ‘.net.tr’ için ayrı bir alan adı sunucuya yönlendirme yapmadığı, doğrudan ‘ulak.net.tr’ alan adı sunucusuna yönlendirme yaptığına dikkat edilmelidir. Bu ‘ns1.metu.edu.tr’ hem ‘.tr’ hem de ‘.net.tr’ için alan adı sunucusu olduğu için bu şekilde gerçekleşmiştir. Eğer ‘.tr’ ve ‘.net.tr’ farklı sunucular üzerinde tanımlı olsalardı ‘ns.digex.net’ ayrıca ‘.net.tr’den sorumlu sunucuyu da sorgulamak durumunda kalacaktı.

Dikkat edilmesi gereken diğer nokta ise istemcinin alan adı sunucuya yalnızca bir sorgu iletmesi ve tüm iş sunucu tarafından yapıldıktan sonra yalnızca cevabı almasıdır. Aynı durum ‘ns.digex.net’ diğer alan adı sunuculara ulaşırken ortaya çıkmamış ve her biri ayrı ayrı sorgulanmıştır. Bunun sebebi ‘ns.digex.net’ sunucusunun tekrarlı (recursive), diğer alan adı sunucularının ise tekrarlı olmayan (iterative) bir şekilde sorgulanmış olmasıdır.


4 IP’den İsim Çözümlemesi

Bölüm 3’te isimden adres çözümlemesi incelenmiştir. Şu ana kadar anlatılan yapı tüm sistemin isimden adres çözümü için tasarlandığı izlenimini vermektedir. Ancak pratik ihtiyaçlar, IP adresinden isim çözümünü de gerekli kılmaktadır.

Böyle bir sorgunun şu ana kadar incelenen yapı üzerinde nasıl çalışabileceğine bakalım. İsimlerin indesklenmesine göre oluşturulmuş hiyerarşik bir sistem görülmektedir. Ancak IP adreslerin bu yapı üzerinde herhangi bir hiyerarşik yapısı bulunmamaktadır. Örneğin ‘www.ulak.net.tr’ adresi 193.140.83.9 IP numarası ile adreslenmişken ‘truva.ulakbim.gov.tr’ adresi 193.140.83.13 IP numarası ile adreslenmiş olabilir. Bu da 193.140.83. ile başlayan IP’lerin teorik olarak tüm alan adı uzayına yayılmış olabileceğini gösterir.

Görüldüğü gibi mevcut yapıda bir IP adresinin isim karşılığını bulmak için veritabanının tümünün taranması gerekmektedir. Bu ise indeksi olmayan dağınık durumdaki milyonlarca kaydın taranması anlamına gelir ki imkansıza yakın bir uğraştır. Bu sorunun çözülebilmesi için IP adreslerine için de hiyerarşik bir yapının kurulması gerektiği görülmektedir.

Bu yapıya geçmeden önce IP adreslemenin özelliklerinin hatırlanması yararlı olacaktır. IP adresleri ilk oktetten son oktete (soldan sağa doğru) en genelden en özele doğru sıralanırlar. Örneğin ‘193.140’ hem ‘193.140.83.13’ü hem de ‘193.140.83.9’u içine alır.

Alan adları ise buna ters olarak sağdan sola doğru en genelden en özele doğru sıralanırlar. Örneğin ‘.tr’ hem ulak.net.tr’yi hem de ‘metu.edu.tr’yi içine alır.

İki gösterim de genelden özele sıralanabildiğine göre mevcut hiyerarşik yapılandırmaya IP numaraları için bir üst seviye alan adı eklenmesi mümkündür. Bu alan adı ‘in-addr.arpa’ şeklinde ifade edilir. Bu üst seviye alan adı 1’dan 255’e kadar çeşitli alt alanlara bölünür. Bu bölümlemeye 4 okteti tamamlayacak şekilde devam edilebilir. Bu durumda ortaya çıkan yapı şekil 5’te gösterilmiştir.

sekil5.gif


Şekil 5

Üst seviye alan adları arasına ‘arpa’ adında bir alan adı eklenmiştir. Bu alan adının altında ‘in.addr’ şeklinde bir alan daha tanımlanmıştır. Bu alan adının altında IP numarasının ilk okteti alan adı olarak eklenmiş, bunu sırayla IP numarasının ikinci,üçüncü ve dördüncü oktetleri izlemiştir.

Görüldüğü gibi artık 193.140.83.13 ve 193.140.83.9 IP numaralarının isim karşılıklarını bulmak son derce kolaylaşmıştır. İncelene isim sorgusuna benzer bir şekilde IP-isim sorguları da bu yapının yardımyıla yapılabilmektedir. Ancak dikkat edilmesi gereken önemli birkaç nokta bulunmaktadır.

Normal alan adı isimlendirme sisteminde isimler ağacın en altından en üstüne doğru okunulur. Bu durumda IP numaraları bilinenin aksine özelden genele doğru okunacaklardır. Örneğin 193.140.83.13 IP numarasının DNS ağacı üzerinde okunuşu 13.83.140.193.in-addr.arpa şeklinde olacaktır.

Dikkat edilmesi gereken diğer bir nokta ise isimden IP’ye yapılan tanımlama ile IP’den isime yapılan tanımlama arasında herhangi bir bağlantı bulunmayışıdır. Örneğin ‘www.ulak.net.tr’ adresi DNS üzerinde 193.140.83.9 olarak tanımlıyken, ‘193.140.83.9’ IP adresinin ismi ‘efe.ulakbim.gov.tr’ şeklinde tanımlı olabilir.


5 DNS Cache

DNS çözümlemesinde anlatıldığı şekilde isim çözümleme işlemi ardışıl olarak alan adı sunucularının sorgulanmasını gerektirir. Bu işlem oldukça vakit alıcı bir işlem olabilir ve karşılıklı olarak sistemler üzerinde yük oluşturduğu gibi hatlar üzerinde yüksek miktarda bant genişliği harcayabilir.

Bunun engellenmesi ve sorgunun mümkün olan en kısa sürede sonuçlandırılabilmesi için alan adı sunuculara cache özelliği eklenmiştir. Bu sayede bir alan adı sunucu daha önce sorguladığı alan adlarını kendi belleğinde tutarak yeni sorgularda diğer alan adı sunucularını sorgulamadan doğrudan cevap verebilir. Bu yukarıda anlatılan olumsuzlukları belli bir derecede önleyecektir. Ancak burada önemli bir nokta gözden kaçırılmamalıdır.

Sorgulanan alan adında son sorgulamadan sonra değişiklik yapılmış olabilir. Bu durumda bellekte tutulan bilgi güncelliğini yitirmiştir ve istemciye hatalı bilgi geri döndürülecektir.

Bu ancak belli bir noktaya kadar kabul edilebilir bir durumdur. Alan adı tanımları normalde çok sık değiştirilen tanımlamalar değillerdir. Nadiren değitirildiklerinde de değişikliğin aktive olması için bir gün gibi bir süre çoğu zaman yeterlidir. Şu halde bellekte tutulan bilgilerin bir süre sonra güncelliğini yitirdiği kabul edilmelidir. Bunu belirleyen değere daha önceki konularda da değinildiği gibi TTL (Time To Live, Yaşam Süresi) denilmektedir ve her alan adının tanımlanmasında bu alan adı için geçerli TTL değeri belirtilir. Bu alan adından sorgulanan bilgiler bellekte TTL süresince tutulduktan sonra güncelliğini yitirdiği kabul edilir. TTL’in nasıl tanımlandığı daha sonra incelenecektir.

Çok Sevdiğim Bir Arkadaşımın Sitesinden Alıntıdır.
 
eywallah kardeş çook güzel anlatmışsın
 
dns anlatımı gerçekten bilgilendirici bi şekilde anlatılmış

saola peki benim bilgisayarım iki gündür bazı sitelere girmiyor ve dns ayarlarımda sorun olduğunu söylüyo
nasıl düzelticez veya neden böyle oluyor
yardımcı olubilecek arkadaşların dikkatine
 
res://ieframe.dll/dnserror bu yazı sol altta ı.e de çıkıyor ve bağlantı olamıyor.dns server da bir sorun olduğunda hangi noktalar araştırmalı sıralaması neler olmalı?
yazı mükemmel bu arada ,mühendislik bilgisi gerektirir bukadarı.tebrikler

res://ieframe.dll/dnserror bu yazı sol altta ı.e de çıkıyor ve bağlantı olamıyor.dns server da bir sorun olduğunda hangi noktalar araştırmalı sıralaması neler olmalı?
yazı mükemmel bu arada ,mühendislik bilgisi gerektirir bukadarı.tebrikler
 
emeğine sağlık kardeş güzel paylaşım. ben bir şirkette bilgi işlemde calışıyorum..Sana sormak istediğim bir şey var..Yardımcı olabilirsen sevinirim..Şimdi şirkette telefon hattı üzerinden kullandığımız güneş programı var..lizlayn yani..Şirketin kablolama sistemi çoğunlukla fiber kablo..4 tane fiber siwich var..Ana merkezden başlıyor ve dağılarak son noktaya gidiyor..Ve bulara ilaveten fabrikamızda acsess pointler var 10 tane..Bunlara barkot okutuyoruz wriless olarak el terminalleri var bunlarla barkot okutuyoruz..bu acsess poinlere giden ayrıca fiber kablo var ve bu kabloyu converterle bakıra cevirerek siwiche bağladık ve acess poinlere drekt ıp verdik..İlk gün çalıştı ama daha sonra bıçak gibi kesildi..Baya uğraşmamıza rağmen ben bir yerlerde çakışmanın olduğunu düşündüm..Kabloyu cekev firmayı test için çağırdım onlarda wireleslerle çakışmanın olduğunu söylediler..peki bunu neden yapar converter devredeyken bütün acsess pointler duruyor..Convertere devreden alınca radyo firakansıyla çoğu çalışıyor..Bunun sebebi nedir sizce..Yardım edebilirseniz yada fikir sunarsanız sevinirim...saygılar..
 
paylaşımın için teşekkürler....
 
ellerine sağlık güzelbi paylaşım olmuş
 
Geri
Üst