Перейти до вмісту

Модуль 3.2: DNS в Linux

Hands-On Lab Available
Ubuntu intermediate 30 min
Launch Lab ↗

Opens in Killercoda in a new tab

Основи мереж | Складність: [MEDIUM] | Час: 25–30 хв

Перед початком цього модуля:


Що ви зможете робити після цього модуля

Розділ «Що ви зможете робити після цього модуля»

Після завершення цього модуля ви зможете:

  • Відстежити DNS-резолвінг від /etc/resolv.conf через рекурсивні резолвери до авторитетних серверів
  • Дебажити збої DNS за допомогою dig, nslookup та /etc/hosts
  • Налаштувати DNS-резолвінг для контейнерів та пояснити, як CoreDNS працює в Kubernetes
  • Пояснити типи DNS-записів (A, AAAA, CNAME, SRV, TXT) та коли кожен використовується

Чому цей модуль важливий

Розділ «Чому цей модуль важливий»

DNS (Domain Name System) перетворює людські назви (google.com) на зрозумілі машинам IP-адреси. В Kubernetes DNS — це основа основ. Без нього поди не зможуть знайти сервіси, а бази даних — приймати запити за іменами.

Розуміння DNS в Linux допоможе вам:

  • Налагодити Service Discovery в Kubernetes — чому мій под не бачить сервіс за назвою?
  • Виправляти помилки резолвінгу — “Name or service not known”.
  • Налаштовувати CoreDNS — внутрішній сервер імен Kubernetes.
  • Розуміти /etc/resolv.conf — як контейнери дізнаються, куди звертатися за іменами.

Процес резолвінгу в Linux

Розділ «Процес резолвінгу в Linux»

Коли програма хоче з’єднатися з api.example.com, Linux проходить такий шлях:

  1. Перевірка /etc/hosts — локальний файл зі статичними записами. Якщо там є запис, пошук завершується.
  2. Звернення до DNS-сервера — шлях до сервера береться з /etc/resolv.conf.
  3. Повернення IP — сервер каже: “api.example.com знаходиться за адресою 93.184.216.34”.

Головні файли конфігурації

Розділ «Головні файли конфігурації»

Це головний файл, який каже системі, де шукати DNS-сервери.

Terminal window
nameserver 8.8.8.8 # IP-адреса DNS сервера
search my-domain.local # Домени, які додаються до коротких імен
options ndots:5 # Специфічні налаштування Kubernetes

ndots:5 — важливий параметр для K8s. Він каже системі: “якщо в імені менше 5 крапок, спочатку спробуй додати до нього внутрішні домени кластера”. Саме тому ви можете звертатися до сервісу просто як my-service замість повної назви.

Локальна таблиця “ім’я -> IP”. Вона завжди має пріоритет над запитами в Інтернет.

Terminal window
127.0.0.1 localhost
10.0.0.50 my-database.internal

Інструменти для перевірки DNS

Розділ «Інструменти для перевірки DNS»

Найпотужніший інструмент. Показує повну відповідь сервера.

Terminal window
# Простий запит
dig google.com
# Тільки IP адреса (коротко)
dig +short google.com
# Запитати конкретний сервер
dig @8.8.8.8 google.com

Простіші альтернативи dig для швидкої перевірки.

Terminal window
host google.com
nslookup google.com

В Kubernetes за все відповідає CoreDNS. Кожен сервіс отримує своє ім’я:

<назва-сервісу>.<простір-імен>.svc.cluster.local

Поди автоматично налаштовані так, щоб використовувати CoreDNS як свій основний nameserver.


  1. Який файл у Linux має пріоритет над зовнішніми DNS-серверами?

    Відповідь `/etc/hosts`. Якщо в ньому вказано відповідність імені та IP, Linux не буде питати DNS-сервер.
  2. За яким портом зазвичай працює DNS?

    Відповідь Порт 53 (UDP для швидких запитів, TCP для великих відповідей).
  3. Що робить параметр search у файлі /etc/resolv.conf?

    Відповідь Він дозволяє використовувати короткі імена. Наприклад, якщо `search` містить `google.com`, то при запиті `mail` система автоматично спробує знайти `mail.google.com`.
  4. Яка команда в Linux є найбільш інформативною для діагностики DNS?

    Відповідь `dig`. Вона показує всі секції відповіді DNS-сервера, час запиту та технічні деталі.

Завдання: Дослідити налаштування DNS на вашій системі.

  1. Перегляньте свої DNS-сервери:
    Terminal window
    cat /etc/resolv.conf
  2. Спробуйте дізнатися IP-адресу сайту через dig:
    Terminal window
    dig +short ukr.net
  3. Знайдіть поштові сервери (MX записи) вашого улюбленого домену:
    Terminal window
    dig domain.com MX
  4. Додайте запис у /etc/hosts (симуляція) і перевірте його через ping або host.

Критерії успіху: Ви розумієте, звідки система бере адреси DNS-серверів та вмієте користуватися dig.


  • DNS перетворює імена на IP.
  • /etc/resolv.conf — де лежить конфігурація.
  • /etc/hosts — локальні “швидкі” записи.
  • dig — найкращий інструмент діагностики.
  • CoreDNS — серце мережевої навігації в Kubernetes.

Далі: Модуль 3.3: Мережеві простори імен (Network Namespaces) — дізнайтеся, як Linux створює ізольовані мережі для кожного контейнера.