DNS: Система доменних імен

Що таке DNS?

DNS (Domain Name System) — це "телефонна книга" інтернету. Вона перетворює зрозумілі людям імена (google.com) в IP-адреси (142.250.74.78), які розуміють комп'ютери.

Ти вводиш:     google.com
DNS повертає:  142.250.74.78 (IPv4)
               2a00:1450:4001:82a::200e (IPv6)

Без DNS довелося б запам'ятовувати IP-адреси всіх сайтів!


Як працює DNS запит?

Спрощена схема

┌─────────┐  1. Де google.com?   ┌─────────────┐
│  Твій   │ ────────────────────►│ DNS сервер  │
│ комп'ютер│◄──────────────────── │ провайдера  │
└─────────┘  2. 142.250.74.78    └─────────────┘
     │
     │ 3. Підключення до 142.250.74.78
     ▼
┌─────────┐
│ Google  │
│ сервер  │
└─────────┘

Повна схема (ієрархія DNS)

                    ┌─────────────────┐
                    │  Root DNS (.)   │
                    │  13 серверів    │
                    └────────┬────────┘
                             │
              ┌──────────────┼──────────────┐
              ▼              ▼              ▼
        ┌─────────┐    ┌─────────┐    ┌─────────┐
        │  .com   │    │  .org   │    │  .ua    │
        │   TLD   │    │   TLD   │    │   TLD   │
        └────┬────┘    └─────────┘    └─────────┘
             │
    ┌────────┴────────┐
    ▼                 ▼
┌─────────┐     ┌─────────┐
│ google  │     │ amazon  │
│  .com   │     │  .com   │
└─────────┘     └─────────┘

Етапи запиту (детально)

  1. Перевірка кешу браузера — може вже знає?
  2. Перевірка кешу ОС — може ОС знає?
  3. Запит до резолвера (DNS провайдера або 8.8.8.8)
  4. Резолвер питає Root — "Хто відповідає за .com?"
  5. Root відповідає — "Ось TLD сервери для .com"
  6. Резолвер питає TLD — "Хто відповідає за google.com?"
  7. TLD відповідає — "Ось authoritative сервери Google"
  8. Резолвер питає authoritative — "Яка IP у google.com?"
  9. Authoritative відповідає — "142.250.74.78"
  10. Резолвер кешує і повертає відповідь

Структура доменного імені

Ієрархія справа наліво

    www  .  example  .  com  .
     │        │        │    │
     │        │        │    └── Root (кореневий домен, зазвичай не пишуть)
     │        │        └─────── Top-Level Domain (TLD)
     │        └──────────────── Second-Level Domain (SLD)
     └───────────────────────── Subdomain (піддомен)

Приклади

mail.google.com
│    │      │
│    │      └── TLD
│    └───────── SLD (зареєстрований домен)
└────────────── Subdomain

docs.google.com
api.google.com     — всі це субдомени google.com
maps.google.com

Типи DNS записів

A — IPv4 адреса

example.com.    A    93.184.216.34

"Домен example.com має IPv4 адресу 93.184.216.34"

AAAA — IPv6 адреса

example.com.    AAAA    2606:2800:220:1:248:1893:25c8:1946

"Домен example.com має IPv6 адресу ..."

CNAME — псевдонім (alias)

www.example.com.    CNAME    example.com.

"www.example.com — це псевдонім для example.com"

MX — поштовий сервер

example.com.    MX    10 mail.example.com.
example.com.    MX    20 backup-mail.example.com.

"Пошту для @example.com приймають mail.example.com (пріоритет 10) та backup-mail.example.com (пріоритет 20)"

TXT — текстовий запис

example.com.    TXT    "v=spf1 include:_spf.google.com ~all"

Використовується для верифікації, SPF, DKIM тощо.

NS — DNS сервери домену

example.com.    NS    ns1.example.com.
example.com.    NS    ns2.example.com.

"DNS для example.com обслуговують ns1 і ns2"

PTR — зворотний запис (IP → домен)

34.216.184.93.in-addr.arpa.    PTR    example.com.

"IP 93.184.216.34 належить example.com" (для reverse DNS)

SRV — сервіс

_sip._tcp.example.com.    SRV    10 5 5060 sipserver.example.com.

"SIP сервіс доступний на sipserver.example.com:5060"


Таблиця типів записів

Тип Призначення Приклад значення
A IPv4 адреса 93.184.216.34
AAAA IPv6 адреса 2606:2800:220:1::1
CNAME Псевдонім www → example.com
MX Поштовий сервер 10 mail.example.com
TXT Текст (SPF, DKIM) "v=spf1 ..."
NS DNS сервери ns1.example.com
PTR Reverse DNS example.com
SRV Сервіс sipserver:5060
CAA SSL сертифікати letsencrypt.org
SOA Зона авторитету Технічна інфо

TTL — Time To Live

Кожен DNS запис має TTL — час (в секундах) скільки його можна кешувати:

example.com.    300    A    93.184.216.34
                 │
                 └── TTL = 300 секунд (5 хвилин)

Короткий TTL (60-300):
- Швидше застосовуються зміни
- Більше навантаження на DNS сервер

Довгий TTL (3600-86400):
- Менше запитів до DNS
- Зміни застосовуються повільніше


Популярні публічні DNS

Провайдер IPv4 IPv6
Google 8.8.8.8, 8.8.4.4 2001:4860:4860::8888
Cloudflare 1.1.1.1, 1.0.0.1 2606:4700:4700::1111
Quad9 9.9.9.9 2620:fe::fe
OpenDNS 208.67.222.222 2620:119:35::35

Який обрати?

  • 1.1.1.1 (Cloudflare) — найшвидший, фокус на приватності
  • 8.8.8.8 (Google) — надійний, великий кеш
  • 9.9.9.9 (Quad9) — блокує шкідливі домени

Файл hosts

Локальний файл для ручного перевизначення DNS:

Розташування

ОС Шлях
Linux/Mac /etc/hosts
Windows C:\Windows\System32\drivers\etc\hosts

Формат

# IP-адреса    доменне-ім'я    [аліаси]
127.0.0.1      localhost
::1            localhost

# Власні записи
192.168.1.100  myserver.local  myserver
10.10.10.1     vpn-gateway

# Блокування (направляємо в нікуди)
0.0.0.0        ads.example.com
0.0.0.0        tracking.example.com

Файл hosts перевіряється до DNS запиту!


Команди для роботи з DNS

Linux/Mac

# Простий запит
nslookup google.com
dig google.com

# Детальний запит
dig google.com +short        # Тільки IP
dig google.com A             # Тільки A записи
dig google.com MX            # Поштові сервери
dig google.com ANY           # Всі записи

# Запит до конкретного DNS
dig @8.8.8.8 google.com

# Reverse DNS
dig -x 8.8.8.8

# Трасування DNS запиту
dig google.com +trace

# Очистити DNS кеш
# Ubuntu/Debian
sudo systemd-resolve --flush-caches
# Mac
sudo dscacheutil -flushcache

Windows

# Простий запит
nslookup google.com

# Запит до конкретного DNS
nslookup google.com 8.8.8.8

# Детальна інформація
nslookup -type=MX google.com
nslookup -type=ANY google.com

# Очистити DNS кеш
ipconfig /flushdns

# Показати DNS кеш
ipconfig /displaydns

MikroTik

# DNS налаштування
/ip dns print

# Встановити DNS сервери
/ip dns set servers=1.1.1.1,8.8.8.8

# Статичні DNS записи
/ip dns static add name=myserver.local address=192.168.1.100

# Очистити кеш
/ip dns cache flush

# Показати кеш
/ip dns cache print

Практичний приклад: Налаштування домену

Сценарій: Маєш домен example.com і сервер 93.184.216.34

Крок 1: NS записи (в реєстратора домену)

example.com    NS    ns1.cloudflare.com
example.com    NS    ns2.cloudflare.com

Крок 2: A записи (в DNS панелі)

example.com        A    93.184.216.34    # Головний домен
www.example.com    A    93.184.216.34    # www

Крок 3: MX записи (якщо потрібна пошта)

example.com    MX    10 mail.example.com
mail           A     93.184.216.34

Крок 4: TXT для верифікації

example.com    TXT    "v=spf1 ip4:93.184.216.34 -all"

DNS і безпека

Проблеми

  1. DNS запити не шифровані — провайдер бачить які сайти відвідуєш
  2. DNS spoofing — підміна відповідей
  3. DNS amplification — DDoS атаки через DNS

Рішення

DNS over HTTPS (DoH):

https://cloudflare-dns.com/dns-query
https://dns.google/dns-query

DNS over TLS (DoT):

Port 853 замість 53

DNSSEC:
Криптографічний підпис DNS записів


Типові проблеми та рішення

"Сайт не відкривається, але пінгується по IP"

→ Проблема DNS. Спробуй:

nslookup сайт.com
dig сайт.com

"DNS зміни не застосовуються"

→ Кеш. Очисти:
- Браузер: Ctrl+Shift+Delete
- ОС: ipconfig /flushdns або systemd-resolve --flush-caches
- Почекай TTL

"Різні IP на різних комп'ютерах"

→ Різний DNS кеш або різні DNS сервери. Перевір налаштування.

"Працює по IP, не працює по домену"

→ Перевір DNS записи:

dig example.com +short

Швидка шпаргалка

Запис Для чого Приклад
A IPv4 93.184.216.34
AAAA IPv6 2606:2800:...
CNAME Аліас www → example.com
MX Пошта mail.example.com
TXT Текст/SPF "v=spf1..."
NS DNS сервери ns1.provider.com
Команда Дія
dig domain.com DNS запит
nslookup domain.com DNS запит (Windows)
dig @8.8.8.8 domain.com Запит через Google DNS
dig domain.com MX Поштові сервери
ipconfig /flushdns Очистити кеш (Windows)

Попередня частина: IPv6 адресація

Шлях: networking/basics/dns.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications