Розповідаємо, як браузер розуміє, де знаходиться сайт, коли ми вводимо в адресному рядку домен.
Що таке DNS
DNS — це технологія, яка допомагає браузеру знайти правильний сайт за доменним іменем.
Ви вже знаєте, що комп’ютери знаходять один одного в інтернеті за IP-адресами. Щоб підключитися до сервера з конкретним сайтом, потрібно знати його IP-адресу. Схожим чином влаштований мобільний зв’язок: щоб зателефонувати конкретній людині, потрібно знати її номер.
Людям незручно використовувати довгі комбінації цифр, тому IP-адреси придумали пов’язувати зі зрозумілими текстовими іменами — доменами. Все-таки запам’ятати google.com простіше, ніж 216.58.209.14.
За такою ж логікою ми зберігаємо важливі номера в контактах смартфона. Тільки у випадку з доменами, нічого зберігати не потрібно. Ми просто вводимо в адресному рядку домен, а браузер сам знаходить IP-адресу потрібного сервера і відкриває сайт.
Відео З теми:
Прочитати статтю — добре, а прочитати статтю та подивитися відео — ще краще!
Дивіться наше відео про те, що таке домен та IP-адреса сайту
Як це працювало раніше
У перші роки інтернету доменам привласнювали IP-адреси вручну. Їх записували в текстовий файл hosts.txt в такому форматі:
216.58.209.14 google.com
По суті це і був список контактів, як в смартфоні. Коли користувач вводив в адресному рядку домен, браузер перевіряв файл і брав з нього IP-адресу.
Головним файлом керував Стенфордський дослідний інститут. Щоб додати до списку новий сайт, потрібно було дзвонити в інститут по телефону. Після цього всі комп’ютери в мережі повинні були завантажити оновлений файл.
Згодом такий підхід став забирати багато часу, тому що було потрібно вносити все більше і більше даних, і технологію вирішили вдосконалити. Нову систему придумали Пол Мокапетріс і Джон Постел в 1984 і назвали її DNS-протокол. Абревіатура означала Domain Name System, українською — Система Доменних Імен.
Що таке DNS-сервер
Налаштування кожного домена в інтернеті зберігаються в текстових файлах на DNS-серверах.
DNS-сервер — це спеціальний комп’ютер, який зберігає IP-адреси сайтів. Основні функції сервера DNS — видавати браузеру адресу сайту за доменним іменем і кешувати DNS-записи домену.
Тобто сервер DNS простими словами — це все та сама «книга контактів», той самий файл hosts.txt, тільки більших масштабів.
Коли ви відкриваєте в браузері сайт, в пошуку IP-адреси домену зазвичай беруть участь кілька DNS-серверів:
▶️ Локальний DNS-сервер вашого інтернет-провайдера. Браузери використовують DNS-сервер провайдера, щоб з його допомогою дізнатися IP-адресу сервера, де знаходиться сайт. Для цього в кожному браузері є спеціальна програма — DNS-клієнт. Замість серверів вашого провайдера може бути будь-який інший публічний DNS-сервер, якщо ви вкажете його в мережевих налаштуваннях. Наприклад, замість DNS-серверів інтернет-провайдера можна використовувати публічні сервери DNS від Google.
▶️ DNS-сервер верхнього рівня. DNS-сервери верхнього рівня містять інформацію про DNS-зони і називаються кореневими. Вони видають за запитом DNS-сервери доменів першого рівня, наприклад, COM, UA, ORG, NET, ONLINE. Кореневими серверами управляють різні організації. Вперше такі DNS-сервери з’явилися в Північній Америці, але з часом їх кількість зростала і вони з’являлися в інших країнах. Зараз є 13 основних DNS-серверів верхнього рівня і безліч реплік.
▶️ DNS-сервер, який відповідає за домен і де зберігаються записи доменного імені. Адреси DNS-серверів власнику домену зазвичай доводиться вказувати вручну — їх надсилає хостинг-провайдер. Наприклад, наші публічні DNS-сервери — dns1.hostiq.ua і dns2.hostiq.ua.
Як браузер знаходить IP-адресу або доменне ім’я
Розберемося покроково, як браузер розуміє, де знаходиться сайт, коли ми вводимо в адресному рядку домен:
Крок 1 Ви вводите в адресному рядку доменне ім’я, наприклад, google.com. Спочатку браузер перевіряє файл hosts.txt на комп’ютері. Якщо там не надається потрібної IP-адреси, він звертається до локального DNS-сервера вашого інтернет-провайдера. Його IP-адресу браузер знаходить в настройках підключення до інтернету.
Крок 2 Локальний DNS-сервер не знає потрібну IP-адресу особисто, але вміє обмінюватися інформацією з іншими DNS-серверами. Поки браузер чекає відповіді, локальний DNS-сервер звертається до головних серверів в світі — кореневих DNS-серверів — і просить IP-адресу для google.com. Кореневої DNS-сервер не знає IP-адресу цього домену, але знає IP-адреси DNS-серверів, які відповідають за всі домени в зоні .com.
Крок 3 Локальний DNS-сервер отримує IP-адресу одного з цих DNS-серверів і задає те саме питання йому. Цей DNS-сервер теж не знає IP-адресу Гугла, але знає IP-адреси DNS-серверів, які використовує google.com.
Крок 4 Локальний DNS-сервер отримує IP-адресу одного з цих DNS-серверів і звертається до нього. Цей DNS-сервер знає потрібну IP-адресу і відправляє її локальному DNS-серверу.
Крок 5 Локальний DNS-сервер отримує потрібну IP-адресу і відправляє її браузеру.
Крок 6 Браузер отримує IP-адресу google.com, звертається безпосередньо до сервера і просить відправити сайт.
Стаття з теми:
Типи DNS-записів і як ними управляти
Ми розповіли, як браузер знаходить IP-адресу або доменне ім’я для відкриття сайту, але до доменного імені можуть бути прив’язані і інші ресурси, наприклад, пошта. Для різних завдань є різні типи DNS-записів. Розглянемо на прикладі нашої Панелі клієнта, що це за записи і як їх створювати.
При додаванні DNS-записів будь-якого типу працює правило: щоб створити запис для домену, поле «Ім’я хоста» має залишатися порожнім. Якщо запис потрібний для піддомена — в «Ім’я хоста» потрібно вписати тільки унікальну частину.
А-запис — використовується для спрямування домену на IP-адресу сервера. Виберіть в списку, що випадає, тип запису «A (Address)» і в полі «Адреса» вкажіть потрібний IP.
АААА-запис — той самий А-запис, тільки в полі «Адреса» вказується IPv6, а не звичний IPv4.
CNAME-запис — дозволяє вказати псевдонім для домену. При створенні цього запису у рядку адреси вписується бажаний псевдонім. Якщо взяти приклад зі скріншоту нижче, то при переході по домену www.domain.com нас переспрямує на адресу hostiq.ua.
МХ-запис — потрібен для роботи пошти, в полі для адреси вказується хостнейм поштового сервера. Для цього типу записів є ще один параметр — пріоритет. Найвищим пріоритетом вважається 0, але зазвичай для найпріоритетніших записів вказують 10, для менш — 20, 30.
ТХТ-запис — використовується для передачі текстової інформації. В якості адреси вказуйте потрібний текст, наприклад, перевірочний запис.
Ми перерахували записи, які використовуються найчастіше, і для роботи сайту їх зазвичай досить, але в реальності типів DNS-записів набагато більше.
Зареєструйте свій домен з HOSTiQ.ua: це вигідно та зручно 🔥
✔️ Зручне керування DNS-записами в особистому кабінеті.
✔️ Реєстрація доменів більше ніж в 1200 доменних зонах: якщо бажане імʼя зайнято в поширених зонах на кшталт .com чи .net, ви точно знайдете класний аналог.
✔️ Разом із реєстрацією домену ви можете отримати безплатний хостинг із конструктором сайтів на місяць.
Якщо ви вже маєте зареєстрований домен, ви можете перенести його до нас. У нас цілодобова розумна служба підтримки та фіксована в доларах вартість доменів: ми не будемо міняти ціну, як нам заманеться. Обіцяємо піклуватися про ваш домен, як про свій 🙂
Файл hosts і чим він корисний
Незважаючи на появу DNS-серверів, файл hosts все ще використовується. У пошуках IP-адреси сайту браузер в першу чергу перевіряє файл hosts і тільки потім звертається до DNS-серверів. Тому розробники часто використовують цей файл при створенні сайту без зареєстрованого домену або для перевірки роботи ресурсу з локального сервера. Тоді в файлі hosts вказується запис виду:
156.23.55.13 domain.com
Після цього браузер буде відкривати сайт domain.com за адресою 156.23.55.13, не залежно від того, яка інформація вказана на DNS-серверах.
Читайте докладніше про те, як знайти цей файл і правильно внести в нього записи, в нашій статті про файл hosts.
DNS-кеш
Локальні DNS-сервери вміють кешувати налаштування, щоб швидше видавати інформацію при повторних запитах. Через це трапляються ситуації, коли власник домену поміняв налаштування, але браузер показує стару сторінку, тому що отримує IP-адресу з кеша.
У більшості випадків IP-адреси зберігаються в кеші півгодини. Якщо ви поміняли IP-адресу свого домена, але бачите в браузері стару сторінку, — почекайте трохи. Як тільки кеш видалиться, локальний DNS-сервер пройде ланцюжок DNS-запитів ще раз і ви побачите нову сторінку.
Потрапити в кеш може не тільки IP-адреса, але і запис про DNS-сервери, які використовує домен. Кеш цих записів зберігається довше — до 48 годин. Тому старий сайт може відкриватися довше, якщо замість IP-адреси власник домену міняв DNS-сервери.
DNS-кеш на стороні інтернет-провайдера можна очистити дистанційно:
Якщо користуєтеся Windows, натисніть комбінацію клавіш Win + R і напишіть у вікні cmd. Коли відкриється командний рядок, виконайте в ньому команду:
ipconfig/flushdns
В кінці має з’явитися повідомлення «Кеш DNS успішно очищений».
Якщо користуєтеся MacOS, знайдіть в пошуку «Термінал» або відкрийте «Finder» — «Програми» — «Утиліти» — «Термінал». У вікні виконайте команду:
dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Кеш видалиться після введення пароля.
При купівлі на рік — знижка 30%
На цьому все. Наступного разу розповімо про піддомени та сфери їх застосування. А поки — комікс про ланцюжок DNS-запитів, щоб закріпити інформацію:
Вам можуть сподобатися інші наші статті на суміжні теми: