Být systémovým administrátorem je často klidná práce, ale jakmile dojde ke komplikacím, situace se rychle mění. V kritických chvílích se vám následující příkazy mohou velmi hodit. Zůstaňte s námi.
Systémoví administrátoři odvádějí nesmírně důležitou práci. I základní požadavek na jejich pozici, tedy být k dispozici 24 hodin denně, 7 dní v týdnu, si zaslouží velké uznání.
Nicméně, nyní se nebudeme zaměřovat na jejich pracovní náplň, ale spíše se podíváme na jejich nástroje, konkrétně na ty, které pomáhají při řešení problémů s DNS.
Co jsou příkazy Dig?
Příkazy Dig, zkratka pro Domain Information Groper, představují jeden z nejefektivnějších způsobů, jak se dotazovat DNS serverů ohledně jejich funkčnosti.
Pomocí jednoduchých a snadno zapamatovatelných textových příkazů můžete zjišťovat IP adresy serverů, názvy jmenných serverů, poštovní servery, hodnoty TTL a další důležité informace.
Než se pustíme do základních příkazů dig, ujistěte se, že máte nainstalované potřebné nástroje:
$ dig -v
Tento příkaz by měl vrátit verzi nástroje dig, například takto:
DiG 9.18.1-1ubuntu1-Ubuntu
Pokud neobdržíte podobnou odpověď, je nutné nejprve nástroje Dig nainstalovat.
Pro uživatele systémů Ubuntu a Debian zadejte:
$ sudo apt-get install dnsutils
A pro systémy CentOS nebo RHEL použijte:
$ sudo yum install bind-utils
Následně znovu spusťte příkaz dig -v, abyste ověřili, že instalace proběhla úspěšně.
V následujících sekcích se podíváme na několik užitečných příkazů Dig, které mohou usnadnit práci každému systémovému administrátorovi.
Zjištění IP adresy
Jedná se o jeden z nejjednodušších příkazů, který umožňuje zjistit IP adresu serveru, na kterém je daná doména hostována.
Pro začátek použijeme příkaz `dig etechblog.cz.com`.
$ dig etechblog.cz.com ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> etechblog.cz.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38635 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;etechblog.cz.com. IN A ;; ANSWER SECTION: etechblog.cz.com. 67 IN A 172.66.43.163 etechblog.cz.com. 67 IN A 172.66.40.93 ;; Query time: 4 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Wed Nov 09 04:29:58 UTC 2022
První klíčová informace je status `NOERROR` v sekci `Got answer`. To signalizuje, že dotaz proběhl bez komplikací.
Hlavním cílem dotazu je získání IP adresy serveru. Ty jsou uvedeny v sekci `ANSWER`, konkrétně `172.66.40.93` (primární server) a `172.66.43.163` (záložní server).
Původní dotaz je uveden v sekci `QUESTION`.
Poslední sekce poskytuje statistiky související s dotazem.
Tento výstup však může být příliš obsáhlý. Proto je možné získat čistší odpověď pomocí příkazu:
$ dig etechblog.cz.com +noall +answer etechblog.cz.com. 53 IN A 172.66.43.163 etechblog.cz.com. 53 IN A 172.66.40.93
Zde jsme pomocí `+noall` potlačili všechny výchozí informace a zobrazili pouze výsledek pomocí `+answer`.
Ještě stručnější výstup získáme pomocí:
$ dig etechblog.cz.com +short 172.66.43.163 172.66.40.93
Toto byl základní dotaz pro získání DNS A záznamu. Nyní se podíváme na další typy záznamů.
Zjištění konkrétních DNS záznamů
Jmenné servery, autoritativní DNS servery pro danou doménu, lze zjistit pomocí proměnné `ns`.
$ dig etechblog.cz.com ns +short olga.ns.cloudflare.com. todd.ns.cloudflare.com.
Proměnná `mx` naopak zobrazí poštovní servery včetně jejich priorit.
$ dig etechblog.cz.com mx +noall +answer etechblog.cz.com. 300 IN MX 1 aspmx.l.google.com. etechblog.cz.com. 300 IN MX 10 alt3.aspmx.l.google.com. etechblog.cz.com. 300 IN MX 10 alt4.aspmx.l.google.com. etechblog.cz.com. 300 IN MX 5 alt1.aspmx.l.google.com. etechblog.cz.com. 300 IN MX 5 alt2.aspmx.l.google.com.
Stejným způsobem můžete použít proměnné jako `txt`, `aaaa`, `cname` atd. pro získání různých typů DNS záznamů.
Trasování DNS
Funkce trasování DNS sleduje cestu dotazu od kořenových jmenných serverů přes autoritativní jmenné servery až k IP adrese cílové domény.
$ dig etechblog.cz.com +trace ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> etechblog.cz.com +trace ;; global options: +cmd . 322660 IN NS a.root-servers.net. . 322660 IN NS b.root-servers.net. . 322660 IN NS c.root-servers.net. . 322660 IN NS d.root-servers.net. . 322660 IN NS e.root-servers.net. . 322660 IN NS f.root-servers.net. . 322660 IN NS g.root-servers.net. . 322660 IN NS h.root-servers.net. . 322660 IN NS i.root-servers.net. . 322660 IN NS j.root-servers.net. . 322660 IN NS k.root-servers.net. . 322660 IN NS l.root-servers.net. . 322660 IN NS m.root-servers.net. ;; Received 811 bytes from 127.0.0.53#53(127.0.0.53) in 16 ms com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 86400 IN DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766 com. 86400 IN RRSIG DS 8 1 86400 20221121170000 20221108160000 18733 . ZgW2dKMBP6rqIgQSGN5uzFhNFZuIPUg7JrkXzgE9VKh68LOIuQlFgTTV xt3Sz4ytgru8JWcwCHgiqCTjbaN3WeHcrDVf0ItG0Az/01ofBWfoAu9S 1JFYcOrYkTUidn8R4vROkwzsTrZMirnB/4yrA4MD5thWVBr3IczcnFto DbADuw8Qy/RUEUfcu+LcQ4Ge+OzIP8eE1T6+nbMRqFZBSMFoBO1w0Mmk xNGyEclfFkymQ4CsYxnvYVstljpLqh1OhoAEwY6D+0cSh9dKNQ5LKhgq UXqfJ+zmdcvL+cVvMjfcB0Wj6/hmEkpEp1ISawlTjFUDgiKNZxiow02r JL4tsw== ;; Received 1201 bytes from 192.33.4.12#53(c.root-servers.net) in 148 ms etechblog.cz.com. 172800 IN NS olga.ns.cloudflare.com. etechblog.cz.com. 172800 IN NS todd.ns.cloudflare.com. etechblog.cz.com. 86400 IN DS 2371 13 2 CBAA2018F41B29985DAEDE7F127D4F9626ADA609665CEBAB0011903B 7C639254 etechblog.cz.com. 86400 IN RRSIG DS 8 2 86400 20221112051535 20221105030535 53929 com. sbqDGqvxmEAjS4KRx8LvQAG9IusLgRRm5GPDf+AFkXddGgfJN37vJP1H 4JKMriWtgXZHc3g1ANMNjij+5J1K3GgeNy2w0UYc7xHkmvhsd15pDvi9 +BoiBsjC8ffznyli8sV8XVhm65oKDHJRx5YEtXUVA4p9hegO0NHDccvt ujQKMShBWX3nxs7P4onL13gspVScOoZgzXL3470UfDW7MA== ;; Received 601 bytes from 2001:501:b1f9::30#53(m.gtld-servers.net) in 144 ms etechblog.cz.com. 300 IN A 172.66.43.163 etechblog.cz.com. 300 IN A 172.66.40.93 etechblog.cz.com. 300 IN RRSIG A 13 2 300 20221110051242 20221108031242 34505 etechblog.cz.com. tKDYd/FHjs/aRHeOQJlsxXDJYtVcHA4G16QRJKlhFyYkZ2TmLKNIc6eM vXfpO91IVArK67KbyW5lIxI5cCxcQg== ;; Received 183 bytes from 172.64.32.137#53(olga.ns.cloudflare.com) in 16 ms
Stejně jako u předchozích příkazů, můžete použít parametry `+short` nebo `+noall +answer` pro zjednodušení výstupu.
Reverzní DNS vyhledávání
Reverzní DNS vyhledávání, známé také jako PTR záznam, přiřazuje IP adresy k názvům domén, což je opačný proces než u A záznamů.
Pokud pro danou IP adresu neexistuje PTR záznam, výstup nebude obsahovat sekci odpovědí.
Použitý příkaz je `dig -x IP adresa`.
[email protected]:~$ dig yahoo.com +short 74.6.143.26 74.6.231.20 98.137.11.164 98.137.11.163 74.6.143.25 74.6.231.21 [email protected]:~$ dig -x 74.6.143.26 ; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> -x 74.6.143.26 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32267 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;26.143.6.74.in-addr.arpa. IN PTR ;; ANSWER SECTION: 26.143.6.74.in-addr.arpa. 600 IN PTR media-router-fp74.prod.media.vip.bf1.yahoo.com. ;; AUTHORITY SECTION: 143.6.74.in-addr.arpa. 172800 IN NS ns3.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns4.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns5.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns2.yahoo.com. 143.6.74.in-addr.arpa. 172800 IN NS ns1.yahoo.com. ;; Query time: 192 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP) ;; WHEN: Wed Nov 09 04:17:08 UTC 2022 ;; MSG SIZE rcvd: 203
Jak vidíte, název domény `media-router-fp74.prod.media.vip.bf1.yahoo.com/`, který je uveden v sekci odpovědí, je spojen s IP adresou `74.6.143.26`.
Navštívení této adresy URL vás skutečně přesměruje na domovskou stránku vyhledávání Yahoo.
Je však důležité poznamenat, že toto nemusí platit pro všechny webhostingy a v některých případech nemusí být dlouhé a složité adresy URL relevantní.
Dotazování na specifické DNS servery
V některých situacích můžete potřebovat dotazovat se na konkrétní DNS server. Toho lze snadno dosáhnout přidáním adresy IP serveru s parametrem `@DNS`. Můžete si tak vybrat libovolný server pro konkrétní dotaz.
$ dig @1.1.1.1 etechblog.cz.com +noall +answer +stats etechblog.cz.com. 300 IN A 172.66.40.93 etechblog.cz.com. 300 IN A 172.66.43.163 ;; Query time: 156 msec ;; SERVER: 1.1.1.1#53(1.1.1.1) (UDP) ;; WHEN: Wed Nov 09 04:18:56 UTC 2022 ;; MSG SIZE rcvd: 74
Ověřit si to můžete v sekci statistik, kde je uvedeno `SERVER: 1.1.1.1`, což je adresa serveru Cloudflare.
Podobně můžeme provést dotaz na server Google DNS (8.8.8.8):
$ dig @8.8.8.8 etechblog.cz.com mx +noall +answer +stats etechblog.cz.com. 300 IN MX 1 aspmx.l.google.com. etechblog.cz.com. 300 IN MX 10 alt3.aspmx.l.google.com. etechblog.cz.com. 300 IN MX 10 alt4.aspmx.l.google.com. etechblog.cz.com. 300 IN MX 5 alt1.aspmx.l.google.com. etechblog.cz.com. 300 IN MX 5 alt2.aspmx.l.google.com. ;; Query time: 44 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) (UDP) ;; WHEN: Wed Nov 09 04:23:16 UTC 2022 ;; MSG SIZE rcvd: 157
Pojďme kopat hlouběji ⛏️
Jak už bylo zmíněno, příkazy Dig slouží k vyhledávání informací o DNS a k identifikaci souvisejících problémů. Příkazy Dig jsou obecně rychlé a snadno zapamatovatelné.
Nástroje Dig lze navíc instalovat na systémy Mac a Windows, díky čemuž jsou univerzálně použitelné.
PS: Když už jste tady, bylo by škoda neupozornit na knihovnu etechblog.cz Sysadmin, komplexní centrum řešení pro všechny vaše problémy se správou systémů.