DNS для початківців: чому ваш сайт існує лише тому, що хтось правильно заповнив невидиму таблицю
Уявіть, що ви щойно орендували квартиру в новобудові. Адреса є, ключі є, меблі завезли. Але поштальйон не знає, де ви живете, бо ваш будинок ще не з'явився на жодній карті міста. Саме це відбувається з вашим сайтом, коли DNS налаштовано неправильно - або не налаштовано взагалі. Ви платите за хостинг, завантажили файли, все працює на локальній машині, а у браузері - біла сторінка або лячне повідомлення про помилку. І найгірше: ви навіть не розумієте, де шукати проблему, бо вона знаходиться в місці, яке більшість новачків ігнорують повністю.
Що таке DNS і чому без нього інтернет перетворюється на хаос
DNS - Domain Name System - це, по суті, телефонна книга інтернету. Тільки замість імен і номерів телефонів тут зберігаються доменні імена та IP-адреси серверів. Коли ви вводите в браузері example.com, ваш комп'ютер не має жодного уявлення, де фізично знаходиться цей сайт. Він звертається до DNS-сервера і запитує: «Гей, яка IP-адреса у цього домену?» DNS відповідає щось на кшталт 93.184.216.34, і тільки тоді браузер знає, куди надсилати запит.
Без DNS весь інтернет працював би виключно на числових адресах. Ви б запам'ятовували не google.com, а 142.250.185.206. Для одного сайту - ще куди не шло. Для двадцяти - катастрофа. Для мільярдів - неможливо.
Пол Мокапетріс, один із авторів DNS, описав систему ще у 1983 році в RFC 882 і RFC 883. З того часу базова логіка не змінилася - змінилися лише масштаби та рівні складності.

Типи DNS-записів: таблиця, яку треба вивчити раз і назавжди
Коли ви заходите в панель керування доменом або хостингом, вас зустрічає форма з полями на кшталт «A», «CNAME», «MX», «TXT». Для новачка це виглядає як шифрограма. Але насправді кожен тип запису виконує конкретну, зрозумілу функцію. Давайте розберемо їх.
| Тип запису | Що робить | Приклад значення | Коли потрібен |
|---|---|---|---|
| A | Вказує на IPv4-адресу сервера | 93.184.216.34 | Завжди - базовий запис |
| AAAA | Вказує на IPv6-адресу сервера | 2606:2800:220:1:248:1893:25c8:1946 | Якщо хостинг підтримує IPv6 |
| CNAME | Створює псевдонім для іншого домену | www.example.com → example.com | Субдомени, CDN |
| MX | Маршрутизує електронну пошту | mail.example.com (пріоритет 10) | Якщо використовуєте пошту на домені |
| TXT | Зберігає текстову інформацію | v=spf1 include:_spf.google.com ~all | SPF, DKIM, верифікація |
| NS | Вказує, які DNS-сервери обслуговують домен | ns1.hosting.com | При делегуванні домену |
Найпоширеніша помилка новачків - плутати A-запис із CNAME. A-запис завжди вказує на конкретну IP-адресу. CNAME - це посилання на інше доменне ім'я. Якщо ви підключаєте CDN типу Cloudflare, вам часто потрібен саме CNAME. Якщо прив'язуєте домен напряму до VPS - потрібен A-запис.
TTL: невидимий таймер, який псує вам нерви при переїзді
TTL - Time To Live - це число в секундах, яке каже DNS-серверам по всьому світу: «Запам'ятай цю відповідь на стільки-то часу, і не питай мене знову». Стандартне значення - 3600 секунд, тобто одна година. Деякі реєстратори за замовчуванням ставлять 86400 - це 24 години.
Чому це важливо? Уявіть ситуацію: ви переносите сайт на новий хостинг, змінюєте A-запис на нову IP-адресу. Якщо TTL стояв на 86400, то частина відвідувачів ще добу бачитиме старий сервер. А на старому сервері вже нічого немає. Класика.
«Перед будь-якою міграцією знизьте TTL до 300 секунд за 24-48 годин до зміни DNS-записів. Це єдиний спосіб мінімізувати період, коли різні користувачі бачать різні версії вашого сайту.» - рекомендація з документації Cloudflare для розробників
Порада здається банальною, але за моїми спостереженнями, приблизно 7 із 10 початківців забувають про TTL при першій міграції. А потім годинами шукають проблему в конфігах Nginx або Apache, хоча сервер працює ідеально - просто DNS ще не оновився.

Як DNS-запит подорожує від вашого браузера до сервера
Процес виглядає просто тільки на поверхні. Насправді кожен запит проходить кілька етапів, і розуміння цього ланцюжка допоможе вам діагностувати проблеми швидше, ніж будь-який тікет у техпідтримку.
- Локальний кеш браузера. Chrome, Firefox, Safari - всі вони зберігають DNS-відповіді. Якщо ви заходили на сайт 5 хвилин тому, браузер не робитиме новий запит.
- Кеш операційної системи. Windows, macOS, Linux мають власний DNS-кеш. Саме тому команда ipconfig /flushdns (Windows) або sudo dscacheutil -flushcache (macOS) іноді розв'язує «магічні» проблеми.
- Рекурсивний DNS-сервер провайдера. Ваш інтернет-провайдер має свій DNS-сервер (або ви використовуєте публічний - 8.8.8.8 від Google, 1.1.1.1 від Cloudflare). Він шукає відповідь або повертає закешовану.
- Кореневі DNS-сервери. Якщо ніхто не знає відповіді, запит йде до одного з 13 кореневих серверів (від a.root-servers.net до m.root-servers.net). Вони не знають конкретних IP, але знають, хто відповідає за зону .com, .ua, .org тощо.
- Авторитативний DNS-сервер. Фінальна точка. Саме тут зберігаються ваші A, CNAME, MX записи. Саме цей сервер дає остаточну відповідь.
Весь цей шлях зазвичай займає 20-120 мілісекунд. Непомітно для людини. Критично для пошукових систем, які оцінюють швидкість відповіді сервера.
П'ять помилок у DNS, які роблять абсолютно всі новачки
Я не перебільшую. За роки роботи з клієнтами, які тільки починали розбиратися з хостингом, ці помилки повторювалися з лячною регулярністю. Ось ваш чек-лист того, чого робити не треба:
- Забувають змінити NS-записи у реєстратора. Купили домен в одному місці, хостинг - в іншому, а NS-записи досі вказують на дефолтні сервери реєстратора. Результат - сайт не відкривається.
- Створюють одночасно A-запис і CNAME для кореневого домену. Технічно CNAME на кореневому домені (@) заборонений стандартом RFC 1912. Деякі провайдери це дозволяють через хаки, але це шлях до непередбачуваної поведінки.
- Ігнорують MX-записи. Підключили домен до хостингу, все працює, а пошта user@yourdomain.com - ні. Бо MX-записи ніхто не налаштував.
- Не перевіряють propagation. Змінили запис і одразу панікують, що «нічого не працює». DNS propagation може тривати від 5 хвилин до 48 годин залежно від TTL та географії.
- Використовують DNS-сервери провайдера за замовчуванням. Вони часто повільні, рідко оновлюються і можуть фільтрувати або підмінювати відповіді.

Інструменти, які перетворюють діагностику DNS на задоволення
Добра новина: вам не потрібно бути мережевим інженером, щоб перевірити стан DNS. Існує кілька безкоштовних інструментів, які дають повну картину за секунди.
Команда dig (Linux/macOS) або nslookup (Windows) - ваш перший друг. Наприклад, dig example.com A покаже, яку IP-адресу повертає DNS для вашого домену. Якщо відповідь не збігається з IP вашого хостингу - ви знайшли проблему.
Онлайн-сервіси працюють ще наочніше. DNSChecker.org показує, як ваш домен резолвиться з різних точок світу. MXToolbox.com перевіряє MX-записи, SPF, DKIM і навіть наявність вашого IP у чорних списках. IntoDNS.com робить повний аудит DNS-зони і видає список помилок із поясненнями.
Є ще один прийом, про який мало хто розповідає початківцям. Якщо ви хочете перевірити, чи працює сайт на новому сервері ще до зміни DNS, просто додайте рядок у файл hosts на вашому комп'ютері:
123.45.67.89 yourdomain.com
Це змусить ваш браузер ігнорувати глобальний DNS і звертатися напряму до вказаної IP-адреси. Цей трюк економить години нервування під час міграції. Тільки не забудьте видалити цей рядок після завершення.
Безпека DNS: загроза, про яку новачки дізнаються занадто пізно
DNS створювався у 1980-х, коли інтернет був мережею кількох університетів. Ніхто не думав про безпеку. Результат - протокол за замовчуванням працює без шифрування. Ваші DNS-запити летять відкритим текстом, і будь-хто на шляху може їх прочитати або підмінити.
DNS spoofing (або cache poisoning) - атака, при якій зловмисник підсовує фальшиву IP-адресу замість справжньої. Ви вводите адресу свого банку, а потрапляєте на фішинговий сайт. І навіть не підозрюєте, бо адресний рядок показує правильний домен.
Як захиститися?
- DNSSEC - розширення, яке додає криптографічний підпис до DNS-відповідей. Не всі реєстратори його підтримують, але якщо ваш підтримує - вмикайте обов'язково.
- DNS over HTTPS (DoH) або DNS over TLS (DoT) - шифрують ваші DNS-запити. Firefox та Chrome вже підтримують DoH.
- Двофакторна автентифікація на акаунті реєстратора домену. Якщо хтось отримає доступ до вашого акаунту і змінить NS-записи - ви втратите контроль над доменом повністю.
Ось вам запитання, яке варто поставити собі прямо зараз: чи знаєте ви, які DNS-записи стоять на вашому домені в цю секунду? Якщо ні - відкрийте DNSChecker.org, введіть свій домен і подивіться. Можливо, ви виявите записи, які ставили три роки тому для тестового проєкту і забули видалити. Можливо, знайдете MX-запис, що вказує на неіснуючий поштовий сервер. А можливо, побачите, що все ідеально - і нарешті перестанете нервувати кожного разу, коли сайт довго завантажується.