Linux Üzerinde Dig Komutu Nedir, Nasıl Kullanılır

Home » Linux » Linux Üzerinde Dig Komutu Nedir, Nasıl Kullanılır
Linux Yorum yapılmamış

Bir linux kullanıcısının/yöneticisinin temel komutlarından biri olan “dig” hakkında bilgi vermeye çalışacağım. Önce temelde ne olduğu, hangi amaçlar için ve nasıl kullanıldığını inceleyelim.
Dig Nedir ?
dig komutu(Domain Information Groper- Domain Bilgi Yoklayici) anlamına gelir ve nslookup benzeri olup Dns sorguları için kullanılır. Linux ile bütünleşik gelsede Windows ile bütünleşik halde gelmez fakat sonradan kurulabilir. Fakat linux üzerinde basic kurulumlarda da gelmeyebilir. Bunun için basit bir şekilde paket yöneticisi yardımı ile mevcut repolar üzerinden kurulabilir.

Kurulumu,
Debian/Ubuntu dağıtımları için,

Rhel / Centos / Fedora dağıtımları için,

Kullanımı (Örnekler),

Önce alan adına basit bir sorgu atalım ve dns kayıtlarını görelim.

Diğer örneklere geçmeden önce çıkan bu sonucu inceleyelim,

İlk kısım dig’in kendisi ile ilgili bilgi verdiği kısımdır. Sorgularda şayet bu bilgiyi görmek istemiyorsanız “+nocmd” seçeneği ile ekrana yazdırmasını önleyebilirsiniz.

İkinci kısım komutumuzun yaptığı sorguya ait alınan yanıtların ve bilgilerin özet kısmıdır. Yine bu bilgiyi görülmesi istenmiyorsa “+nocomments” opsiyonu eklenebilir.

Yukarıdaki iki opsiyonu kullandığımız hali aşağıdaki gibidir.

Üçüncü kısım ise sorgu türü ile ilgili bilgi vermektedir. Burada sorgumuzun türünün bir A kaydı olduğunu ve sorgu atılan domaini görebiliriz. Yine bu bilgi de gereksiz ve fazla bu nedenle gözükmesin istenirse “+noquestion” seçeneği eklenebilir.

Dördüncü kısımda ise sorgumuza dönülen yanıta ait bilgi bulunmaktadır. Örnekte incelediğim domain için A kaydı bulunmuş ve listelenmiş durumdadır.

Beşinci kısımda ise yanıtı dönen authority-yetkili dns sunucular listelenmektedir. (NS sunucular).

Altıncı kısımda ise yapılan sorguya ait bilgiler yer almaktadır. Bu bölümde “nostats” seçeneğinin eklenmesi ile görülmeyebilir.

Şimdi tüm bu kısımlardaki ek/detay/gereksiz bilgileri atarak yalın yanıtı görmek istersek,

Bunları listelemek gerekirse,
+nocomments ->Sorgu cevaplarına ait detay bilgilerin gözükmemesi sağlanır.
+noauthority   ->Yetkili dns sunucularının gözükmemesi sağlanır.
+noadditional ->Authority kısmında belirtilen yetkili dns sunucu IP adreslerinin gözükmemesi sağlanır.
+nostats           ->Yapılan sorgu ile ilgili bilgilerin gözükmemesi sağlanır.
+noanswer      ->Yapılan sorgunun döndüreceği cevap bölümünün gözükmemesi sağlanır. (mantıklı değil ama sorgu mantığına göre değişir.)
+noquestion   ->Sorgu türü ile ilgili ilgili verilen bilgilerin gözükmemesi sağlanır.

Burada ufak ufak örneklere geçmeye başlayalım. Yukarıda dig komutumuza bir sürü ek komut getirerek yalınlaştırdık. Fakat bunu aşağıdaki şekillerde de sağlayabiliriz.

Örneği yalnızca yanıtı görmek için,

Not: Yukarıdaki örnekte gelecek argümanın veya ek komutun satır sonuna yazıldığını da görebilirsiniz.

Diğer bir şekilde yalnızca sorgu yanıtı için,

Buraya kadar dns/host ile sorgu yaptık ve yanıtını IP karşılığını gördük. Şimdide IP adresini yazarak host/dns karşılığını görelim. Diğer bir ismi ise ters dns/revers dns kaydı, (bunun için aşağıda göreceğiniz gibi “x” argümanını ekliyorum. İleride ne olduğunu anlatacağım.)

Buraya kadar dig ile sorguların en basit ve sade halini gördük. İleriki örneklerde daha da spesifik hallerde sorgularımız olacak. Fakat hazır başlarındayken bir dig sorgusunu kolayca nasıl çıktısını kaydederiz onu görelim,

Yaptığımız dns sorgularını sorguyu yazdığımız bilgisayar/sunucunun dns adresi ne ise onun üzerinden yaptık. Yani ben buraya kadar yaptığım örneklerimde sunucumun dns adresi google dns olduğu için yanıtları google dns üzerinden döndü. Bu noktada farklı bir dns sunucusu üzerinden nasıl sorgu atabiliriz bunu görelim,
Örneğin opendns üzerinden sorgumuzu atalım,

Not: Bu işlem hangi noktada işe yarar onu anlatayım. Bir dns kaydı güncellediniz ve kimi yer eski dns adresini kimisi ise yeni adresi görüyor. Bu yöntem ile hangi root dns sunucularının yeni dns adresinizi update ettiğini görebilirsiniz.

Şimdi yukarıdaki örnek ve hemen altında düştüğüm notdan yola çıkarak nasılki bir ip adresine ping atıyoruz ve hangi yollardan geçtiğini görmek için trace komutunu kullanıyorsak, dns sorgusunu atarkende aynı mantık hangi dns root sunucuları kullandığımızı görebiliriz. Aşağıdaki örneği dikkatli incelemenizde fayda olacaktır.

Sorgularımızı hep düz A kaydı olarak yaptık (default değer). Peki farklı dns kayıtlarını nasıl sorgularız onu görelim.
Örneğin domaine ait Mx kaydını sorgulamak için,

Yada sorgumuzun amacı txt kaydı ise,

Farklı bir örnek olarak ise NS kayıtlarımızı listeleyelim,

Tüm dns kayıtlarını görmek istiyorsak dig komutumuza yalnızca “ANY” eklememiz yeterli,

Diyelimki elinizde bir çok domain var ve toplu sorgu yapmak istiyorsunuz. O zaman bu örneğimiz tam size göre. Tabi daha da spesifik sorgu için argüman/seçenek takviyesi ile istediğiniz kıvama getirmeniz mümkün.
Örneğin aşağıdaki alan adlarını salih.txt diye bir dosyada toplayalım.

Şimdi dosyamızı kullanarak sorgumuzu atalım,

Dosya üzerinde birden fazla domain sorgusu yapmayı gördük. Peki ya console üzerinden nasıl yaparız sorunun yanıtı aşağıda,

Nasıl sorgu yapacağımızı, sorgu yaparken görmek istediğimiz bilgileri, istemediklerimizi nasıl kapatacağımızı v.b. konuları işledik. Peki her defasında elle bir sürü komut yazmaktansa bunu daha da basitleştirerek nasıl yaparız buna değineyim.
Örneğin her defasında sorgularda kısa yanıtlar almak için “+noall +answer” seçeneklerini ekliyoruz. Bu seçenekleri otomatize ederek kendiliğinden eklenmesini sağlayalım ve basit bir sorgu yapalım.
Bunun için,

Parametre/Seçenekleri dosyamıza işledik. Şimdi sorgumuzu atalım,

Detaylı bilgi için dig komutunun man sayfası incelenebilir.