İletişim

DNS (Alan Adı Sistemi) Nedir?

Kısa tanım

DNS (Domain Name System), example.com gibi insanların hatırlayabildiği alan adlarını bilgisayarların kullandığı IP adreslerine ve diğer kayıtlara çeviren, dünya geneline dağıtılmış hiyerarşik bir veritabanıdır. Bir tarayıcı siteye bağlanmadan, bir e-posta sunucusu ileti teslim etmeden önce DNS'e sorar; yanıtlar TTL süresince önbellekte tutulur. Web sitesinin, e-postanın ve alan adı doğrulamalarının çalışması doğru DNS kayıtlarına bağlıdır.

Diğer adları: Domain Name System, alan adı sistemi, DNS sunucusu, isim sunucusu

Tarayıcının sorduğu alan adını özyinelemeli çözümleyicinin kök, TLD ve yetkili sunuculara sorarak IP adresine çevirdiği DNS dizisi

Bir alan adı IP adresine nasıl dönüşür?

Tarayıcıya www.example.com yazdığınızda cihazınız adresi kendisi bulmaz; işletim sistemindeki küçük bir istemci (stub resolver) soruyu genellikle internet sağlayıcınızın veya 1.1.1.1, 8.8.8.8 gibi bir genel servisin recursive resolver'ına iletir. Cevap önbellekte yoksa resolver zinciri baştan yürür:

  1. Kök sunucular, .com için hangi sunuculara sorulacağını söyler.
  2. TLD sunucuları (.com, .com.tr vb.), example.com alanından sorumlu isim sunucularını (NS kayıtları) bildirir.
  3. Yetkili (authoritative) isim sunucusu, yani alan adınızın kayıtlarını tuttuğunuz DNS sağlayıcısı, asıl cevabı verir: örneğin www.example.com için bir IP adresi.

Resolver bu cevabı önbelleğe alır ve istemciye döner. Aynı soruyu soran bir sonraki kullanıcı zincirin tamamını beklemez. Bu katmanlı önbellekleme, DNS'in milyarlarca sorguyu kaldırabilmesinin ana sebebidir; aynı zamanda değişikliklerin neden anında her yere yansımadığını da açıklar.

TTL ve “yayılma” efsanesi

Her kaydın saniye cinsinden bir TTL (time to live) değeri vardır. 3600 TTL, resolver'ların o cevabı bir saat boyunca yeniden sormadan kullanabileceği anlamına gelir. Kayıt değiştirildiğinde “DNS'in yayılmasını beklemek” denilen şey aslında eski cevapların önbelleklerde süresinin dolmasını beklemektir; değişiklik bir yerden bir yere yayılmaz.

Bunun pratik sonucu şudur: sunucu taşımak gibi planlı bir değişiklikten bir gün kadar önce ilgili kaydın TTL'sini 300 saniye gibi düşük bir değere indirirseniz, geçiş anında eski adreste takılı kalan kullanıcı sayısı azalır. İş bitince TTL tekrar yükseltilebilir. Düşük TTL kalıcı bırakılırsa daha fazla sorgu yapılır ve ilk bağlantıya küçük bir gecikme eklenebilir.

Temel kayıt türleri

KayıtNe işe yarar?
A / AAAABir adı IPv4 / IPv6 adresine bağlar.
CNAMEBir adı başka bir adın takma adı yapar.
MXAlan adına gelen e-postayı hangi sunucuların kabul edeceğini belirtir.
TXTSerbest metin; doğrulama kodları ve SPF, DKIM, DMARC politikaları burada durur.
NSAlanın hangi isim sunucularında yönetildiğini gösterir.
CAAHangi sertifika otoritelerinin bu alan için sertifika verebileceğini sınırlar.

Bir alt alan adı açmak da çoğu zaman yeni bir A veya CNAME kaydı eklemekten ibarettir; ayrı bir hizmet satın almak gerekmez.

Güvenlik açısından neden önemli?

DNS kayıtlarını değiştirebilen kişi sitenizin ve e-postanızın nereye gideceğine karar verir. Bu yüzden kayıt firması (registrar) ve DNS sağlayıcısı hesapları, en az e-posta hesabınız kadar korunmalıdır: güçlü parola, çok faktörlü doğrulama, alan adı transfer kilidi. Kullanılmayan bir servise işaret eden kayıtlar da temizlenmelidir; aksi halde başkası o servisi sizin adınıza devralabilir. DNSSEC, yetkili sunucudan gelen cevapların yolda değiştirilmediğini imzalarla doğrulamayı sağlar; DNS over HTTPS (DoH) ve DNS over TLS (DoT) ise istemci ile resolver arasındaki sorguları şifreler. Bu ikisi farklı sorunları çözer ve birbirinin yerine geçmez.

dig ile kontrol etmek

Bir kaydın ne döndüğünü görmenin en hızlı yolu dig komutudur:

$ dig example.com A +short
203.0.113.10

$ dig example.com MX +short
10 mx1.example.com.
20 mx2.example.com.

$ dig @ns1.dns-saglayici.net www.example.com A

Son satırdaki gibi doğrudan yetkili sunucuya sormak önbelleği atlar ve kaydın gerçekte ne olduğunu gösterir. Yetkili sunucu yeni değeri döndürüyor ama kullanıcılar eskisini görüyorsa sorun kayıtta değil, TTL'dedir.

İlgili terimler

← Sözlüğe dön