6. DOMAIN NAME SYSTEM
Internet adreslerini telefon numaraları gibi doğrudan bilmemiz gerektiğini
düşünelim. Bilgisayar ağları büyüdükçe kullanıcıların daha fazla bol rakamlı
sayıları akıllarında tutmalarını ya da kaydetmelerini gerekecekti. Bu,
istenen ağ kaynaklarına erişimi oldukça sıkıntılı bir hale getirecekti. Neyse
ki, TCP/IP protokol ailesinde yer alan DNS bu sıkıntıları aşmamızı sağlar.
DNS, IP adresleri ile bu IP adreslerinin konuşma lisanı ile hazırlanmış
karşılıklarının tutulduğu bir hizmet protokolüdür. 6.1 Domain Name System mimarisi DNS isimlendirme için hiyerarşik bir mimari kullanır. Şekil 6-1’de DNS
yapısı gösterilmiştir. DNS bir kök ve ağaç yapısı ile organize
edilmiştir. Bir kök en üst giriştir ve ağacın daha alt seviyelerince ana olarak
adlandırılır. Ağaç düğümleri bağlayan dallar içerir. Ağacın aynı düğüm
seviyesinde olan her bir düğümün etiketi, tamamen belirli ve ayrık olmalıdır.
Şekil 6-1 DNS
Hiyerarşisi Hiyerarşik isimlendirme, ağacın kökünden aşağıya doğru ilerlenerek
yapılır. Her etikete bağlı isimler seçilip birlikte sıralanarak görülebilir
isim şekli elde edilir. Bu isim, ağacın her seviyesinden ayırt edilebilirdir.
Örneğin, kökün altındaki ilk düğüm seviyesi çeşitli isimler içerir.
Örneğimizde COM’u kullanacağız. COM’u izleyen diğer seviyede ACME’yi de
içeren çeşitli diğer isimler listelenmiştir. Son olarak ACME’nin altında RD
bulunur ki bu, ağacın en alt seviyesidir. RD yaprak düğümü olarak anılır
çünkü onun altına bağlı düğüm yoktur. Sıralanmış isim şekilde gösterildiği
gibi RD.ACME.COM olur. Domain isimleri adresleri tanımlamak için icat edilmemiştir. Gerçekten de
isimleri adreslere haritalamak için ek servisler gerekir. Bu servisler,
sunucular ve isim çözücüler ile sağlanır. Internet isimleri yalnızca host’lar için atanmaz. Örneğin, Mail Exchange
(MX bilgisi) olarak anılan bir bilgi sınıfı, bir organizasyonun, yalnızca iş
istasyonu veya bilgisayarlara değil bir posta sunucusu olarak tasarlanmış her
cihaza mektup yollamasını sağlar. Ayrıca, domain isimlerinin kullanımı bir MX
cihazının Internet’e bağlanmadan domain ismi almasına olanak sağlar.
Organizasyonların mektuplarını posta sunucusuna yönlendirmeleri yeterli olur.
Şekil 6-2’de bir isim sunucusunun tipik işlemleri gösterilmiştir. Eğer bir
birey ublack@rd.acme.com ile bağlantı kurmak isterse, birey, bağlantı kurmak
istediği kişinin ismini ve kişinin firmasını (domain ismini) girer. Bu ismin
ağ adresini soruşturmak için isim sunucusuna bir sorgu (query) yollanır veya
sorgu, iş istasyonunda bulunan tablo ile eşleştirilir. Sorgunun cevabı, ismi
karşılayan adresi içerir. Bu kurgusal örnekte, adres 128.4.3.6’dır. Bu adres
daha sonra bir router’a yollanacak olan bir datagrama yerleştirilir. Router
bu adresi kullanarak datagramı rotalayacaktır. Bu örnekte datagram 128.22.3.8
ile tanımlı düğüme yollanır. Şekil 6-2 Bir isim
sunucusunun kullanılması 6.2 Domain İsimleri Her bir domain belirli bir domain ismi ile tanımlanır. DNS’in hiyerarşik
doğası nedeni ile bir domain, başka bir domain’in alt-domain’i olabilir.
Alt-domain’ler, isimlendirme ilişkilerinin yeniden paketlenmesini sağlayan
isimlendirme yapısı ile oluşturulur. Şekil 6-1 örneğinde, RD.ACME domain’i
RD.ACME.COM domain’inin alt-domain’idir. Bir isim DNS’de iki şekilde gösterilebilir. Bunlardan biri, DNS’teki ismin
tümünü içeren tam isimdir. Şekil 6-1 örneğinde tam isim RD.ACME.COM’dur. Buna
karşın göreceli isim DNS’teki tam ismin yalnızca bir parçasıdır. Örneğimizde
RD bir göreceli isimi tanımlamada kullanılır. Tam ve göreceli isimler OSI
modelinin tanımladığı ayrık isim (distinguished name (DN)) ve göreceli ayrık
isimlere (relative distinguished name (RDN)) oldukça benzerdir. 6.3 Yüksek-Seviye Domain’leri Şu anda DNS, yedi üst-seviye domain ismi içerir. Bunlar Şekil 6-1’de
gösterilmiştir ve aşağıda anlamlarının açıklamaları yapılmıştır: · GOV: Herhangi bir hükümet gövdesi 6.4 Domain Name Çözümlemesi ve İsimleri Adreslere Haritalamak Bir Internet kullanıcısı, kullanıcıya dost isimleri IP adreslerine
haritalamak için domain isim çözümlemesi (domain name resolution) kavramı ile
çalışmalıdır. RFC (Request for Comments) 1035 bu işlemler için gerekli
prosedürleri tanımlar. Şanslıyız ki, bu isimlerin çözülmesinde kullanıcının alacağı görev oldukça
basittir. Kullanıcıya düşen domain ismini bölgesel isim çözücüye (name
resolver) sağlamaktır. Bir isim çözücü, ya bir domain ismini baz alarak
gerekli bilgiyi kullanıcıya gönderir ya da bir isim sunucusuna (name
server’a) istek gönderir. Kullanıcı aynı zamanda isim sunucusuna doğru sorgu
oluşturup göndermek ve işlemlerin nasıl yapılacağına dair belirli ihtiyaçları
sağlamak gibi ufak görevleri yapar. Şekil 6-3’te domain name çözümlemesinin
yapısı görülmektedir. Kullanıcı domain ağacını tek bir isim olarak görür. Çözücü, isim adres
çözümlemesi için; ismi çözümleme veya isimi bağımsız bir yardımcı sisteme
(isim sunucular) gönderme görevlerini üstlenir. Şekilde görüldüğü gibi isim
sunucusu, isim çözücüsüne bir istek yollar. Böylece çözücü kullanıcı
programına bir servis sağlar. Çözücü, isim sunucusunun kullanıcısı
durumundadır. İsim sunucusu ve yedekleme (backup) açısından isim çözücülerdeki bazı
bilgilerin aynısını saklayabilir. İsim çözücü sorguyu başlatmak için en az
bir isim sunucusunun ismini bilmelidir. Sorgu (query) isim çözücüden sunucuya
aktarılır. Bunu alan sunucu bir cevap yollar ya da başka bir isim sunucusuna
çağrı yapar. Bu yaklaşım ile çözücü, başka isim sunucularının kimliklerini ve
tuttukları bilgileri öğrenebilir. İşleme hangi isim sunucularının katılacağına, Şekil 6-1’de gösterilen
isimlendirme hiyerarşi ağacı baz alınarak karar verilir. Bu ağacın her bir
yaprak girişi bir isim sunucusuna karşılık düşer. Alt-domain’lerdeki bir
sunucu, kendi altındaki domain’leri bilir ve sorguya cevap verecek uygun
sunucuyu seçebilir.
Şekil 6-3 Domain
name Çözümlemesi Şekil 6-3’te çözücüye bağlı isim belleği olarak etiketlenmiş bir parça
görüyoruz. Çözücü bir sorgu aldığında önce kendi hafızasında buna cevap var
mı diye bakar. Eğer varsa, netice, bir cevap formunda istekçiye gönderilir.
İsim belleğinde cevap mevcut değilse isim çözücü cevabı bulmak için hangi
isim sunucusuna sorgu göndermesi gerektiğine karar verir. İsim belleğinde, isim çözme işlemini hızlandırmak üzere sıklıkla sorgulanan
bilgiler saklanır. İsim belleğindeki bilgiler zamanlayıcı kullanılarak
nihayetinde silinirler. 6.5 İsim Sunucusu İşlemleri İsim sunucusu, kullanıcı sorgusuna (bu işlemleri çözücü yürütmektedir)
tekrarlamalı ya da tekrarlamasız işlemlerle servis verebilir. Tekrarlamasız
işlemlerde cevap aşağıdakilerden biri olur: · Bir cevap Burada çözücü, özel isim sunucularına yeniden sorgu yollamak zorundadır. Tekrarlamalı işlemlerde, bölgesel isim sunucu diğer sunucular ile bağlantı
kurabilir. Burada isim sunucusu sorgulanan IP adresini istekçiye geri
döndürmek zorundadır. Eğer isim sunucusu IP adresini geri döndüremezse,
istekçiye (isim çözücüsüne) negatif bir cevap yollar. İsim sunucusu istekçiye
referansıma aktar cevabı yollayamaz. Tekrarlamalı ve tekrarlamasız işlem
yapan isim sunucuların ortak yanları şunlardır: Bir sunucu, domain isminin bir altağacının bir parçasını oluşturmakla
sorumludur. Bu parçaya zone denir. Bu, domain isminin bitişik bir bölgesidir.
Tipik olarak, her bir zone için ayrık bir veri tabanı vardır. Bir isim
sunucusunun bulunduğu zone’un doğru olup olmadığı periyodik olarak kontrol
edilmelidir, eğer doğru değilse zone doğru olarak güncelleştirilmelidir. Bir
zone yalnızca yetkili kişilerce güncelleştirilebilir. İsim sunucusu, zone
transfer protokolünü kullanarak birden fazla isim sunucusunun bir zone
hakkında bilgi saklamasına izin verir. Eğer bir domain ismini sağlayan isim
sunucu bir şekilde çökerse diye diğer isim sunucularda isimlendirme ve
adresleme bilgilerinin fazladan kopyası bulunabilir. 6.6 Kaynak Kayıtları (Resource Records (RRs)) Daha önce bir domain isminin bir düğümü tanımladığını öğrendik. Her bir düğüm
kendi kaynakları ile ilgili bilgileri içerir. Kaynak bilgisi, hem düğüm hem
de isimle ilgilidir. Bu bilgiye, kaynak kaydı (resource record (RR)) denir.
Kaynak kaydı bir veri tabanında bulunur ve domain zone’larını tanımlamak için
kullanılır. RR’ler aynı zamanda domain isimleri ve ağ objeleri arasında
haritalama yapmakta kullanılırlar. Şekil 6-4 Kaynak
Kaydı İçeriği Bir RR, kısaltması ve nümerik kodundan tanınır. Bu tip ve değerler Tablo
6-1’de listelenmiştir. RR’ler standart bir formatta saklanırlar. Şekil 6-4’de
bir RR’nin en üst seviye parçasının formatı görülmektedir. Bir RR kaydının
formatı aşağıdaki gibidir. <<isim>> <<TTL>> <<sınıf>> <<tip>>
<<RD uzunluğu>> <<veri>> Bu alanların bazıları bir RR’de atlanabilir. Eğer <<TTL>>
alanı boş ise veri tabanının başka bir parçasında tanımlı default minimum
zaman kullanılır. Eğer <<sınıf>> boş ise, veri tabanında
tanımlanmış son sınıf kullanılır. Bu alanları şöyle açıklayabiliriz: · isim: Bu RR için düğümün domain name’ini (sahibinin ismini) içerir. Eğer
boşsa bir önceki RR’nin ismi kullanılır. Tablo 6-1 DNS Tip
Değerleri
6.6.1 RDATA alanı Şekil 6-5’te en yaygın RDATA formatları gösterilmiştir, SOA formatı (start
of zone authority format (zone yetkisi formatı)) başlangıcı. Her bir zone
için yalnız bir SOA kaydı vardır. Şekil 6-5 Zone
Yetki Formatının Başlangıcı Şekilde gördüğümüz gibi, SOA RDATA yedi alt-alan içerir. Bu alanların çoğu
isim sunucusunun yönetimi ve idamesi için kullanılır. İçerikleri aşağıdaki
gibidir: · MNAME: Bu zone için verinin orijinal veya birincil kaynağı olan domain
ismini tanımlar. Şekil 6-6’da RDATA alanının diğer formatları gösterilmektedir. Şekil 6-6 RDATA
alanının içerdiği diğer alanlar 6.7 DNS mesajları Şekil 6-7’de bir DNS mesajının formatı verilmiştir. Mesajlar isim
sunucular arasında RR’lerin güncelleştirilmesi için transfer edilir. Netice
olarak, mesajın bazı alanları RR formatına benzerdir.
Şekil 6-7 DNS
Mesajının Formatı Şekilde görüldüğü gibi mesaj beş ana bölümden oluşur. Başlık (ki her zaman
bulunur) sorgu ve cevabın doğası ile ilgili alanlar içerir. Soru (question)
bölümü isim sunucusuna sorgu gönderilmede kullanılan verileri içerir. Cevap
(answer) bölümü soruların cevapları ile yenilenen RR değerlerini içerir.
Yetki (authority) bölümü yetkili isim sunucularını işaret eden RR’ler içerir.
Ek kayıt (additional record) sorguya asistanlık yapan RR’ler içerir; bu
RR’ler özellikle soruların cevapları ile ilgili değildir. Şekil 6-8 DNS
Mesajının Başlığı Şekil 6-8’de başlık bölümünün formatı gösterilmiştir. İlk alan ID alanıdır
ve 16-bitten oluşur. Bu tanımlayıcı hem sorguda hem cevapta kullanılır ve
ikisinin eşleşmesini sağlar. QR alanı bir bitlik alandır ve mesajın sorgu (0)
veya cevap (1) olduğunu belirtir. Opcode 4 bitten oluşur. Değerlerinin karşılığı şöyledir: 0 = standart
sorgu, 1 = ters sorgu, 2 = sunucu statü isteği ve 3’den 15’e =
rezerve edilmiştir. AA (yetkili cevap) bir cevap için 1 değerine set edilirse cevaplayan isim
sunucusunun sorgulanan domain name’i için yetkili olduğunu belirtir. TC
(truncation-kesici) 1’e set edilerek mesajın çok uzun olduğu için kesildiği
belirtilir. Kesme iletim linkinin izin verdiği veri birimi uzunluğu ile
ilgilidir. RD (tekrarlamalı işlem istendi) biti 1’e set edilerek isim sunucusuna
bir tekrarlamalı sorgu yap direktifi verilir. RA (tekrarlamalı yapılabilir)
biti bir cevap mesajıdır. Eğer isim sunucusu bir tekrarlamalı sorgu
yapabilecekse RA ile bunu gösterir. Z alanı üç bittir ve ileride kullanılmak
üzere rezerve edilmiştir. RCODE aşağıdaki değerlere set edilebilen 4 bit içerir: 0 = Hiç bir hata oluşmadı. QDCOUNT 16-bitten oluşur ve soru bölümündeki girişlerin sayısını belirtir.
ANCOUNT 16-bitten oluşur ve cevap bölümündeki RR’lerin sayısını belirtir.
NSCOUNT 16-bitten oluşur ve yetkili kayıt bölümündeki sunucu kaynak
kayıtlarının sayısını belirtir. ARCOUNT 16-bitten oluşur ve ek kayıt
bölümündeki kaynak kayıtlarının sayısını belirler. Bu son dört alan mesajı
alan birime, dört alanın sınırlarını nasıl belirleyeceğinin bildirir. Şekil 6-9 DNS
Mesajının diğer Alanlarının Formatı Şekil 6-9’da bu dört bölümün formatı gösterilmiştir. Soru bölümü üç
girişten oluşur. Bu bölümün sorgu mesajlarının sorularını taşıdığını
söylemiştik. QNAME domain ismini içerir. QTYPE alanı sorgunun tipini
belirtir. Bu alandaki değerler daha önceki bölümde bahsettiğimiz tip
alanlarının (Tablo 6-1’e bakınız) değerlerinin içerebilirler. QCLASS sorgu
sınıfını belirtir. Tipik olarak, bu değer Internet için IN olur. Şekil 6-9’da görüldüğü gibi DNS mesajının Cevap, Yetki ve Ek Kayıt bölümleri
aynı formatı içerirler. Bu formattaki alanlar şöyledir: · İSİM: Kaynak kaydınca belirtilen domain ismini tanımlar. |