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ý
digverze 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: +cmdPokud nechcete, aby tyto řádky byly zahrnuty do výstupu, použijte
+nocmdvolba. Tato možnost musí být úplně první podigpří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: 5Tuto sekci lze odstranit pomocí
+nocommentsmožnost, která také deaktivuje záhlaví některých jiných sekcí. -
Pseudo sekce „OPT“ se zobrazuje pouze v novějších verzích
diguž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: 4096Chcete-li tuto sekci z výstupu vyloučit, použijte
+noednsmožnost. -
V sekci "OTÁZKA"
digzobrazí dotaz (otázku). Ve výchozím nastavenídigpožaduje záznam A.;; QUESTION SECTION: ;linux.org. IN ATuto sekci můžete deaktivovat pomocí
+noquestionmožnost. -
Sekce „ODPOVĚĎ“ nám poskytuje odpověď na naši otázku. Jak jsme již zmínili, ve výchozím nastavení
digpožádá o záznam A. Zde vidíme, že doménalinux.orgukazuje na104.18.59.123IP adresa.;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123Obvykle nechcete odpověď vypnout, ale můžete tuto sekci z výstupu odstranit pomocí
+noanswermož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í
+noauthoritymož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+noadditionalvolba deaktivuje další část odpovědi. -
Poslední sekce
digvý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: 212Tuto část můžete deaktivovat pomocí
+nostatsmož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ář.