Bloga dönRehberler

DNS Kayıt Türleri Nelerdir? A, CNAME, MX, TXT ve Diğerleri

DNS kayıt türleri nelerdir, her biri ne işe yarar? A, AAAA, CNAME, MX, TXT, NS, SOA, PTR, SRV ve CAA kayıtları, sık yapılan hatalar ve dig örnekleri.

Yayınlanma: · 6 dk okuma

Bir DNS zone'u, kaynak kayıtlarından oluşan bir listedir. Her kayıt aynı beş parçadan oluşur:

www.example.com.   3600   IN   A   192.0.2.10
└── ad             └ TTL  └sınıf └tür └ veri

Ad sorgulanan şeydir. TTL, çözümleyicinin yanıtı kaç saniye önbellekte tutabileceğini söyler (DNS TTL nedir yazısında ayrıntısı var). Sınıf pratikte hep IN'dir. Tür ise verinin nasıl yorumlanacağını belirler. Bu rehberde gerçekten karşınıza çıkacak DNS kayıt türlerini, kesintiye yol açan kurallarıyla birlikte anlatıyoruz.

DNS kayıt türleri: hızlı başvuru tablosu

Tür Ne işe yarar Örnek veri
A IPv4 adresi 192.0.2.10
AAAA IPv6 adresi 2001:db8::10
CNAME başka bir ada takma ad shop.hosting.example.
MX alan adının posta sunucuları 10 mx1.mail.example.
TXT serbest metin: SPF, DKIM, DMARC, doğrulamalar "v=spf1 -all"
NS zone'dan sorumlu nameserver'lar ns1.dns.example.
SOA zone üst bilgisi, her zone'da bir tane seri no, zamanlayıcılar
PTR ters sorgu: adresten ada mail.example.com.
SRV bir hizmetin sunucusu ve portu 10 5 5060 sip.example.com.
CAA hangi CA sertifika verebilir 0 issue "ca.example"
DS, DNSKEY, RRSIG DNSSEC anahtarlar ve imzalar
HTTPS, SVCB HTTPS için hizmet parametreleri 1 . alpn="h2,h3"

A ve AAAA kaydı: adresler

A kaydı bir adı IPv4 adresine, AAAA kaydı IPv6 adresine bağlar. Bir adın birden fazla A ya da AAAA kaydı olabilir; çözümleyici hepsini döndürür, istemci birini seçer. Bu kaba bir yük dağıtımı sağlar ama garantili bir yedeklilik sağlamaz.

$ dig +short www.example.com A
192.0.2.10
$ dig +short www.example.com AAAA
2001:db8::10

AAAA kaydını yalnızca sunucu IPv6 üzerinden gerçekten yanıt veriyorsa yayınlayın. Bozuk bir IPv6 yolu, site "sizde çalışırken" bazı kullanıcılar için yavaşlamasına ya da hiç açılmamasına neden olur.

CNAME kaydı ve iki kuralı

CNAME, "bu ad bir takma addır, onun yerine şu adı sorgula" der. Çözümleyici sorguya hedef adla yeniden başlar.

shop.example.com.   3600  IN  CNAME  stores.hosting.example.

Şu iki kural sağlayıcıların tercihi değil, DNS standartlarının gereğidir:

  1. CNAME bulunan bir adda başka kayıt olamaz. Ne MX ne TXT (DNSSEC kayıtları hariç).
  2. Dolayısıyla kök alan adında (apex) CNAME olmaz. example.com adının kendisi SOA ve NS kayıtlarını taşımak zorundadır, bu yüzden CNAME olamaz.

Sağlayıcılar ikinci kuralı "ALIAS", "ANAME" ya da "CNAME flattening" adlarıyla aşar: DNS sağlayıcısı hedefi kendisi çözümler ve A/AAAA olarak yanıtlar. İşe yarar, ama bu bir kayıt türü değil sağlayıcı özelliğidir; bu özelliği olmayan bir sağlayıcıya zone aktardığınızda kaybolur.

Diğer öneriler: MX ve NS kayıtlarını CNAME olan bir ada yöneltmeyin, uzun CNAME zincirlerinden kaçının. Her halka fazladan bir sorgu ve fazladan bir arıza noktasıdır.

MX kaydı: posta nereye gider

MX kayıtları alan adı için e-posta kabul eden sunucuları öncelik numarasıyla birlikte verir. Küçük numara önce denenir; eşit numaralar yükü paylaşır.

example.com.  3600  IN  MX  10 mx1.mail.example.
example.com.  3600  IN  MX  20 mx2.mail.example.

Hedef, A/AAAA kaydı olan bir sunucu adı olmalıdır: IP adresi olamaz, CNAME olamaz. Alan adında hiç MX yoksa gönderenler alan adının A kaydına düşer; bu da nadiren istediğiniz şeydir. Hiç posta almayan bir alan adı bunu "null MX" ile açıkça belirtebilir: 0 .

MX ve TXT üzerine kurulan SPF, DKIM ve DMARC ise başlı başına bir konudur.

TXT kaydı: üzerine kurallar inşa edilmiş metin

TXT kaydı serbest metin taşır. Asıl önemi, üzerine kurulan kullanım biçimlerinden gelir:

  • SPF, alan adının kendisinde: "v=spf1 include:_spf.mail.example -all". Bir adda tam olarak bir SPF kaydı olur; iki tane olması kalıcı hatadır.
  • DKIM, selector._domainkey.example.com adında.
  • DMARC, _dmarc.example.com adında.
  • Arama konsolları, SaaS araçları ve sertifika doğrulaması için sahiplik doğrulama metinleri.

Bir TXT kaydındaki tek bir dizgi en fazla 255 bayt olabilir. Daha uzun değerler (tipik örnek 2048 bit DKIM anahtarları) aynı kaydın içinde birkaç tırnaklı dizgiye bölünür; okuyan taraf bunları arada hiçbir şey olmadan birleştirir:

sel1._domainkey  IN TXT ( "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOC..."
                          "...AQ8AMIIBCgKCAQEA" )

Çoğu panel bölmeyi sizin yerinize yapar. Elle bölüyorsanız birleşme noktasına boşluk koymayın.

NS ve SOA kaydı: zone'un iskeleti

NS kayıtları yetkili nameserver'ları listeler. İki yerde bulunur: üst zone'da (delegasyon; kayıt firmanızdan değiştirilir) ve kendi zone'unuzda. İki liste aynı olmalıdır. Bir alt alan adına yazılan NS kayıtları o alt alan adını başka sunuculara devreder.

SOA, her zone'un tepesindeki tek kayıttır:

example.com. 3600 IN SOA ns1.dns.example. hostmaster.example.com. (
    2026092001 ; seri no
    7200       ; refresh
    3600       ; retry
    1209600    ; expire
    300 )      ; negatif önbellek TTL'i

Seri numarası, ikincil sunuculara zone'un değiştiğini bildirir. Çoğu kişinin gözden kaçırdığı alan sonuncusudur: çözümleyicilerin "bu ad yok" yanıtını ne kadar süre önbellekte tutacağını belirler. Birisi sorguladıktan bir dakika sonra oluşturduğunuz kaydın bir süre görünmemesinin nedeni budur.

NS kayıtlarını taşımak başlı başına bir iştir ve kendi planını gerektirir.

PTR kaydı: ters sorgu

PTR kaydı bir adresi ada çevirir. Özel bir zone'da (IPv4 için in-addr.arpa, IPv6 için ip6.arpa) durur ve bu zone'u IP bloğunun sahibi, yani normalde barındırma firmanız ya da internet sağlayıcınız yönetir. Kendi alan adınızın zone'una PTR yazmanın bir etkisi olmaz.

$ dig +short -x 192.0.2.25
mail.example.com.

En çok posta sunucuları için önemlidir. Ayrıntılar: reverse DNS (PTR) kaydı nedir.

SRV kaydı: portuyla birlikte hizmet

SRV kaydı, bir hizmetin sunucusunu ve portunu _hizmet._protokol.ad biçimindeki bir ad altında bildirir:

_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sip1.example.com.
;                                  öncelik ağırlık port hedef

SIP, XMPP, Matrix, bazı Microsoft hizmetleri ve benzerleri kullanır. Tarayıcılar web siteleri için SRV'ye bakmaz.

CAA kaydı: kim sertifika verebilir

CAA, alan adı için sertifika düzenlemeye yetkili sertifika otoritelerini listeler. Herkese açık her CA, sertifika vermeden önce bu kayda bakmak zorundadır.

example.com.  IN  CAA  0 issue "ca.example"
example.com.  IN  CAA  0 issuewild ";"

CAA kaydı yoksa her CA sertifika verebilir. Devamı: CAA kaydı nedir.

DNSSEC kayıtları

DNSKEY zone'un açık anahtarlarını, RRSIG her kayıt kümesinin imzasını taşır; NSEC/NSEC3 bir adın var olmadığını kanıtlar; üst zone'daki DS ise alt zone'un anahtarını güven zincirine bağlar. DS dışındakileri DNS sağlayıcınız üretir; DS kaydını kayıt firması üzerinden siz (ya da sağlayıcınız) iletirsiniz.

HTTPS ve SVCB

HTTPS kaydı (SVCB'nin özel bir biçimi), tarayıcının daha DNS yanıtında sitenin HTTP/2 ya da HTTP/3 desteklediğini, hangi adreslerin kullanılacağını ve isteğe bağlı olarak bir takma ad hedefini (kök alan adında bile) öğrenmesini sağlar. Büyük CDN'ler bunu otomatik yayınlar. Elle yazmanız pek gerekmez ama sorgularda görürsünüz:

$ dig +short example.com HTTPS
1 . alpn="h2,h3"

ANY sorgusu neden işe yaramıyor?

dig example.com ANY eskiden sunucunun elindeki her şeyi döndürürdü. ANY, yükseltme (amplification) saldırılarında kötüye kullanıldığı için bugün birçok sunucu asgari bir yanıtla karşılık veriyor. Bir zone'un kayıtlarını görmek için ilgilendiğiniz her türü ayrı sorgulayın. Bir zone'daki tüm adları listeleyen herkese açık bir sorgu yoktur; zone transferi (AXFR) yalnızca yetkili ikincil sunuculara açıktır.

Sık yapılan hatalar

  • Kök alan adına CNAME yazmak ya da aynı adda CNAME ile MX/TXT'yi bir arada tutmak.
  • MX'i bir IP adresine ya da CNAME'e yöneltmek.
  • Aynı adda iki SPF TXT kaydı.
  • Zone dosyasında sondaki noktayı unutmak; mx1.mail.example yazdığınız şey mx1.mail.example.example.com. olur. Paneller noktayı bekleyip beklememe konusunda farklı davranır; sonucu dig ile kontrol edin.
  • IPv6'sı çalışmayan sunucu için AAAA kaydı.
  • Kaydı www adında oluşturup çıplak alan adının da onu izlemesini beklemek (ya da tersi). Bunlar farklı adlardır.
  • Yeni kayıt "görünmüyor" diye uğraşırken negatif önbellek TTL'ini unutmak.

OrbitProbe ile kontrol edin

OrbitProbe DNS sorgulama aracı bir ad için A, AAAA, CNAME, MX, TXT, NS, SOA ve CAA kayıtlarını tek seferde sorgular ve her yanıtın TTL değerini gösterir; böylece yayınlanan ile niyet ettiğinizi karşılaştırabilirsiniz. Çıplak alan adı ile www için ayrı ayrı sorgulayın; ikisi ayrı adlardır ve kayıtları da ayrıdır.