✅ Good
DNS: Система доменних імен¶
DNS (Domain Name System) — це "телефонна книга" інтернету. Вона перетворює зрозумілі людям імена (google.com) в IP-адреси (142.250.74.78), які розуміють комп'ютери.
Чому це важливо?
Без DNS довелося б запам'ятовувати IP-адреси всіх сайтів. DNS — критична інфраструктура: якщо він не працює, інтернет "зламаний", навіть якщо всі сервери живі.
Як працює DNS запит?¶
sequenceDiagram
participant Browser as 🌐 Браузер
participant Cache as 📦 Локальний кеш
participant Resolver as 🔍 DNS Resolver<br/>(1.1.1.1)
participant Root as 🌍 Root DNS
participant TLD as 📁 .com TLD
participant Auth as 🎯 Authoritative<br/>Google DNS
Browser->>Cache: google.com?
Cache-->>Browser: ❌ Немає в кеші
Browser->>Resolver: google.com?
Resolver->>Root: Хто відповідає за .com?
Root-->>Resolver: TLD сервери .com
Resolver->>TLD: Хто відповідає за google.com?
TLD-->>Resolver: ns1.google.com
Resolver->>Auth: Яка IP у google.com?
Auth-->>Resolver: 142.250.74.78
Resolver-->>Browser: 142.250.74.78
Note over Cache: Кешуємо на TTLЕтапи запиту¶
- Кеш браузера — може вже знає?
- Кеш ОС —
/etc/hostsабо системний кеш - DNS resolver — провайдер або публічний (8.8.8.8, 1.1.1.1)
- Root DNS → TLD DNS → Authoritative DNS
- Відповідь кешується на час TTL
Ієрархія DNS¶
flowchart TB
subgraph root["🌍 Root Zone (.)"]
ROOT["13 кореневих серверів<br/>a.root-servers.net ... m.root-servers.net"]
end
subgraph tld["📁 Top-Level Domains"]
COM[".com"]
ORG[".org"]
UA[".ua"]
NET[".net"]
end
subgraph sld["🏢 Second-Level Domains"]
GOOGLE["google.com"]
AMAZON["amazon.com"]
UMTC["umtc.ua"]
end
subgraph sub["📄 Subdomains"]
MAIL["mail.google.com"]
DOCS["docs.google.com"]
WIKI["wiki.umtc.ua"]
end
ROOT --> tld
COM --> GOOGLE
COM --> AMAZON
UA --> UMTC
GOOGLE --> MAIL
GOOGLE --> DOCS
UMTC --> WIKI
style root fill:#fee2e2
style tld fill:#fef3c7
style sld fill:#d1fae5Структура доменного імені¶
www . example . com .
│ │ │ │
│ │ │ └── Root (кореневий, зазвичай не пишеться)
│ │ └─────── TLD (Top-Level Domain)
│ └──────────────── SLD (Second-Level Domain)
└───────────────────────── Subdomain
Типи DNS записів¶
| Тип | Призначення | Приклад |
|---|---|---|
| A | IPv4 адреса | 93.184.216.34 |
| AAAA | IPv6 адреса | 2606:2800:220:1::1 |
| CNAME | Псевдонім (alias) | www → example.com |
| MX | Поштовий сервер | 10 mail.example.com |
| TXT | Текст (SPF, DKIM) | "v=spf1 ..." |
| NS | DNS сервери домену | ns1.example.com |
| PTR | Reverse DNS (IP → домен) | example.com |
| SRV | Сервіс (порт, пріоритет) | sipserver:5060 |
Приклади записів¶
; A запис — IPv4 адреса
example.com. A 93.184.216.34
; AAAA запис — IPv6 адреса
example.com. AAAA 2606:2800:220:1:248:1893:25c8:1946
; CNAME — псевдонім
www.example.com. CNAME example.com.
; MX — поштові сервери (число = пріоритет, менше = краще)
example.com. MX 10 mail.example.com.
example.com. MX 20 backup.example.com.
; TXT — SPF запис для пошти
example.com. TXT "v=spf1 include:_spf.google.com ~all"
; NS — DNS сервери домену
example.com. NS ns1.cloudflare.com.
example.com. NS ns2.cloudflare.com.
TTL — Time To Live¶
Кожен DNS запис має TTL — час (в секундах), скільки його можна кешувати.
example.com. 300 A 93.184.216.34
│
└── TTL = 300 секунд (5 хвилин)
| TTL | Особливості |
|---|---|
| Короткий (60-300с) | Зміни застосовуються швидко, але більше навантаження |
| Довгий (3600-86400с) | Менше запитів, але зміни застосовуються повільно |
Перед міграцією
Зменшіть TTL заздалегідь (за 24-48 годин). Після міграції поверніть назад.
Публічні DNS сервери¶
| Провайдер | IPv4 | IPv6 | Особливості |
|---|---|---|---|
| Cloudflare | 1.1.1.1, 1.0.0.1 |
2606:4700:4700::1111 |
Найшвидший |
8.8.8.8, 8.8.4.4 |
2001:4860:4860::8888 |
Найпоширеніший | |
| Quad9 | 9.9.9.9 |
2620:fe::fe |
Блокує malware |
| OpenDNS | 208.67.222.222 |
2620:119:35::35 |
Фільтрація |
Рекомендація для UMTC
Використовуйте `1.1.1.1` (Cloudflare) як основний і `8.8.8.8` (Google) як резервний.
Файл hosts¶
Локальний файл для ручного перевизначення DNS. Перевіряється до 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
Команди для роботи з DNS¶
Linux/Mac¶
# Простий запит
dig google.com
nslookup google.com
# Тільки IP
dig google.com +short
# Конкретний тип запису
dig google.com A # IPv4
dig google.com AAAA # IPv6
dig google.com MX # Пошта
dig google.com TXT # SPF, DKIM
dig google.com NS # DNS сервери
# Запит через конкретний DNS
dig @1.1.1.1 google.com
# Reverse DNS (IP → домен)
dig -x 8.8.8.8
# Трасування DNS запиту
dig google.com +trace
# Очистити кеш
sudo systemd-resolve --flush-caches # Ubuntu/Debian
sudo dscacheutil -flushcache # macOS
Windows¶
# Запит
nslookup google.com
# Через конкретний DNS
nslookup google.com 8.8.8.8
# Конкретний тип
nslookup -type=MX google.com
# Очистити кеш
ipconfig /flushdns
# Показати кеш
ipconfig /displaydns
MikroTik RouterOS¶
# Показати налаштування DNS
/ip dns print
# Встановити DNS сервери
/ip dns set servers=1.1.1.1,8.8.8.8 allow-remote-requests=yes
# Статичні записи (локальний DNS)
/ip dns static add name=myserver.local address=192.168.1.100
# Очистити кеш
/ip dns cache flush
# Показати кеш
/ip dns cache print
Практичний приклад: Налаштування домену¶
flowchart TB
subgraph registrar["1️⃣ Реєстратор домену"]
NS["NS записи<br/>ns1.cloudflare.com<br/>ns2.cloudflare.com"]
end
subgraph dns["2️⃣ DNS провайдер (Cloudflare)"]
A["A: example.com → 93.184.216.34"]
WWW["A: www → 93.184.216.34"]
MX["MX: 10 mail.example.com"]
TXT["TXT: v=spf1 ..."]
end
subgraph server["3️⃣ Сервер"]
WEB["Веб-сервер<br/>93.184.216.34"]
end
registrar --> dns
dns --> server
style registrar fill:#fee2e2
style dns fill:#fef3c7
style server fill:#d1fae5Кроки налаштування¶
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
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 і безпека¶
Загрози¶
| Загроза | Опис |
|---|---|
| DNS Spoofing | Підміна відповідей DNS |
| 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
tls://1.1.1.1
DNSSEC — криптографічний підпис DNS записів.
Troubleshooting¶
| Симптом | Перевірка | Рішення |
|---|---|---|
| Сайт не відкривається | ping IP vs ping domain |
Якщо IP працює — проблема DNS |
| Зміни не застосовуються | dig domain +short |
Очистіть кеш, зачекайте TTL |
| Різні IP на різних ПК | Порівняйте DNS сервери | Уніфікуйте налаштування |
| Повільний DNS | dig domain (час) |
Змініть DNS сервер |
# Швидка діагностика
ping 8.8.8.8 # Є інтернет?
ping google.com # DNS працює?
dig google.com +short # Що відповідає DNS?
Пов'язані теми¶
- IPv4 — адресація
- IPv6 — сучасна адресація
- DHCP/DNS на MikroTik — локальний DNS
- Безпека — DNS over HTTPS/TLS
Шлях: networking/basics/dns.md