Dig je zkratka pro vyhledávání informací o doméně.
Pomocí příkazu dig se můžete dotazovat na jmenné servery DNS pro úkoly související s vyhledáváním DNS. Tento článek vysvětluje 10 příkladů, jak používat příkaz dig.
1. Jednoduché použití příkazu dig (pochopte výstup dig)
Když předáte název domény příkazu dig, ve výchozím nastavení zobrazí záznam A (IP adresa dotazovaného webu), jak je uvedeno níže.
V tomto příkladu se zobrazí A záznam redhat.com v části „ODPOVĚĎ“ výstupu příkazu dig.
$ dig redhat.com ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62863 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;redhat.com. IN A ;; ANSWER SECTION: redhat.com. 37 IN A 209.132.183.81 ;; AUTHORITY SECTION: redhat.com. 73 IN NS ns4.redhat.com. redhat.com. 73 IN NS ns3.redhat.com. redhat.com. 73 IN NS ns2.redhat.com. redhat.com. 73 IN NS ns1.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 73 IN A 209.132.186.218 ns2.redhat.com. 73 IN A 209.132.183.2 ns3.redhat.com. 73 IN A 209.132.176.100 ;; Query time: 13 msec ;; SERVER: 209.144.50.138#53(209.144.50.138) ;; WHEN: Thu Jan 12 10:09:49 2012 ;; MSG SIZE rcvd: 164
Výstup příkazu dig má následující sekce:
- Záhlaví:Zobrazí číslo verze příkazu dig, globální možnosti používané příkazem dig a několik dalších informací v záhlaví.
- ČÁST OTÁZEK:Zobrazuje otázku, kterou položil DNS. tj. Toto je váš vstup. Protože jsme řekli ‚dig redhat.com‘ a výchozí typ příkazu dig je záznam A, v této sekci to znamená, že jsme požádali o záznam A webu redhat.com
- ČÁST ODPOVĚDI:Zde se zobrazí odpověď, kterou obdrží od DNS. tj. Toto je váš výstup. Zobrazí se záznam A redhat.com
- ČÁST OPRÁVNĚNÍ:Zobrazí se jmenný server DNS, který má oprávnění odpovědět na tento dotaz. V podstatě to zobrazuje dostupné jmenné servery redhat.com
- DALŠÍ ČÁST:Zde se zobrazí ip adresy jmenných serverů uvedených v ČÁSTI AUTHORITY.
- Sekce Statistiky v dolní části zobrazuje několik statistických údajů příkazu dig včetně toho, jak dlouho trvalo provedení tohoto dotazu
2. Zobrazit pouze SEKCI ANSWER příkazu Dig Output
Z velké části se vše, co potřebujete podívat, je „ODPOVĚĎ“ příkazu dig. Můžeme tedy vypnout všechny ostatní sekce, jak je uvedeno níže.
- +nocomments – Vypněte řádky komentářů
- +noauthority – Vypněte sekci oprávnění
- +noadditional – Vypněte další sekci
- +nostats – Vypněte sekci statistik
- +noanswer – Vypnout sekci odpovědí (Samozřejmě nechcete vypnout sekci odpovědí)
Následující příkaz dig zobrazí pouze SEKCI ANSWER.
$ dig redhat.com +nocomments +noquestion +noauthority +noadditional +nostats ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +nocomments +noquestion +noauthority +noadditional +nostats ;; global options: +cmd redhat.com. 9 IN A 209.132.183.81
Namísto deaktivace všech sekcí, které nechceme jednu po druhé, můžeme deaktivovat všechny sekce pomocí +noall (tímto se také vypne sekce odpovědí) a přidat +odpověď, která zobrazí pouze sekci odpovědí.
Výše uvedený příkaz lze také napsat ve zkrácené formě, jak je uvedeno níže, která zobrazí pouze SEKCI ODPOVĚDI.
$ dig redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +noall +answer ;; global options: +cmd redhat.com. 60 IN A 209.132.183.81
3. Dotaz na záznamy MX pomocí dig -t MX
Chcete-li se dotazovat na záznamy MX, předejte MX jako argument příkazu dig, jak je uvedeno níže.
$ dig redhat.com MX +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com MX +noall +answer ;; global options: +cmd redhat.com. 513 IN MX 5 mx1.redhat.com. redhat.com. 513 IN MX 10 mx2.redhat.com.
Můžete také použít volbu -t k předání typu dotazu (například:MX), jak je uvedeno níže.
$ dig -t MX redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t MX redhat.com +noall +answer ;; global options: +cmd redhat.com. 489 IN MX 10 mx2.redhat.com. redhat.com. 489 IN MX 5 mx1.redhat.com.
4. Dotaz na záznamy NS pomocí dig -t NS
Pro dotaz na záznam NS použijte typ NS, jak je uvedeno níže.
$ dig redhat.com NS +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com NS +noall +answer ;; global options: +cmd redhat.com. 558 IN NS ns2.redhat.com. redhat.com. 558 IN NS ns1.redhat.com. redhat.com. 558 IN NS ns3.redhat.com. redhat.com. 558 IN NS ns4.redhat.com.
Můžete také použít volbu -t k předání typu dotazu (například:NS), jak je uvedeno níže.
$ dig -t NS redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t NS redhat.com +noall +answer ;; global options: +cmd redhat.com. 543 IN NS ns4.redhat.com. redhat.com. 543 IN NS ns1.redhat.com. redhat.com. 543 IN NS ns3.redhat.com. redhat.com. 543 IN NS ns2.redhat.com.
5. Zobrazit VŠECHNY typy DNS záznamů pomocí dig -t ANY
Chcete-li zobrazit všechny typy záznamů (A, MX, NS atd.), použijte jako typ záznamu ANY, jak je uvedeno níže.
$ dig redhat.com ANY +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ANY +noall +answer ;; global options: +cmd redhat.com. 430 IN MX 5 mx1.redhat.com. redhat.com. 430 IN MX 10 mx2.redhat.com. redhat.com. 521 IN NS ns3.redhat.com. redhat.com. 521 IN NS ns1.redhat.com. redhat.com. 521 IN NS ns4.redhat.com. redhat.com. 521 IN NS ns2.redhat.com.
(nebo) Použijte -t ANY
$ dig -t ANY redhat.com +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t ANY redhat.com +noall +answer ;; global options: +cmd redhat.com. 367 IN MX 10 mx2.redhat.com. redhat.com. 367 IN MX 5 mx1.redhat.com. redhat.com. 458 IN NS ns4.redhat.com. redhat.com. 458 IN NS ns1.redhat.com. redhat.com. 458 IN NS ns2.redhat.com. redhat.com. 458 IN NS ns3.redhat.com.
6. Zobrazit krátký výstup pomocí dig +short
Chcete-li zobrazit pouze IP adresu webové stránky (tj. záznam A), použijte možnost krátkého formuláře, jak je uvedeno níže.
$ dig redhat.com +short 209.132.183.81
Můžete také určit typ záznamu, který chcete zobrazit, pomocí volby +krátká.
$ dig redhat.com ns +short ns2.redhat.com. ns3.redhat.com. ns1.redhat.com. ns4.redhat.com.
7. Zpětné vyhledávání DNS pomocí dig -x
Chcete-li provést zpětné vyhledání DNS pomocí ip-adresy pomocí dig -x, jak je uvedeno níže
Pokud například máte pouze externí IP adresu a chtěli byste znát webovou stránku, která k ní patří, proveďte následující.
$ dig -x 209.132.183.81 +short www.redhat.com.
Chcete-li zobrazit úplné podrobnosti zpětného vyhledávání DNS, odeberte možnost +short.
$ dig -x 209.132.183.81 ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -x 209.132.183.81 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62435 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3 ;; QUESTION SECTION: ;81.183.132.209.in-addr.arpa. IN PTR ;; ANSWER SECTION: 81.183.132.209.in-addr.arpa. 600 IN PTR www.redhat.com. ;; AUTHORITY SECTION: 183.132.209.in-addr.arpa. 248 IN NS ns2.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns1.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns3.redhat.com. 183.132.209.in-addr.arpa. 248 IN NS ns4.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 363 IN A 209.132.186.218 ns2.redhat.com. 363 IN A 209.132.183.2 ns3.redhat.com. 363 IN A 209.132.176.100 ;; Query time: 35 msec ;; SERVER: 209.144.50.138#53(209.144.50.138) ;; WHEN: Thu Jan 12 10:15:00 2012 ;; MSG SIZE rcvd: 193
8. Použít konkrétní server DNS pomocí dig @dnsserver
Ve výchozím nastavení dig používá servery DNS definované ve vašem souboru /etc/resolv.conf.
Pokud chcete k provedení dotazu použít jiný server DNS, zadejte jej do příkazového řádku jako @dnsserver.
Následující příklad používá ns1.redhat.com jako DNS server pro získání odpovědi (místo použití DNS serverů ze souboru /etc/resolv.conf).
$ dig @ns1.redhat.com redhat.com ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> @ns1.redhat.com redhat.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20963 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;redhat.com. IN A ;; ANSWER SECTION: redhat.com. 60 IN A 209.132.183.81 ;; AUTHORITY SECTION: redhat.com. 600 IN NS ns1.redhat.com. redhat.com. 600 IN NS ns4.redhat.com. redhat.com. 600 IN NS ns3.redhat.com. redhat.com. 600 IN NS ns2.redhat.com. ;; ADDITIONAL SECTION: ns1.redhat.com. 600 IN A 209.132.186.218 ns2.redhat.com. 600 IN A 209.132.183.2 ns3.redhat.com. 600 IN A 209.132.176.100 ns4.redhat.com. 600 IN A 209.132.188.218 ;; Query time: 160 msec ;; SERVER: 209.132.186.218#53(209.132.186.218) ;; WHEN: Thu Jan 12 10:22:11 2012 ;; MSG SIZE rcvd: 180
9. Hromadný DNS dotaz pomocí dig -f (a příkazového řádku)
Dotaz na více webových stránek pomocí datového souboru:
Na základě dat ze souboru můžete provést hromadný DNS dotaz.
Nejprve vytvořte ukázkový soubor names.txt obsahující webovou stránku, na kterou se chcete dotazovat.
$ vi names.txt redhat.com centos.org
Dále spusťte dig -f, jak je ukázáno níže, což provede DNS dotaz pro webové stránky uvedené v souboru names.txt a zobrazí výstup.
$ dig -f names.txt +noall +answer redhat.com. 60 IN A 209.132.183.81 centos.org. 60 IN A 72.232.194.162
Můžete také kombinovat typ záznamu s volbou -f. Následující příklad zobrazuje záznamy MX více webových stránek, které jsou umístěny v souboru names.txt.
$ dig -f names.txt MX +noall +answer redhat.com. 600 IN MX 10 mx2.redhat.com. redhat.com. 600 IN MX 5 mx1.redhat.com. centos.org. 3600 IN MX 10 mail.centos.org.
Dotaz na více webových stránek z příkazového řádku dig:
Můžete se také dotazovat na více webových stránek z příkazového řádku dig, jak je znázorněno níže. Následující příklad dotazuje záznam MX pro redhat.com a záznam NS pro centos.org z příkazového řádku
$ dig redhat.com mx +noall +answer centos.org ns +noall +answer ; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com mx +noall +answer centos.org ns +noall +answer ;; global options: +cmd redhat.com. 332 IN MX 10 mx2.redhat.com. redhat.com. 332 IN MX 5 mx1.redhat.com. centos.org. 3778 IN NS ns3.centos.org. centos.org. 3778 IN NS ns4.centos.org. centos.org. 3778 IN NS ns1.centos.org.
10. Použijte soubor $HOME/.digrc k uložení výchozích možností dig
Pokud se vždy snažíte zobrazit pouze část ANSWER výstupu dig, nemusíte při každém příkazu dig stále psát „+noall +answer“. Místo toho přidejte možnosti dig do souboru .digrc, jak je uvedeno níže.
$ cat $HOME/.digrc +noall +answer
Nyní, kdykoli spustíte příkaz dig, bude ve výchozím nastavení vždy používat možnosti +noall a +odpověď. Nyní se příkazový řádek dig stal velmi jednoduchým a snadno čitelným, aniž byste museli tyto možnosti pokaždé zadávat.
$ dig redhat.com redhat.com. 60 IN A 209.132.183.81 $ dig redhat.com MX redhat.com. 52 IN MX 5 mx1.redhat.com. redhat.com. 52 IN MX 10 mx2.redhat.com.