Android

Příkaz dig v linuxu (dns vyhledávání)

Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks

Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks

Obsah:

Anonim

Dig (Domain Information Groper) je výkonný nástroj příkazového řádku pro dotazování názvových serverů DNS.

Příkaz dig umožňuje dotazovat se na informace o různých záznamech DNS, včetně adres hostitele, výměny pošty a jmenných serverů. Jedná se o nejčastěji používaný nástroj mezi správci systému pro řešení problémů s DNS kvůli jeho flexibilitě a snadnosti použití.

V tomto tutoriálu vám ukážeme, jak používat obslužný program dig pomocí praktických příkladů a podrobných vysvětlení nejběžnějších možností dig .

Instalace dig

Chcete-li zkontrolovat, zda je příkaz dig k dispozici pro váš typ systému:

dig -v

Výstup by měl vypadat asi takto:

DiG 9.11.3-1ubuntu1.1-Ubuntu

Pokud není v systému k dispozici dig, příkaz výše vytiskne „dig: command not found“. Nástroj dig můžete snadno nainstalovat pomocí správce balíčků svého distro.

Nainstalujte dig na Ubuntu a Debian

sudo apt update && sudo apt install dnsutils

Nainstalujte dig na CentOS a Fedora

sudo yum install bind-utils

Nainstalujte dig na Arch Linuxu

sudo pacman -S bind-tools

Porozumění výstupu dig

Ve své nejjednodušší podobě, je-li použit k dotazování na jednoho hostitele (doménu) bez jakýchkoli dalších argumentů, je příkaz dig docela podrobný.

V následujícím příkladu provedeme dotaz pro načtení informací o doméně linux.org .

dig linux.org

Výstup by měl vypadat asi takto:

Podívejme se na jednotlivé sekce a vysvětlíme výstup příkazu dig :

  1. První řádek výstupu vytiskne nainstalovanou verzi digu a dotaz, který byl vyvolán. Druhý řádek zobrazuje globální možnosti (ve výchozím nastavení pouze cmd).

    ; <<>> DiG 9.13.3 <<>> linux.org;; global options: +cmd

    První část obsahuje technické podrobnosti o odpovědi přijaté od dožádaného orgánu (serveru DNS). Záhlaví zobrazuje operační kód (akci provedenou dig) a stav akce. V tomto příkladu je stav NOERROR , což znamená, že dožádaný orgán NOERROR dotaz bez problému.

    ;; 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í volby +nocomments , která také zakáže některé záhlaví jiných oddílů.

    Sekce „OPT“ pseudo se ve výchozím nastavení zobrazuje pouze v novějších verzích obslužného programu dig. Informace o mechanismech rozšíření pro DNS (EDNS) najdete zde.

    ;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096

    V části „OTÁZKA“ ukazuje náš dotaz (dotaz). Ve výchozím nastavení dig vyžaduje záznam A.

    ;; QUESTION SECTION:;linux.org. IN A

    Tuto sekci můžete zakázat pomocí možnosti +noquestion .

    Oddíl „ODPOVĚĎ“ nám poskytuje odpověď na naši otázku. Jak jsme již zmínili, ve výchozím nastavení si dig vyžádá záznam A. Zde doména linux.org odkazuje na IP adresu 104.18.59.123 .

    ;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123

    Obvykle nechcete odpověď vypínat, ale tuto sekci můžete z výstupu odebrat pomocí volby +noanswer .

    Sekce „AUTHORITY“ nám říká, které servery jsou oprávněním odpovídat na dotazy DNS týkající se dotazované domény.

    ;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.

    Tuto část výstupu můžete zakázat pomocí volby +noauthority .

    Oddíl „DALŠÍ“ nám poskytuje informace o IP adresách autoritativních serverů DNS uvedených v sekci autorizace.

    ;; 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

    Volba +noadditional zakáže další část odpovědi.

    Poslední část výstupu dig 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 zakázat pomocí možnosti +nostats .

Tisk pouze odpovědi

Ve většině případů byste chtěli získat pouze rychlou odpověď na váš dotaz.

1. Získejte krátkou odpověď

Chcete-li získat krátkou odpověď na svůj dotaz, použijte možnost +short :

dig linux.org +short

104.18.59.123 104.18.58.123

Výstup bude zahrnovat 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í možností +noall a poté zapněte pouze část odpovědi s možností +answer .

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

Server specifických názvů dotazů

Ve výchozím nastavení, pokud není zadán žádný jmenný server, dig používá servery uvedené v souboru /etc/resolv.conf .

Chcete-li určit server názvů, proti kterému bude dotaz spuštěn, použijte symbol @ (at) následovaný adresou IP serveru nebo hostitelským jménem.

Například pro dotaz na server názvů Google (8.8.8.8) informace o doméně linux.org 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žní 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, například A (IP adresa), CNAME (kanonický název), TXT (textový záznam), MX (poštovní výměník) a NS (jmenné servery).

1. Dotaz na záznamy A

Chcete-li získat seznam všech adres pro název domény, použijte 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, vyžádá si záznam A. Můžete také dotazovat na záznam A bez zadání možnosti.

2. Dotazování záznamů CNAME

Chcete-li najít název aliasu, použijte volbu cname :

dig +nocmd mail.google.com cname +noall +answer

mail.google.com. 553482 IN CNAME googlemail.l.google.com.

3. Dotazy na záznamy TXT

Použijte volbu txt pro načtení všech záznamů 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. Dotaz na MX záznamy

Chcete-li získat seznam všech poštovních serverů pro konkrétní doménu, použijte volbu mx :

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 volbu ns :

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

Pomocí any možnosti získáte seznam všech záznamů DNS 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

Zpětné vyhledávání DNS

Pro dotaz na jméno hostitele spojené s konkrétní IP adresou použijte volbu -x .

Například pro provedení zpětného vyhledávání na 208.118.235.148 byste použili:

dig -x 208.118.235.148 +noall +answer

Jak můžete vidět z výstupu pod IP adresou 208.118.235.148 je spojena 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

V následujícím příkladu zkoumáme domény uvedené v souboru domains.txt .

domains.txt

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

Chování příkazu dig lze ovládat nastavením možností pro uživatele v souboru ${HOME}/.digrc .

Pokud je soubor .digrc přítomen v domovském adresáři uživatele, použijí se v něm zadané volby 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í soubor ~/.digrc :

~ /.digrc

+nocmd +noall +answer

Závěr

dig je nástroj příkazového řádku pro dotazování informací DNS a odstraňování problémů souvisejících s DNS.

kopat terminál