4 приклади життєво важливих команд Dig, які слід знати системному адміністратору чи розробнику

Для системного адміністратора все працює гладко, поки не настає критична ситуація. У такі моменти ці команди дослідження стануть неоціненними. Залишайтеся з нами.

Системні адміністратори постійно виконують надзвичайно важливу роботу. Навіть найпростіша вимога до їхньої роботи – бути на зв’язку 24/7 – є надзвичайно цінною.

Однак, ми тут не для того, щоб заглиблюватися в опис їхніх обов’язків, а щоб розглянути їхній набір інструментів для вирішення проблем з DNS.

Що таке команди Dig?

Команди Dig, скорочено від Domain Information Groper, є одним із найшвидших способів запитувати DNS-сервери про їхню роботу.

За допомогою простих текстів, які легко запам’ятати, ви можете перевірити IP-адресу сервера, сервери імен, обмін поштою, запитати TTL та багато іншого.

Перш ніж почати використовувати основні команди dig, переконайтеся, що утиліти dig встановлені:

$ dig -v

Це має повернути результат з версією dig, наприклад:

DiG 9.18.1-1ubuntu1-Ubuntu

Якщо ви не отримали схожої відповіді, спочатку потрібно встановити утиліти Dig.

Для користувачів Ubuntu та Debian введіть:

$ sudo apt-get install dnsutils

Або використайте:

$ sudo yum install bind-utils

…якщо ви використовуєте CentOS або RHEL.

Потім виконайте команду `dig -v`, щоб підтвердити успішну інсталяцію.

Після цього перейдіть до наступних розділів, щоб ознайомитися з командами Dig, корисними для системного адміністратора.

Перевірка IP-адреси

Це один із найпростіших способів визначити IP-адресу сервера, на якому розміщено доменне ім’я.

`dig techukraine.net.com` – це базова команда, з якої почнемо.

$ dig techukraine.net.com

; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> techukraine.net.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:
;techukraine.net.com.			IN	A

;; ANSWER SECTION:
techukraine.net.com.		67	IN	A	172.66.43.163
techukraine.net.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

Перше, на що варто звернути увагу – це статус: `NOERROR` у розділі “Отримано відповідь” зверху. Це означає, що все пройшло без помилок.

Інформація, заради якої ми виконали цей запит, – це IP-адреса сервера. Вона вказана в розділі “Відповідь”: 172.66.40.93 (основний сервер) та 172.66.43.163 (резервний).

Оригінальний запит відображається в розділі “Питання”.

В останньому розділі наведено статистику щодо запиту.

Однак, це забагато інформації, яка не завжди потрібна.

Для отримання більш чіткої відповіді, введіть:

$ dig techukraine.net.com +noall +answer
techukraine.net.com.		53	IN	A	172.66.43.163
techukraine.net.com.		53	IN	A	172.66.40.93

Тут ми виключаємо все за допомогою `+noall`, і залишаємо лише потрібну відповідь за допомогою `+answer`.

Для ще коротшої відповіді, використовуйте:

$ dig techukraine.net.com +short
172.66.43.163
172.66.40.93

Це був базовий запит, що повертає запис DNS A; погляньмо на інші.

Пошук певних записів DNS

Сервери імен, офіційні DNS-сервери для домену, можна знайти за допомогою змінної `ns`.

$ dig techukraine.net.com ns +short
olga.ns.cloudflare.com.
todd.ns.cloudflare.com.

Аналогічно, змінна `mx` відповідає за поштові сервери та їхні пріоритети.

$ dig techukraine.net.com mx +noall +answer
techukraine.net.com.		300	IN	MX	1 aspmx.l.google.com.
techukraine.net.com.		300	IN	MX	10 alt3.aspmx.l.google.com.
techukraine.net.com.		300	IN	MX	10 alt4.aspmx.l.google.com.
techukraine.net.com.		300	IN	MX	5 alt1.aspmx.l.google.com.
techukraine.net.com.		300	IN	MX	5 alt2.aspmx.l.google.com.

Так само, `txt`, `aaaa`, `cname` та інші можна використовувати як змінні команди `dig` для отримання різних DNS-записів.

Відстеження DNS

Як випливає з назви, Trace DNS перевіряє шлях від кореневих серверів імен, авторитетних серверів імен до IP-адреси домену.

$ dig techukraine.net.com +trace

; <<>> DiG 9.18.1-1ubuntu1-Ubuntu <<>> techukraine.net.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

techukraine.net.com.		172800	IN	NS	olga.ns.cloudflare.com.
techukraine.net.com.		172800	IN	NS	todd.ns.cloudflare.com.
techukraine.net.com.		86400	IN	DS	2371 13 2 CBAA2018F41B29985DAEDE7F127D4F9626ADA609665CEBAB0011903B 7C639254
techukraine.net.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

techukraine.net.com.		300	IN	A	172.66.43.163
techukraine.net.com.		300	IN	A	172.66.40.93
techukraine.net.com.		300	IN	RRSIG	A 13 2 300 20221110051242 20221108031242 34505 techukraine.net.com. tKDYd/FHjs/aRHeOQJlsxXDJYtVcHA4G16QRJKlhFyYkZ2TmLKNIc6eM vXfpO91IVArK67KbyW5lIxI5cCxcQg==
;; Received 183 bytes from 172.64.32.137#53(olga.ns.cloudflare.com) in 16 ms

Для отримання короткої відповіді, використовуйте змінні `+short` або `+noall +answer`.

Зворотний пошук DNS

Зворотний пошук DNS показує запис PTR, пов’язаний з IP-адресою. Це протилежність запису DNS A і співставляє IP-адреси з доменним іменем.

Однак, розділу “Відповідь” не буде, якщо доменне ім’я не має запису DNS PTR.

Тут використовується команда `dig -x IP-адреса`.

[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

Як бачимо, доменне ім’я в розділі “Відповідь”, `media-router-fp74.prod.media.vip.bf1.yahoo.com/`, пов’язане з IP-адресою 74.6.143.26.

Перехід за цим URL-адресом перенаправить вас на домашню сторінку пошуку Yahoo.

Однак, це може не працювати для всіх хостингів; у деяких випадках ці довгі URL-адреси нічого не показують.

Запити до конкретних DNS-серверів

Іноді потрібно перевірити певний DNS-сервер для запитів. Це легко зробити, додавши IP-адресу `@DNS-сервер`, вибравши будь-який DNS-сервер для запиту.

$ dig @1.1.1.1 techukraine.net.com +noall +answer +stats
techukraine.net.com.		300	IN	A	172.66.40.93
techukraine.net.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

Ви можете перевірити це в розділі статистики, де вказано `SERVER: 1.1.1.1`, який належить Cloudflare.

Аналогічно, можна запитувати DNS-сервери Google (8.8.8.8):

$ dig @8.8.8.8 techukraine.net.com mx +noall +answer +stats
techukraine.net.com.		300	IN	MX	1 aspmx.l.google.com.
techukraine.net.com.		300	IN	MX	10 alt3.aspmx.l.google.com.
techukraine.net.com.		300	IN	MX	10 alt4.aspmx.l.google.com.
techukraine.net.com.		300	IN	MX	5 alt1.aspmx.l.google.com.
techukraine.net.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

Давайте дослідимо це ⛏️

Як випливає з назви, ці команди використовуються для пошуку інформації DNS та виявлення проблем. Команди dig зазвичай працюють швидко і їх легко запам’ятати.

Крім того, ви можете встановити утиліти dig на Mac і Windows, що робить їх універсальними у використанні.

P.S. Поки ви тут, було б нерозумно не познайомити вас з бібліотекою techukraine.net Sysadmin, універсальним центром рішень для проблем системного адміністратора.