Bir alan adına erişmeye çalıştığınızda tarayıcınız ya da terminaliniz size SERVFAIL yanıtı döndürüyorsa, sorun büyük olasılıkla sizin bilgisayarınızda değil, sorguyu çözmeye çalışan DNS sunucusundadır. SERVFAIL, bir DNS çözümleyicisinin (resolver) sorgunuza geçerli bir yanıt üretemediğini bildiren teknik bir durum kodudur. Bu rehberde SERVFAIL hatasının ne anlama geldiğini, hangi ortamlarda karşınıza çıktığını, en sık görülen nedenlerini ve adım adım nasıl teşhis edip çözebileceğinizi komut örnekleriyle birlikte anlatıyoruz.

Daha geniş bir bakış için DNS hataları rehberimize göz atabilir, benzer durumlar için DNS sunucusu yanıt vermiyor ve NXDOMAIN nedir yazılarını inceleyebilirsiniz.

SERVFAIL Hatası Nedir?

SERVFAIL, DNS protokolünde tanımlı bir yanıt kodudur (RCODE 2, yani Server Failure). Bir alan adını IP adresine çevirmeye çalışan çözümleyici sunucu, sorguya ne olumlu (kayıt bulundu) ne de olumsuz (kayıt yok, yani NXDOMAIN) kesin bir yanıt verebildiğinde bu kodu döndürür. Kısacası SERVFAIL, "sorguyu işlerken bir şeyler ters gitti ve güvenilir bir sonuç üretemedim" demektir. Bu nedenle SERVFAIL çoğu zaman alan adının gerçekten var olup olmadığıyla ilgili değil, çözümleme zincirindeki bir aksaklıkla ilgilidir.

NXDOMAIN ile karıştırılmamalıdır. NXDOMAIN, "bu alan adı DNS içinde yok" anlamına gelen kesin bir yanıttır. SERVFAIL ise belirsizliğe işaret eder: Yetkili sunucuya ulaşılamamış, bir zaman aşımı yaşanmış, DNSSEC doğrulaması başarısız olmuş veya zincirin bir halkası hatalı yapılandırılmış olabilir. Bu ayrım teşhis açısından önemlidir, çünkü SERVFAIL gördüğünüzde dikkatinizi alan adının yazımına değil, sunucu tarafındaki çözümleme sürecine çevirmeniz gerekir.

SERVFAIL Nerede ve Nasıl Görünür?

Bu durum ortama göre farklı yüzlerle karşınıza çıkar. Web tarayıcısında genellikle doğrudan "SERVFAIL" yazısını görmezsiniz; bunun yerine "Bu siteye ulaşılamıyor" veya isim çözümleme hatasına işaret eden genel mesajlar belirir. SERVFAIL ismini net biçimde gördüğünüz yer, teşhis araçlarıdır: dig, nslookup gibi komut satırı sorgulama programları yanıtın durum alanında bu kodu açıkça basar.

Sunucu tarafında ise SERVFAIL, e-posta sunucularının alıcı alan adını çözememesi, API isteklerinin bağlanamaması ya da ters vekil (reverse proxy) arkasındaki uygulamaların upstream alan adını bulamaması şeklinde görülebilir. İşletim sistemi düzeyinde çağrılan çözümleme fonksiyonları SERVFAIL aldığında, uygulamalara çoğu kez "ad çözülemedi" gibi daha genel bir hata iletir. Bu yüzden asıl kaynağı görebilmek için dig ile doğrudan sorgu yapmak en güvenilir yoldur.

  • Tarayıcı: "Bu siteye ulaşılamıyor" veya benzeri genel bağlantı hatası.
  • Terminal (dig/nslookup): Yanıtta status: SERVFAIL satırı.
  • E-posta sunucusu: Giden postaların alıcı alan adını çözememesi.
  • Uygulama/sunucu: Upstream veya veritabanı ana makinesine bağlanamama.

SERVFAIL Hatasının Nedenleri

SERVFAIL tek bir soruna değil, çözümleme zincirindeki birçok olası aksaklığa karşılık gelebilir. En sık görülen nedenleri bilmek, teşhisi büyük ölçüde hızlandırır. Bunların başında DNSSEC doğrulama hataları gelir: Alan adı DNSSEC ile imzalanmışsa ve imzalar süresi dolmuş, uyumsuz ya da zincirde kopuk ise, doğrulama yapan çözümleyici güvenli bir yanıt üretemediği için SERVFAIL döndürür.

İkinci büyük grup, yetkili (authoritative) ad sunucusu sorunlarıdır. Alan adının NS kayıtlarında gösterilen sunucular yanıt vermiyorsa, kapalıysa ya da sorgulara zaman aşımıyla karşılık veriyorsa, çözümleyici elindeki tüm sunucuları denedikten sonra SERVFAIL verir. Üçüncü grup yanlış yapılandırmadır: NS kayıtlarının yanlış sunuculara işaret etmesi, bölge (zone) dosyasındaki söz dizimi hataları, kopuk delegasyon (lame delegation) veya SOA kaydındaki tutarsızlıklar bu kategoriye girer.

  • DNSSEC doğrulama hatası: Süresi dolmuş veya uyumsuz imzalar, kopuk güven zinciri.
  • Yetkili sunucu sorunu: NS sunucularının kapalı olması veya zaman aşımı.
  • Yanlış yapılandırma: Hatalı NS/SOA kayıtları, kopuk delegasyon, zone dosyası hatası.
  • Çözümleyici tarafı: Kullandığınız resolver'ın geçici arızası veya ağ sorunu.
  • Hız sınırı/filtreleme: Güvenlik duvarının DNS yanıtlarını engellemesi.

dig ile Adım Adım Teşhis

SERVFAIL ile karşılaştığınızda ilk işiniz, hatanın kendi çözümleyicinizden mi yoksa alan adının yetkili sunucularından mı geldiğini ayırmaktır. dig komutu bunun için ideal bir araçtır. Önce alan adını varsayılan çözümleyicinizle sorgulayın, ardından aynı sorguyu farklı bir genel çözümleyiciyle tekrarlayın. Sonuç bir sunucuda SERVFAIL, diğerinde başarılı ise sorun büyük olasılıkla ilk çözümleyicide ya da ağ yolundadır.

# Varsayilan cozumleyici ile sorgu
dig example.com A

# Farkli bir genel cozumleyici ile dene (Google / Cloudflare)
dig @8.8.8.8 example.com A
dig @1.1.1.1 example.com A

# Yaniti ozetle: yalnizca durum kodunu gor
dig example.com +noall +comments

# DNSSEC dogrulamasini atlayarak dene (CD biti)
dig example.com +cd

# Yetkili NS sunucularini bul
dig example.com NS +short

Burada en belirleyici test +cd (checking disabled) bayrağıdır. Sorgu +cd ile başarılı oluyor ama normalde SERVFAIL dönüyorsa, sorun neredeyse kesinlikle DNSSEC doğrulamasıdır. Bu durumda alan adının imzaları, DS kaydı ve güven zinciri incelenmelidir. NS kayıtlarını bulduktan sonra her bir yetkili sunucuya doğrudan sorgu göndererek hangisinin yanıt vermediğini de tespit edebilirsiniz.

# Her yetkili sunucuya dogrudan sorgu gonder
dig @ns1.example.com example.com A
dig @ns2.example.com example.com A

# DNSSEC kayitlarini ayrintili incele
dig example.com DNSKEY +dnssec
dig example.com DS +dnssec

Adım Adım Çözümler

Teşhis sonucuna göre izleyeceğiniz yol değişir. Eğer sorun sizin tarafınızdaysa (yani başka bir çözümleyici çalışıyorsa), çözüm genellikle hızlıdır: Yerel DNS önbelleğini temizleyin ve güvenilir bir genel DNS sunucusuna geçin. Önbellek temizleme, eski veya bozuk bir yanıtın saklanmış olma ihtimalini ortadan kaldırır.

# Windows: DNS onbellegini temizle
ipconfig /flushdns

# macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

# Linux (systemd-resolved)
sudo resolvectl flush-caches

Ardından ağ ayarlarınızdaki DNS sunucusunu Google (8.8.8.8 ve 8.8.4.4) ya da Cloudflare (1.1.1.1 ve 1.0.0.1) olarak değiştirin. Modem ya da yönlendiriciniz sorunun kaynağıysa, cihazı yeniden başlatmak çoğu zaman geçici arızaları giderir. Bu adımlardan sonra sorun tek bir alan adıyla sınırlıysa ve başka siteler açılıyorsa, mesele artık sizin tarafınızda değil, alan adının kendi DNS yapılandırmasındadır.

Yönettiğiniz bir alan adı SERVFAIL veriyorsa, DNS sağlayıcınızın panelinden NS kayıtlarının doğru ve tutarlı olduğunu, yetkili sunucuların yanıt verdiğini ve varsa DNSSEC imzalarının geçerli olduğunu kontrol edin. DNSSEC imzaları süresi dolmuşsa yeniden imzalama (re-signing), kopuk güven zinciri varsa üst bölgedeki DS kaydının güncellenmesi gerekir. Sorunu kendiniz çözemiyorsanız DNS sağlayıcınızın destek ekibiyle iletişime geçmek en sağlıklı adımdır.

  • Yerel DNS önbelleğini temizleyin (ipconfig /flushdns, resolvectl flush-caches).
  • DNS sunucunuzu 8.8.8.8 veya 1.1.1.1 olarak değiştirin.
  • Modem ve yönlendiriciyi yeniden başlatın.
  • Alan adı sizinse NS, SOA ve DNSSEC kayıtlarını doğrulayın.
  • DNSSEC doğrulama hatası varsa imzaları ve DS kaydını yenileyin.

SERVFAIL ile Diğer DNS Hataları Arasındaki Fark

SERVFAIL'i doğru konumlandırmak için diğer yaygın DNS yanıtlarıyla karşılaştırmak faydalıdır. Aşağıdaki tablo, en sık karşılaşılan durumları ve temel anlamlarını özetliyor. Böylece gördüğünüz kodun neyi işaret ettiğini ve nereden başlamanız gerektiğini hızlıca anlayabilirsiniz.

Durum / KodAnlamıOlası odak
SERVFAILÇözümleyici geçerli yanıt üretemediDNSSEC, yetkili sunucu, yapılandırma
NXDOMAINAlan adı DNS'te yokYazım, kayıt eksikliği, süresi dolmuş domain
REFUSEDSunucu sorguyu reddettiYetki/erişim politikası, yanlış sunucu
Zaman aşımıYanıt hiç gelmediAğ, güvenlik duvarı, sunucu kapalı

Sık Sorulanlar

SERVFAIL hatası kendiliğinden düzelir mi?

Bazı durumlarda evet. Üst sunucuda geçici bir ağ sorunu veya kısa süreli bir yük yüzünden çıkan SERVFAIL, koşullar normale döndüğünde kaybolur. Ancak DNSSEC veya yapılandırma kaynaklı SERVFAIL kalıcıdır ve ilgili kayıtlar düzeltilmeden geçmez.

SERVFAIL ile NXDOMAIN aynı şey mi?

Hayır. NXDOMAIN, alan adının DNS içinde var olmadığını söyleyen kesin bir yanıttır. SERVFAIL ise çözümleyicinin güvenilir bir yanıt üretemediğini, yani belirsizliği ifade eder. Teşhis yaklaşımları da farklıdır.

DNSSEC yüzünden mi SERVFAIL alıyorum, nasıl anlarım?

dig example.com +cd komutunu çalıştırın. Sorgu +cd ile başarılı oluyor ama normalde SERVFAIL dönüyorsa neredeyse kesinlikle DNSSEC doğrulama sorunudur. Bu durumda imzaları ve DS kaydını kontrol edin.

Kendi çözümleyicimi değiştirmek sorunu çözer mi?

Yalnızca sorun sizin çözümleyicinizdeyse. 8.8.8.8 veya 1.1.1.1 gibi bir sunucuya geçince hata kayboluyorsa kaynak yerel çözümleyicinizdi. Alan adının yetkili sunucularından kaynaklanan SERVFAIL, hangi çözümleyiciyi kullanırsanız kullanın devam eder.