# DNS (Domain Name Service)

İnternette bulunmamızı sağlayan ip adreslerimiz için daha fazla anlam ifadede eden karşılıklarıdır.

Çünkü sayıları akılda tutmaktansa isimleri akılda tutmak daha kolaydır. DNS internetin telefon rehberi olarak düşünebiliriz.

Günümüzde insanların numarasını ezberlemek yerine rehberimize kayıt ettiğimiz gibi DNS sunucumuzuda internete bağlanan her türlü cihazımızın ip adresini kayıt ediyoruz.

DNS nasıl çalışır, dns sistemi isim sunucuları ve çözümleyicilerden 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 var ise bu isme karşılık gelen IP adresini istemciye gönderir.\
DNS veritabanına kayıtların manuel girilmesi gerekir.

İnternet adresleri önce ülkelere göre ayrılır. Adreslerin sonlarındaki tr, de,uk gibi ifadeler bizim bulunduğu ülkeyi gösterir.

ABD ülkesi için bir ülke takısı kullanılmaz çünkü DNS ve benzeri uygulamaları ortaya çıkaran ülkedir.

Adlandırılma yapısı küçük yönetilebilir bölgelere ayrılmıştır.

Her DNS sunucusu belirli bir veritabanı dosyasını korur ve yalnızca bu yapının isim-ip eşleşmelerini yönetmekten sorumludur.

<div align="left"><img src="https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FB8uDs3zNB2h8HLLsLzuG%2Fimage.png?alt=media&#x26;token=749813f5-e6e4-4554-9a6d-876cdfccce6c" alt=""></div>

Bir DNS sunucusu bölgesinde olmayan bir isim çevirisi için bir istek aldığında bu isteği çeviri için uygun bölgedeki başka bir DNS sunucusuna iletir.

Farklı üst düzey domainler kuruluş türünü veya menşei ülkeyi temsil eder. İnternet adresleri ülkelere ayırdıktan sonra com,edu, net gibi alt dallara ayrılır. Bunlar ise üst düzey (top level) domainlere karşılık gelir.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FXNtKF04ZyWpXnTEPGzJD%2Fimage.png?alt=media\&token=71725b05-7d08-4fc3-b36f-3aca318c3f43)

**Edu** eğitim kurumları

**Com** ticari kurumları\
**Org**   Ticari olmayan ,hükümetede 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.

**Arpa**  Ters Dns sorgulaması yapabileceğimiz yerleri gösterir.

### **DNS Kayıt Türleri**

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FMVXuxgfIrIOs1dbSdHSc%2Fimage.png?alt=media\&token=86cfe96d-6230-48a3-be77-d547f0b73406)

**MX (Mail Exchange) :** MX kayıtları alan adımıza gelen eposta iletilerinin hangi sunucuya yönlendirileceği bilgisini içerir. Sunucu alanında belirteceğimiz örnek veriler mail.alanadiniz.com ya da aspmx.L.google.com gibi eposta sunucularının adresleridir. Priority olarak adlandırılan değer iletilerinin hangi öncelik sırasında belirtilen sunuculara yönlendirileceğini belirleyen değerdir.



![MX Records](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FWbrdyxn4BW8yYb8yyQ2R%2Fimage.png?alt=media\&token=261ea66f-4392-4d0c-ae29-ba51a1548932)

Alan adınız için birden fazla MX kayıtı tanımlayabiliriz. Bu durumda iletilerimiz öncelikli olarak en düşük priority değerine sahip sunucuya bu sunucudan cevap alınmazsa sıralamadaki diğer sunuculara yönlendirilir.

Host Kayıtları: Adres kayıtı host adını bir ip adrese yönlendirir.  Örneğin mycomputer.yourdomain.com adresini direkt olarak bizim ana bilgisayara yönlendirilmesini istiyorsanız şunun gibi bir kayıt girmemiz gerekir.\


![A (Host Kayıtları)](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2F0xQzounowosDCL62te1Y%2Fimage.png?alt=media\&token=ae824f0e-49a1-4038-8e31-9cd108ddaf8f)

Alan adınıza bağlı bir alt alan adını hangi ip adrese yönlendirileceği bilgisini içerir.

Örnek olarak  alan adınıza bağlı [www.alalanadi](http://www.altalanadi) ‘ni websitemizin barındırıldığı sunucu ip adresine yönlendirilmesinde kullanılır.\
**CNAME Kayıtları:** Bir bilgisayarın bir ya da daha fazla host tarafından bilinmesini sağlar. Öncelikli olarak bir ağ kayıtı mutlaka olmalıdırki bu resmi bir isim olmalıdır.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FGexTcvbu38dYj2gN7CeP%2Fimage.png?alt=media\&token=7466d5df-1197-40b8-a685-cca0ee4b4e6c)

Bu CNAME kullanılarak diğer host adlarını bir resmi adrese yönlendirebilirsiniz şekildeki domain adları örnek verilebilir.

**TXT Kayıtları** Bu tip kayıtlar özel amaçlı kayıtlardır. Genellikle Spam e posta gönderilerini engellemek için düşünülmüş kurallardan birisi olan SFP kayıtlarını tanımlamak için kullanılır.

**PTR (Pointer Record )** Sadece Reverse Lookup zone’da kullanılabilir.IP adresinden isim eşleme yapan kayıttır.

Yani 192.168.1.1 ip adresine sahip makinenin ismi nedir sorusuna DNS sunucusu PTR kayıtlarına bakarak cevap verir. Pointer Kayıtı aramaları tersine çevirmek için kullanılır.

Örneğin 192.168.0.1 ‘i [www.domainismi.com](http://www.domainismi.com) ile eşleştirmek istiyorsanız kayıdımız şekildeki gibi gözükür.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2Ft6CBENNjyJOs27GIJDY0%2Fimage.png?alt=media\&token=6f269072-c375-45eb-a402-bd367d23d8b0)

Ters Dns kayıtları (PTR) kayıtları ayrı bir zone olarak tanımlanır. Yani bir DNS zone tanımladığımızda sorumluluğumuz sadece alan adınndan ip adresi çözmektir. Eğer Ip adresindedn de alan adınızın çözülmeisni istiyorsanız ayrı bir zone tanımlayıp PTR kayıtlarını oluşturmalısınız. Bu Zone’ların ayrı oluşturulmasının sebebi sorgulamayı mümkün kılmaktrı.

&#x20;

İlk sorgu kök sunuculara yapılır. Ve önce .com’un adresi sorulur bu şekilde iteratif sorgularla istediğimiz sonucu elde ederiz.

Bir ip adresi sorguladığımızda kök sunucular bizi nereye yönlendirecek. 8.8.8.8 ip adresini sorguladığımız düşünelim. Kök sunucularımızın bizi 8’e yönlendirmesi gerekir.Eğer 8’in ters kayıtı google.com’un altında olsaydı bu kayıtı bulabilmek için tüm alan adlarını sorgulamamız gerekecekti. Bu sebeple PTR kayıtları ayrı bir zone olarak tanımlanır.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FfwTQd8OJB3ZgQGtJv17M%2Fimage.png?alt=media\&token=3b3c3461-1e15-4191-8d24-4d0a048e2e5f)

PTR kayıtı için klasik bir zone tanımı şekildeki gibi yapılır. in-addr.arpa  olarak yapılması tüm ip bloklarının burada kayıtta olmasıdır. Biz bir ip bloğu satın aldığımızda alan adımız buraya kayıt ediliir. Bunlarda sorgulamayı kolaylaştırması adına bloklar halinde  ve tersten yapılır.

216.74.109.0 ip adresli 24 subnet maskeli bloğun Zone kayıtı bulunmaktadır.

&#x20;

Zone dosyasının içeriği diğerlerine oldukça benzerdir. Değişen tek kısım kayıt türü PTRdır

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FXeZVQYDNEJ70gBmcxezb%2Fimage.png?alt=media\&token=af5d61cd-dd5b-4f8d-b10b-d22c98c98c86)

Bu şekilde 216.74.109.81 ip adresinin my.reverse.dns.domain.com alan adına ait olduğunu öğrenmiş oluyoruz.

&#x20;

Mail sunucumuzu kendimiz host ediyorsanız PTR kayıtları yapmanız çok önemlidir.Çünkü PTR kayıtı bulunmayan mail sunucuları şüpheli kabul edilir ve mailleriniz çoğunlukla spam olarak kabul edilir.Yani işlevsel olarak bir zorunluluk bulunmasa da pratikte PTR kayıtlarını yapmazsanız büyük sorunlar yaşarsınız.

&#x20;

NS (NameServer)  Ağ üzerinde bulunan ve kullanımda olan DNS sunucuları tanımlar yani bir DNS sunucusu ağdaki diğer DNS sunucusundan bu kayıt sayesinde daha kolay ve hızlı bir şekilde haberdar olunabiliyor denilebilir.

![NS (Name Server)](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FhSj9a01lfjW1jkVXtCLG%2Fimage.png?alt=media\&token=3cd786f4-aaf9-4b72-b08e-f6d935663ac7)

Ns kayıtları alan adları için geçerli sunucu isimlerini belirlemeyi sağlar. NS kayıtları sitenizin çalışmaya son vermesine neden olabilir. Genelde NS kayıtlarını değiştirmeye gerek yoktur.

**SOA (Start of Authority)** Tüm zone’lardaki ilk kayıttır. Bir DNS sunucusunun o zonedan sorumlu olduğunu belirleyen kayıttır.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FejwgrbGJIJm8lfc61jZM%2Fimage.png?alt=media\&token=2863d3b7-21ca-44ad-950a-eb2a9f468a7c)

Yani belirli bir zone için öncelikli DNS sunucusunun parametrelerini tanımlamak için kullanılır.

Zone versiyonu, zone yönetimi ,zone’da bulunan veri ve alan sunucu bilgileri SOA kayıtlarında tutulur.

**AAAA(Address Record)** Alan adlarını ,ip adresler ile eşler ama ipv6 ile kullanılmak üzere tasarlanmış bir kayıttır.

### **NSLOOKUP**

Bu komut bir hosta karşılık gelen ip adresi ,ip adresine karşılık gelen domain ya da Dns kayıtı ile ilgili diğer detayları görüntüleyebilmek için DNS sorgusu yapan bir araçtır.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FrmNgckh9PkfcGpr0pH4J%2Fimage.png?alt=media\&token=86d2e6c9-2d1c-4f1a-9b2f-3e92c35608b2)

Sunucuya yetki olmadıkları bir alan adı ile ilgili bir soru gelirse kullanabileceği 2 yöntem vardir.

Birinci seçenek gelen sorguyu yönlendirmektir.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2F8q81L3TXggmxVmz97uxh%2Fimage.png?alt=media\&token=9af6c985-c661-46d9-a058-5bea0a73faee)

İletici yani Forwarder olarak tanımladığımız adreslere bu sorguyu ileterek. Ondan gelecek cevabı istemciye verebilir.\
İletici olarak tanımladığımız sunucularda genellikle Open DNS lerdir.

2\. seçenek ise Recursive bir sorgu başlatarak sorgu protokolünü takip etmektir. Yani önce kök sunucu ile iletişim kurarak iteratif sorgular alan adını öğrenip, istemciye cevap verebilir. Her 2 yöntemin sonucunda da yerelimizde bulundurduğumuz DNS sunucusu  bu adresi öğrenip ön bellekte (cache) de TTL değeri kadar saklar. Bundan sonra aynı alan adı için yapılan sorgularda ön bellekten cevap verdiği için her daha hızlı bir dönüş yapılmış olur hem de DNS trafiği azaltılmış olur. TTL değeri her alan adının yetkilisi tarafından belirlenen bir süredir. TTL değeri bize bu alan adı altındaki adreslerinin belirtilen süre boyunca değiştirilmeyeceğini bildiren bir süredir.

Örnek olarak google.com  un TTL süresi 1 gün olarak belirlenmiş olsun bu sayede bir istemci [www.google.com](http://www.google.com) alan adı için bir sorgu yaptıktan sonra bir gün boyunca bir daha sorgu yapma ihtiyacı duymaz bu sayede sorgu trafiğini azaltmış oluruz.

&#x20;

Genel olarak sorgu sayısını azaltmak için yüksek bir TTL değeri belirlenir.Bir değişiklik yapılması planlandığında bu TTL değer düşürülür ve önceki değer kadar beklendikten sonra değişiklik yapılır. Sonrasında tekrar eski TTL değeri uygulanır. Bu sayede ön bellekte tutulan DNS kayıtlarından ötürü ulaşılmazlık durumunun engellenmesi amaçlanır.

![](https://2292156749-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDfDBccroFkvJ25uVFqYX%2Fuploads%2FXaMFtIjv8c2eBrNAtHua%2Fimage.png?alt=media\&token=ee9684ca-0a54-43b7-915d-59203687355c)
