DNS kayıtları, alan adınızın internetteki davranışını belirleyen küçük ama kritik bir tablodur. Bir kayıt sitenizin hangi sunucuda olduğunu, bir diğeri e-postalarınızın nereye teslim edileceğini, bir başkası oyun sunucunuzun hangi porttan yayın yaptığını söyler. Yanlış girilmiş tek bir satır siteyi de e-postayı da durdurabilir.
Bu rehberde en çok kullanılan kayıt türlerini (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA) tek tek örnekleriyle ele alıyoruz; TTL ve yayılma süresinin nasıl işlediğini, kayıtları komut satırından nasıl doğrulayacağınızı ve en sık yapılan hataların çözümünü gösteriyoruz.
DNS Bölgesi (Zone) Nedir?#
Alan adınıza ait tüm kayıtların tutulduğu dosyaya bölge dosyası (zone file) denir. Bu dosya, alan adınızın ad sunucularında (NS kayıtlarında yazan sunucularda) barındırılır. Hosting paneliniz üzerinden yaptığınız her değişiklik aslında bu dosyayı düzenler.
Bir bölge dosyasının sade hali şuna benzer:
$TTL 3600
@ IN SOA ns1.hostingfirmaniz.com. hostmaster.alanadiniz.com. (
2026081201 ; serial
7200 ; refresh
3600 ; retry
1209600 ; expire
3600 ) ; minimum TTL
@ IN NS ns1.hostingfirmaniz.com.
@ IN NS ns2.hostingfirmaniz.com.
@ IN A 203.0.113.45
www IN A 203.0.113.45
mail IN A 203.0.113.46
@ IN MX 10 mail.alanadiniz.com.
@ IN TXT "v=spf1 a mx ip4:203.0.113.46 -all"
Panelde bu satırları elle yazmazsınız; “Tür / Ad / Değer / TTL” alanlarını doldurursunuz ve panel arka planda bu dosyayı üretir. Yine de biçimi tanımak, hata ayıklarken çok işe yarar.
@ işareti “alan adının kendisi” demektir. Yani alanadiniz.com. www yazdığınızda kayıt www.alanadiniz.com için oluşur. Panelde tam adı yazarsanız bazı sağlayıcılar bunu www.alanadiniz.com.alanadiniz.com haline getirir; sağlayıcının örnek biçimine dikkat edin.A ve AAAA Kayıtları#
A kaydı, bir alan adını IPv4 adresine bağlar. En temel ve en sık kullanılan kayıttır. AAAA kaydı aynı işi IPv6 için yapar.
| Tür | Ad | Değer | TTL | Anlamı |
|---|---|---|---|---|
| A | @ | 203.0.113.45 | 3600 | alanadiniz.com bu IP’ye gider |
| A | www | 203.0.113.45 | 3600 | www.alanadiniz.com aynı sunucuya |
| A | mc | 203.0.113.90 | 3600 | mc.alanadiniz.com oyun sunucusuna |
| AAAA | @ | 2001:db8::45 | 3600 | IPv6 destekli istemciler için |
Aynı ad için birden çok A kaydı girerseniz DNS bunları sırayla döndürür (round-robin) ve basit bir yük dağıtımı elde edersiniz. Ancak bu yöntem sağlık kontrolü yapmaz; bir sunucu kapansa da DNS onun IP’sini vermeye devam eder.
CNAME Kaydı#
CNAME (Canonical Name), bir alan adını başka bir alan adına takma ad olarak bağlar. Hedefin IP adresi değiştiğinde sizin kaydınıza dokunmanız gerekmez.
Tür Ad Değer TTL
CNAME panel panel.hostingfirmaniz.com 3600
CNAME cdn d1abc23xyz.cloudfront.net 3600
CNAME shop magaza-platformu.com 3600
CNAME kullanırken iki kural mutlaka bilinmelidir:
-
Kök alan adına CNAME verilemez#
DNS standardı gereği, bir isimde CNAME varsa o isimde başka kayıt olamaz. Kök alan adında zorunlu olarak SOA ve NS kayıtları bulunduğundan
@için CNAME yasaktır. Bazı sağlayıcılar bunu ALIAS, ANAME ya da “CNAME flattening” adıyla arka planda çözer. -
CNAME olan bir adda MX veya TXT bulunamaz#
mail.alanadiniz.comiçin CNAME tanımlarsanız, aynı ada SPF TXT kaydı ekleyemezsiniz. Posta ile ilgili adlarda daima A kaydı tercih edin.
MX Kayıtları ve E-posta Yönlendirme#
MX (Mail Exchanger) kaydı, alan adınıza gelen e-postaların hangi sunucuya teslim edileceğini söyler. Değeri bir IP adresi değil, bir alan adı olmalıdır.
Tür Ad Öncelik Değer TTL
MX @ 10 mail.alanadiniz.com 3600
MX @ 20 yedekmail.alanadiniz.com 3600
A mail 203.0.113.46 3600
Öncelik değerinde küçük sayı önce denenir. 10’lu sunucu yanıt vermezse gönderen 20’liye geçer. MX değerinde IP adresi yazmak yaygın bir hatadır ve çoğu gönderen sunucu bu kaydı yok sayar; daima bir A kaydına işaret eden alan adı yazın.
TXT Kayıtları: SPF, DKIM, DMARC ve Doğrulama#
TXT kayıtları serbest metin taşır. Pratikte üç iş için kullanılır: e-posta kimlik doğrulama, alan adı sahipliği doğrulama ve çeşitli hizmet yapılandırmaları.
SPF — kimlerin sizin adınıza posta gönderebileceği#
Tür Ad Değer TTL
TXT @ v=spf1 a mx ip4:203.0.113.46 include:_spf.saglayici.com -all 3600
-all katı moddur: listede olmayan sunuculardan gelen postalar reddedilir. ~all ise yumuşak moddur, spam olarak işaretlenir. Geçiş döneminde ~all ile başlayıp emin olduktan sonra -all’a çekin.
v=spf1 satırı eklerseniz kayıt geçersiz sayılır ve tüm e-postalarınız doğrulamayı kaybeder. Yeni bir gönderici eklerken var olan satıra include: ile ekleyin.DKIM — giden postaları imzalama#
Tür Ad Değer
TXT default._domainkey v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA...
Seçici adı (default, mail, s1 gibi) posta sunucunuz tarafından belirlenir; panelin ürettiği değeri birebir kopyalayın. Anahtar uzun olduğu için bazı paneller satırı böler, boşluk eklememeye dikkat edin.
DMARC — kural ve raporlama#
Tür Ad Değer
TXT _dmarc v=DMARC1; p=quarantine; rua=mailto:dmarc@alanadiniz.com; pct=100; adkim=s; aspf=s
p=none ile başlayıp raporları izleyin, yanlış pozitif kalmadığında p=quarantine, en son p=reject seviyesine çıkın. Üç kaydın da doğru kurulumu ve posta hesabı açma adımları kurumsal e-posta oluşturma sayfasında ayrıntılı anlatılıyor.
SRV Kaydı ve Minecraft Örneği#
SRV (Service) kaydı, bir hizmetin hangi sunucuda ve hangi portta çalıştığını duyurur. Web sitelerinde nadiren kullanılır ama oyun sunucularında hayat kurtarır.
Minecraft sunucunuz varsayılan 25565 dışında bir portta çalışıyorsa (paylaşımlı barındırmada bu çok olağandır), oyuncuların adresi sunucum.com:25580 biçiminde yazması gerekir. SRV kaydı bu zorunluluğu ortadan kaldırır: oyuncu yalnızca sunucum.com yazar, istemci portu DNS’ten öğrenir.
SRV kaydının anatomisi şöyledir:
_hizmet._protokol.alanadi. TTL IN SRV öncelik ağırlık port hedef
_minecraft._tcp.sunucum.com. 3600 IN SRV 0 5 25580 mc.sunucum.com.
Panel arayüzünde alanlar genelde ayrı ayrı istenir:
| Alan | Değer | Açıklama |
|---|---|---|
| Hizmet (Service) | _minecraft | Java Edition için sabit |
| Protokol | _tcp | Java Edition TCP kullanır |
| Ad / Host | @ veya play | Boş bırakılırsa kök alan adı için geçerli olur |
| Öncelik | 0 | Tek sunucuda önemi yok |
| Ağırlık | 5 | Eşit öncelikli kayıtlar arasında dağılım |
| Port | 25580 | Sunucunuzun gerçek portu |
| Hedef | mc.sunucum.com | A kaydı bulunan bir ad olmalı |
Üç noktaya dikkat edin: hedef bir alan adı olmalıdır, IP adresi yazılamaz; hedefin ayrıca kendi A kaydı bulunmalıdır; ve SRV yalnızca Java Edition’da çalışır. Bedrock istemcileri SRV kaydını okumaz, onlar için portu elle girmek gerekir. Sunucu tarafındaki tüm adımlar ve Bedrock çözümü Minecraft sunucusuna domain bağlama sayfasında.
# SRV kaydını doğrulama
dig +short SRV _minecraft._tcp.sunucum.com
# Beklenen çıktı:
# 0 5 25580 mc.sunucum.com.
# Windows karşılığı
nslookup -type=SRV _minecraft._tcp.sunucum.com
NS, CAA ve PTR Kayıtları#
- NS
- Alan adının hangi ad sunucuları tarafından yönetildiğini söyler. Bu kaydı hosting değiştirirken güncellersiniz; yanlış girilirse alan adı tamamen çözümlenemez hale gelir.
- CAA
- Hangi sertifika otoritelerinin sizin alan adınıza SSL sertifikası verebileceğini kısıtlar. Örnek değer:
0 issue "letsencrypt.org". Yetkisiz sertifika üretilmesini zorlaştırır. - PTR
- Ters DNS kaydı; IP adresinden alan adına gider. Alan adı panelinizden değil, IP bloğunun sahibi olan sunucu sağlayıcısından ayarlanır. Kendi posta sunucunuzu işletiyorsanız PTR kaydı olmadan gönderdiğiniz postalar büyük ihtimalle reddedilir.
- SOA
- Bölgenin yetki bilgilerini ve seri numarasını tutar. Elle düzenlenmesi gerekmez; panel her değişiklikte seri numarasını artırır.
Kendi VDS’inizde posta gönderiyorsanız PTR kaydı için sağlayıcınıza destek talebi açmanız gerekir; bu kayıt kendi panelinizden ayarlanamaz.
TTL ve Yayılma Süresi#
TTL (Time To Live), bir kaydın çözümleyiciler tarafından kaç saniye önbellekte tutulacağını söyler. “DNS yayılması” denen 24-48 saatlik efsanenin gerçek karşılığı budur: kayıt anında güncellenir, ama dünyadaki çözümleyiciler eski değeri TTL süresi dolana kadar kullanmaya devam eder.
| TTL | Süre | Ne zaman kullanılır |
|---|---|---|
| 300 | 5 dakika | Taşıma ve test dönemi |
| 3600 | 1 saat | Genel amaçlı varsayılan |
| 14400 | 4 saat | Kararlı, değişmeyen kayıtlar |
| 86400 | 24 saat | Neredeyse hiç değişmeyen NS ve MX kayıtları |
Sunucu taşıma planı şu sırayla yapılır: taşımadan 48 saat önce ilgili kayıtların TTL değerini 300’e düşürün, eski TTL’in dolmasını bekleyin, taşımayı yapın ve IP’yi değiştirin, her şeyin oturduğunu doğruladıktan sonra TTL’i eski değerine yükseltin. Bu yöntem kesinti süresini dakikalara indirir. Aynı yaklaşımı bir oyun sunucusunu taşırken de kullanabilirsiniz.
DNS Kayıtlarını Doğrulama ve Hata Ayıklama#
Panelde kaydı görmek yeterli değildir; dışarıdan gerçekten göründüğünü doğrulayın.
# Temel sorgular (Linux / macOS)
dig +short alanadiniz.com A
dig +short alanadiniz.com MX
dig +short alanadiniz.com TXT
dig +short SRV _minecraft._tcp.alanadiniz.com
# Önbelleği atlayıp doğrudan yetkili sunucuya sor
dig @ns1.hostingfirmaniz.com alanadiniz.com A
# Tam sorgu zincirini izle (nerede kırıldığını gösterir)
dig +trace alanadiniz.com
# Ters DNS (PTR) kontrolü
dig -x 203.0.113.46 +short
Windows tarafında aynı işleri nslookup ile yaparsınız:
nslookup alanadiniz.com
nslookup -type=MX alanadiniz.com
nslookup -type=TXT alanadiniz.com
# PowerShell'in kendi cmdlet'i daha okunaklı çıktı verir
Resolve-DnsName alanadiniz.com -Type A
Resolve-DnsName _minecraft._tcp.alanadiniz.com -Type SRV
# Yerel DNS önbelleğini temizle
ipconfig /flushdns
Linux tarafında yerel önbelleği temizlemek için sudo systemd-resolve --flush-caches ya da sudo resolvectl flush-caches kullanılır. Bu komutlar ve diğer temel araçlar için Linux temel komutları sayfasına bakabilirsiniz.
En Sık Yapılan DNS Hataları#
| Hata | Belirti | Çözüm |
|---|---|---|
| Kök alan adına CNAME verme | Site açılmıyor, e-posta durdu | Kökte A kaydı kullanın ya da ALIAS/ANAME desteğine geçin |
| MX değerine IP yazma | Gelen e-postalar teslim edilmiyor | MX’e alan adı yazın, o ada A kaydı ekleyin |
| İki ayrı SPF kaydı | Tüm giden postalar spam’e düşüyor | Tek satırda birleştirin, ikinciyi include: yapın |
| NS kayıtları eski firmada kalmış | Panelde yaptığınız değişiklikler etkisiz | Domain panelinden ad sunucularını güncelleyin |
| Ad alanına tam alan adı yazma | Kayıt www.site.com.site.com oluyor | Yalnızca alt alan adı kısmını (www) yazın |
| www kaydı eksik | site.com açılıyor, www.site.com açılmıyor | www için ayrı A ya da CNAME kaydı ekleyin |
| SRV hedefi IP adresi | Oyuncular sunucuya bağlanamıyor | Hedefe A kaydı olan bir alan adı yazın |
| Çok yüksek TTL ile taşıma | Bir gün boyunca eski sunucuya giden trafik | Taşımadan 48 saat önce TTL’i 300’e düşürün |
Örnek: Sıfırdan Eksiksiz Bir DNS Yapılandırması#
Bir web sitesi, kurumsal e-posta ve bir Minecraft sunucusu barındıran bir alan adının tam kayıt seti:
Tür Ad Değer TTL
A @ 203.0.113.45 3600
A www 203.0.113.45 3600
A mail 203.0.113.46 3600
A mc 203.0.113.90 3600
CNAME panel panel.hostingfirmaniz.com 3600
MX @ 10 mail.alanadiniz.com 3600
TXT @ v=spf1 a mx ip4:203.0.113.46 -all 3600
TXT default._domainkey v=DKIM1; k=rsa; p=MIGfMA0GCS... 3600
TXT _dmarc v=DMARC1; p=quarantine; rua=mailto:... 3600
SRV _minecraft._tcp 0 5 25580 mc.alanadiniz.com 3600
CAA @ 0 issue "letsencrypt.org" 3600
Bu tabloyu bir metin dosyasına kaydedip yedeklerinizle birlikte saklayın. Alan adını başka bir kayıt kuruluşuna taşıdığınızda kayıtların sıfırlanması olağandır ve elinizde bir kopya olması işi dakikalara indirir. Taşıma sürecinin tamamı domain satın alma ve transfer sayfasında.
Özetle#
DNS kayıtları öğrenilmesi yarım saat, göz ardı edilmesi günler süren bir konudur. Beş temel kuralı aklınızda tutun: kök alan adına CNAME verilmez, MX kaydına IP yazılmaz, bir alan adında yalnızca bir SPF satırı olur, SRV hedefi A kaydı bulunan bir alan adı olmalıdır ve her taşımadan önce TTL düşürülür.
Kayıtları girdikten sonra dig ya da nslookup ile dışarıdan doğrulamayı alışkanlık haline getirin. Bir sonraki adım olarak sitenizi HTTPS’e taşımak için SSL sertifikası kurulumu sayfasıyla devam edebilir, kendi ad sunucularınızı ve uygulamalarınızı barındırmak isterseniz VDS paketlerine göz atabilirsiniz.