Для системного адміністратора все працює гладко, поки не настає критична ситуація. У такі моменти ці команди дослідження стануть неоціненними. Залишайтеся з нами.
Системні адміністратори постійно виконують надзвичайно важливу роботу. Навіть найпростіша вимога до їхньої роботи – бути на зв’язку 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, універсальним центром рішень для проблем системного адміністратора.