Загальна Початківцям про хостинги

DNS для початківців: чому ваш сайт існує лише тому, що хтось правильно заповнив невидиму таблицю

Електрична панель з запобіжниками як аналогія налаштування 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 записів домену
Серверна кімната з обладнанням для обробки DNS записів домену

Типи 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 для сайту на хостингу через ноутбук
Працівниця налаштовує DNS для сайту на хостингу через ноутбук

Як DNS-запит подорожує від вашого браузера до сервера

Процес виглядає просто тільки на поверхні. Насправді кожен запит проходить кілька етапів, і розуміння цього ланцюжка допоможе вам діагностувати проблеми швидше, ніж будь-який тікет у техпідтримку.

  1. Локальний кеш браузера. Chrome, Firefox, Safari - всі вони зберігають DNS-відповіді. Якщо ви заходили на сайт 5 хвилин тому, браузер не робитиме новий запит.
  2. Кеш операційної системи. Windows, macOS, Linux мають власний DNS-кеш. Саме тому команда ipconfig /flushdns (Windows) або sudo dscacheutil -flushcache (macOS) іноді розв'язує «магічні» проблеми.
  3. Рекурсивний DNS-сервер провайдера. Ваш інтернет-провайдер має свій DNS-сервер (або ви використовуєте публічний - 8.8.8.8 від Google, 1.1.1.1 від Cloudflare). Він шукає відповідь або повертає закешовану.
  4. Кореневі DNS-сервери. Якщо ніхто не знає відповіді, запит йде до одного з 13 кореневих серверів (від a.root-servers.net до m.root-servers.net). Вони не знають конкретних IP, але знають, хто відповідає за зону .com, .ua, .org тощо.
  5. Авторитативний 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 записів пояснення для початківців

Інструменти, які перетворюють діагностику 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-запис, що вказує на неіснуючий поштовий сервер. А можливо, побачите, що все ідеально - і нарешті перестанете нервувати кожного разу, коли сайт довго завантажується.