JavaRush /Курси /Docker SELF /Перевірка DNS: команди `nslookup`, `dig`

Перевірка DNS: команди `nslookup`, `dig`

Docker SELF
Рівень 4 , Лекція 2
Відкрита

1. Вступ до DNS

Уявіть собі таку ситуацію: ви хочете отримати доступ до вашого улюбленого сайту — наприклад, google.com. Але ваш браузер не розуміє слово "google", йому потрібні IP-адреси (наприклад, 142.250.74.206). Перетворення доменного імені в IP-адресу відбувається за допомогою DNS (Domain Name System). Якщо цей процес зламається, ви побачите повідомлення від браузера: "Не вдається знайти сервер". Ви, як майбутній майстер мереж Linux, повинні знати, як діагностувати та вирішувати проблеми, пов'язані з DNS.

DNS — це як телефонна книга інтернету. Замість того щоб запам'ятовувати складні IP-адреси, ми можемо використовувати зручні імена, які перетворюються системою DNS. Ось кілька ключових концепцій:

  1. DNS-записи:

    • A-запис (Address Record): пов'язує доменне ім'я з IPv4-адресою.
    • AAAA-запис: пов'язує доменне ім'я з IPv6-адресою.
    • CNAME-запис (Canonical Name): вказує псевдонім домену.
    • MX-запис (Mail Exchange): вказує на сервери для обробки пошти.
  2. DNS-сервери:

    • Звичайний користувач зазвичай використовує DNS-сервери свого провайдера.
    • Альтернативи: публічні DNS-сервери Google (8.8.8.8), Cloudflare (1.1.1.1).
  3. Резолвінг імен:

    • Коли ви вводите доменне ім'я в браузер, він відправляє запит на DNS-сервер, щоб отримати IP-адресу.

З цими знаннями озброєні, ви готові до практичного освоєння магії DNS через команди nslookup і dig.


2. Команда nslookup

nslookup — це утиліта, яка дозволяє нам перевіряти роботу DNS. Вона доступна на більшості дистрибутивів Linux та в інших операційних системах.

Основний синтаксис:

nslookup [опції] [домен або IP-адреса]

Простий приклад:

Перевіримо IP-адресу для сайту google.com:

nslookup google.com

Вивід:

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 142.250.74.206

Примітки до виводу:

  • Server: DNS-сервер, який обробив запит.
  • Non-authoritative answer: це означає, що інформація була отримана не з кореневого DNS-сервера, а через кеш іншого сервера.

Перевірка DNS-сервера

Якщо ви хочете використовувати конкретний DNS-сервер, можна вказати його при виклику команди:

nslookup google.com 8.8.8.8

Тут ми вказали явний вибір DNS-сервера Google (8.8.8.8).

Практика: Знайдемо IP для навчального сайту

Спробуйте виконати команду:

nslookup linux.org

Подивіться на результати — це IP-адреси, які пов'язані з сервером сайту.


3. Команда dig

dig (Domain Information Groper) — це більш прокачана утиліта для роботи з DNS. Вона надає детальну інформацію про DNS-запити і відповіді.

Основний синтаксис:

dig [домен] [опції]

Приклад запиту:

dig google.com

Вивід (основні моменти):

;; Question section:
;google.com.			IN	A

;; ANSWER SECTION:
google.com.		300	IN	A	142.250.74.206

;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Oct 19 10:00:00 UTC 2023
;; MSG SIZE  rcvd: 68

Розділи виводу:

  • ANSWER SECTION: IP-адреси, пов'язані з доменом.
  • Query time: час обробки запиту.
  • SERVER: DNS-сервер, який обробив запит.

4. Основні DNS-записи і як їх перевіряти

A-запис (IPv4)

dig linux.org A

Результат покаже IPv4-адреси для домену.

AAAA-запис (IPv6)

dig linux.org AAAA

Вивід міститиме IPv6-адреси. Корисно, якщо ви працюєте з сучасними мережами.

MX-запис (поштові сервери)

dig linux.org MX

Використовується для перевірки, які сервери обробляють поштову кореспонденцію для домену.


5. Глибока практика: dig vs nslookup

Тепер ви можете порівняти результати двох команд:

  1. Виконайте:

        nslookup linux.org
    
  2. Потім:

        dig linux.org
    

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


6. Перевірка DNS-сервера Google

Задача:

  1. Використовуючи nslookup, перевірте, чи працює публічний DNS-сервер Google:

    nslookup github.com 8.8.8.8
    
  2. Тепер зробіть те ж саме за допомогою dig:

    dig @8.8.8.8 github.com
    
  3. Перевірте, чи є у сайту IPv6-адреси:

    dig github.com AAAA
    

7. Типові помилки і особливості

Робота з DNS майже завжди впирається в такі проблеми:

  1. Неправильні налаштування DNS-сервера: Якщо ваш DNS-сервер не працює або налаштований невірно, ви можете не отримати відповіді. Перевірте доступність сервера, вказавши його IP вручну при використанні nslookup або dig.
  2. Кешування DNS: Іноді зміни в DNS можуть зайняти час через кешування. Наприклад, ви можете побачити застарілу інформацію, якщо DNS-запис нещодавно змінився.

  3. Недоступність DNS-сервера: Якщо ви бачите помилку на кшталт connection timed out; no servers could be reached, це може означати, що сервер недоступний або заблокований.

  4. Альтернативні команди: nslookup не завжди доступний у мінімальних установках Linux, у той час як dig частіше входить до стандартного набору інструментів.

Реальне застосування знань: навіщо це знати?

  • Діагностика проблем з DNS. Ви зможете швидко зрозуміти, чому браузер "не бачить" сайт.
  • Конфігурація серверів. Коли ви налаштовуєте сервер у хмарі, вам потрібно перевіряти, чи правильно налаштовані DNS-записи.
  • Інтернет-безпека. Вміння працювати з DNS-записами допомагає аналізувати фішингові сайти.
  • На співбесідах. Знання команд dig та nslookup — це одне із стандартних питань для фахівців з Linux/DevOps.

Тепер ви озброєні всім необхідним для глибокого розуміння і діагностики DNS. Запускайте термінал, пробуйте команди, і нехай жоден "DNS-збій" не застане вас зненацька.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ