Jako správce sítě Linux pravděpodobně narazíte na různé problémy, které lze vyřešit pomocí Linux dig
(Domain Information Groper) příkaz. Nejste si jisti, jak dig
příkaz funguje? Bez obav! Čeká vás to!
V tomto tutoriálu se naučíte několik užitečných příkladů, jak používat dig k řešení skutečných problémů.
Ponořte se a spřátelte se s tímto mocným nástrojem!
Předpoklady
Tento tutoriál bude praktickou ukázkou. Pokud chcete pokračovat, ujistěte se, že máte systém Linux. Tento tutoriál používá Ubuntu 20.04, ale bude fungovat jakákoli moderní distribuce Linuxu.
Instalace Linuxu dig
Příkaz
Linux dig
umožňuje shromáždit informace DNS, které mohou být užitečné při odstraňování problémů s DNS. Ale před kopáním jmenných serverů musíte nejprve nainstalovat dig
na vašem počítači.
1. Spuštěním příkazu apt update níže aktualizujte index balíčků vašeho systému.
apt update -y
2. Dále spusťte následující příkaz apt install pro instalaci dnsutils na váš počítač. DiG je součástí balíčku nástroje DNS (dnsutils) nainstalovaného s jmennými servery BIND.
dnsutils je sada nástrojů poskytovaných týmem Ubuntu, která obsahuje různé nástroje DNS na straně klienta, jako je dig.
apt install dnsutils -y
3. Nakonec spusťte příkaz dig níže, abyste ověřili instalaci DiG.
dig -v
Níže verze DiG ukazuje 9.16.1, ale vaše se může lišit.
Vyzkoušení Linux Dig pro základní DNS dotaz
Nyní, když máte nainstalovaný dig, můžete vyzkoušet dig
příkaz pro základní DNS dotaz. Příkaz dig vám umožňuje dotazovat se na servery DNS, abyste získali několik informací, které můžete použít k odstraňování a opravě problémů s DNS.
Syntaxe pro základní DNS dotaz je následující kde:
server
– DNS server pro dotaz na IP adresu nebo název domény. Pokud nezadáte server, DiG použije předkonfigurovaný DNS vašeho počítače.name
– Název domény nebo IP adresa, kterou chcete vyhledat.type
– Typ záznamu DNS, který hledáte.
dig [server] [name] [type]
Nyní spusťte následující příkaz k dotazu na záznamy DNS pro google.com
.
Když spustíte dig
příkaz bez jakýchkoli příznaků nebo argumentů, dig
provede DNS dotaz jako argument a vrátí záznam A pro zadaný název hostitele.
dig [google.com]( )
Základní dotaz DNS pomocí dig
je užitečný pro několik různých úkolů, jako například:
- Kontrola záznamů DNS pro doménu.
- Zjištění, který server DNS se používá pro doménu.
- Zkontrolujte, zda váš počítač používá správný server DNS.
Dotaz na google.com
Porozumění výstupu základního DNS dotazu
Vzhledem k tomu, že DiG vrátil spoustu informací o názvu domény, na kterou jste se dotazovali, již můžete vidět, co se s touto doménou děje. Nebo ne? Asi ne. Ale nebojte se. Projdete si rozpisem jednotlivých sekcí, které uvidíte na základním výstupu dotazu DNS.
První řádek níže zobrazuje verzi DiG a dotazovaný název domény (google.com ). Druhý řádek zároveň zobrazuje globální možnosti použité ke spuštění dotazu.
V tomto případě byla použita jediná možnost +cmd , který říká DiG, aby vytiskl příkazy, které byly spuštěny, když je DiG provádí.
Následující část (HEADER ) zobrazí technické podrobnosti dotazu:
- První řádek určuje operační kód použitý pro dotaz (v tomto případě QUERY ), za kterým následuje stav:NOERROR dotazu a id číslo (47244 ). NOERROR stav označuje, že server DNS zpracoval dotaz a úspěšně vrátil odpověď. Pokud získáte SERVFAIL stavu, došlo k nějaké chybě serveru DNS, která vedla k neúspěšnému dotazu.
- příznaky sekce ukazuje, které příznaky byly nastaveny pro dotaz. V tomto případě qr (odpověď na dotaz), rd (rekurze nebyla žádoucí) a ra (k dispozici je rekurze).
- Poslední řádek uvádí, kolik dotazů (QUERY ) byly vytvořeny (1 ). Uvidíte také, kolik ODPOVĚDĚT s (1 ), AUTHORITY záznamy (0 ) a DALŠÍ záznamy (1 ) DiG se vrátil.
OPT PSEUDOSECTTION níže označuje, že zpráva DNS byla rozšířena pomocí protokolu EDNS0. Vlajky pole je prázdné, protože nebyly nastaveny žádné možnosti, zatímco udp pole určuje maximální velikost zprávy DNS, která je 65 494 bajtů.
Nyní ODPOVĚĎ část níže zobrazuje odpověď vrácenou na dotaz. V tomto případě jste požádali o záznam A pro google.com a server DNS vrátil IP adresu 142.250.80.110 . Můžete se podívat na google.com Záznam ukazuje na tuto IP adresu.
Konečně poslední část obsahuje informace o době dotazu a serveru použitém ke zpracování dotazu. Níže vidíte, že dotaz trval čtyři milisekundy (4 ms ) a SERVER použitý měl IP adresu 127.0.0.53 .
Čím méně času serveru DNS trvá zpracování dotazu a vrácení odpovědi, tím lépe. Nechcete, aby vaši uživatelé dlouho čekali na vyřešení dotazů DNS. Dlouhé čekání může vést ke špatné uživatelské zkušenosti.
Načítání krátkých a podrobných odpovědí
Právě jste zadali dotaz na DNS, který vrátil několik informací. Ale můžete kontrolovat, jaký výstup získáte? Ano, připojením příznaků (+short
, +noall
a +answer
) na dig
příkaz.
Předpokládejme, že žádáte o záznam A. DNS server vrací záznam A i AAAA. Ale s +short
příznak, DNS vrátí pouze záznam A. +short
příznak může být užitečný pro získání rychlé odpovědi ze serverů DNS, aniž byste museli probírat všechny dodatečné informace.
Spusťte níže uvedený příkaz pro dotaz google.com
znovu. Tentokrát však přidejte +short
příznakem získáte pouze krátkou odpověď.
dig +short google.com
Níže uvidíte, že DiG vrátil pouze krátkou odpověď, což je adresa serveru Google.
Nyní spusťte následující příkaz k dotazu google.com
, vrací podrobnou odpověď. +noall
flag vynechá všechny výchozí informace zobrazené při spuštění dig
příkaz, kromě sekce odpovědí (+answer
).
dig google.com +noall +answer
Určení jmenných serverů pro překlad názvů domén
Zatím jste viděli, jak používat dig
příkaz s výchozím nastavením. Předpokládejme však, že chcete otestovat, zda konkrétní jmenný server dokáže přeložit název domény nebo ne. V takových případech specifikujte, který DNS server DiG používá při spuštění dig
příkaz může pomoci.
Ve výchozím nastavení dig
používá servery DNS uvedené v /etc/resolv.conf soubor, jak je uvedeno níže.
Chcete-li přepsat, který server DNS používá DiG při překladu názvu domény, připojíte @
symbol následovaný serverem DNS nebo IP.
Spusťte níže uvedený příkaz pro dotaz na název domény (server
) pomocí preferovaného serveru DNS (dns-or-ip
). Nezapomeňte nahradit dns-or-ip
s vaším serverem DNS, ale tento výukový program používá 8.8.8.8 .
dig server +noall +answer @dns-or-ip
Níže můžete vidět, že server DNS úspěšně přeložil název domény a vrátil podrobné odpovědi.
Dotaz na konkrétní typy záznamů
Ve výchozím nastavení dig
příkaz se dotazuje na záznam A, pokud neurčíte žádný typ záznamu. DiG však také umožňuje dotazovat se na jiné typy záznamů DNS, jako je MX, NS, TXT atd.
Chcete-li určit typ záznamu, připojte typ záznamu hned za název domény, kterou hledáte, jako v následujícím příkladu.
Spusťte níže uvedený příkaz pro dotaz na google.com
pro záznamy MX.
dig +noall +answer google.com mx
Níže vidíte záznam MX pro google.com je smtp.google.com .
Nyní spusťte následující příkaz k dotazu google.com
pro záznamy TXT
dig +noall +answer google.com txt
Níže uvedený výstup zobrazuje všechny záznamy TXT pro google.com , jak je uvedeno níže.
Provádění dotazů v dávkovém režimu
Předpokládejme, že chcete vyhledat informace DNS pro více názvů domén. Dotazování informací jeden po druhém pro každý název domény může být únavné a časově náročné.
Naštěstí dig
příkaz podporuje dávkový režim, kde můžete zadat soubor obsahující seznam názvů domén. DiG bude provádět DNS dotazy pro všechny názvy domén uvedených v tomto souboru v dávkovém režimu.
Otevřete nový textový soubor s názvem dns-batch-file.txt ve vašem preferovaném textovém editoru a přidejte názvy domén (jedno na řádek), jak je uvedeno níže. Jakmile budete se seznamem spokojeni, uložte soubor a zavřete editor.
Nyní spusťte následující příkaz pro dotaz na všechny domény uvedené v zadaném (-f
) dns-batch-file.txt
soubor v dávkovém režimu.
dig -f dns-batch-file.txt +noall +answer
Jak můžete vidět níže, informace DNS pro všechny domény byly dotazovány a zobrazeny v tabulkovém formátu.
Ovládání chování DiG pomocí .digrc Soubor
DiG načte různá nastavení ze souboru ~/.digrc, když spustíte příkaz dig. Tento soubor obsahuje různá nastavení, která vám umožní ovládat dig
příkaz se chová. Pomocí souboru ~/.digrc , můžete nastavit výchozí DNS server dig
příkaz by se měl dotazovat nebo nastavit výchozí typ záznamu pro dotaz, pokud žádný nezadáte.
Možná se při spuštění dig
snažíte získat podrobnou odpověď a většinu času ignorovat všechny ostatní sekce příkaz. V takových případech můžete použít ~./digrc soubor pro nastavení výchozího výstupního stylu pro dig
příkaz, jako v následujícím příkladu.
Spusťte echo
níže, který neposkytuje výstup, ale přidává +noall +answer
řádku na ~/.digrc soubor.
echo "+noall +answer" > ~/.digrc
Nyní spusťte dig
příkaz k dotazu na název domény bez argumentů. Nahraďte domain
s vaším preferovaným názvem domény.
dig domain
Můžete vidět, že výstup nyní obsahuje pouze sekci odpovědí, jak je uvedeno níže. DiG by použil +noall +answer
příznaky z ~/.digrc soubor, i když jste při spuštění příkazu dig nepřidali žádné příznaky.
Závěr
V tomto článku jste se naučili různé funkce Linuxu dig
pro efektivní dotazování serverů DNS. Také jste se dotkli přizpůsobení požadovaného dig
výstup příkazu pomocí více příznaků.
V tuto chvíli již víte, jak využít Linux dig
při každodenní práci, zejména při odstraňování problémů se sítí.
Nezastavujte se zde však. Je toho více, čeho můžete dosáhnout s Linuxem dig
příkaz. Proč nepoužít dig
příkaz k provedení zpětného vyhledávání DNS za účelem nalezení názvu domény spojeného s IP adresou?