Що таке DNS

Служба Доменних Імен, або DNS призначена для того, щоб комп’ютери, що працюють у всесвітній мережі, буквенному імені – домену – могли визначити IP-адресу сервера і звернутися до нього за контентом.
У свою чергу, домен – це ім’я вашого сайту в мережі інтернет. Доменні імена бувають першого, другого, третього і ще багато-багато рівнів. Наприклад, .UA – це домен першого рівня, а hostpro.ua – уже другого, а ось wiki.hostpro.ua – домен третього рівня.

Як виникла система DNS

За часів зародження всіх сучасних технологій (70-80-і роки XX століття) комп’ютерні мережі були зовсім невеликими, а адреси всіх комп’ютерів в мережі можна було легко занести в список. Незабаром прийшли до висновку, що запам’ятовувати цифри не зручно, набагато зручніше використовувати деякі осмислені назви. Тому вирішили назвати всі комп’ютери по іменах і записати відповідності мережевих адрес і зрозумілих людині імен в спеціальному файлі.

Отже, користувач вводив ім’я потрібного йому комп’ютера, а комп’ютер дивився в файлі, яка мережева адреса йому відповідає і запитував потрібну інформацію. Для внесення змін до цього файлу був призначений співробітник, який записував всі зміни і поширював актуальну версію всім бажаючим. Навіть зараз ви можете знайти цей файл з назвою “hosts” на комп’ютері і побачити, як він улаштований.

Згодом мережа виросла, файл з іменами комп’ютерів збільшувався стрімкими темпами, знайти що-небудь в ньому стало складно, оновлення записувалися не відразу… Таким чином з’явилася система доменних імен – Domain Name System (DNS)

Обраний принцип роботи зберігся – мережева адреса ресурсу віддавалася у відповідь на запит по його імені. Але ім’я комп’ютера, або доменне ім’я, стало розділене на частини за допомогою крапок (наприклад, hostpro.ua) і інформація про кожну із частин зберігалася на своєму сервері імен. Тепер інформація про новий домен автоматично ставала доступною для всіх через певний час. Крім записів про цифрову (IP) адресу домену, з’явилися інші записи: про доступні ресурси, про дзеркала, про поштові сервери, інша службова інформація.

Таким чином, DNS потрібна:

  1. Щоб при введенні імені сайту, наприклад, hostpro.ua, ваш комп’ютер або смартфон міг зрозуміти, за якою адресою в мережі його шукати;
  2. Щоб ваш пристрій міг визначити що www.hostpro.ua – це той самий сайт, що і hostpro.ua;
  3. Щоб при відправці листа із ukr.net на gmail.com, сервер ukr.net міг визначити, на який сервер йому пересилати цей лист;
  4. Щоб gmail.com міг переконатися, що адреса, з якої відправлено лист, дійсно належить ukr.net;
  5. Щоб у випадку виникнення проблем в роботі якоїсь частини DNS було відомо контактну адресу відповідальної особи або компанії.

Що таке DNS-зона, із чого вона складається

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

Виглядає приблизно так:

DNS_rec

Ресурсний запис, або запис DNS складається із різних полів: Ім’я, Тип, Клас, TTL, значення. Ім’я – це домен, до якого запис відноситься. Тип відповідає за призначення запису, наприклад, A, AAAA, MX, NS, SOA, TXT і т.д. Класи раніше розділяли записи для мережі Інтернет і для інших мереж, зараз використовується тільки IN для Інтернет. TTL – інтервал часу, на який проміжний DNS-сервер може у себе зберегти закешовану інформацію. Значення – це, власне, корисна інформація, формат якої залежить від типу запису.

Є велика кількість різних типів записів, про які поговоримо в наступних статтях.

Найбільш часто використовувані такі типи записів:

  • А-запис – визначає IP-адресу доменного імені в мережі IPv4;
  • NS-записи – вказують, де зберігається вся DNS-зона домену, таких записів для відмовостійкості має бути більше однієї;
  • MX-записи – вказують на адреси поштових серверів домену, їх може бути кілька і вони мають пріоритет; чим менше значення пріоритету, тим він вищий.

Як виконується запит до DNS-серверу

Оскільки DNS працює за ієрархічним принципом, вона нагадує дерево. У дерева є вершина – коренева зона, – за якою зарезервоване нульове ім’я, за неї відповідають кореневі сервери. Ця зона непомітно присутня у всіх доменних іменах – це крапка, яка зазвичай опускається при написанні, наприклад, “facebook.com.” Кореневі сервера, їх всього 13, містять інформацію про домени першого рівня (ua, net, info і т. д).

Отже, ви набираєте в браузері адресу сайту facebook.com – що відбувається з точки зору DNS?

1) Браузер перевіряє свій кеш – може, ви нещодавно заходили на Фейсбук і ця інформація збереглася. Якщо ні – наступний крок.

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

3) DNS-сервер вашого провайдера спочатку перевіряє свій кеш (може, хтось із ваших сусідів тільки но заходив на Фейсбук?). І перевіряє свою локальну базу (може, він і зберігає у себе зону facebook.com?). Якщо нічого не знаходиться, цей сервер робить кілька запитів і складає для вас відповідь.

4) Спочатку запит відправляється найбільш близькій кореневого сервера. Адреси кореневих серверів зазвичай записані в налаштуваннях у всіх DNS-серверів, оскільки змінюються вони дуже рідко. Кореневий сервер відповідає, що він не знає адреси “facebook.com”, і повертає список серверів, на яких розташовані записи всіх доменів .com.

5) Таким чином, сервер провайдера записує отриману інформацію в кеш, і при пошуку всіх доменів, що закінчуються на .com буде звертатися вже до цього невеликого числа серверів. Тому у першого сервера зі списку він питає його: яку адресу має facebook.com? Отримана адреса передається на ваш комп’ютер і браузер показує вам стрічку Фейсбук.

Ось скільки кроків виконує ваш комп’ютер для такої простого дії, як відкриття будь-якого сайту в браузері.