DNS, adları sağdan sola doğru dallanan bir hiyerarşi içinde düzenler. www.magaza.ornek.com. örneğindeki www, magaza, ornek ve com ayrı etiketlerdir; sondaki noktayla gösterilen sıfır uzunluklu etiket ise DNS köküdür. Bu örnekteki noktalar etiketleri ayırır; etiket verisine katılmaz. Genel DNS etiketinde nokta değeri de bulunabilir, ancak metinde bu nokta ters eğik çizgili bir kaçış gösterimiyle yazılarak ayırıcıdan ayrılır. Kök etiketine kadar tamamlanan ad, tam nitelikli alan adı (FQDN) olarak anılır.

Bir adın alt alan olması, ayrı satın alındığı, ayrı bir DNS bölgesi olduğu veya otomatik olarak bir web sitesi çalıştırdığı anlamına gelmez. Etiket, alan adı, alt alan, tam nitelikli alan adı, zone apex (bölge tepe adı) ve alt alanın DNS yönetimini ayıran delegasyon, aynı ağacın farklı özelliklerini anlatır.

DNS Hiyerarşisini Bir Örnekte Okuma

www.magaza.ornek.com. adı hiyerarşik olarak kökten başlanarak üst düzey alan adı (TLD) olan com, ardından ornek, magaza ve www yönünde ilerler. Yazıda en özel etiket solda, köke en yakın etiket sağda görünür. magaza.ornek.com, ornek.com alanının; www.magaza.ornek.com ise hem magaza.ornek.com hem de ornek.com alanının alt alanıdır.

Alt alan ilişkisi tam etiket sınırlarına göre değerlendirilir. api.ornek.com, ornek.com altında bulunur; buna karşılık yeniornek.com, metni aynı harflerle bitirse bile ornek.com altında değildir. DNS karşılaştırmasında temel Latin karakterlerini kodlayan ASCII kümesindeki harflerin büyük veya küçük yazılması anlamı değiştirmez; WWW.Ornek.COM ile www.ornek.com aynı DNS adını belirtir.

Etiket, Alan Adı, Alt Alan ve FQDN

KavramTeknik AnlamıÖrnekSık Karıştırıldığı Konu
EtiketAlan adını oluşturan tek bileşenmagazaEtiket ayırıcısı olan nokta etiket verisine katılmaz
Alan adıSıralı etiketlerden oluşan admagaza.ornek.comHer alan adı kayıtlı alan değildir
Alt alanBaşka bir alanın hiyerarşik olarak altında kalan alanmagaza.ornek.comAyrı DNS bölgesi olmak zorunda değildir
FQDNKöke kadar tamamlanmış alan adımagaza.ornek.com.Yaygın gösterimde son nokta atlanabilir
DNS bölgesiBir yetkili yönetim sınırı içindeki DNS verisiornek.com bölgesiAlan ile bölge aynı kapsamda olmayabilir
Bölge tepe adıYetki başlangıcı ve yetkili ad sunucusu kayıt kümelerinin sahibi olan üst düğümornek.comDNS kökü veya kök sunucusu değildir
DelegasyonAlt alanın DNS yönetiminin NS kayıtlarıyla ayrı bir bölgeye yönlendirilmesisube.ornek.comYalnız adres veya takma ad kaydı eklemek delegasyon değildir

FQDN, bağlam eklenmesine ihtiyaç duymadan köke kadar tamamlanmış addır. Standart sunum biçiminde kök etiketi sondaki noktayla gösterilir. Günlük ekranlarda bu nokta çoğunlukla gizlendiği için magaza.ornek.com da bağlama göre FQDN kabul edilebilir; teknik bir bölge dosyasında ise noktanın varlığı mutlak ve göreli ad ayrımını değiştirebilir.

Etiket ve Tam Ad Uzunluğu Nasıl Hesaplanır?

Bir DNS etiketi en fazla 63 oktet, yani 63 adet sekiz bitlik veri birimi olabilir. DNS mesajındaki sıkıştırılmamış tam ad en fazla 255 oktettir; bu hesaba her etiketin uzunluk baytı, etiket verisi ve kökü gösteren sondaki 0 değerli bayt da dahildir. Bu sınır yalnız ekranda görülen harfleri sayarak denetlenmez.

Geleneksel ASCII etiketlerinden oluşan bir adın kaçış dizisi içermeyen noktalı gösterimi, sondaki kök noktası olmadan en fazla 253; kök noktasıyla en fazla 254 karakter olabilir. Bu değer, evrensel bir kullanıcı arayüzü limiti değildir. Yazılım, kayıt kuruluşu, sertifika sistemi veya başka bir protokol daha kısa sınır uygulayabilir.

DNS mesajı sıkıştırması, tekrarlanan ad sonlarını işaretçiyle kısaltabilir; fakat sıkıştırma, adın açılmış hali için geçerli etiket ve toplam ad sınırlarını kaldırmaz. Doğrulama yapan yazılım her etiketi ve sıkıştırılmış adın güvenli biçimde açılmış toplamını ayrıca kontrol etmelidir.

Genel DNS Etiketi ile Sunucu Adı Kuralları

DNS protokolündeki genel etiket alanı ile bir hostname için kullanılan tercih edilen yazım kuralları aynı değildir. Geleneksel sunucu adı etiketlerinde ASCII harfler, rakamlar ve kısa çizgi kullanılır; etiket kısa çizgiyle başlamaz veya bitmez. Güncel sunucu adı kuralı etiketin rakamla başlamasına izin verir. Kayıt kuruluşları ve uygulamalar bunun üzerine ek kısıtlar koyabilir.

Alt çizgi, genel DNS ad alanında bütünüyle yasak değildir. _sip._tcp.ornek.com gibi hizmet keşfi adlarında alt çizgili etiketler, kaydın bir sunucu adı olmadığını ayırt etmeye yardımcı olur. Buna karşılık tarayıcıya verilecek olağan web sunucusu etiketinde alt çizgiye güvenmek uyumluluk, sertifika ve adres ayrıştırma sorunlarına yol açabilir.

Bir etiketin DNS tarafından saklanabilmesi, onun alan adı olarak kaydedilebileceği, bir URL’de kullanılabileceği veya TLS sertifikasına yazılabileceği anlamına gelmez. DNS kaydını oluşturmadan önce kullanacağınız uygulamanın ve sertifika hizmetinin ad kurallarını da kontrol edin.

Uluslararasılaştırılmış Alan Adları

ASCII dışı karakterler içeren adlarda uygulamalar için uluslararasılaştırılmış alan adları (IDNA) kuralları devreye girer. Kullanıcıya gösterilen ve dünya yazı sistemlerini ortak biçimde kodlayan doğrulanmış Unicode biçimi U-label, DNS sorgusunda taşınan ve xn-- ile başlayan ASCII uyumlu biçim ise A-label olarak adlandırılır. Dönüşümde Unicode etiketini ASCII uyumlu biçime çeviren Punycode kodlaması kullanılır.

63 oktet sınırı DNS'e yazılan A-label üzerinde uygulanır. U-label ekranda daha az veya daha çok karakter gösterebilir; görünen karakter sayısı tek başına geçerlilik ölçüsü değildir. IDNA doğrulaması Unicode normalleştirmesini, izin verilen karakterleri, sağdan sola yazım kurallarını ve A-label ile U-label arasında geri dönüş tutarlılığını da kapsar.

Benzer görünen farklı alfabe karakterleri kimlik avı riski doğurabilir. Kayıt politikası, tarayıcı gösterimi ve uygulamanın IDNA işleme yöntemi DNS protokolünün temel uzunluk sınırlarından ayrı güvenlik katmanlarıdır. Bir kullanıcı girdisini yalnız xn-- önekine bakarak güvenilir veya geçerli saymayın.

FQDN, Göreli Ad, Son Nokta ve Bölge Kökeni

Yazılım, göreli bir adı tamamlamak için eksik bırakılan sağ etiketleri belirli bir bağlamdan alır. Bir bölge dosyasında köken ornek.com. ise www kayıt adı www.ornek.com. olarak yorumlanır. Mutlak olması gereken hedef.ornek.net adının son noktası unutulursa bazı yazılımlar kökeni yeniden ekleyip hedef.ornek.net.ornek.com. sonucunu üretebilir.

$ORIGIN, bölge dosyasında göreli adları tamamlamak için kullanılacak kökeni belirler. @ ise birçok bölge dosyası ve panelde geçerli bölge kökeninin kısa gösterimidir; DNS ağacında gerçek bir @ etiketi oluşturmaz. Her panel aynı giriş davranışını kullanmadığı için kaydetmeden önce üretilecek tam adı önizleyin.

İşletim sistemlerindeki arama son ekleri de kısa adları tamamlayabilir. Bu davranış, kullanıcının yazdığı kısa ad için birden fazla DNS sorgusu üretebilir ve özel ağ adıyla genel DNS adı arasında beklenmedik eşleşmelere neden olabilir. Güvenlik açısından kritik yapılandırmalarda açık FQDN kullanmak belirsizliği azaltır.

Alan, DNS Bölgesi, Tepe Adı ve Delegasyon

Alan, DNS ağacındaki bir düğüm ve onun altındaki adlarla ilgili hiyerarşik kavramdır. DNS bölgesi, en üstteki adından başlayıp başka bölgelere devredilen alt alanlara kadar uzanan adlar için yetkili veriyi tutar. ornek.com bölgesi, delege edilmemiş www.ornek.com ve api.ornek.com kayıtlarını aynı yönetimde tutabilir; bu adların her biri ayrı bölge olmaz.

Bölge tepe adında bir SOA (Start of Authority) kaydı ve bölgenin yetkili sunucularını bildiren NS kayıt kümesi bulunur. Tepe adını DNS köküyle karıştırmayın: DNS kökü sıfır uzunluklu etiketteki küresel tepedir, bölge tepe adı ise yalnız ilgili bölgenin üst düğümüdür.

Bir alt alanın ayrı ekip veya DNS sağlayıcısı tarafından yönetilmesi için önce çocuk bölgeyi hizmet verecek yetkili sunucularda hazırlayın; ardından ebeveyn bölgede çocuk bölgenin tepe adına NS kayıtlarını ekleyin. Bu noktada iki bölgeyi ayıran zone cut (bölge kesimi) oluşur. Ebeveyne NS kaydı eklemek, çocuk bölgeyi hedef sunucuda kendiliğinden oluşturmaz. Ebeveyn ve çocuk NS kümeleri aynı yetkili sunucuları göstermeli; bu sunucular çocuk bölgenin SOA ve diğer kayıtlarına yetkili yanıt vermelidir.

Alt Alan Delegasyonunda NS ve Adres Kaydı İlişkisi

Recursive resolver (özyinelemeli DNS çözümleyicisi), ebeveyn yetkili sunucudan aldığı delegasyon yanıtıyla çocuk bölgenin NS adlarına yönelir. Yetkili sunucunun adı delege edilen alanın içindeyse, örneğin ns1.sube.ornek.com sunucusu sube.ornek.com için yetkiliyse, sunucu adresini bulmak için aynı çocuk bölgeye ulaşma gereği doğar.

Ebeveyn bölge, bu döngüyü kırmak için yetkili sunucuların IP adreslerini delegasyon yanıtına ekler. IPv4 adresini taşıyan A veya IPv6 adresini taşıyan AAAA verisi, bu bağlamda glue kaydı olarak adlandırılır. Çocuk alan içindeki NS adları için mevcut glue kaydı isteğe bağlı ek bilgi sayılmaz; eksiksiz yönlendirme yanıtında gönderilmelidir. Yanıt bütün mevcut glue kayıtlarını taşıyamıyorsa yetkili sunucu TC (Truncation) bayrağını ayarlayarak yanıtın eksik olduğunu bildirir. Recursive resolver, tam yanıtı alabileceği başka bir taşıma yöntemine geçer; örneğin UDP yanıtı kesilmişse TCP ile yeniden sorabilir.

NS adı çocuk alanın dışında olduğunda recursive resolver o adı başka bir hiyerarşiden çözebilir; bu durumda glue kaydı her zaman zorunlu değildir. Glue kaydı, çocuk bölgedeki yetkili A veya AAAA kaydının kalıcı yerine de geçmez. Ebeveyn glue kaydı, çocuk yetkili verisi ve gerçek sunucu adresleri birlikte güncel tutulmalıdır.

Kayıtlı Alan Sınırı Etiket Sayısından Anlaşılır mı?

“İkinci düzey alan” yalnız kökten uzaklığı anlatır; alanın hangi bölümünün kullanıcı tarafından kaydedilebilir olduğunu garanti etmez. Bazı kayıt yapıları tek, bazıları birden fazla sabit etiketin altında kayıt kabul eder. Bu nedenle kayıtlı alanı yalnız noktaları sayarak bulmak çerez, güvenlik sınırı ve kullanıcı hesabı eşleştirmesinde hata doğurur.

Tarayıcı ve uygulamalar, üçüncü tarafların altında ad kaydedebildiği veya ayrı siteler işlettiği son ekleri tanımak için Public Suffix List (PSL) verisini kullanabilir. Listedeki bu son ekler public suffix olarak adlandırılır. Çerez kapsamını veya siteler arasındaki ayrımı hesaplarken güncel listeyi kullanın; “TLD artı bir etiket” varsayımına güvenmeyin. PSL, bir alan adının satın alınabilir olduğunu veya DNS’te çalıştığını kanıtlamaz; gerçek kayıt koşullarını ilgili kayıt kuruluşu belirler.

Kendi Kaydı Olmayan Ara Düğümler ve Joker Kayıtlar

Bir düğümün kendi kaynak kaydı bulunmasa da altında kayıtlı daha uzun adlar olabilir. Örneğin _sip._tcp.ornek.com kaydı varken _tcp.ornek.com düğümünde hiç kayıt bulunmayabilir. Bu yapı empty non-terminal (kendi kaydı olmayan ara düğüm) olarak adlandırılır; düğüm DNS ağacında vardır ve var olmayan alan yanıtıyla aynı değildir.

Joker kayıt da bütün alt alanları önceden oluşturmaz. Sol etiketinde yıldız bulunan kayıt, sorgulanan adın durumuna ve en yakın mevcut üst düğüme göre yanıt sentezlenmesine izin verir. Daha özel bir adın veya ara düğümün varlığı joker eşleşmesini değiştirebilir. Bu nedenle *.ornek.com kaydını “her derinlikte ve her koşulda çalışır” biçiminde yorumlamayın.

DNS Hiyerarşisinden Kaynaklanan Yapılandırma Hataları

  1. Yanlış tam ad: Panelin köken ekleme davranışı bilinmeden FQDN girilmesi, alanın iki kez eklenmesine neden olabilir.
  2. Yanlış yönetim katmanı: Delege edilmiş çocuk kaydını ebeveynde değiştirmek, çocuk yetkili sunucunun cevabını değiştirmez.
  3. NS uyuşmazlığı: Ebeveyn delegasyonu ile çocuk tepe adındaki NS kayıtlarının farklı olması, recursive resolver hizmetlerini farklı sunuculara yöneltebilir.
  4. Eksik veya eski glue kaydı: Çocuk alan içindeki NS adresine ulaşılamaması çözümlemeyi tamamen kesebilir; eski adres ise aralıklı hata doğurabilir.
  5. Etiket ve sunucu adı kuralını karıştırma: Genel DNS'te saklanabilen bir etiket, URL veya TLS sertifikası için uygun olmayabilir.
  6. IDNA biçimini yanlış sayma: Görünen Unicode karakterleri saymak, A-label üzerindeki oktet sınırını doğrulamaz.
  7. Bölge tepesinde takma ad kaydı kullanma: Bir adı başka bir adın takma adı yapan CNAME kaydı, tepe adındaki SOA ve NS verileriyle birlikte bulunamaz. DNS sağlayıcısına özgü alias veya CNAME flattening gibi hedef adı çözerek adres yanıtı üreten işlevler, tepe adına gerçek CNAME kaydı eklemekle aynı değildir.
  8. DNS kaydını hizmet sanma: A veya AAAA kaydı eklemek web sunucusunu, alan adının ilgili siteyle eşleşmesini, TLS sertifikasını, CDN rotasını veya e-posta yapılandırmasını kendiliğinden hazırlamaz.

Bir Adın Hiyerarşisi ve Yetkili Bölgesi Nasıl Denetlenir?

Önce sorgulanan adı etiketlerine ayırın ve mutlak mı göreli mi kullanıldığını belirleyin. Ardından kökten başlayarak delegasyon zincirini, ebeveyn NS kayıtlarını, çocuk tepe adındaki SOA ve NS verisini, gerekiyorsa glue kayıtlarını ve gerçek yetkili sunucudan alınan cevabı karşılaştırın.

DNSSEC kullanılıyorsa ebeveyndeki DS (Delegation Signer) kaydının çocuk bölgedeki DNSKEY açık anahtar kaydıyla eşleştiğini ve imzaların güven zinciri boyunca doğrulandığını kontrol edin. Önbelleğe alınmış eski yanıtı yetkili veri sanmamak için recursive resolver cevabıyla yetkili sunucu cevabını ayırın. TTL, kaydın normalde önbellekte ne kadar tutulabileceğini belirtir; eski yanıtın kalan süresi, yeni kaydın TTL değerinden farklı olabilir.

DNS sorgu programı dig kuruluysa dig +trace www.magaza.ornek.com. biçimindeki komutta örnek adı kendi sorgulayacağınız adla değiştirerek kökten başlayan yönlendirmeleri görebilirsiniz. Bu çıktı, hangi yetkili sunuculara ulaşıldığını gösterir; tek başına DNSSEC imzalarının doğrulandığı veya web hizmetinin çalıştığı anlamına gelmez.