---
title: 'DNS Kayıt Türleri'
source: 'https://academia.sh/tr/kurslar/internet-nasil-calisir/dns-kayit-turleri'
course: 'İnternet Nasıl Çalışır'
language: tr
updated: '2026-08-17T18:07:03+00:00'
license: 'CC BY-SA 4.0'
---

# DNS Kayıt Türleri

Adres, takma ad, posta, ad sunucusu ve metin kayıtları; her türün hangi soruna yanıt verdiği ve takma ad kayıtlarının birleşim kısıtları.

Önceki ders bir kaydın ad, yaşam süresi, sınıf, tür ve veri alanlarından oluştuğunu
gösterdi ve tür alanını tek bir örnekle, `A` ile geçti. Oysa bir adın altında yalnızca
adres tutulmaz.

Bu ders tür alanının aldığı değerleri ele alır. Her tür ayrı bir soruna yanıt verir; hangi
türün neden var olduğunu görmek, alan adı sisteminin bir adres defterinden fazlası olduğunu
gösterir.

## Bölge ve Bölge Dosyası

Bir yetkili sunucunun sorumlu olduğu kayıtlar bütününe **bölge (zone)** denir. Bölgenin
metin biçiminde yazılışına **bölge dosyası** adı verilir; her satır bir kayıttır.

`ornek.test` adının bölgesi şöyle görünebilir:

```
ornek.test.         3600  IN  A      192.0.2.10
ornek.test.         3600  IN  AAAA   2001:db8::10
www.ornek.test.     3600  IN  CNAME  ornek.test.
ornek.test.         3600  IN  MX     10 posta.ornek.test.
posta.ornek.test.   3600  IN  A      192.0.2.20
ornek.test.          600  IN  TXT    "dogrulama=abc123"
ornek.test.        86400  IN  NS     ad1.ornek.test.
```

Satırların hepsi aynı beş alanlı düzeni izler. Aşağıdaki program bunu doğrular: satırları
alanlarına ayırır ve tür alanına göre yeniden yazar.

```python
BOLGE = """\
ornek.test.         3600  IN  A      192.0.2.10
ornek.test.         3600  IN  AAAA   2001:db8::10
www.ornek.test.     3600  IN  CNAME  ornek.test.
ornek.test.         3600  IN  MX     10 posta.ornek.test.
posta.ornek.test.   3600  IN  A      192.0.2.20
ornek.test.          600  IN  TXT    "dogrulama=abc123"
ornek.test.        86400  IN  NS     ad1.ornek.test.
"""


def kaydi_coz(satir: str) -> tuple[str, int, str, str, str]:
    ad, ttl, sinif, tur, *veri = satir.split()
    return ad, int(ttl), sinif, tur, " ".join(veri)


for satir in BOLGE.strip().splitlines():
    ad, ttl, sinif, tur, veri = kaydi_coz(satir)
    print(f"{tur:<6} ad={ad:<18} ttl={ttl:<6} veri={veri}")

print()
turler = sorted({kaydi_coz(s)[3] for s in BOLGE.strip().splitlines()})
print("bolgedeki tur sayisi:", len(turler))
print("turler:", turler)
```

```
A      ad=ornek.test.        ttl=3600   veri=192.0.2.10
AAAA   ad=ornek.test.        ttl=3600   veri=2001:db8::10
CNAME  ad=www.ornek.test.    ttl=3600   veri=ornek.test.
MX     ad=ornek.test.        ttl=3600   veri=10 posta.ornek.test.
A      ad=posta.ornek.test.  ttl=3600   veri=192.0.2.20
TXT    ad=ornek.test.        ttl=600    veri="dogrulama=abc123"
NS     ad=ornek.test.        ttl=86400  veri=ad1.ornek.test.

bolgedeki tur sayisi: 6
turler: ['A', 'AAAA', 'CNAME', 'MX', 'NS', 'TXT']
```

Ayrıştırıcının tüm türler için aynı olması, tasarımın bir özelliğidir: tür alanı yalnızca
veri alanının nasıl yorumlanacağını belirtir, kaydın çerçevesini değiştirmez. Yeni bir tür
tanımlamak, var olan sunucuların kaydı taşımasını engellemez.

Kaydın adı ile aranan ad arasındaki ilişkiye dikkat edilmelidir: bir bölgede aynı ada ait
birden çok kayıt bulunabilir. Sorgu, ad **ve** tür ikilisiyle yapılır.

## Adres Kayıtları

`A` kaydı bir IPv4 adresi, `AAAA` kaydı bir IPv6 adresi taşır. İkisi ayrı türlerdir ve bir
ad ikisine birden sahip olabilir; yukarıdaki bölgede `ornek.test` için ikisi de tanımlıdır.

Bir ada birden çok adres kaydı verilebilir. Bu durumda çözümleyici hepsini döndürür ve
istemci birini seçer. Bu, istekleri birden çok sunucuya dağıtmanın en yalın yoludur.

Yöntemin sınırı belirgindir: alan adı sistemi, adreslerin hangisinin çalışır durumda
olduğunu bilmez. Bir sunucu arızalandığında kaydı elle kaldırılana kadar dağıtıma dahil
kalır ve kaldırıldıktan sonra da önbelleklerde yaşam süresi kadar yaşamayı sürdürür.
Önceki derste kurulan yaşam süresi ödünleşiminin doğrudan sonucudur bu.

## Takma Ad Kayıtları

`CNAME` kaydı bir adresi değil, **başka bir adı** gösterir. `www.ornek.test` sorulduğunda
yanıt "bu adın karşılığı `ornek.test` adıdır" olur ve çözümleyici aramayı o ad üzerinden
sürdürür.

Kullanım gerekçesi, önceki derste kurulan dolaylılık fikrinin bir katman daha
uygulanmasıdır: adres bir yerde tanımlanır, diğer adlar oraya bağlanır. Adres
değiştiğinde tek bir kayıt güncellenir.

Bu türün iki kısıtı vardır ve ikisi de aynı nedenden gelir: takma ad kaydı, adın
**tamamını** başka bir ada devreder.

**Aynı adda başka kayıt bulunamaz.** Bir ad için takma ad kaydı varsa, o ad için başka
türde kayıt tanımlanamaz. Tanımlanabilseydi çelişki doğardı: ad hem "karşılığım şu addır"
hem de "adresim şudur" derdi.

**Bölgenin kök adında kullanılamaz.** `ornek.test` adının kendisi takma ad olamaz, çünkü o
adda zaten bulunması zorunlu olan kayıtlar vardır — aşağıda ele alınan yetki ve ad sunucusu
kayıtları. Birinci kısıt gereği bunlar takma adla bir arada duramaz.

Bu ikinci kısıt işletmede sık karşılaşılan bir engeldir: `www.ornek.test` adı bir
sağlayıcının adına takma adla bağlanabilirken, `ornek.test` adı için aynı şey yapılamaz ve
oraya doğrudan bir adres kaydı yazmak gerekir.

## Posta Kayıtları

`MX` kaydı, o alan adına gönderilen postanın hangi sunucuya teslim edileceğini söyler.
Veri alanı iki parçadır: bir öncelik sayısı ve bir sunucu adı.

```
ornek.test.         3600  IN  MX     10 posta.ornek.test.
```

Öncelik sayısı **küçükse tercih edilir**. Birden çok posta kaydı tanımlandığında gönderen
taraf en küçük sayılı sunucuyu dener, ulaşamazsa sıradakine geçer. Sayının kendisi bir
anlam taşımaz; yalnızca sıralama içindir.

Bu kaydın varlığı önemli bir ayrımı gösterir: bir alan adının web trafiği ile posta trafiği
farklı sunuculara gidebilir. `ornek.test` sayfası `192.0.2.10` adresinden gelirken, aynı
adın postası `posta.ornek.test` üzerinden `192.0.2.20` adresine teslim edilir. Alan adı bir
makineyi değil, bir **yönetim alanını** adlandırır.

Posta kaydının işaret ettiği ad bir takma ad olmamalı, doğrudan adres kaydı taşımalıdır.

## Ad Sunucusu ve Yetki Kayıtları

`NS` kaydı, bir bölgenin yetkisinin hangi sunuculara ait olduğunu bildirir. Önceki dersteki
çözümleme zincirinde her adımda alınan "şuna sor" yanıtı, tam olarak bu kayıttır.

Bu kayıt iki yerde birden bulunur: bölgenin kendisinde ve bir üst düzeydeki bölgede. Üst
düzeydeki kopya, yetkinin devredildiğini gösteren kayıttır; önceki derste anlatılan kayıt
sırasında kayıt kuruluşuna bildirilen budur. İki kopyanın uyuşmaması, çözümlemede güç
saptanan tutarsızlıklara yol açar.

Her bölgede ayrıca bir `SOA` kaydı bulunur. Bu kayıt bölgenin yönetsel bilgilerini taşır:
birincil ad sunucusu, sorumlu adres, bölgenin sürüm numarası ve ikincil sunucuların
kopyalarını ne sıklıkta yenileyeceğini belirleyen süreler. Sürüm numarası, ikincil
sunucuların bölgenin değişip değişmediğini anlamasını sağlar.

## Metin Kayıtları

`TXT` kaydı serbest metin taşır. Belirli bir işlevi yoktur; bu yüzden bir adın sahibi
olduğunu kanıtlamak isteyen düzenler için ortak bir araç durumundadır.

Kullanım kalıbı şudur: bir hizmet, ad sahibinden bölgesine belirli bir metni koymasını
ister. Metin göründüğünde, o adın yönetimine erişimi olduğu kanıtlanmış olur. Bu, önceki
derste kurulan yetki devrine dayanır — bölgeye kayıt yazabilen, o adın yetkilisidir.

Posta doğrulama düzenleri de bu kayıt türü üzerinden çalışır ve belirli bir sözdizimi
izleyen metinler yazar. Bu düzenlerin ayrıntısı Uygulama Katmanı Protokolleri kursunun
konusudur.

## Tür Seçimi

| Tür | Yanıtladığı soru |
|---|---|
| `A` | Bu adın IPv4 adresi nedir |
| `AAAA` | Bu adın IPv6 adresi nedir |
| `CNAME` | Bu ad hangi adın yerine geçiyor |
| `MX` | Bu adın postası nereye teslim edilir |
| `NS` | Bu bölgenin yetkisi kimde |
| `SOA` | Bu bölgenin yönetsel bilgileri neler |
| `TXT` | Bu ada iliştirilmiş serbest metin nedir |

Bir bölge tasarlarken izlenen sıra buradan çıkar: yetki kayıtları bölgenin var olması için
zorunludur, adres kayıtları hizmetin ulaşılabilirliği için gereklidir, takma ad kayıtları
bakımı azaltır, posta ve metin kayıtları ise alan adına bağlı diğer hizmetleri tanımlar.

## Özet

- Bölge, bir yetkili sunucunun sorumlu olduğu kayıtlar bütünüdür; her kayıt aynı beş
  alanlı düzeni izler ve tür alanı yalnızca veri alanının yorumunu belirler.
- `A` ve `AAAA` adres taşır; bir ada birden çok adres verilerek istekler dağıtılabilir,
  ancak sistem sunucuların sağlığını bilmez.
- `CNAME` adı başka bir ada devreder; aynı adda başka kayıt bulunamayacağı için bölgenin
  kök adında kullanılamaz.
- `MX` postanın teslim edileceği sunucuyu öncelik sırasıyla bildirir; bir alan adının web
  ve posta trafiği farklı sunuculara gidebilir.
- `NS` yetkiyi bildirir ve hem bölgede hem üst düzeyde bulunur; `SOA` bölgenin yönetsel
  bilgilerini taşır.
- `TXT` serbest metin taşır ve ad üzerindeki yetkiyi kanıtlamak için kullanılır.

## Sonraki Adım

Bu ders `ornek.test` adının `192.0.2.10` adresini gösterdiğini kayıt düzeyinde kurdu.
Geriye o adreste ne olduğu sorusu kalır: orada sürekli çalışan, isteği bekleyen bir makine
bulunmalıdır. Sonraki ders bu makinenin nasıl sağlandığını, aynı adresin birden çok alan
adına nasıl hizmet verebildiğini ve barındırma seçenekleri arasındaki ödünleşimleri ele
alacak.
