Dig provádí vyhledávání DNS a zobrazuje odpovědi vrácené z názvových serverů, které byly dotazovány. Dig je zkrácená forma 'Domain Information Groper'.
Tento nástroj je alternativním nástrojem pro vyhledávání DNS, nslookup. Pokud nedostanete pokyn k dotazu na konkrétní jmenný server, dig vyzkouší každý ze serverů uvedených v '/etc/resolv.conf'.
V tutoriálu vysvětlím, jak používat příkaz dig v Linuxu na příkladech.
příkaz dig
Spustit dig bez jakýchkoli možností (ve výchozím nastavení)
Bez jakýchkoli možností provede dig NS dotaz pro „.“ (kořen).
Zde je ukázkový výstup.
$ dig
; <> DiG 9.9.2-P1 <> linux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21655
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;linux.com. IN A
;; ANSWER SECTION:
linux.com. 1786 IN A 140.211.167.51
linux.com. 1786 IN A 140.211.167.50
;; AUTHORITY SECTION:
linux.com. 86386 IN NS ns1.linux-foundation.org.
linux.com. 86386 IN NS ns2.linux-foundation.org.
;; ADDITIONAL SECTION:
ns1.linux-foundation.org. 261 IN A 140.211.169.10
ns2.linux-foundation.org. 262 IN A 140.211.169.11
;; Query time: 258 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Feb 8 21:35:35 2014
;; MSG SIZE rcvd: 158
Nyní si přečteme výstup :
; <> DiG 9.9.2-P1 <> linux.com
;; global options: +cmd
Tato sekce nám vypráví o samotném kopání. Víme, že verze dig, kterou jsme použili, je 9.9.2 a globální možnost, kterou jsme použili, je +cmd.
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21655
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
Tato část nám řekne o technické odpovědi od DNS.
;; QUESTION SECTION:
;linux.com. IN A
Tato sekce nám říká, o jaký dotaz jsme požádali
.;; ANSWER SECTION:
linux.com. 1786 IN A 140.211.167.51
linux.com. 1786 IN A 140.211.167.50
Tato část nám říká o odpovědi na dotaz, který jsme zadali. 'Linux.com' má dvě adresy. IP 140.211.167.51 a 140.211.167.50.
;; AUTHORITY SECTION:
linux.com. 86386 IN NS ns1.linux-foundation.org.
linux.com. 86386 IN NS ns2.linux-foundation.org.
Tato část nám říká, které DNS (nebo kdo), které mají oprávnění odpovědět na otázku „jaká je IP adresa Linux.com?“
;; ADDITIONAL SECTION:
ns1.linux-foundation.org. 261 IN A 140.211.169.10
ns2.linux-foundation.org. 262 IN A 140.211.169.11
Tato sekce nám říká o IP adrese výše uvedeného autoritního DNS. Tyto informace můžeme zakázat pomocí +[no]další možnosti.
;; Query time: 258 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Feb 8 21:35:35 2014
;; MSG SIZE rcvd: 158
Tato sekce nám říká o některých statistických informacích. Tyto informace můžeme deaktivovat pomocí možnosti +[‘no]stats.
Dig příkazový dotaz (nejčastější)
Dig manuálové stránky vám ukážou mnoho platných dotazů. V praxi však existuje 5 běžných dotazů.
1) Zeptejte se NS
NS je zkratka pro Name Server. Zobrazí se vám název serveru, který je zodpovědný za doménu linux.com
$ dig linux.com NS
2) Dotaz na MX
MX je zkratka od Mail Exchanger. Dotazování MX vám ukáže název SMTP linux.com
$ dig linux.com MX
3) Zeptejte se na adresu
K zobrazení IP adresy linux.com můžeme použít A klíčové slovo. A je zkratka pro Adresa
$ dig linux.com A
4) Dotaz TXT
TXT je textová anotace.
$ dig linux.com TXT
5) Dotaz na vše
Pokud si nejste jisti, co hledáte, můžete JAKÝKOLI klíčové slovo.
Možnosti dotazu příkazu Dig
Při spouštění dotazu dig poskytuje možnosti přizpůsobení výstupu. Zde je několik populárních případů na denní bázi.
6) Zobrazit pouze odpověď na dotaz
$ dig linux.com +noall +answer
7) Zobrazte odpověď a otázku
$ dig ubuntu.com MX +noall +answer +question
8) Zobrazení v krátkém režimu
Tato možnost se použije, pokud chcete rychlou odpověď
$ dig linux.com +short
9) Zobrazit pouze odpověď a oprávnění
K tomu můžeme tyto možnosti kombinovat:
$ dig ubuntu.com MX +noall +answer +authority
10) Zobrazit víceřádkové dotazy
Tento +víceřádkový vám zobrazí záznamy jako záznamy SOA ve víceřádkovém formátu s lidmi čitelnými komentáři. Zde je jeho ukázka.
$ dig ibm.com +multiline +noall +answer
Proveďte zpětné vyhledávání
Dig není pouze pro dotazování jména na IP adresu. Dig může provést zpětné vyhledávání, které dotazuje IP adresu na jméno. Chcete-li to provést, použijte -x možnost.
$ dig -x 140.211.167.51 +noall +answer
Výstup nám ukazuje, že IP '140.211.167.51' patří k 'load2d.linux-foundation.org'
K provedení dotazu použijte konkrétní DNS
Ve výchozím nastavení bude dig používat servery DNS definované v /etc/resolv.conf
Pokud chcete k provedení dotazu použít jiný server DNS, můžete použít klíčové slovo @name_of_DNS_server. Zde je ukázka.
$ dig @ns2.google.com gmail.com +nostat
Provádějte hromadné vyhledávání
Abychom to udělali, můžeme to udělat 2 způsoby. Za prvé, používá příkazový řádek.
$ dig linux.com +noall +answer ubuntu.com +noall +answer
Za druhé , můžeme vložit názvy hostitelů nebo domény do textového souboru. Poté použijte -f možnost zahrnout soubor.
$ dig -f hostnames.txt +noall +answer
Soubor hostnames.txt obsahuje tyto řádky:
linux.com
ubuntu.com
Pokud za ubuntu.com existuje prázdný řádek, pak dig požádá NS o „.“ (kořen) také.
Závěr
Dig je jedním z nástrojů dostupných v operačním systému Linux pro dotazování serverů DNS. Díky flexibilitě digování jej mohou správci použít k přizpůsobení výstupu dig. Jako obvykle můžeme vždy zadat man dig nebo dig -h a prozkoumat více podrobností o příkazu dig.