DNS – DOMAIN NAME SYSTEM

İnternet ortamında her şey isimden ibaret olarak görülmektedir. Biz sürekli olarak tarayıcılarımıza adres giriyoruz, oysaki aslında o adreslere ait olan ip leri bilmiyoruz, bilmemiz de pek mümkün değildir, çünkü insan hafızası rakamlara göre  isimleri daha kolay hatırlamaktadır. Bu sayede “208.109.209.195” adresi yerine bunun ismi olan “cozumpark” nı aklımızda tutmamız daha kolay olacaktır. Peki, ben internet tarayıcısına “cozumpark.com”  yazdığımda bunu “208.109.209.195” ip adresine çeviren nedir?  işte bu servisin adı DNS (Domain Name System ) tir . Bende bu makalemde DNS konusunda bilgi vermeye çalışacağım.

Domain Name System ( DNS ) günümüz teknolojisinde isim çözümleme sistemi için kullanılır. İnternet yada intranet  ortamını ele alırsak her bir makinenin numeric olarak bir ismi vardır ama akılda kalması zor olduğu için alphanumeric isimleri biliriz genelde. Örnek vermek gerekirse www.cozumpark.com alanın numeric ismi 212.156.20.15 olduğunu varsayarsak hangisinin aklımızda daha uzun kalacağını siz düşünün. Domain Name System bu noktada bize alphanumeric isimleri bilerek numeric isimlere ulaşmamamızı sağlar.

Dns ‘in geçmişine yani hangi gereksinim üzerine oluşturulduğuna bakacak olursak.

1970 li yıllarda dünya üzerindeki bilgisayarların sayısı o kadar azdı ki  bilgisayarlar kendi aralarında konuşmak için numeric ve alphanumeric adreslerini bir hosts.txt dosyası içinde tutarlardı. İletişime geçmelerini sağlayıcı adreslerini bu dosyadan okurdu. Gün geçtikçe yeni bilgisayarlar yapıldıkça bu hosts.txt dosyası güncellenerek

Büyüdükçe büyürdü. Bu sebepten dolayı Domain Name System oluşturuldu ve özet olarak yaptığı işlem ise alphanumeric isimleri numeric isimlere çevirmesidir. TCP/IP protokolünü kullanan network’lerde bilgisayarlar birbirleri ile haberleşmek için IP adresi kullanmak zorundadır. Domain Name Systems oluşturulma amacı olan isimden ip çevirme işi dışında birçok kayıdında bilgilerini tutar. Bunları Domain Controller adını veya MX ( Mail Server ) adını gibi örnekleyebiliriz.

İsim Çözümle Nedir ?

Network üzerinde bulunan aygıtların DNS isim karşılığına Hostname adı verilir.

Full Qualified Domain Name ( FQDN ) ise DNS sunucusundaki bir nesnenin tam adıdır. Network üzerinde bulunan bilgisayarlar  hostname ile iletişim  saglarken, mutlaka bir DNS server içinde bu hostname karşılık gelen IP adresi bulunur.

lodos.cozumpark.com yapısında lodos host name ve cozumpark.com da suffix’i oluşturur. Suffix Host name’in temel yapısıdır.

Bir network yapısında çakışma olmadan farklı suffix yapısında 2 adet yanı host name kullanılabilir. Ör ; lodos.cozumpark.com ve  lodos.bora.cozumpark.com

Host name 255 karaktere kadar olabilir. DNS Server üzerinde bir host name iki farklı ip adresi atanabilir.

Ör; lodos.cozumpark.com için 212.156.20.15 ve 172.16.100.254 gibi. Dns Server’in yanı sıra hosts dosyası ile de Host name den ip adreside çözümlenebilir.

Host name ve DNS Suffix görüntülemek için ipconfig /all komutunu kullanabiliriz.

İsim Çözümleme Sırası


Şekil – 1

Şekil – 2

Host Name ile İsim  Çözümleme ;

Bir hostname ‘in Ip adresine dönüştürülmesinde belirli bir sıraya göre çözümleme yapar.

1.     Host dosyası / Client resolver Cache

2.     DNS

3.     NetBIOS Name Cache

4.     WINS

5.     Broadcast

6.     Lmhosts dosyası

Hosts dosyasını inceleyecek olursak dns sorgularının ilk bakıldığı yerdir. Lokasyon olarak %systemroot%/system32/drivers/etc klasörü altında barınır. Notepad de açarak düzenlenebilir ve en alt kısmına IP adresi yazarak karşılık bir Hostname yazarsak dns sorgularında ilk verilecek cevap olacaktır.

Şekil – 3

Komut satırına ipconfig /displaydns yazıldıgı zamanda host dosyası içindeki kayıtlar görülebilir.

Şekil – 4

Ayrıca cache e dinamik olarak eklenmiş olan kayıtları ipconfig /flushdns komutu ile silebiliriz.

NetBIOS Name

Microsoft Windows işletim sistemlerinin Win 2000 öncesi sürümlerinde, ağda kullanılabilmeleri için adlarının kaydedilmesi veya çözümlenmesi gereken bilgisayarları ve diğer paylaşılan veya gruplandırılan kaynakları tanımak ve bulmak için kullanılır. Microsoft işletim sistemlerinin önceki sürümlerinde ağ hizmetlerinin sağlanabilmesi için NetBIOS adlarının kullanılması zorunludur. 15 karakterden oluşmalıdır. İnternete çıkılamaz çünkü router broadcast geçirmez. Bu yüzden WINS ten yararlanılır.

Dns Name space

                                     

DNs için bir isimlendirme hiyerarşisi diyebiliriz. Bir DNS Namespace  Root Domain, Top-Level Domain, Second-Level Domain ve mümkün olabilen Sub domain içerir.

Root Domain: .    

Top-Level Domain: com, org, net, biz, info, gov, edu, mil, int

Second-Level Domain: cozumpark, esersolmaz, fakaonline, hakanuzuner    

Şekil – 5

Windows 2003 bir sunucuya DNS yüklenmesi

Öncelikle bir DNS servisinin o makineye kurulabilmesi için statik ip olmasını şart koştuktan sonra kuruluma başlayalım. Start > Settings > Control Panel  > Add Remove Programs >Add Remove Windows Components

Şekil – 6

Çokta yabancı olmadığımız bir bölümden Networking Services tıklayarak Details tıklarız.

Şekil – 7

Domain Name Systems (DNS) işaretlenir ve OK basarak kurulumu tamamlarız.

Sonrasında eğer bir Active Directory kurulumu yapılacaksa dcpromo deyip kurulum esnasında işletim sistemi gerekli zone oluşturmasını dns kayıtlarını otomatik olarak açacaktır. Ama biz sistemciler AD yapımıza daha sonralardan değişik zone lar ekleme ihtiyacı duyarız bu durumlarda aşağıda inceleyeceğimiz gibi zone oluşturmalıyız.

Forward Lookup Zone Oluşturma

Şekil – 8

Dns Servisimizi başlata dnsmgmt.msc yazarak hızlıca açıyoruz ve SERVER’ a sağ klik New Zone basarak primary zone oluşturmaya başlıyoruz.

Şekil – 9

Next ile zone oluşturmak için devam ediyoruz. Primary Zone seçiyoruz ve zone oluşturmaya devam ediyoruz. Not olarak Store the zone in Active Directory tıkını işaretleyerek dns database mizin AD nin içinde saklanmasını sağlayabiliriz.

Şekil – 10

Primary Zone seçiyoruz ve zone oluşturmaya devam ediyoruz.

Not: Store the zone in Active Directory tıkını işaretleyerek dns database mizin AD nin içinde saklanmasını sağlayabiliriz.

Bu bölümde zone un AD yapısı içinde nasıl bir replikasyon stratejisi belirleyeceğini tahin ediyoruz. Benim işaretli olarak bıraktığım şekilde bütün domain controller ile replikasyon yapacaktır.

Şekil – 11

Bu bölümde zone un AD yapısı içinde nasıl bir replikasyon stratejisi belirleyeceğini tahin ediyoruz. Benim işaretli olarak bıraktığım şekilde bütün domain controller ile replikasyon yapacaktır.

Şekil – 12

Primary Zone ismini de belirleyerek ilerliyoruz.

Şekil – 13

Allow only secure dynamic updates işaretli bırakarak Zone updates lere karşı güvenli bir şekilde izin verecegimizi belirtiyoruz. Bu durumda domin deki kullanıcılar dns sunucumuzdaki zone güncelleştirebilecekler.

Şekil – 14

Primary Zone oluşturmasını tamamlamış bulunuyoruz.

Şimdi bir Host (A) record oluşturalım. Yani yapacağımız işlem telefon defterine açıp Fatih KARAALİOĞLU yazıp yanına da 09002109090 yazmak anlamına gelir. Host A kaydı bize isimden ip çözümlemeye yardımcı olacak kayıttır.

Şekil – 15

Primary Zone sağ klik New Host (A)  tıklıyoruz.

Şekil – 16

Mail isimli bir kayıt oluşturuyoruz ve ip sinide giriyoruz. Bu kaydı örnek vermek gerekirse nette kullanabiliriz.

Bir Host A kaydı oluşturarak mantığı anladık ve daha sonralarda MX kaydı olsun CNAME olsun ayni mantalite ile oluşturacağımızı bilmeliyiz.

Sub Domain Oluşturma

Tek başına bir anlam ifade etmeyen ama alt domain ile anlamlı olan domain alınabilir. Önce sub domain ne demektir onu araştıralım:

Sub domain domaininizin başına eklediğiniz ve arada. (nokta) bulunan domaindir. Örneğin fenerbahceliler.com diye bir domain aldınız. Bu domaine çeşitli sub domaniler ile yeni domainler elde edebilirsiniz. Mesela istanbul.fenerbahceliler.com, ankara.fenerbahceliler.com gibi sonsuz sayıda fenerbahceliler.com domaininin alt domainlerini oluşturabilirsiniz.

İnternette bazı sitelerde domainlerin başında bulunan www kısaltması aslında bir sub domaindir. Bir internet jargonu olduğu için www. şeklinde alt domain oluşturulmuş ve asıl domainin kendisi bu alt domaine yönlendirilmiştir.

Sonuç itibari ile sub domainler ile hedeflenen bir domain, kendisi bir anlam ifade etmese bile alınabilir.

Şekil – 17

Esersolmaz.com zone sağ klık New Domain e tıklayarak bir sub domain oluşturabiliriz.

Şekil – 18

Şekil – 19

Sub domainimizin ismini belirliyoruz ve OK basarak işlemi tamamlıyoruz.

Pointer (PTR) Record

Bir IP adresine karşılık gelen Host ismini öğrenmek için oluşturulur. DNS içindeki Reverse Lookup Zone bölümünde bulunur. Opsiyenel olan bu zone ve kayıt  özellikle nslookup komutlarında ip si bilinen DNS sunucularının isimlerini öğrenmek sorgulara cevap verir. Ama asıl görevi ise büyük ölçekli domainlerden mail gelir ken domainnizde olup olmadığı kontrol edilmesidir. Eğer var ise sorun yok mail normal olarak gelir ama yoksa genelde junk yada spam a düşebilir.

Şekil – 20

Reverse lookup zone içinde oluşturmuş olduğumuz bir primary zone içinde PTR record oluşturmak için primary zone üzerinde sağ klik yaparız ve New Pointer (PTR) tıklayarak ilerleriz.

Şekil – 21

Host IP sinin son hanesini ve host name yazarak OK basarız ve PTR kaydının oluşmasını sağlamış bulunmaktayız.

Start Of Authority ( SOA ) Record

Herhangi bir Zone dosyası içinde oluşan ilk kayıttır. Zone için Primary DNS Name Server tipini ve Administrator’a ait e-mail bilgisi tanımlanır. Replication için özel bilgileri tutar. Domain adını host ismine çözümleme işlemini yapar.

Şekil – 22

SOA kaydına sağ klik properties basarak o zone üzerinde yapabileceğimiz bütün ayarlara ulaşmış olabilir ve sonrasında cache süresinden zone değişiklik sayısına kadar birçok bilgide elimizin altında olacaktır.

Service (SRV) Record

Servis adını Host adına ve port numarasına çözümlemek için kullanılır.

Örnegin ; _tcp._ldap.cozumpark.com > mail.cozumpark.com

Nameserver (NS) Record

Tüm Forward ve Reserve Loopup Zone ler içinde bir NS record görünür. Her bir zone için DNS server tanımlamalarında yardımcı olarak, Domain adını host adına çevirmek için kullanılır.

Mail Exchanger (MX) Record

SMTP mail server’larına yardımcı olan bir kayıt tipidir. Host ismine çözümleme yapar.

Şekil – 23

Forward lookup zone üzerinde sağ klik New Mail Exchanger (MX) tıklarız.

Şekil – 24

Fully qualified domain name (FQDN) of mail server altına mail sunucumuzun ismini ister yazar ister sekte  browse tıklayarak mail sunucumuzun host A kaydını gösterebiliriz ve mail sunucusunun kim olduğunu belirtmiş oluruz.

Alias (CNAME) Record

Cname kullanım amacı ise bir IP adresine birden fazla host adı atayarak her iki isimde de sorgulandığında aynı IP adresine çözümleme yapmasını sağlar.

Şekil – 25

Forward lookup zone altında esersolmaz.com zone üzerinde sağ klik New Alias(CNAME) tıklarız.

Şekil – 26

Alias name burada ikinci isim olarak düşünebiliriz ve FQDN de beraberinde kullanılacak record girerek ikisini de aynı IP bağlamış oluruz. Alias name boş geçersek ve fqdn olarak ta www kaydını gösterirsek. Biri http://esersolmaz.com olacakta sorgu gönderse gene http://www.esersolmaz.com adresine ulaşacaktır. Ama bu işlemi yapmazsak ve www yazmadan gelen olursa sunucu cevap vermeyecektir.

TXT Record ( SPF için anlatılmaktadır )

Şekil  – 27

TXT Record oluşturmak istediğimiz zone üzerinde sağ klik yapıp Other New Records ile ilerliyoruz.

Şekil – 28

Listeden Text (TXT) seçip Create Record butonuna basıyoruz.

Şekil – 29

Record name kısmına bir isim verip yada boş geçerek text kısmına önceden oluşturduğumuz metni yazıyoruz.  Ama mantık çok basit olduğu için v=spf1 a mx ipv4:212.172.34.34/32 gibi yazıp geçebiliriz yada başka mail sunucu iplerimizde varsa devamına ipv4:212.172.34.35 yazarak devam edebilirz.

Sender Policy Framework oluşturmak için wizard

http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/default.aspx     

Sender Policy freamework Test etmek için query adresi

http://www.kitterman.com/spf/validate.html

DNS Zone Trasfer

Dns zone transferi hangi amaçla kullanırız diye düşünürsek. Farklı lokasyonlardaki client lara isim çözümleme hizmeti verecek makinelerin birebirleri ile replikasyon yaparak databaselerini eşitlemeleri. Bu sayede x lokasyonunda kurulan bir web sunucusu kendini dns register ettikten sonra replikasyon sayesinde host record u y lokasyonuna taşınır ve y lokasyonundaki bir client sorguyu gönderdiğinde y lokasyonundaki dns sunucusundan cevap alır. Yada şölede düşünebiliriz aynı lokasyonda sürekli olarak up olması gereken bir dns sunucunuz var ise yanına bir dns sunucusu daha koyarak ikinci dns sunucu üzerinde secondary zone oluşturarak replikasyonlarıda ayarlarız ve biri down ola bile diğeri up olacağını düşünerek kullanabiliriz.

DNS Zone Transferi Nasıl Çalışır

Primary DNS Server yetkili olduğu sistemde DNS veri tabanının üzerinde her türlü ayarı yapabilir. Secondary DNS Server ise bu veri tabanının bir kopyasının bulundurur ve sadece okuma hakkına sahiptir. İlk bağlandığında bu verilerin bir kopyasını Secondary Dns Server a geçer. Dns veri tabanını bir başka DNS server’a aktaran server Master DNS Server olarak adlandırılır.Master Dns Server genellikle bir Primary DNS server ‘dır ancak bir Secondary DNS Server başka bir Secondary DNS Server’ın Master DNS Server’ı olabilir. Dns Server lar arasında periyodik olarak verilerin sekronizasyon olması prensibine dayanır.  Bu süre DNS Server üzerinde ayarlanır. İki türlü zone trasferi vardır. Bunlar Full Zone Transfer ve Incremental Zone Trasfer.

Şimdide iki adet dns sunucu üzerinde zone transferini nasıl yapacağımızı inceleyelim.

Şekil – 30

Master DNS sunucumuz üzerinde önceden oluşturduğumuz bir zone üzerinde sağ klik Properties yapıyoruz.

Şekil – 31

Zone Trasnfers tabına tıklıyoruz. 3 çeşit zone transfer methotu vardır. Birincisi herhangibi bir yerden zone transfer e izin vermek için to any server ( Bu size ne kazandırır? Sizdeki bir zone xxx hiç tanımadığımız biri gidip kendi DNS sunucusu üzerinde secondery zone olarak tanımlayabilir. Bence güvenlik açığıdır ) İkincisi  sadece kendi name server ları ile arasında only to servers listed on the name server tab dır . Üçüncüsü ve benim en güvenli bulduğum only to the following server ile sadece sizin belirlediğiniz ip lerden zone transfer için izin vermiş olursunuz.

Şekil – 32

Reverse lookup Zone transferine izin vermek için zone üzerinde sağ klik properties yapıyoruz.

Şekil – 33

Zone transferi yapmasına izin vereceğimiz DNS sunucusunun ip adresini girip OK butonuna basıyoruz.

Şekil – 34

Zone transferi yapacak olan sunucumuzda Reverse lookup zones üzerinde sağ klik new zone diyerek ilerliyoruz.

Şekil – 35

 Next ile ile zone transferine başlamak için ilerliyoruz.

Şekil – 36

Oluşturacağımız Zone tipinin bir secondery zone olduğunu Secondery zone tabını işaretleyerek belirtiyoruz.

Şekil – 37

Network id kısmına Reverse lookup  zone muzun IP bloğunun giriyoruz ve next ile ilerliyoruz.

Şekil – 38

Master DNS Server ip adresini IP address tabına girerek add butonu ile ekliyoruz ve next ile devam ediyoruz..

Şekil – 39

Başarılı bir şekilde Reverse lookup zone için secondery zone tanımlaması yapmış bulunmaktayız.

Şekil – 40

Şekilde de görüldüğü gibi bir süre sonra kayıtlar secondery zone transfer olmuş durumdadır.

Şekil – 41

Forward lookup zone üzerinde sağ klik new zone a tıklayarak yeni bir secondery zone eklemeye başlıyoruz.

Şekil – 42

Secondery zone eklemeye başlamak için next ile devam ediyoruz.

Şekil – 43

Yeni oluşturacağımız zone tipinin secondery zone olacağını secondery zone tabını seçerek belirtiyoruz.

Şekil – 44

Secondery zone ismini belirterek next ile ilerliyoruz.

Şekil – 45

Master DNS server ip adresini IP address tabına girerek add butonu ile ekliyoruz ve next ile devam ediyoruz.

Şekil -46

Secondery zone tanımlamamızı başarılı bir şekilde bitirmiş durumdayız.

Şekil – 47

Master DNS server üzerinde oluşturduğumuz primary zone ları secondery zone lara transferi bir süre sonra gerçekleşmiş durumdadır.

 

Şekil – 48

Bu şekil üzerine konuşmak gerekirse başta yazan serial number o zone içinde yapılan giriş ve değişiklik sayısını tutar her bir değişiklikte eklemede yada çıkarmada o sayı hep artar ve zone transferi bu rakama göre olur 17 rakamını secondary zone ilk oluştuğunda olan deger olarak kabul edersek secondary zone ilk transferde 17 kayıt üzerine alır. Sonrasında ise her 15 dakikada bir değişiklikleri kontrol eder ve gerekli kayıtların transferi gerçekleşir.

Bunlardan da önemlisi zone transferini niçin ve ne gibi durumlarda kullanacağımızı konuşacak olursak.

 

Örnek Senaryo 1: Merkez ve şubelerden oluşan network yapınız vardır ve merkezde dc şubelerde ise adc olduğunu düşünürsek. Merkezde bir master dns server üzerinde oluşturacağımız primary zone lar. Şubelerde ise secondary zone olması şubelerdeki kullanıcıların sorgularını merkeze değil kendi lokasyonundaki dns sunucusuna göndermesi ve cevabı ondan alarak networkumuzda gereksiz yere trafik yaratmış olmayacağız.

Örnek Senaryo 2: Dış dünyaya açılmış dmz bölgesinde duran mail ve web sunucularımız var bunların dns leri ise iç ağımızda bir olan bir dns yapmamız gerekiyor ama biz dmz bölgesine bir secondary zone tutan dns sunucusu koyarak güvenliği arttırmış olabiliriz.

Forwording

Bir DNS sunucusunun kendi üzerinde tutmadığı diğer domainlerin isim çözümlemesi için başka bir DNS sunucusuna sorma işlemine forwarding denir. Ne amaçla kullanıldığına değinecek olursak. Localde kurulan bir DNS Sunucusu kendi içindeki makinlara kendi domain için hizmet verir ama biz bu DNS sunucumuzu birde kullanıcılara real domain isimlerini getirmesini istersek forwarder olarak ADSL modemi yada Telekomun DNS lerini ( 195.175.39.39-195.175.39.40 ) vermemiz yetecektir.

Şekil – 49

DNS sunucumuza sağ klık yaparak properties tıklıyoruz.

Şekil – 50

All other DNS domains seçili iken Selected domain’s forwarder IP address list bölümüne forwarder IP leri sıra sıra ekleyebiliriz.

Conditional Forwarding

Bir DNS sunucusuna bilmediği domainlerden sadece birinin IP sini söleyerek öğretme işlemine ise conditional forwarding denir.

Şekil – 51

Dns sunucusunun özelliklerine gireriz.

Şekil – 52

Forwarders kısmından new  e tıklayarak öğretmek istediğimi DNS sunucusunun domain adını gireriz.

Şekil – 53

Conditional forwarding yaptığımız domain adının IP sinide girdikten sonra işlemimiz tamadır. Bundan sonra DNS olarak bu sunucuyu gösteren clientlar berkant-mutlu.net ile ilgili bir sorgu gönderdiğinde DNS sunucumuz 212.147.58.55 nolu IP deki diğer DNS sunucusuna giderek sorguyu sorar ve aldığı cevabı client verir.

DNS Server Caching

Bir DNS server en son yaptığı isim çözümlemelerini memory’de tutarak, bir sonraki istekte bunu Cache’den çözümleyerek network trafiğini azaltma işleminde büyük katkı sağlar. Bu bilginin cahce’de kalma süresine TTL ( time to live ) adı verilir. Bu süre zarfında bilgi memory de kalır. Eğer DNS host bilgileri çok fazla değişmiyorsa TTL süresini uzun tutmak oldukça faydalıdır.

Görüldüğü gibi DNS konusu gerçekten önemli ve sonu gözükmeyen Microsoft servislerindendir. Ben bu makalemde DNS konusuna olduğunda hakim olmanız için gerekli olan temel her konuya değinmeye çalıştım. Umarım yararlı olmuştur.

Eser SOLMAZ
 

Bir sonraki makalemde görüşmek üzere.

Hoşça kalın

Exit mobile version