Домени та DNS Технічні

Що насправді відбувається, коли ви вводите адресу сайту в браузер: подорож довжиною в 50 мілісекунд

Порти сервера Ethernet та VGA демонструють як працює DNS сервер

Ви набираєте google.com і натискаєте Enter. Сторінка з'являється за мить. Просто? А тепер уявіть: за цю мить ваш запит встиг облетіти пів планети, постукати у двері десятка серверів, отримати числовий код і повернутися назад. Все це - робота DNS, невидимої телефонної книги інтернету. І якщо ви коли-небудь реєстрували домен, переносили сайт або просто бачили помилку «DNS_PROBE_FINISHED_NXDOMAIN» - вам варто знати, як ця машинерія працює зсередини.

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

DNS простими словами: чому комп'ютери не розуміють слів

Люди запам'ятовують імена. Машини - числа. Це фундаментальне протиріччя існує з перших днів інтернету. Коли у 1983 році Пол Мокапетріс запропонував систему доменних імен (Domain Name System), він, по суті, створив перекладача між двома світами.

Ось як це працює на пальцях. Кожен сервер в інтернеті має IP-адресу - щось на кшталт 142.250.185.78. Спробуйте запам'ятати десяток таких номерів. А тепер уявіть, що їх мільярди. DNS дозволяє вам писати google.com замість цифрового коду, а система сама знайде потрібну адресу.

Аналогія з телефонною книгою тут найточніша. Ви шукаєте ім'я контакту - телефон підставляється автоматично. Різниця в тому, що ця «книга» розподілена по тисячах серверів у всьому світі і оновлюється кожну секунду.

Геометричний фасад будівлі як символ структури системи доменних імен
Геометричний фасад будівлі як символ структури системи доменних імен

Анатомія доменного імені: крапки, які ви не помічаєте

Подивіться на адресу blog.example.com.ua. Здається, що це просто назва? Ні. Це ієрархія, і кожна крапка - рівень цієї ієрархії.

  1. .ua - домен верхнього рівня (ccTLD), країнний код України. За нього відповідає організація Hostmaster.
  2. .com - домен другого рівня в зоні .ua. Вказує на комерційне призначення.
  3. example - безпосередньо ваш домен, той що ви реєструєте і оплачуєте.
  4. blog - піддомен (субдомен), який ви створюєте самостійно на своєму хостингу.

А тепер цікаве: існує ще один рівень, про який більшість людей не знає. Кореневий домен - невидима крапка після .ua (технічно адреса виглядає як blog.example.com.ua.). Саме з нього починається кожен DNS-запит. У світі лише 13 кореневих серверів (точніше - 13 кластерів, бо фізичних машин понад тисячу). Якщо всі вони зупиняться - інтернет, яким ми його знаємо, перестане працювати.

«DNS - це найбільша розподілена база даних у світі, і більшість людей навіть не підозрюють про її існування» - Пол Мокапетріс, творець DNS, інтерв'ю для IEEE Internet Computing.

Подорож запиту: від Enter до сторінки за 7 кроків

Натиснувши Enter, ви запускаєте ланцюжок подій, який займає від 20 до 120 мілісекунд. Ось що відбувається:

  1. Кеш браузера. Chrome (або інший браузер) спочатку перевіряє, чи не зберіг він цю адресу раніше. Якщо так - запит навіть не виходить з вашого комп'ютера.
  2. Кеш операційної системи. Windows, macOS, Linux мають власний DNS-кеш. Команда ipconfig /displaydns у Windows покаже вам усе, що ОС вже знає.
  3. Рекурсивний резолвер. Якщо локально нічого не знайдено, запит іде до DNS-сервера вашого провайдера (або до 8.8.8.8, якщо ви налаштували Google Public DNS).
  4. Кореневий сервер. Резолвер питає: «Хто відповідає за зону .ua?» Кореневий сервер дає адресу.
  5. TLD-сервер. Сервер зони .ua відповідає: «За example.com.ua відповідає ось цей NS-сервер».
  6. Авторитативний сервер. Нарешті, NS-сервер домену повертає конкретну IP-адресу.
  7. Відповідь. Резолвер передає IP вашому браузеру, браузер з'єднується з сервером, і ви бачите сайт.

Здається складно? Уявіть, що ви шукаєте людину в іншому місті. Спочатку дзвоните в довідкову країни, потім в обласну, потім в міську, і вже там дають точну адресу. DNS працює так само - від загального до конкретного.

Смартфон із картою світу символізує глобальне налаштування DNS для домену
Смартфон із картою світу символізує глобальне налаштування DNS для домену

DNS-записи: словник, без якого нікуди

Коли ви заходите в панель керування доменом, то бачите таблицю з незрозумілими літерами: A, AAAA, CNAME, MX, TXT. Це DNS-записи - інструкції, які пояснюють світу, де шукати ваш сайт, пошту, сервіси.

Тип запису Що робить Приклад значення Коли потрібен
A Зв'язує домен з IPv4-адресою 93.184.216.34 Завжди - основа будь-якого сайту
AAAA Те саме, але для IPv6 2606:2800:220:1:248:1893:25c8:1946 Якщо хостинг підтримує IPv6
CNAME Псевдонім - перенаправляє на інший домен www -> example.com Піддомени, CDN-сервіси
MX Вказує поштовий сервер mail.example.com (пріоритет 10) Корпоративна пошта, Google Workspace
TXT Текстова інформація (верифікація, SPF, DKIM) v=spf1 include:_spf.google.com ~all Захист від спаму, підтвердження прав
NS Вказує авторитативні DNS-сервери ns1.example-hosting.com Делегування домену на хостинг

Найчастіша помилка новачків - плутати A-запис і CNAME. A-запис вказує на конкретну IP-адресу. CNAME - на інше доменне ім'я. Якщо ваш хостинг-провайдер каже «вкажіть CNAME на cdn.provider.com», а ви створюєте A-запис з текстом - нічого не запрацює.

TTL і пропагація: чому зміни не працюють «прямо зараз»

Ви перенесли сайт на новий хостинг, змінили A-запис, а сайт показує стару версію. Знайома ситуація? Причина - TTL (Time To Live) і процес DNS-пропагації.

TTL - це час у секундах, протягом якого DNS-резолвери зберігають запис у кеші. Типові значення:

  • 300 секунд (5 хвилин) - агресивно швидке оновлення, більше навантаження на DNS-сервер
  • 3600 секунд (1 година) - золота середина для більшості сайтів
  • 86400 секунд (24 години) - для записів, що рідко змінюються

Лайфхак від досвідчених адміністраторів: за 24-48 годин до міграції зменшіть TTL до 300 секунд. Тоді після зміни IP-адреси оновлення розлетиться по світу за хвилини, а не за добу. Після завершення міграції поверніть TTL назад.

DNS-пропагація - це не магія. Це просто час, поки тисячі серверів по всьому світу оновлять свій кеш. Перевірити поточний стан можна через сервіси на кшталт whatsmydns.net або dnschecker.org - вони показують, яку IP-адресу бачать резолвери в різних країнах.

Спіраль ДНК як метафора ланцюжка DNS записів у системі доменних імен
Спіраль ДНК як метафора ланцюжка DNS записів у системі доменних імен

Безпека DNS: атаки, про які варто знати

DNS проєктувався у 1983 році, коли інтернетом користувалися кілька тисяч вчених. Безпека не була пріоритетом. Сьогодні цим активно користуються зловмисники.

DNS-спуфінг (отруєння кешу) - атакуючий підміняє відповідь DNS-сервера і перенаправляє вас на фейковий сайт. Ви вводите адресу банку - потрапляєте на копію, яка краде ваші дані. Виглядає все ідентично, навіть адреса в рядку браузера правильна.

DDoS на DNS - якщо «покласти» авторитативний DNS-сервер домену, сайт стає недоступним. Саме так у 2016 році атака на провайдера Dyn вивела з ладу Twitter, Reddit, Netflix і десятки інших гігантів одночасно.

Що з цим робити?

  • DNSSEC - криптографічний підпис DNS-записів. Резолвер перевіряє підпис і відкидає підроблені відповіді.
  • DNS over HTTPS (DoH) - шифрує DNS-запити, щоб провайдер або зловмисник у мережі не міг їх прочитати чи підмінити. Firefox і Chrome вже підтримують цю технологію.
  • Резервні DNS-сервери - використовуйте мінімум два NS-сервери від різних провайдерів. Якщо один впаде, другий продовжить відповідати.

DNSSEC поки що увімкнений лише для приблизно 30% доменів у зоні .com за даними APNIC Labs (2024). Це означає, що 70% сайтів вразливі до спуфінгу. Перевірити свій домен можна через dnsviz.net.

Як обрати і налаштувати DNS правильно

Реєстратор домену зазвичай надає безкоштовні DNS-сервери. Вони працюють. Але «працює» і «працює добре» - різні речі.

Ось на що звертати увагу при виборі DNS-провайдера:

  1. Anycast-мережа - запити обробляються найближчим сервером. Cloudflare має точки присутності у 310+ містах. Різниця у швидкості відчутна.
  2. Uptime - простій DNS = простій сайту. Шукайте SLA від 99.99% і вище.
  3. Підтримка DNSSEC - must have у 2025 році.
  4. API та автоматизація - якщо у вас десятки доменів, ручне керування через веб-панель з'їсть усі нерви.
  5. Захист від DDoS - безкоштовні DNS рідко мають серйозний захист.

Серед популярних варіантів: Cloudflare DNS (безкоштовний, швидкий, з проксюванням), AWS Route 53 (гнучкий, платний, для складних конфігурацій), Google Cloud DNS (надійний, інтеграція з GCP). Для українських проєктів часто використовують DNS від реєстраторів на кшталт Hostmaster чи NIC.UA - вони ближче географічно і добре знають специфіку зони .ua.

Порада, яка збереже вам нерви: ніколи не тримайте домен і хостинг у одного провайдера без можливості розділити керування. Якщо щось піде не так - ви втратите доступ і до сайту, і до домену одночасно. Реєструйте домен окремо, хостинг - окремо. Делегуйте DNS через NS-записи.

DNS - це фундамент, на якому тримається кожен сайт, кожен email, кожен API-запит. Ви можете мати найкращий сервер, найшвидший код і найгарніший дизайн - але якщо DNS налаштований криво, ніхто цього не побачить. Запитайте себе: коли ви востаннє перевіряли DNS-записи свого домену? Можливо, саме зараз - вдалий момент це зробити?