DNS sorunlarını gidermek, tek bir aracı çalıştırıp çıkan sonucu doğru veya yanlış olarak etiketlemekten ibaret değildir. Kayıt sorgusu, alan adının yetkili sunuculara yönlendirilmesi, DNSSEC doğrulaması ve önbellek kullanımı farklı işlemlerdir. Sorunun hangisinde oluştuğunu anlamak için ilgili sunucuların yanıtlarını ve gerekirse günlüklerini karşılaştırmak gerekir.

dig, nslookup ve host belirli bir DNS sorgusuna verilen yanıtı gösterir. Recursive resolver (özyinelemeli DNS çözümleyicisi) günlükleri, recursive resolver hizmetinin sorguyu işlerken yaşadığı olayları kaydeder. Çevrimiçi DNS araçları ise kendi sunucularından sorgu göndererek kayıt, delegasyon veya DNSSEC sonuçlarını gösterebilir.

Bu araçların hiçbiri sorunun kesin nedenini tek başına kanıtlamaz. Güvenilir bir teşhis için aynı alan adı ve kayıt türü için yetkili DNS sunucusunun yanıtını, recursive resolver hizmetinin gördüğü sonucu, zaman bilgisini ve gerekiyorsa recursive resolver günlüklerini birlikte değerlendirin.

DNS Belirtisini ve Beklenen Sonucu Tanımlama

Araç seçmeden önce sorunun belirtisini açık biçimde tanımlayın. “DNS çalışmıyor” ifadesi; kaydın hiç bulunmaması, eski kaydın dönmesi, belirli bir recursive resolver hizmetinin hata vermesi, DNSSEC doğrulamasının başarısız olması veya yetkili DNS sunucusuna ulaşılamaması gibi farklı durumları kapsayabilir.

Teşhise başlarken alan adını, tam alt alan adını, sorgulanan kayıt türünü, beklenen değeri, sorgunun gönderildiği DNS sunucusunu ve test zamanını kaydedin. Sorun yalnız belirli bir bağlantıda yaşanıyorsa kullanılan ağı ve VPN durumunu da not edin. Kaynak adrese bağlı bir erişim sorunu araştırılıyorsa DNS sunucusunun günlüklerinde görülen kaynak IP adresini karşılaştırın; bir web sitesinin gördüğü genel IP adresi aynı olmayabilir.

A kaydı IPv4, AAAA kaydı IPv6 adresini, CNAME başka bir alan adına takma ad ilişkisini, MX ise e-posta sunucularını belirtir. Aynı alan adı için bu farklı kayıt türlerini sorgulamak farklı sonuçlar üretir. Bu nedenle karşılaştırdığınız bütün testlerde sorgu adını ve kayıt türünü aynı tutun. Aksi halde araçların farklı sonuç verdiğini düşünebilirsiniz, oysa gerçekte farklı sorular sormuş olursunuz.

Komut Satırı ve Çevrimiçi DNS Araçlarının Gösterdiği Bilgiler

DNS tanılama araçları benzer kayıtları gösterebilse de sundukları ayrıntı ve kullanım amacı aynı değildir. Tablo, her aracın hangi kontrolde öne çıktığını ve tek başına neyi açıklayamadığını gösterir.

AraçKullanım AmacıGösterdiği Temel BilgiTek Başına Açıklayamadığı Durum
digBelirli bir sunucunun sorguya verdiği ayrıntılı yanıtYanıt kodu, bayraklar, cevap, yetki ve ek bilgi bölümleri, seçilen sunucu ve sorgu süresiGörülen sonucun hangi yapılandırma hatasından kaynaklandığını kesinleştirmez.
nslookupAd çözümlemesinin temel olarak çalışıp çalışmadığını hızlıca kontrol etmeKullanılan DNS sunucusu ve dönen temel kayıt bilgileriKarmaşık delegasyon ve doğrulama sorunlarında yeterli ayrıntıyı her zaman sunmaz.
hostAdres, MX veya NS gibi kayıtları kısa ve okunaklı biçimde görüntülemeİstenen kayıt türünün özet sonucuYanıt bayrakları ve çözümleme süreciyle ilgili ayrıntılar sınırlı kalabilir.
Recursive resolver günlükleriRecursive resolver hizmetinin sorguyu işlerken yaşadığı olayları incelemeÖnbellek kullanımı, tekrar denemeler, doğrulama hataları ve uygulamanın kaydettiği işlem ayrıntılarıKaydedilen ayrıntılar günlük düzeyine ve recursive resolver yapılandırmasına bağlıdır.
Çevrimiçi DNS araçlarıYerel cihazdan bağımsız kayıt, DNSSEC veya genel DNS yapısı kontrolüDışarıdan görülen sonuçlar ve aracın işlevine göre DNS yapısıyla ilgili bulgularTek kontrol noktasının sonucu bütün kullanıcıların aynı yanıtı gördüğünü kanıtlamaz.

dig, DNS yanıtlarını karşılaştırırken genellikle en kapsamlı çıktıyı sunar. nslookup yaygın sistemlerde hızlı başlangıç kontrolü için, host ise temel kayıtları sade biçimde görmek için uygundur.

Sorguyu kendi sunucularından gönderen çevrimiçi DNS araçları, belirli kayıt türlerini yerel terminal kullanmadan dışarıdan kontrol etmeye yarar. DNS Sağlık Kontrolü ise tek bir kayıt değerinin ötesinde delegasyon ve DNS yapısıyla ilgili birden fazla bulguyu birlikte gösterir. Bu araçları komut satırı sonuçlarının yerine değil, farklı bir gözlem noktası olarak kullanın.

DNS Yanıt Kodları ve Ek Tanılama Bilgileri

DNS yanıtı yalnız dönen IP adresinden oluşmaz. Sorgu ve yanıt yapısında durum kodu, cevap bölümü, yetki bilgileri ve ek bilgiler bulunabilir. Sorunun türünü belirlemek için kayıt değeriyle birlikte bu alanları da değerlendirin.

NOERROR, sorgunun DNS protokolü bakımından hatasız işlendiğini belirtir; istenen kaydın mutlaka cevap bölümünde bulunduğu anlamına gelmez. Alan adı mevcut olduğu halde sorgulanan kayıt türü bulunmuyorsa NOERROR ile boş cevap alınabilir. Bu durumu NXDOMAIN ile karıştırmayın.

NXDOMAIN, sorgulanan alan adının bulunmadığını gösterir. SERVFAIL, DNS sunucusunun bir sorun nedeniyle sorguyu işleyemediğini; REFUSED ise sunucunun sorguyu yanıtlamayı reddettiğini gösterir. Bu kodlar teşhisi daraltır ancak tek başına DNSSEC hatası, yetki sorunu veya ağ kesintisi gibi belirli bir kök nedeni kanıtlamaz.

Bazı recursive resolver hizmetleri, normal DNS yanıt koduna ek olarak EDE (Extended DNS Error) bilgisi verebilir. Bu ek açıklama, çözümleme veya doğrulama sırasında hangi engelle karşılaşıldığını daha ayrıntılı gösterebilir. Ancak her recursive resolver bu bilgiyi üretmez ve her araç göstermez; EDE bilgisi görünmese de DNS hatası devam ediyor olabilir.

RFC 9520 standardı, recursive resolver hizmetlerinin çözümleme başarısızlıklarını en az bir saniye ve en fazla beş dakika önbellekte tutmasını gerektirir. Bu nedenle aynı SERVFAIL yanıtının kısa aralıklarla tekrarlanması, yetkili DNS sunucusunun her yeni test anında aynı hatayı verdiğini kanıtlamaz. Recursive resolver, önbelleğe aldığı çözümleme başarısızlığı nedeniyle yeniden SERVFAIL döndürüyor olabilir.

Yetkili DNS Sunucusu ile Recursive Resolver Sonuçlarını Karşılaştırma

Yetkili DNS sunucusu, sorumlu olduğu bölge için yayımlanan asıl kayıtları sunar. Recursive resolver ise istemci adına DNS sorgularını yürütür, sonuçları önbelleğe alabilir ve yapılandırmasına bağlı olarak DNSSEC doğrulaması yapabilir.

Yetkili DNS sunucusuna yapılan sorgu “bölgenin kaynağında şu anda hangi kayıt yayımlanıyor?” sorusunu cevaplar. Recursive resolver hizmetine yapılan sorgu ise “kullanıcı bu recursive resolver üzerinden şu anda hangi sonucu görüyor?” sorusuna cevap verir. Bu iki yanıt aynı amaçla yorumlanmamalıdır.

Yetkili DNS sunucusunda yeni değer görülürken recursive resolver hizmetinde eski değerin dönmesi, önbellek süresiyle uyumlu olabilir. TTL, DNS kaydının yeniden sorgulanmadan önbellekten kullanılabileceği süreyi saniye olarak belirtir; eski yanıt, alındığı sıradaki TTL değeriyle saklanır. Yazılım kaydı daha erken kaldırabilir; bazı hizmetler erişim sorunu sırasında süre aşmış veriyi belirli koşullarda kullanabilir. Yetkili DNS sunucusu doğru yanıt verirken recursive resolver hizmetinin SERVFAIL döndürmesi ise DNSSEC doğrulaması, delegasyon, yetkili DNS sunucusuna erişim veya önbellekte tutulan bir çözümleme başarısızlığından kaynaklanabilir.

Aynı sorguyu ikinci bir recursive resolver hizmetinde denemek, sorunun belirli bir recursive resolver hizmetine bağlı olup olmadığını anlamaya yardımcı olabilir. Ancak ikinci recursive resolver hizmetinin farklı yanıt vermesi, ilk recursive resolver hizmetinin kesinlikle bozuk olduğu anlamına gelmez. Önbellekte kalan süre, doğrulama davranışı ve sorgu anındaki erişilebilirlik farklı olabilir.

Karşılaştırma yaparken yetkili DNS sunucusunun adını, recursive resolver hizmetinin IP adresini, sorgu zamanını, tam alan adını ve kayıt türünü kaydedin. Bu bilgiler olmadan alınan ekran görüntüleri veya kopyalanmış sonuçlar daha sonra güvenilir biçimde karşılaştırılamaz.

Kayıt, Delegasyon, DNSSEC ve Yayılım Kontrolleri

Gerekli kontrolü hatanın belirtisine göre seçin; her olayda bütün araçları çalıştırmanız gerekmez. Yetkili DNS sunucusunda beklenen kayıt yoksa önce bölge içeriğini kontrol edin. Yetkili sunucu güncel kayıt verirken bir recursive resolver eski yanıt döndürüyorsa önbellek durumunu araştırın.

Kayıt Sorgusu

Kayıt sorgusu, belirli bir ad için istenen kayıt türünün döndürülüp döndürülmediğini gösterir. Adres ve e-posta kayıtlarına ek olarak yetkili DNS sunucularını belirten NS veya metin bilgisi taşıyan TXT gibi kayıtlar da sorgulanabilir. dig ayrıntılı yanıt yapısını gösterir; nslookup hızlı bir temel kontrol sağlar; host kısa ve okunabilir bir sonuç verir. Bir site aracı da yerel yazılım kurmadan aynı kayıt türlerinin dışarıdan nasıl göründüğünü gösterir.

Kayıt bulunamaması her zaman bölgenin tamamen çalışmadığını göstermez. Yanlış alt alanın yazılması, kayıt türünün karıştırılması veya CNAME zincirinin yalnız ilk adımına bakılması beklediğiniz kayıtla aldığınız yanıtın uyuşmamasına neden olabilir.

Delegasyon Kontrolü

Delegasyon, üst DNS bölgesinin alan adını hangi yetkili DNS sunucularına yönlendirdiğini belirler. Kontrol sırasında üst bölgeden görülen NS kayıtlarını, bu sunucuların erişilebilirliğini ve yetkili bölge içindeki NS bilgilerini karşılaştırın.

Alan adının kendi yetkili DNS sunucusunda doğru NS kayıtlarının bulunması, üst bölgedeki delegasyonun da doğru olduğunu kanıtlamaz. Üst bölgede eski veya yanlış DNS sunucuları yer alabilir. Bunun tersi de olabilir: Üst bölge doğru sunucuları gösterirken bu sunuculardan biri bölgeyi yetkili olarak sunmuyor olabilir.

Toplu DNS kontrolü, delegasyonla ilgili birden fazla bulguyu tek görünümde gösterebilir. Yine de uyarıyı kesin neden olarak kabul etmeden önce aracın hangi kayıtları ve sunucuları incelediğine bakın.

DNSSEC Kontrolü

DNSSEC kontrolü, kaydın var olup olmadığından farklı olarak doğrulama zincirinin tamamlanıp tamamlanamadığını inceler. Genel doğrulama sonucu, zincirin başarılı olup olmadığını gösterir. DNSKEY açık anahtarı taşır; üst bölgedeki DS kaydı, alan adı ve DNSKEY verisinden hesaplanan özetle bu anahtara güven bağlantısı kurar. Bu bağlantı, DNSKEY kayıt kümesinin imzası ve sorgulanan verinin imzası birlikte doğrulanmalıdır.

Yetkili DNS sunucusundan kayıt alınabildiği halde doğrulama yapan recursive resolver hizmetinin SERVFAIL vermesi DNSSEC sorunuyla uyumlu olabilir. Ancak SERVFAIL tek başına bir DNSSEC arızasını kanıtlamaz. DS, DNSKEY ve ilgili doğrulama bulgularını birlikte inceleyin. dig +trace delegasyonu izler, ancak DNSSEC imzalarını doğrulamaz; başarılı bir izleme çıktısı DNSSEC zincirinin geçerli olduğunu kanıtlamaz. İmzaları istemci tarafında ayrıca doğrulamak için delv kullanılabilir.

DNSSEC sonucu tek başına bütün sistemin güvenli olduğunu göstermez. Başarılı doğrulama, DNS verisinin doğrulanabilir bir zincir üzerinden geldiğini gösterebilir; web sunucusunun, uygulamanın veya kullanıcı cihazının güvenliğini kanıtlamaz.

Yayılım ve Önbellek Kontrolü

DNS yayılım kontrolü, tek bir kaydın bütün dünyaya aynı anda kopyalanmasını ölçmez. Farklı recursive resolver hizmetlerinden dönen yanıtları ve bunların yetkili DNS sunucusundaki güncel değerle ne ölçüde uyuştuğunu karşılaştırır. Bu sorgular önbelleğin içeriğini doğrudan göstermez; önbellekte uygun kayıt yoksa recursive resolver test sırasında yeni bilgi edinebilir.

Farklı kontrol noktalarında eski ve yeni değerlerin birlikte görülmesi her zaman yapılandırma hatası değildir. Recursive resolver hizmetlerinin kaydı farklı zamanlarda önbelleğe alması, önceki olumsuz yanıtların saklanması veya testlerin farklı sunucular üzerinden yapılması sonucu etkileyebilir.

Yayılımı değerlendirirken önce yetkili DNS sunucusunda beklenen kaydın yayımlandığını doğrulayın. Farklı noktalarda aynı yanlış yanıtın görülmesi, bütün dünyadaki önbelleklerin yenilendiğini veya yapılandırmanın doğru olduğunu kanıtlamaz.

Recursive Resolver Günlüklerini Kullanma

Komut satırı ve çevrimiçi DNS araçları DNS işleminin dışarıdan görülen sonucunu gösterir. Recursive resolver günlükleri ise recursive resolver hizmetinin sorguyu işlerken hangi adımları izlediğini, hangi hataları kaydettiğini ve önbellekten yanıt verip vermediğini açıklayabilir.

Bu günlüklere genellikle yalnız hizmet yöneticisi erişebilir; kamuya açık bir recursive resolver kullanıyorsanız gerekli incelemeyi DNS sağlayıcısından isteyin. Günlükler özellikle aralıklı SERVFAIL, yalnız belirli istemcilerde görülen hata, beklenmeyen tekrar denemeler ve DNSSEC doğrulama şüphesinde değerlidir. İncelenecek temel alanlar sorgu zamanı, tam sorgu adı, kayıt türü, istemci ve ona hangi DNS verilerinin sunulacağını belirleyen görünüm bilgisi, önbellek durumu ve uygulamanın kaydettiği hata nedenidir.

Her recursive resolver aynı ayrıntıyı kaydetmez. Günlük düzeyi, gizlilik politikası, örnekleme ve saklama süresi nedeniyle bazı sorgular görünmeyebilir. Günlükte kayıt bulunmaması, istemcinin kesinlikle sorgu göndermediğini kanıtlamaz; istemci farklı bir recursive resolver kullanmış veya ilgili olay kaydedilmemiş olabilir.

Günlük kaydını, dışarıdan alınan komut çıktısıyla zaman bakımından eşleştirin. Birkaç dakika sonra alınan başarılı yanıt, önceki başarısızlığın yaşanmadığını göstermez. Aynı şekilde alan adı, kayıt türü, istemci ve zaman uyuşmuyorsa günlükteki bir hatayı kullanıcının yaşadığı sorunun kesin nedeni olarak kabul etmeyin.

DNS Araçlarındaki Farklı Sonuçlar Neden Kesin Kanıt Değildir?

DNS aracının gösterdiği sonuç, kullanılan recursive resolver hizmetine ve test anına bağlıdır. Bir çevrimiçi DNS aracının farklı IP adresi göstermesi tek başına ele geçirme saldırısını kanıtlamaz. Böyle bir şüphede ağ yapılandırmasını, değişiklik kayıtlarını ve ilgili sistem günlüklerini de inceleyin. Aynı şekilde tek bir SERVFAIL yanıtı DNSSEC arızasını, boş cevap da alan adının bulunmadığını kesinleştirmez.

Coğrafi DNS yönlendirmesi, yük dağıtımı, ağa göre farklı yanıt üreten split-horizon yapılandırması, farklı önbellekler veya birden fazla geçerli kayıt beklenen biçimde farklı yanıtlar üretebilir. Sonuç beklenenden farklıysa önce bunun yapılandırmanın amaçlanan davranışı olup olmadığını doğrulayın.

Yanıt süresi tek başına sorunun nedenini göstermez. Bir sorgunun geç yanıtlanması recursive resolver hizmetinin yükünden, ağ gecikmesinden, yetkili DNS sunucusuna erişimden veya ilk sorguda gereken ek çözümleme adımlarından kaynaklanabilir. Tek ölçüm yerine aynı koşullarda alınan birden fazla gözlemi değerlendirin.