dig Komut Kılavuzu: DNS Sorgulamaları için Kapsamlı Başvuru

DNS sorgulamalarında kullanılan dig komutunun temel ve ileri düzey kullanım örnekleri. A, MX, TXT kayıtları sorgulama ve çıktı kontrolü.

L
Linuxize
1 görüntülenme

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: +short parametresi, çı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 +answer parametreleri, çı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: ANY sorgusu, birçok DNS sunucusu tarafından sınırlı olarak desteklenmektedir. Bu nedenle, güvenilir sonuçlar için ANY yerine 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: +multiline parametresi, ö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: +trace parametresi, 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: +tcp parametresi, 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
  1. Alan adının yazımını kontrol edin
  2. Alan adının kayıtlı olup olmadığını doğrulayın (örneğin whois sorgusu)
  3. Alternatif alan adlarını deneyin
SERVFAIL DNSSEC hataları, yetkili sunucu erişilemezliği, yanlış yapılandırma
  1. DNSSEC doğrulaması yapın (örneğin +dnssec)
  2. Yetkili sunucuların erişilebilir olup olmadığını kontrol edin
  3. Farklı bir DNS sunucusu kullanarak sorgulayın
REFUSED Sunucu sorguları reddediyor (örneğin özyineleme erişimi yok)
  1. Sunucunun özyineleme (recursion) erişimini kontrol edin
  2. Yetkili sunuculara doğrudan sorgulama yapın
  3. Farklı bir DNS sunucusu kullanmayı deneyin
connection timed out; no servers could be reached Ağ bağlantı sorunu, yanlış /etc/resolv.conf yapılandırması
  1. /etc/resolv.conf dosyasını kontrol edin ve doğru DNS sunucularını listelediğinden emin olun
  2. Ağ bağlantınızı kontrol edin
  3. TCP üzerinden sorgulama yapmayı deneyin (+tcp)
Truncated reply (yanıt kesildi) UDP üzerinden büyük yanıtlar gönderilemiyor
  1. TCP üzerinden sorgulama yapmayı deneyin (+tcp)
  2. Kayıt sayısını azaltın veya +short kullanın

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:

Kaynak

Linuxize