Dig (Domain Information Groper) je výkonný nástroj příkazového řádku pro dotazování jmenných serverů DNS.
dig
vám umožňuje dotazovat se na informace o různých záznamech DNS, včetně adres hostitelů, výměn pošty a jmenných serverů. Je to nejběžněji používaný nástroj mezi správci systému pro odstraňování problémů s DNS kvůli jeho flexibilitě a snadnému použití.
Tento tutoriál vysvětluje, jak používat dig
užitečnost prostřednictvím praktických příkladů a podrobných vysvětlení nejběžnějších dig
možnosti.
Instalace dig
#
Chcete-li zkontrolovat, zda dig
příkaz je k dispozici na vašem typu systému:
dig -v
Výstup by měl vypadat nějak takto:
DiG 9.11.3-1ubuntu1.1-Ubuntu
Pokud dig
není ve vašem systému přítomen, výše uvedený příkaz vypíše „dig:command not found“. dig
nástroj lze nainstalovat pomocí správce balíčků distribuce.
Instalovat dig
na Ubuntu a Debianu #
sudo apt update && sudo apt install dnsutils
Instalovat dig
na CentOS a Fedora #
sudo yum install bind-utils
Instalovat dig
na Arch Linuxu #
sudo pacman -S bind-tools
Porozumění dig
Výstup #
Ve své nejjednodušší podobě, když se používá k dotazování jednoho hostitele (domény) bez dalších možností, dig
příkaz je velmi podrobný.
V následujícím příkladu vystupujeme na linux.org
doména:
dig linux.org
Výstup by měl vypadat nějak takto:
Pojďme oddíl po oddílu a vysvětlíme si výstup dig
příkaz:
-
První řádek výstupu vypíše nainstalovaný
dig
verze a dotazovaný název domény. Druhý řádek zobrazuje globální možnosti (ve výchozím nastavení pouze cmd).; <<>> DiG 9.13.3 <<>> linux.org ;; global options: +cmd
Pokud nechcete, aby tyto řádky byly zahrnuty do výstupu, použijte
+nocmd
volba. Tato možnost musí být úplně první podig
příkaz. -
Další část obsahuje technické podrobnosti o odpovědi obdržené od dožádaného orgánu (serveru DNS). V záhlaví je uveden operační kód (akce provedená
dig
) a stav akce. V tomto příkladu je stavNOERROR
, což znamená, že dožádaný orgán dotaz bez problémů vyřídil.;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5
Tuto sekci lze odstranit pomocí
+nocomments
možnost, která také deaktivuje záhlaví některých jiných sekcí. -
Pseudo sekce „OPT“ se zobrazuje pouze v novějších verzích
dig
užitečnost. Více o mechanismech rozšíření pro DNS (EDNS) si můžete přečíst zde.;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096
Chcete-li tuto sekci z výstupu vyloučit, použijte
+noedns
možnost. -
V sekci "OTÁZKA"
dig
zobrazí dotaz (otázku). Ve výchozím nastavenídig
požaduje záznam A.;; QUESTION SECTION: ;linux.org. IN A
Tuto sekci můžete deaktivovat pomocí
+noquestion
možnost. -
Sekce „ODPOVĚĎ“ nám poskytuje odpověď na naši otázku. Jak jsme již zmínili, ve výchozím nastavení
dig
požádá o záznam A. Zde vidíme, že doménalinux.org
ukazuje na104.18.59.123
IP adresa.;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123
Obvykle nechcete odpověď vypnout, ale můžete tuto sekci z výstupu odstranit pomocí
+noanswer
možnost. -
Sekce „AUTHORITY“ nám říká, které servery jsou autoritou pro zodpovězení dotazů DNS na dotazovanou doménu.
;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.
Tuto sekci výstupu můžete zakázat pomocí
+noauthority
možnost. -
Sekce „DALŠÍ“ nám poskytuje informace o IP adresách autoritativních serverů DNS uvedených v sekci oprávnění.
;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82
+noadditional
volba deaktivuje další část odpovědi. -
Poslední sekce
dig
výstup obsahuje statistiky o dotazu.;; Query time: 58 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Oct 12 11:46:46 CEST 2018 ;; MSG SIZE rcvd: 212
Tuto část můžete deaktivovat pomocí
+nostats
možnost.
Tisk pouze odpovědi #
Obecně byste chtěli získat pouze krátkou odpověď na váš dig
dotaz.
1. Získejte krátkou odpověď #
Chcete-li získat krátkou odpověď na svůj dotaz, použijte +short
možnost:
dig linux.org +short
104.18.59.123
104.18.58.123
Výstup bude obsahovat pouze IP adresy záznamu A.
2. Získejte podrobnou odpověď #
Chcete-li získat podrobnější odpověď, vypněte všechny výsledky pomocí +noall
a poté zapněte pouze sekci odpovědí s +answer
možnost.
dig linux.org +noall +answer
; <<>> DiG 9.13.3 <<>> linux.org +noall +answer
;; global options: +cmd
linux.org. 67 IN A 104.18.58.123
linux.org. 67 IN A 104.18.59.123
Jmenný server specifický pro dotaz #
Ve výchozím nastavení, pokud není zadán jmenný server, dig
používá servery uvedené v /etc/resolv.conf
soubor.
Chcete-li zadat jmenný server, proti kterému bude dotaz proveden, použijte @
(at) následovaný IP adresou jmenného serveru nebo názvem hostitele.
Chcete-li například zadat dotaz na jmenný server Google (8.8.8.8) na informace o linux.org
doménu, kterou byste použili:
dig linux.org @8.8.8.8
; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;linux.org. IN A
;; ANSWER SECTION:
linux.org. 299 IN A 104.18.58.123
linux.org. 299 IN A 104.18.59.123
;; Query time: 54 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 12 14:28:01 CEST 2018
;; MSG SIZE rcvd: 70
Dotaz na typ záznamu #
Dig vám umožňuje provést jakýkoli platný DNS dotaz připojením typu záznamu na konec dotazu. V následující části vám ukážeme příklady, jak hledat nejběžnější záznamy, jako je A (IP adresa), CNAME (kanonický název), TXT (textový záznam), MX (výměnník pošty) a NS ( jmenné servery).
1. Dotazování záznamů A #
Chcete-li získat seznam všech adres pro název domény, použijte a
možnost:
dig +nocmd google.com a +noall +answer
google.com. 128 IN A 216.58.206.206
Jak již víte, pokud není zadán žádný typ záznamu DNS, dig
požádá o záznam A. Záznam A můžete také dotazovat bez zadání a
možnost.
2. Dotazování záznamů CNAME #
Chcete-li najít alias název domény, použijte cname
možnost:
dig +nocmd mail.google.com cname +noall +answer
mail.google.com. 553482 IN CNAME googlemail.l.google.com.
3. Dotazování TXT záznamů #
Použijte txt
možnost načíst všechny záznamy TXT pro konkrétní doménu:
dig +nocmd google.com txt +noall +answer
google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all"
google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
4. Dotazování záznamů MX #
Chcete-li získat seznam všech poštovních serverů pro konkrétní doménu, použijte mx
možnost:
dig +nocmd google.com mx +noall +answer
google.com. 494 IN MX 30 alt2.aspmx.l.google.com.
google.com. 494 IN MX 10 aspmx.l.google.com.
google.com. 494 IN MX 40 alt3.aspmx.l.google.com.
google.com. 494 IN MX 50 alt4.aspmx.l.google.com.
google.com. 494 IN MX 20 alt1.aspmx.l.google.com.
5. Dotazování NS záznamů #
Chcete-li najít autoritativní jmenné servery pro naši konkrétní doménu, použijte ns
možnost:
dig +nocmd google.com ns +noall +answer
google.com. 84527 IN NS ns1.google.com.
google.com. 84527 IN NS ns2.google.com.
google.com. 84527 IN NS ns4.google.com.
google.com. 84527 IN NS ns3.google.com.
6. Dotaz na všechny záznamy #
Použijte any
možnost získat seznam všech DNS záznamů pro konkrétní doménu:
dig +nocmd google.com any +noall +answer
google.com. 299 IN A 216.58.212.14
google.com. 299 IN AAAA 2a00:1450:4017:804::200e
google.com. 21599 IN NS ns2.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 IN NS ns4.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com. 21599 IN CAA 0 issue "pki.goog"
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 21599 IN NS ns3.google.com.
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all"
google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60
Reverzní vyhledávání DNS #
K dotazu na jméno hostitele spojené s konkrétní IP adresou použijte -x
možnost.
Chcete-li například provést zpětné vyhledávání na 208.118.235.148
byste napsali:
dig -x 208.118.235.148 +noall +answer
Jak můžete vidět z výstupu níže, IP adresa 208.118.235.148
je spojen s názvem hostitele wildebeest.gnu.org
.
; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer
;; global options: +cmd
148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.
Hromadné dotazy #
Pokud chcete dotazovat velký počet domén, můžete je přidat do souboru (jedna doména na řádek) a použít -f
možnost následovaná názvem souboru.
V následujícím příkladu se dotazujeme na domény uvedené v souboru domains.txt
soubor.
lxer.com
linuxtoday.com
tuxmachines.org
dig -f domains.txt +short
108.166.170.171
70.42.23.121
204.68.122.43
Soubor .digrc #
dig
chování příkazu lze ovládat nastavením možností pro jednotlivé uživatele v ${HOME}/.digrc
soubor.
Pokud .digrc
je přítomen v domovském adresáři uživatele, možnosti v něm uvedené se použijí před argumenty příkazového řádku.
Pokud například chcete zobrazit pouze sekci odpovědí, otevřete textový editor a vytvořte následující ~/.digrc
soubor:
+nocmd +noall +answer
Závěr č.
dig
je nástroj příkazového řádku pro dotazování na informace DNS a odstraňování problémů souvisejících s DNS.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.