Giriş
dig (Domain Information Groper), DNS (Domain Name System) sorgulamaları gerçekleştirmek için kullanılan güçlü bir komut satırı aracıdır. Unix/Linux sistemlerinde bulunan bu araç, DNS kayıtlarını sorgulama, hata ayıklama ve DNS yapılandırmasını doğrulama için yaygın olarak kullanılır. Bu kılavuzda, dig komutunun temel syntax'ından ileri düzey kullanımlarına kadar tüm önemli özelliklerini detaylı olarak inceleyeceğiz.
Zorluk Seviyesi: Başlangıç düzeyinden ileri düzeye (Beginner → Advanced)
Not: Tüm komutlar Linux/Unix tabanlı sistemlerde çalışır. Windows kullanıcıları için WSL (Windows Subsystem for Linux) önerilir.
Temel Kullanım
Temel Sözdizimi ve İlk Sorgular
dig komutunun temel kullanımında, sorgulanacak alan adı (domain) ve opsiyonel olarak kayıt tipi belirtilir. Aşağıda en sık kullanılan temel komutlar yer almaktadır:
# Standart A kayıt sorgusu (varsayılan çözümleyici kullanılır)
dig example.com
# Belirli bir DNS sunucusuna sorgu gönderme
# Örnek: Google Public DNS (8.8.8.8)
dig example.com @8.8.8.8
# Belirli bir kayıt tipi sorgusu (örneğin MX kayıtları)
dig example.com mx
# Ters DNS araması (IP adresinden hostname'e)
dig -x 192.0.2.1
# Sadece cevap değerini göster (kısaltılmış çıktı)
dig example.com +short
İpucu:
+shortparametresi, çıktıyı sadece cevap değerine indirgeyerek okunabilirliği artırır. Bu özellikle komut satırında hızlı kontroller yaparken oldukça kullanışlıdır.
Sık Kullanılan Sorgular
Hostname ve IP Adresleri için Hızlı Kontroller
Aşağıdaki komutlar, DNS sorgulamalarında en sık karşılaşılan senaryolar için optimize edilmiştir:
# Temel A kayıt sorgusu
dig example.com
# Sadece IP adresini göster (kısaltılmış çıktı)
dig example.com +short
# Alt alan adı (subdomain) sorgusu
dig www.example.com
# Sadece cevap bölümünü göster (diğer kısımlar gizlenir)
dig example.com +noall +answer
# Ters DNS araması (sadece hostname gösterimi)
dig -x 192.0.2.1 +short
Uyarı:
+noall +answerparametreleri, çıktıyı sadece cevap bölümüne odaklayarak gereksiz bilgileri gizler. Bu özellikle büyük sorgularda çıktının okunabilirliğini artırır.
Kayıt Türleri ve Özel Sorgular
Farklı DNS Kayıtlarını Sorgulama
dig komutu, farklı DNS kayıt türlerini sorgulama yeteneği sunar. Aşağıda en yaygın kullanılan kayıt türleri ve ilgili komutlar yer almaktadır:
# IPv4 adres kayıtları (A kayıtları)
dig example.com a
# IPv6 adres kayıtları (AAAA kayıtları)
dig example.com aaaa
# E-posta sunucu kayıtları (MX kayıtları)
dig example.com mx
# Yetkili isim sunucuları (NS kayıtları)
dig example.com ns
# Metin kayıtları (TXT kayıtları)
dig example.com txt
# SOA (Start of Authority) kaydı
dig example.com soa
# Takma ad kontrolü (CNAME kaydı)
dig www.example.com cname
# Tüm kayıt türlerini sorgula (uyarı: birçok sunucu sınırlı veri döndürür)
dig example.com any
Not:
ANYsorgusu, birçok DNS sunucusu tarafından sınırlı olarak desteklenmektedir. Bu nedenle, güvenilir sonuçlar içinANYyerine belirli kayıt türlerini sorgulamak daha iyidir.
Çıktı Kontrolü ve Formatlama
Detaylı çıktıları basitleştirme
dig komutunun varsayılan çıktısı oldukça detaylıdır ve genellikle gereksiz bilgiler içerir. Aşağıdaki parametreler, çıktının okunabilirliğini artırmak için kullanılır:
# Sadece cevap değerini göster
dig example.com +short
# Sadece cevap bölümünü göster (diğer kısımlar gizlenir)
dig example.com +noall +answer
# Versiyon ve seçenekler başlığını gizle
dig +nocmd example.com
# Yorumlar ve sorgulama istatistiklerini gizle
dig example.com +nocomments +nostats
# TTL değerlerini dakika/saat gibi birimlerle göster
dig example.com +ttlunits
# Kayıtları her alan bir satır olacak şekilde çok satırlı göster
dig example.com +multiline
İpucu:
+multilineparametresi, özellikle karmaşık DNS kayıtlarını incelemek için kullanışlıdır. Bu parametre, her bir alanın ayrı bir satırda gösterilmesini sağlar.
Belirli DNS Sunucularına Sorgu Gönderme
Farklı DNS çözümleyicilerini karşılaştırma
Farklı DNS sunucularından gelen cevapları karşılaştırmak, DNS yapılandırmasını doğrulamak ve sorunları tespit etmek için önemlidir. Aşağıda yaygın olarak kullanılan DNS sunucularına sorgular göndermek için komutlar yer almaktadır:
# Google Public DNS (8.8.8.8) kullanarak sorgulama
dig example.com @8.8.8.8
# Cloudflare DNS (1.1.1.1) kullanarak sorgulama
dig example.com @1.1.1.1
# Quad9 (9.9.9.9) kullanarak sorgulama
dig example.com @9.9.9.9
# Belirli bir kayıt tipini belirli bir DNS sunucusuna sorgulama
# Örnek: MX kayıtlarını Google DNS üzerinden sorgulama
dig example.com mx @8.8.8.8
# Farklı DNS sunucularından TXT kayıtlarını karşılaştırma
dig example.com txt @1.1.1.1
# Tüm kayıtları farklı sunuculardan karşılaştırma
dig example.com any @8.8.8.8
dig example.com any @1.1.1.1
Uyarı: Farklı DNS sunucularından gelen cevaplar, DNS önbellekleme ve yerel yapılandırmalardan etkilenebilir. Bu nedenle, karşılaştırma yaparken farklı zamanlarda sorgulamalar yapmak önemlidir.
Gelişmiş Sorgular ve Hata Ayıklama
DNSSEC, TCP sorguları ve toplu sorgular
dig komutu, DNSSEC doğrulamasından TCP sorgularına kadar birçok gelişmiş özelliği destekler. Aşağıda bu özelliklerin kullanımına ilişkin komutlar yer almaktadır:
# Root sunucularından başlayarak DNS sorgulama zincirini izleme
dig example.com +trace
# DNSSEC kayıtlarını sorgula (yerel doğrulama yapılmaz)
dig example.com +dnssec
# DNSSEC doğrulama bayrağını kontrol et (ad flag)
dig example.com @1.1.1.1 +dnssec | grep flags
# Sorguyu TCP üzerinden zorla
dig example.com +tcp
# Dosyadan toplu sorgulama (örneğin domains.txt)
dig -f domains.txt +short
# dig versiyonunu göster
dig -v
Not:
+traceparametresi, DNS sorgulama zincirini adım adım izlemenizi sağlar. Bu özellikle karmaşık DNS yapılandırmalarını analiz etmek için oldukça kullanışlıdır.İpucu:
+tcpparametresi, büyük DNS yanıtlarının gönderilmesinde UDP'nin yetersiz kaldığı durumlarda kullanılır. Bu özellikle büyük kayıtları sorgularken önemlidir.
DNS Sorunlarını Giderme
Yaygın hata mesajları ve çözümleri
DNS sorgulamalarında karşılaşılan yaygın hata mesajları ve bu hataların olası nedenleri aşağıda listelenmiştir. Her bir hata için önerilen çözüm adımları da belirtilmiştir:
| Hata Mesajı | Olası Nedenler | Çözüm Adımları |
|---|---|---|
NXDOMAIN |
Alan adı mevcut değil, yazım hatası veya kayıtlı değil |
|
SERVFAIL |
DNSSEC hataları, yetkili sunucu erişilemezliği, yanlış yapılandırma |
|
REFUSED |
Sunucu sorguları reddediyor (örneğin özyineleme erişimi yok) |
|
connection timed out; no servers could be reached |
Ağ bağlantı sorunu, yanlış /etc/resolv.conf yapılandırması |
|
| Truncated reply (yanıt kesildi) | UDP üzerinden büyük yanıtlar gönderilemiyor |
|
Not: DNS sorgulamalarında karşılaşılan sorunların çoğu, ağ yapılandırması, DNS sunucu erişimi veya kayıtların doğru yapılandırılmamasından kaynaklanır. Sorun giderme sırasında sistematik bir yaklaşım benimsemek önemlidir.
İlgili Kaynaklar
Tam DNS iş akışları için rehberler
dig komutunun yanı sıra, DNS yapılandırmasını ve ağ bağlantısını doğrulamak için kullanılabilecek diğer araçlar ve kaynaklar aşağıda listelenmiştir:
- Linuxize: dig Komut Kullanımı -
digkomutunun detaylı kullanım kılavuzu - nslookup Kılavuzu - Daha basit etkileşimli DNS sorgulamaları
- ping Kılavuzu - DNS sorgulamalarından önce bağlantı testi
- IP Komut Kılavuzu - Ağ arayüzleri, adresler ve yolların incelenmesi
- curl Kılavuzu - DNS çözümlemesi sonrası HTTP erişilebilirliğinin testi

