Cara Menggunakan Perintah dig di Linux

Diterbitkan: 2022-01-29
Jendela terminal bergaya pada sistem Linux.
Fatmawati Achmad Zaenuri/Shutterstock

Perintah dig Linux memungkinkan Anda untuk menanyakan server DNS dan melakukan pencarian DNS. Anda juga dapat menemukan domain tujuan kembalinya alamat IP. Kami akan menunjukkan caranya!

Bagaimana Perintah penggalian Bekerja

Orang-orang menggunakan perintah Linux dig untuk menanyakan server Domain Name System (DNS). dig adalah singkatan dari Domain Information Groper. Dengan dig , Anda dapat menanyakan server DNS untuk informasi mengenai berbagai catatan DNS, termasuk alamat host, pertukaran email, server nama, dan informasi terkait. Itu dimaksudkan untuk menjadi alat untuk mendiagnosis masalah DNS. Namun, Anda dapat menggunakannya untuk melihat-lihat dan mempelajari lebih lanjut tentang DNS, yang merupakan salah satu sistem pusat yang menjaga lalu lintas perutean internet.

Internet menggunakan alamat protokol internet (IP) untuk mengidentifikasi "lokasi" di sekitar web, tetapi orang menggunakan nama domain. Saat Anda mengetik nama domain ke dalam aplikasi, seperti browser web atau klien SSH, sesuatu harus diterjemahkan dari nama domain ke alamat IP yang sebenarnya. Di sinilah Sistem Nama Domain masuk.

Saat Anda menggunakan nama domain dengan program apa pun yang terhubung ke internet, router lokal Anda tidak dapat menyelesaikannya (kecuali jika di-cache dari permintaan sebelumnya). Jadi, router Anda menanyakan server DNS Penyedia Layanan Internet (ISP) Anda, atau server lain yang telah Anda konfigurasikan untuk digunakan oleh sistem Anda. Ini disebut server prekursor DNS.

Jika server DNS baru-baru ini menerima permintaan yang sama dari orang lain di komputer yang sama, jawabannya mungkin ada di cache -nya . Jika itu masalahnya, itu hanya mengirimkan informasi yang sama kembali ke program Anda.

Jika server prekursor DNS tidak dapat menemukan domain dalam cache-nya, server tersebut akan menghubungi server nama root DNS. Server root tidak akan menyimpan informasi yang diperlukan untuk menyelesaikan nama domain ke alamat IP, tetapi akan menyimpan daftar server yang dapat membantu permintaan Anda.

Iklan

Server root melihat domain tingkat atas tempat nama domain Anda berada, seperti .COM, .ORG, .CO.UK, dan seterusnya. Kemudian mengirimkan daftar server domain tingkat atas yang menangani jenis domain tersebut kembali ke server pendahulu DNS. Server prekursor DNS kemudian dapat membuat permintaannya sekali lagi, ke server domain tingkat atas.

Server domain tingkat atas mengirimkan detail server nama otoritatif (tempat detail domain disimpan) kembali ke server pendahulu DNS. Server DNS kemudian menanyakan server nama otoritatif yang menghosting zona domain yang awalnya Anda masukkan ke dalam program Anda. Server nama otoritatif mengirimkan alamat IP kembali ke server DNS, yang, pada gilirannya, mengirimkannya kembali kepada Anda.

Menginstal penggalian

dig sudah diinstal di komputer Ubuntu 18.04 dan Fedora 30 kami. Namun, kami harus menginstalnya di komputer Manjaro 18.04 dengan perintah berikut:

 sudo pacman -Sy bind-tools 

Memulai dengan dig

Dalam contoh pertama kami, kami akan mengembalikan alamat IP yang terkait dengan nama domain. Seringkali, beberapa alamat IP dikaitkan dengan satu nama domain. Ini sering terjadi jika load balancing digunakan, misalnya.

Kami menggunakan opsi kueri +short , seperti yang ditunjukkan di bawah ini, yang memberi kami respons singkat:

 gali howtogeek.com +pendek 

Semua alamat IP yang terkait dengan domain howtogeek.com terdaftar untuk kami. Di ujung lain spektrum, jika kita tidak menggunakan opsi kueri +short , hasilnya cukup bertele-tele.

Iklan

Jadi, kami mengetik yang berikut untuk menyalurkannya melalui less :

 gali howtogeek.com | lebih sedikit 

Output ditampilkan dalam less , seperti yang ditunjukkan di bawah ini.

Berikut daftar lengkapnya:

 ; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> howtogeek.com
;; opsi global: +cmd
;; Mendapat jawaban:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12017
;; bendera: qr rd ra; PERTANYAAN: 1, JAWABAN: 4, OTORITAS: 0, TAMBAHAN: 1

;; OPT PSEUDOSEKSI:
; EDNS: versi: 0, bendera:; udp: 65494
;; BAGIAN PERTANYAAN:
;howtogeek.com. DI SEBUAH

;; BAGIAN JAWABAN:
howtogeek.com. 3551 DALAM A 151.101.194.217
howtogeek.com. 3551 DALAM A 151.101.130.217
howtogeek.com. 3551 DALAM 151.101.66.217
howtogeek.com. 3551 DALAM A 151.101.2.217

;; Waktu kueri: 0 mdtk
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; KAPAN: Min 22 Mar 07:44:37 EDT 2020
;; UKURAN MSG rcvd: 106

Mari kita membedahnya sepotong demi sepotong.

tajuk

Pertama, mari kita lihat yang kita miliki di Header:

 ; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> howtogeek.com
;; opsi global: +cmd
;; Mendapat jawaban:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12017
;; bendera: qr rd ra; PERTANYAAN: 1, JAWABAN: 4, OTORITAS: 0, TAMBAHAN: 1

Sekarang, inilah arti semua itu:

  • Baris pertama: Versi dig dan domain yang ditanyakan.
  • Opsi global: Seperti yang akan kita lihat, Anda dapat menggunakan dig untuk menanyakan beberapa domain secara bersamaan. Baris ini menunjukkan opsi yang telah diterapkan ke semua kueri domain. Dalam contoh sederhana kami, itu hanya opsi +cmd (perintah) default.
  • Opcode: Query: Ini adalah jenis operasi yang diminta yang, dalam hal ini, adalah query . Nilai ini juga dapat berupa iquery untuk kueri terbalik, atau status jika Anda hanya menguji status sistem DNS.
  • Status: Noerror: Tidak ada kesalahan dan permintaan telah diselesaikan dengan benar.
  • ID: 12017 : ID acak ini mengikat permintaan dan respons bersama-sama.
  • Flags: qr rd ra: Ini berdiri untuk query , recursion desired , dan recursion available . Rekursi adalah salah satu bentuk pencarian DNS (yang lainnya adalah iteratif). Anda mungkin juga melihat AA , yang merupakan singkatan dari Authoritative Answer, artinya Server Nama Resmi yang memberikan respons.
  • Kueri: 1: Jumlah kueri dalam sesi ini, yang satu.
  • Jawaban: 4: Jumlah jawaban dalam jawaban ini, yaitu empat.
  • Otoritas: 0: Jumlah jawaban yang berasal dari Server Nama Resmi, yang dalam kasus ini adalah nol. Respons dikembalikan dari cache server prekursor DNS. Tidak akan ada bagian otoritatif dalam tanggapan.
  • Tambahan: 1: Ada satu informasi tambahan. (Anehnya, tidak ada yang terdaftar kecuali nilai ini dua atau lebih tinggi.)

Pilih Pseudosection

Selanjutnya, kita melihat yang berikut di bagian Opt Pseudo:

 ;; OPT PSEUDOSEKSI:
; EDNS: versi: 0, bendera:; udp: 65494

Mari kita uraikan:

  • EDNS: versi 0: Versi Sistem Ekstensi untuk DNS yang sedang digunakan. EDNS mentransmisikan data dan flag yang diperluas dengan memperluas ukuran paket User Datagram Protocol (UDP). Ini ditunjukkan oleh bendera ukuran variabel.
  • flag: Tidak ada flag yang digunakan.
  • udp : 4096: Ukuran paket UDP.

Bagian Pertanyaan

Di bagian Pertanyaan, kita melihat yang berikut:

 ;; BAGIAN PERTANYAAN:
;howtogeek.com. DI SEBUAH

Berikut artinya:

  • howtogeek.com: Nama domain yang kami tanyakan.
  • IN: Kami sedang membuat kueri kelas internet.
  • J: Kecuali jika kami menentukan lain, dig akan meminta catatan A (alamat) dari server DNS.

Bagian Jawaban

Bagian Jawaban berisi empat jawaban berikut yang kami terima dari server DNS:

 howtogeek.com. 3551 DALAM A 151.101.194.217
howtogeek.com. 3551 DALAM A 151.101.130.217
howtogeek.com. 3551 DALAM 151.101.66.217
howtogeek.com. 3551 DALAM A 151.101.2.217

Inilah arti dari jawaban-jawaban ini:

  • 3551: Ini adalah Time to Live (TTL), bilangan bulat bertanda 32-bit yang menyimpan interval waktu untuk rekaman yang dapat di-cache. Saat kedaluwarsa, data harus digunakan sebagai jawaban atas permintaan hingga di-refresh oleh server DNS.
  • IN: Kami membuat kueri kelas Internet.
  • A: Kami meminta catatan A dari server DNS.

Bagian Statistik

Statistik adalah bagian terakhir, dan berisi informasi berikut:

 ;; Waktu kueri: 0 mdtk 
;; SERVER: 127.0.0.53#53(127.0.0.53) 
;; KAPAN: Min 22 Mar 07:44:37 EDT 2020 
;; UKURAN MSG rcvd: 106

Inilah yang kami dapatkan:

  • Waktu Kueri: 0 mdtk: Waktu yang diperlukan untuk mendapatkan respons.
  • SERVER: 127.0.0.53#53(127.0.0.53): Alamat IP dan nomor port server DNS yang merespons. Dalam hal ini, itu menunjuk ke penyelesai rintisan caching lokal. Ini meneruskan permintaan DNS ke server DNS hulu mana pun yang dikonfigurasi. Pada komputer uji Manajro, alamat yang tercantum di sini adalah 8.8.8.8#53, yang merupakan layanan DNS publik Google.
  • KAPAN: Min 22 Mar 07:44:37 EDT 2020: Saat permintaan dibuat.
  • UKURAN MSG rcvd: 106: Ukuran pesan yang diterima dari server DNS.

Menjadi Selektif

Anda tidak harus puas dengan dua ekstrem dari bungkam dan cerewet. Perintah dig memungkinkan Anda untuk secara selektif memasukkan atau mengecualikan bagian dari hasil.

Opsi kueri berikut akan menghapus bagian tersebut dari hasil:

  • +nocomments: Jangan tampilkan baris komentar.
  • +noauthority: Jangan tampilkan bagian authority.
  • +noadditional: Jangan tampilkan bagian tambahan.
  • +nostats: Jangan tampilkan bagian statistik.
  • +noanswer: Jangan tampilkan bagian jawaban.
  • +noall: Jangan tampilkan apa pun!
Iklan

Opsi kueri +noall biasanya digabungkan dengan salah satu opsi di atas untuk menyertakan bagian dalam hasil. Jadi, alih-alih mengetik string panjang opsi kueri untuk menonaktifkan beberapa bagian, Anda dapat menggunakan +noall untuk menonaktifkan semuanya.

Anda kemudian dapat menggunakan opsi kueri inklusif berikut untuk mengaktifkan kueri yang ingin Anda lihat kembali:

  • +komentar: Tampilkan baris komentar.
  • +otoritas: Tampilkan bagian otoritas.
  • +tambahan: Menampilkan bagian tambahan.
  • +stats: Menampilkan bagian statistik.
  • +jawaban: Tampilkan bagian jawaban.
  • +semua: Tampilkan semuanya.

Kami mengetik yang berikut untuk membuat permintaan dan mengecualikan baris komentar:

 gali howtogeek.com +nocomments 

Jika kita menggunakan opsi kueri +noall sendiri, seperti yang ditunjukkan di bawah ini, kita tidak akan mendapatkan hasil yang berguna:

 gali howtogeek.com +noall 

Kita dapat secara selektif menambahkan bagian yang ingin kita lihat. Untuk menambahkan bagian jawaban, kita ketik berikut ini:

 gali howtogeek.com +noall +answer 

Jika kita mengetik berikut ini untuk mengaktifkan +stats , kita juga akan melihat bagian statistik:

 gali howtogeek.com +noall +answer +stats 

Iklan

Kombinasi +noall +answer sering digunakan. Anda dapat menambahkan bagian lain ke baris perintah sesuai kebutuhan. Jika Anda ingin menghindari mengetik +noall +answer pada baris perintah setiap kali Anda menggunakan dig , Anda dapat meletakkannya di file konfigurasi bernama “.digrc.” Itu terletak di direktori home Anda.

Kami mengetik yang berikut untuk membuatnya dengan echo :

 echo "+tidak ada +jawaban" > $HOME/.digrc

Kami kemudian dapat mengetik yang berikut untuk memeriksa isinya:

 kucing .digrc 

Kedua opsi tersebut sekarang akan diterapkan ke semua penggunaan dig di masa mendatang, seperti yang ditunjukkan di bawah ini:

 gali ubuntu.org
 gali linux.org
 gali github.com 

File konfigurasi dig ini akan digunakan untuk contoh lainnya dalam artikel ini.

Catatan DNS

Informasi yang dikembalikan ke permintaan dig Anda diambil dari berbagai jenis catatan yang disimpan di server DNS. Kecuali jika kami meminta sesuatu yang berbeda, dig kueri catatan A (alamat). Berikut ini adalah jenis-jenis record yang biasa digunakan dengan dig :

  • A Record: Menautkan domain ke alamat IP versi 4.
  • MX Record: Catatan pertukaran email mengarahkan email yang dikirim ke domain ke server email yang benar.
  • Catatan NS: Catatan server nama mendelegasikan domain (atau subdomain) ke satu set server DNS.
  • Catatan TXT: Catatan teks menyimpan informasi berbasis teks mengenai domain. Biasanya, mereka dapat digunakan untuk menekan email palsu atau palsu.
  • Catatan SOA: Mulai dari catatan otoritas dapat menyimpan banyak informasi tentang domain. Di sini, Anda dapat menemukan server nama utama, pihak yang bertanggung jawab, stempel waktu untuk perubahan, frekuensi penyegaran zona, dan serangkaian batas waktu untuk percobaan ulang dan pengabaian.
  • TTL: Time to live adalah pengaturan untuk setiap catatan DNS yang menentukan berapa lama server pendahulu DNS diizinkan untuk menyimpan cache setiap permintaan DNS. Ketika waktu itu berakhir, data harus di-refresh untuk permintaan berikutnya.
  • APAPUN: Ini memberitahu dig untuk mengembalikan setiap jenis catatan DNS yang bisa dilakukan.
Iklan

Menentukan tipe record A tidak mengubah tindakan default, yaitu mengkueri record alamat dan mendapatkan alamat IP, seperti yang ditunjukkan di bawah ini:

 gali redhat.com A 

Untuk mengkueri catatan pertukaran surat, kami menggunakan flag MX berikut:

 gali yahoo.com MX 

Bendera server nama mengembalikan nama server nama akar berikut yang terkait dengan domain tingkat atas:

 gali fedora.com NS 

Untuk menanyakan awal catatan otoritas, kami mengetikkan flag SOA berikut:

 gali manjaro.com SOA 

Bendera TTL akan menunjukkan kepada kita waktu untuk hidup untuk data dalam cache server DNS. Jika kita membuat serangkaian permintaan, kita melihat waktu untuk hidup berkurang menjadi nol, dan kemudian melompat kembali ke nilai awalnya.

Kami mengetik berikut ini:

 gali usa.gov TTL 

Untuk melihat catatan teks, kami mengetikkan flag TX:

 gali usa.gov TXT 

Menentukan Server DNS

Jika Anda ingin menggunakan server DNS tertentu untuk permintaan Anda, Anda dapat menggunakan tanda at ( @ ) untuk meneruskannya ke dig sebagai parameter baris perintah.

Iklan

Dengan server DNS default (lihat di bawah), dig mereferensikan penyelesai rintisan caching lokal di 127.0.0.53.

 gali usa.gov +stats

Sekarang, kita ketik berikut ini untuk menggunakan server DNS publik Google di 8.8.8.8:

 gali @8.8.8.8 usa.gov +stats 

Menggunakan penggalian dengan Beberapa Domain

Kami dapat melewati beberapa domain untuk dig pada baris perintah, seperti yang ditunjukkan di bawah ini:

 gali ubuntu.org fedora.org manjaro.com 

Jika Anda secara teratur memeriksa satu set domain, Anda dapat menyimpannya dalam file teks dan meneruskannya ke dig . Semua domain dalam file akan diperiksa secara bergantian.

File kami disebut "domains.txt." Kami akan menggunakan cat untuk menampilkan isinya, dan kemudian meneruskannya ke dig dengan opsi -f (file). Kami mengetik berikut ini:

 domain kucing.txt
 gali -f domains.txt 

Pencarian DNS Terbalik

Jika Anda memiliki alamat IP dan ingin tahu ke mana alamatnya, Anda dapat mencoba pencarian DNS terbalik. Jika diselesaikan ke server yang terdaftar dengan server DNS, Anda mungkin dapat mengetahui domainnya.

Iklan

Apakah Anda dapat bergantung pada keberadaan PTR (catatan penunjuk). PTR menyelesaikan alamat IP menjadi nama domain yang sepenuhnya memenuhi syarat. Namun, karena ini tidak wajib, mereka tidak selalu ada di domain.

Mari kita lihat apakah kita bisa mengetahui kemana alamat IP 209.51.188.148 membawa kita. Kami mengetik berikut ini, menggunakan opsi -x (pencarian terbalik):

 gali -x 209.51.188.148 

Presto! Alamat IP memutuskan ke gnu.org.

Karena PTR adalah catatan DNS, dan kita tahu dig dapat meminta catatan DNS tertentu, tidak bisakah kita meminta dig untuk mengambil PTR untuk kita? Ya, kita bisa, tetapi itu membutuhkan sedikit lebih banyak pekerjaan.

Kami harus memberikan alamat IP dalam urutan terbalik dan tack .in-addr.arpa di akhir, seperti yang ditunjukkan di bawah ini:

 gali ptr 148.188.51.209.in-addr.arpa 

Iklan

Kami mendapatkan hasil yang sama; itu hanya butuh sedikit lebih banyak usaha.

Bisakah kamu menggali itu?

Kita semua menggunakan internet setiap hari, dan pikiran yang ingin tahu sering bertanya-tanya bagaimana keajaiban terjadi ketika kita mengetikkan nama situs web ke dalam browser. Dengan dig , Anda dapat menjelajahi proses sulap jaringan.

TERKAIT: Laptop Linux Terbaik untuk Pengembang dan Penggemar