DNS Hata Kodu: NXDOMAIN'den REFUSED'a Kılavuz

DNS hata kodunu tam nedeni ve kontrol yoluyla tanıyın: NXDOMAIN, SERVFAIL, REFUSED ve diğerleri, dig komutu ve hızlı çözüm ipuçlarıyla birlikte.

6 dk Güncellendi 26 Oct 2026

Terminali açtınız, dig yazdınız ve A kaydı yerine üç harfli bir kod döndü. O anda aklınızı iki soru kaplar: bu kod tam olarak ne anlama geliyor ve sorun benim sunucumda mı yoksa başka bir yerde mi? DNS hata kodu aslında çözümleyicinin resmi yanıtıdır, belirsiz bir mesaj değil. Her kodun hangi katmandan geldiğini bilirseniz, saniyeler içinde kontrol yönünü bulursunuz.

DNS hata kodu nereden gelir

Her DNS yanıtında RCODE adında dört bitlik bir alan vardır. Sıfır değeri NOERROR anlamına gelir, diğer değerler ise yolda bir şeyin doğru gitmediğini gösterir. Bu kodu authoritative server üretebilir, ara çözümleyici üretebilir ve bazı durumlarda yerel çözümleyiciniz üretir. İşin anahtarı tam da bu noktadır: DNS hata kodu her zaman alan adının sahibi olan sunucudan gelmez.

Ham kodu görmek için dig seçeneklerini kullanın:

dig +noall +comments example.com A
dig +short example.com A
dig @1.1.1.1 example.com A +norecurse

comments bölümündeki status: satırı aynı RCODE'dur. +norecurse eklerseniz, çözümleyici yanıtı kendi önbelleğinden vermez ve authoritative davranışı daha yakından görürsünüz. Bir alan adının DNS kayıtlarını birden fazla noktadan kontrol etmek için, çevrimiçi DNS kayıtları kontrolü aracı terminali açıp kapatmaktan daha hızlıdır.

NXDOMAIN: ad mevcut değil

Bu kod, authoritative server'ın bu zone'da böyle bir adın tanımlanmadığını kesin olarak söylediği anlamına gelir. Dikkat edin: NXDOMAIN ad hakkındadır, kayıt türü hakkında değil. Eğer mail.example.com mevcutsa ama AAAA kaydı yoksa, yanıt NXDOMAIN değildir; boş yanıt bölümüyle NOERROR'dur.

Üç yaygın neden:

  • Kaydı yanlış zone'da oluşturdunuz, örneğin www yerine www.example.com.example.com altında.
  • Alan adı başka bir nameserver'a işaret ediyor ve siz yanlış panelde düzenleme yapıyorsunuz.
  • Kaydı sildiniz ve eski TTL hâlâ çözümleyicilerin önbelleğinde canlı.

Burada hata yapılır: kullanıcı NXDOMAIN görür, hemen yeni bir kayıt oluşturur ve birkaç saat sonra zone'da birbiriyle çelişen iki kaydı olur. Belirtisi şudur: yanıtlar iki farklı IP arasında gidip gelir ve bazı kullanıcılar siteyi görür, bazıları görmez. Herhangi bir değişiklikten önce, önce dig NS example.com ile hangi nameserver'ın yetkili olduğundan emin olun.

SERVFAIL: çözümleyici yanıtı tamamlayamadı

SERVFAIL en belirsiz DNS hata kodudur, çünkü nedeni söylemez. Çözümleyici denemiş ve sonuca ulaşamamıştır. Pratikte dört neden en büyük paya sahiptir:

  1. DNSSEC bozulmuştur. İmza süresi dolmuş ya da üst öğedeki DS kaydı zone anahtarıyla uyumlu değildir.
  2. authoritative server 53 numaralı portta sizin IP'nizden yanıt vermiyor ya da timeout yaşıyor.
  3. zone iki nameserver üzerinde farklı içerikle yüklenmiş ve çözümleyici çelişkili yanıt alıyor.
  4. Ara çözümleyici yanıt hızı sınırına takılmıştır.

Bu durumları ayırmak için doğrudan authoritative'e sorgu gönderin:

dig @ns1.example.com example.com A +dnssec
dig +trace example.com

Doğrudan yanıt sağlıklıysa ama genel çözümleyiciden SERVFAIL alıyorsanız, sorun neredeyse kesinlikle DNSSEC ya da nameserver uyumsuzluğudur. İkisi de SERVFAIL veriyorsa, 53 numaralı portun erişilebilirliğine bakın. Bu kontrollerin tam sırası pratik DNS sorun giderme kılavuzunda yer alıyor.

REFUSED ve NOTAUTH ve diğer kodlar

REFUSED, sunucunun bilmediği için değil, izni olmadığı için yanıt vermediği anlamına gelir. En yaygın sahne: çözümleyici açıktır ve yönetici ACL ile dış ağlardan gelen sorguları engellemiştir. Kendi sunucunuzda dig @server ile REFUSED alıyorsanız ama ağ içinden yanıt alıyorsanız, sorun DNS değildir; erişim politikasıdır.

NOTAUTH, sorguladığınız sunucunun bu zone'un yetkilisi olmadığı anlamına gelir. Bunu, başka bir sunucunun IP'sini nameserver olarak girdiğinizde görürsünüz. FORMERR, sorgu mesajının yapısal olarak bozuk olduğu anlamına gelir ve neredeyse her zaman yazılım hatasına ya da müdahale eden bir middlebox'a dayanır. NOTIMP ise sunucunun o sorgu türünü uygulamadığı anlamına gelir; eski sunucularda SVCB veya HTTPS türü sorgularla sık görülür.

KodAnlamKontrol yolu
NOERRORSağlıklı yanıt, boş olsa bileKayıt türünü kontrol edin
NXDOMAINAd zone'da mevcut değilzone ve yetkili nameserver
SERVFAILÇözümleyici sonuca ulaşamadıDNSSEC ve 53 numaralı port
REFUSEDSunucunun yanıt izni yokACL ve allow-query
NOTAUTHSunucu bu zone'un yetkilisi değilNS kaydı
FORMERRSorgu yapısal olarak bozukYazılım sürümü ve middlebox

DNS hata kodunu TTL ile karıştırmayın

En büyük yanlış anlama, kullanıcının NXDOMAIN'i "henüz yayılmadı" ile karıştırmasıdır. NXDOMAIN kesin bir yanıttır, gecikme değil. Kaydı şimdi oluşturduysanız ve hâlâ NXDOMAIN görüyorsanız, muhtemelen önceki TTL önbellekte kalmıştır. TTL değerine bakın:

dig example.com A +noall +answer
example.com.  3600  IN  A  203.0.113.10

3600 sayısı, çözümleyicilerin bir saate kadar eski yanıtı tutabileceği anlamına gelir. Riskli değişiklikler için TTL'i önceden 300 saniyeye düşürün, değişikliği uygulayın ve oturduktan sonra tekrar yükseltin. Bunun az söylenen bir maliyeti vardır: kısa TTL, authoritative server üzerindeki sorgu yükünü birkaç katına çıkarır ve yüksek trafikli alan adlarında kendisi SERVFAIL kaynağı olabilir. Bu döngünün ayrıntıları TTL ve DNS önbelleği kılavuzunda açıklanmıştır.

Doğru kontrol sırası

DNS hata kodu aldığınızda bu sırayı izleyin ve kestirmelerden kaçının:

  1. dig NS ile gerçek nameserver'ların hangileri olduğunu görün.
  2. Doğrudan o nameserver'a sorgu gönderin ve RCODE'u görün.
  3. Doğrudan sağlıklıysa, DNSSEC ve çözümleyici önbelleğine yönelin.
  4. Doğrudan hatalıysa, DNS panelindeki zone ve kaydı kontrol edin.

ir alan adları için ekstra bir katman daha vardır: eğer İrnic ya da yerel nameserver'lar aradaysa, yanıt dışarıdan doğru ve içeriden yanlış olabilir. Bu durumu ayrıca kontrol edin, çünkü hata deseni normal durumdan farklıdır.

Alan adını yeni kaydettiyseniz ve henüz hiçbir sunucuya bağlı değilse, önce alan adı arama ve kaydı ile kayıt ayarlarını tamamlayın, sonra sorun gidermeye geçin. DNS ve web sunucusunun aynı makinede toplandığı projeler için, zone dosyasına tam erişimi olan bir Linux hosting işi kolaylaştırır, çünkü dig @127.0.0.1 ile kendi sunucunuzun davranışını doğrudan görebilirsiniz.

Sık sorulan sorular

NXDOMAIN ile SERVFAIL arasındaki fark nedir?

NXDOMAIN kesin bir yanıttır: ad zone'da mevcut değildir. SERVFAIL ise çözümleyicinin yanıta ulaşamadığı ve nedenini bildirmediği anlamına gelir. NXDOMAIN alıyorsanız kaydı ya da zone'u kontrol edin; SERVFAIL alıyorsanız önce DNSSEC ve 53 numaralı portun erişilebilirliğini kontrol edin.

Neden bir çözümleyici yanıt veriyor da başka bir çözümleyici NXDOMAIN veriyor?

Neredeyse her zaman, alan adının nameserver'larının birbiriyle uyumlu olmadığı ya da birinin zone'u yüklemediği anlamına gelir. dig @ns1 ve dig @ns2 ile ikisini ayrı ayrı test edin. Yanıtlar farklıysa, sorun propagation değil, zone uyumsuzluğudur.

REFUSED kodu DNS'im hacklendi mi demek?

Hayır. REFUSED genellikle sunucunun yetkisiz ağlardan gelen sorguları doğru şekilde engellediği anlamına gelir. Açık çözümleyiciniz (open resolver) varsa, bu kod saldırı değil doğru ACL yapılandırmasının işaretidir. Tersi endişe vericidir: herkese yanıt veren ve yansıtmalı saldırıda kullanılan bir çözümleyici.

Kaydı değiştirdikten sonra DNS hata kodunun düzelmesi ne kadar sürer?

Panelin hızına değil, kaydın önceki TTL'ine bağlıdır. TTL 3600 ise, bir saate kadar bazı kullanıcılar eski yanıtı görebilir. Hassas değişiklikler için TTL'i önceden düşürün ve oturduktan sonra geri alın.

Bir kuralı aklınızda tutun: DNS hata kodunu önbellekten değil, asıl kaynaktan okuyun. Doğrudan authoritative server'a sorgu göndermediğiniz sürece, gördüğünüz her sonuç kontrolü sizin elinizde olmayan bir katmanla ilgili olabilir.

Bu sayfa yardımcı oldu mu?