Інтернет працює на коді. Це дикий хаотичний світ, який утримується разом стандартами, які ми ледве помічаємо. У центрі всього цього знаходиться DNS.

Люди часто говорять “Domain Name Server” (Сервер доменних імен). Це не так. Абревіатура розшифровується як Domain Name System (Система доменних імен). Це протокол із набору TCP/IP. Його завдання просте, але масштабне. Він перетворює зрозумілі людині імена, такі як howstuffworks.com, на адреси протоколу Інтернету (IP). Комп’ютери не читають слів. Вони читають цифри. 70.42.251.42 – так машина знаходить свого друга в мережі.

Розглядайте DNS як довідник телефону для інтернету. Без нього вам довелося запам’ятовувати рядки чисел, щоб відвідати будь-який сайт. Ви б орієнтувалися по віртуальних рівнинах і густих містах даних напам’ять. Наразі існують сотні мільйонів доменів. Успіхів вам у спробі запам’ятати їх усі.

Без серверів DNS веб-простір зупиняється. Але як ваш пристрій знає, якого сервера звертатися? Коли ви підключаєтеся до Wi-Fi або провайдера, ваш маршрутизатор або модем передає дані конфігурації. Серед них — сервери DNS, які ваш пристрій повинен використовувати для перетворення адрес.

Ми розглянули основи. Тепер перейдемо до механізмів. А саме, до того як структуровані IP-адреси і чому це важливо для дозволу імен.

Розуміння структури IP-адрес та процесу вирішення

Сервер DNS переводить доменне ім’я в IP-адресу. Звучить просто. Насправді, це не так.

  • У використанні знаходяться мільярди IP-адрес.
  • Більшість машин мають імена, зрозумілі людині.
    – Сервери DNS обробляють мільярди запитів одночасно.
  • Мільйони доменів змінюються щодня.

Щоб справлятися з таким навантаженням, DNS спирається на строгу ефективність. Стандарти керуються Управлінням із призначення інтернет-номерів (IANA). Кожному пристрою потрібна унікальна адреса або IPv4, або IPv6.

Ось як їх розрізняти:

  • IPv4 : Чотири числа, розділені точками. Приклад: 70.74.251.42.
  • IPv6 : Вісім шістнадцяткових груп, розділених двокрапками. Приклад: 2001:0cb8:85a3:0000:0000:8a2e:0370:7334.

IPv6 — новий стандарт. Поки ми будемо дотримуватись поширеного IPv4.

Кожне число в IPv4 є октетом. Воно є 8-бітне двійкове число. Візьмемо число 42. У двійковій системі це 00101010. Кожна цифра відповідає ступеню двійки. Складіть значення бітів, які увімкнені. 2+8+32=42.

Для кожного октету існує лише 256 можливих значень. Від нуля до 255.

Деякі адреси зарезервовані. IANA призначає їх до конкретних завдань. 127.0.0.1 – це адреса локального вузла (loopback). Він ідентифікує комп’ютер, який ви використовуєте. Спілкування з 127.0.0.1 – це просто спілкування із самим собою.

Веб-серверам потрібна стабільність. Вони використовують статичні IP-адреси. Одна і та ж адреса завжди призначається мережному інтерфейсу цієї системи. Щоб забезпечити це, IP-адреса зв’язується з адресою керування доступом до середовища (MAC). MAC-адреса вписується в обладнання виробником. Він унікальний. Кожен дротовий або бездротовий інтерфейс має таку адресу.

Тепер подивимося на інший бік рівняння — доменні імена. Але спочатку, де ховається ваша власна IP-адреса?

Як знайти IP-адресу на будь-якому пристрої

Ваша адреса періодично змінюється, якщо ви не встановили статичний IP. Для домашніх користувачів це рідкість. Ось як знайти його прямо зараз.

  • Windows : Відкрийте командний рядок. Введіть ipconfig. Натисніть клавішу Enter. Шукайте IPv4-адресу.
  • Mac : Перейдіть до Системні налаштування. Натисніть “Мережа”. Виберіть активне підключення (зелена точка). Натисніть “Додатково”. Перейдіть на вкладку TCP/IP.
  • Linux або UNIX : Відкрийте термінал, наприклад XTERM або iTerm. Введіть ifconfig. Шукайте inet addr.
  • Смартфони : Перевірте налаштування мережі в операційній системі. Це залежить від телефону та версії ОС.

Якщо ви знаходитесь в домашній мережі, ви, швидше за все, побачите 192.168.x.x, 172.16.x.x або 10.x.x.x. Літера x — це число від 0 до 255. Це приватні адреси, що зарезервовані. Ваш маршрутизатор використовує їх для підключення до широкого інтернету.

Це – локальна сторона. Наступний крок – розуміння самих доменних імен.

Як насправді працюють доменні імена

Запам’ятовувати IP-адреси – це програшна битва. Ваш мозок не здатний утримувати випадкові набори цифр, але він обожнює слова. У цьому полягає вся суть доменних імен. У вас уже є сотні таких імен, що закешовані в голові.

  • google.com – гігант, яким користується кожен
  • mit.edu – обмежений сферою освіти
  • bbc.co.uk — вкладена структура кодів країн

Ви бачите точки. Ви знаєте цей патерн. Останній фрагмент цієї адреси – це домен верхнього рівня (TLD). IANA управляє ними у базі даних кореневої зони. Нині їх понад 1000. Більшість із них відкриті для всіх. Деякі обмежені.

  • COM, NET, ORG — їх може зареєструвати будь-хто. Спочатку вони призначалися для комерційного використання, мереж та некомерційних організацій. Зараз? Просто мітки.
  • EDU, MIL, GOV – обмежені. Ви не можете просто купити адресу .edu, якщо ви не є навчальним закладом.
  • .UK, .US, .RU – коди країн. Управляються місцевими органами влади.

Додавання слів до TLD створює ієрархію. Кожна точка відокремлює рівень. «howstuffworks» знаходиться як домен другого рівня під .com. Ця структура вказує на конкретні сервери.

Візьмемо bbc.co.uk. Це не просто домен. Це піддомен під .co, що сам знаходиться під .uk. Це вкладена система файлів для Інтернету.

Слово у крайній лівій частині? Це ім’я хоста. Зазвичай це www або mail. Воно повідомляє системі, якого саме комп’ютера ви хочете підключитися. Один домен може обслуговувати мільйони унікальних імен хостів. Поки вони не конфліктують, все гаразд.

Потім є префікс. HTTP. Протокол передачі гіпертексту. Це рукостискання між вашим браузером та сервером. Але зараз ви рідко його бачитимете. Ви побачите HTTPS. “S” означає безпеку. Увімкнено шифрування. Номер кредитної картки залишається конфіденційним. Якщо ви не використовуєте HTTPS, ви кричите своїми даними через відкритий канал.

Коли ви реєструєте домен, ви повинні вказати, куди він веде. Саме вам потрібні сервери імен. Ці DNS-сервери мають повноваження для вашого домену. Вони знають, де знаходиться www.yoursite.com. Зазвичай цим займається ваш хостинг-провайдер. В них вже готова DNS-інфраструктура.

Як DNS-сервери маршрутизують трафік

Тут трапляється магія. Або починається біль голови, якщо щось зламається.

DNS – це не один великий комп’ютер. Це розподілена система. Ієрархія серверів, що працюють разом. Якщо один виходить з ладу, інші беруть він навантаження. Вона спроектована для сталості. Але вона також складна.

Коли ви вводите URL-адресу, ваш комп’ютер не просто вгадує IP-адресу. Він питає.

Спершу він перевіряє свій власний кеш. Чи відвідував він цей сайт учора? Чудово. Він уже знає IP-адресу. Не треба турбувати нікого іншого. Швидкість має значення. Затримка вбиває досвід користувача.

Якщо кеш порожній, він звертається до резолверу. Зазвичай він надається вашим інтернет-провайдером або публічним сервісом, таким як Cloudflare чи Google. Резолвер виконує основну роботу. Він ще не має відповіді, але знає, де шукати.

Він починає з верху. Корневі сервери. Їх 13 логічних кластерів, розподілених у всьому світі. Вони не знають IP-адреси вашого сайту. Вони знають, хто керує .com. Вони направляють резолвер до серверів TLD .com.

Сервери TLD знають, кому належить ваш домен. Вони направляють резолвер до ваших авторитетних серверів імен. Це ті, які ви налаштували під час реєстрації домену. Вони зберігають фактичний запис. Запис A. IP-адреса.

Резолвер одержує цей IP. Він відправляє його назад на ваш комп’ютер. Ваш браузер підключається. Сторінка завантажується.

Все це відбувається за мілісекунди. Ви не бачите рукостискань. Ви не бачите запитів, що стрибають між кореневими, TLD та авторитетними серверами. Ви просто бачите сторінку.

Але якщо на якомусь етапі станеться збій? Ви отримаєте помилку. “DNS_PROBE_FINISHED_NO_INTERNET”. Дратує. Тому що проблема не у вашому з’єднанні. Проблема у телефонній книзі.

Саме ця розподілена природа не дає інтернету впасти. Немає єдиної точки відмови. Але це також означає, що легко припуститися помилки конфігурації. Одна помилка у ваших налаштуваннях DNS, і ваш сайт зникає. Не вимикається. Просто стає необхідним.

Система покладається на точність. І надмірність. Якщо ваш авторитетний сервер виходить із ладу, але у вас налаштовані вторинні сервери, трафік продовжує текти. Якщо ні? Тиша.

Розуміння цього потоку допомагає, коли щось ламається. Не магія. Це таблиця пошуку. Дуже велика, дуже розподілена таблиця пошуку.

Що насправді робить DNS-сервер у вашій мережі

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

Це диво розподіленої інженерії.

Більшість людей сприймають DNS як чорну скриньку. Ви передаєте управління ІТ-відділу і сподіваєтеся на краще. Але для ефективного керування вам не обов’язково бути мережевим інженером. Вам просто потрібно зрозуміти опис завдання.

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

Кешируючий резольвер

Цей сервер знаходиться у вашій локальній мережі. Його головне завдання – не знати все поспіль, а запам’ятовувати те, що він часто запитує. Він зберігає невелику локальну базу даних доменних імен та IP-адрес, які ваша мережа використовує найчастіше.

Що стосується решти, він делегує запити. Він звертається до інших DNS-серверів за відповіддю. Це прискорює перегляд веб-сторінок для всіх користувачів цієї мережі. Вам не потрібно звертатися до кореневого сервера на іншому континенті під час відкриття кожної нової вкладки. Ви звертаєтесь до локального кешу.

Авторитетний сервер імен

Цей сервер зберігає майстер-запис. Він пов’язує IP-адреси з усіма хостами та піддоменами, за які несе відповідальність.

Тут немає делегування для своїх зон. Якщо ви володієте доменом, сервер є джерелом істини. Він повідомляє решті інтернету точне розташування вашого веб-сайту, поштового сервера або кінцевої точки API.

Один служить скороченням шляху, інший — джерелом даних.

Плутанина між ними — початок більшості проблем. Ви не можете кешувати записи, за які не несете відповідальності, і не можете бути авторитетними для домену, яким не керуєте.

Чому ця відмінність важлива? Тому що налаштування безпеки та продуктивності повністю залежать від ролі, яку виконує ваш сервер. Резольверу потрібні надійні політики кешування. Авторитетному серверу потрібне суворе керування зонами.

Отже, який із них ви використовуєте? Або ви використовуєте обидва? У невеликих конфігураціях часто зустрічається одна машина, яка виконує обидві задачі. Це нормально. Просто пам’ятайте, що це логічно окремі функції.

Розуміння цього поділу робить інше управління DNS менш схожим на магію і більше схожим на логіку.

Як ваш провайдер обробляє DNS-запити

Ваш інтернет-провайдер надає першу лінію оборони. Або напади. Залежно від того, як ви ставитеся до його звичок, обмежувати швидкість. При підключенні DHCP автоматично передає адресу DNS-сервера провайдера. Ви не просите його. Він просто з’являється.

Сервер провайдера працює як лінивий бібліотекар.

– Він перевіряє свої власні полиці. Якщо він має IP-адресу для цього домену, він передає його вам. Готово.
– Якщо полиця порожня, він звертається до іншого сервера. Він може послідовно запросити три чи чотири сервери.
– Він запам’ятовує відповідь. Кешування забезпечує швидку обробку майбутніх запитів.
– Якщо після ретельних пошуків він не знаходить потрібне, він повертає помилку. “Домен не знайдено”.

Досить просто. Але це лише сторона запитувача.

Хто насправді володіє даними домену

Друга група серверів має більше значення, якщо ви публікуєте будь-який контент. Це сервери, які прив’язані до вашого веб-хостингу або провайдера електронної пошти. Вам не потрібно бути адміністратором сервера, щоб використовувати їх. Панелі керування хостингом дозволяють виконати налаштування в один клік.

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

SOA є єдиним джерелом достовірної інформації. Решта — лише копія.

Кореневі сервери та ієрархія

На вершині є кореневі сервери імен. Вони обробляють домени верхнього рівня, такі як .com або .org. Їхні сотні. Ви рідко спілкуєтеся з ними безпосередньо. Ваш постачальник зазвичай зупиняється на рівні доменів верхнього рівня (TLD).

Але що, якщо ланцюжок переривається? Якщо провайдер відмовляється від пошуку? Система може відкотитись до кореневого сервера. Це крайній захід. Страхувальна мережа. Вона допомагає знайти правильний SOA, коли шлях губиться.

Налаштування авторитету вашого домену

Тепер ви бачите мережу. Як вона пов’язана. Чому вона швидка? Чому інколи вона дає збій.

Наступний крок – налаштувати себе як авторитет. Ви більше не просто читаєте картку. Ви її малюєте.

Налаштування записів домену

Ви вибрали ім’я. Воно вільне. Ви зареєстрували його. Що далі?

Вам потрібно повідомити інтернет, де саме знаходиться цей домен. Якщо ваш реєстратор відрізняється від хостинг-провайдера, вам потрібно подолати цей розрив. Направте домен на правильну IP-адресу або ім’я хоста. Це відбувається за допомогою записів DNS.

Розглядайте записи DNS як інструкції. Кожна їх виконує певне завдання. Вони зберігаються у файлі зони на сервері DNS. Якщо ви використовуєте власний сервер, швидше за все, ви редагуєте файл вручну в текстовому редакторі. Більшість сучасних реєстраторів надають веб-інтерфейс. Це найпростіше. Ви просто натискаєте кнопки замість введення коду.

Ось типи записів, які ви дійсно використовуватимете.

Записи хоста (A)
Це потрібний мінімум. A-запис зіставляє ім’я хоста з IP-адресою. Без A-запису немає веб-сайту. Це основний зв’язок між yourdomain.com та номером сервера 192.0.2.1.

Записи канонічного імені (CNAME)
Це є псевдонім. Прізвисько. CNAME вказує одне ім’я на інше. Якщо ви введете псевдонім, він автоматично перенаправить вас на сервер, визначений A-запису. Бажаєте, щоб www вказував на ваш основний домен? Використовуйте CNAME.

Записи поштового обмінника (MX)
Це відповідає за електронну пошту. Вона повідомляє світові, який сервер приймає пошту для вашого домену. Вам не потрібно розміщувати власний поштовий сервер. Більшість людей використовують Google або Microsoft. Ви створюєте MX-запис, який вказує на ghs.google.com або аналогічну адресу. Ваш домен зберігає свою ідентичність, але Gmail бере на себе основну роботу.

Записи серверів імен (NS)
Вони оголошують повноваження. NS-записи містять сервери імен, які відповідають за вашу зону. Коли інші сервери DNS шукають ваш домен, вони спочатку перевіряють ці NS-записи. Вони повідомляють глобальної мережі, хто має останнє слово в даних вашого домену.

Початок авторитету (SOA)
Головна запис. Вона знаходиться на початку кожного файлу зони. У ній вказано основний сервер імен та інші адміністративні дані. Якщо ви використовуєте DNS реєстратора, вам не потрібно працювати з цим. Якщо ви розміщуєте сервер самостійно, вам це потрібно розуміти.

Запис SOA є єдиним джерелом істини для DNS-зони вашого домену.

Ось як виглядає необроблений файл зони для тих, хто безпосередньо редагує текст. Середня колонка показує тип запису. Символ @ означає “це відноситься до кореневого домену, якщо не вказано інше”.

`

Більшість користувачів цікавляться лише MX та CNAME записами. Використовуйте MX, щоб надіслати електронну пошту до Google Workspace. Використовуйте CNAME, щоб “припаркувати” піддомени. Можливо, у вас є ігровий сервер на окремій IP-адресі. Направте games.example.com на нього за допомогою CNAME. Просто.

Як змінюється безпека DNS

DNS не є статичним. Він змінюється.

Наприкінці 2018 року ICANN запровадила нові функції безпеки. Вони оновили криптографічні ключі для DNSSEC. Зокрема ключ підпису ключа кореневої зони (KSK). Для фахівців у галузі технологій це стало великою подією.

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

Отруєння DNS та атаки типу “відмова в обслуговуванні” – це реальні загрози. Захист від них вимагає лишатися в курсі подій. Якщо ви керуєте DNS, ви не можете ігнорувати ці оновлення. Ключі змінилися не так. Безпека не опціональна, коли телефонна книга інтернету може бути переписана зловмисником.

Часті питання про DNS

Що таке DNS?
Це система доменних імен (Domain Name System). Телефонна книга Інтернету. Вона пов’язує зрозумілі людині URL-адреси зі зрозумілими машинами IP-адресами.

Що робить DNS?
Він зіставляє URL-адресу з конкретною IP-адресою веб-сайту. Без нього вам довелося б запам’ятовувати рядки чисел для кожного відвідуваного сайту.

Чи можу я використовувати 8.8.8.8?
Так. Це публічний DNS Google. Google підтримує його. Ним може користуватися будь-хто. Він часто працює швидше, ніж DNS вашого інтернет-провайдера за замовчуванням.

Чи безпечно перемикати DNS?
Так. Перемикання на OpenDNS або Google DNS є безпечним. Це оборотно. Це не зламає ваш комп’ютер чи мережу. Ви просто змінюєте каталог, в якому ви запитуєте адреси.

Що означає DNS на моєму телефоні?
Будь-яке інтернет-з’єднання використовує DNS. Ваш телефон не є винятком. Ви можете налаштувати приватний DNS для Android. Перейдіть до Установки > Мережа та Інтернет > Додатково > Приватний DNS. Введіть ім’я хоста DNS. Натисніть “Зберегти”. Це надішле ваші запити через цього провайдера замість DNS вашого оператора за промовчанням.

Додаткові ресурси

Завжди є, що вивчити. DNS глибше, ніж просто вказівка ​​домену. Якщо ви хочете зануритися в архітектуру, пошукайте посібники із структури файлів зон або реалізації DNSSEC. Основи виводять ваш сайт онлайн. Деталі зберігають його у безпеці.