По той бік “.com”

В останній раз я придбав свій перший домен для мого проєкту MindR (перевірте, якщо ще не бачили), і це змусило мене замислитися, як домени та інтернет в цілому стають доступними для нашого браузера. Шлях між введенням URL і відображенням веб-сторінки зовсім не прямолінійний.

Перше, що потрібно знати: що таке URL

Перед тим як розглянути, що відбувається після натискання Enter, давайте розберемося, що таке URL (Uniform Resource Locator). Ось приклад URL:

https://www.google.com/search?q=home

Кожна частина цього URL має свою роль:

  1. Схема (https://): Вказує браузеру, який протокол використовувати для доступу до вебсайту (наприклад, HTTP, HTTPS, WS).
  2. Домен (www.google.com): Легко запам'ятовуване ім'я сайту, яке буде перетворене на IP-адресу на наступних етапах.
  3. Шлях (/search): Направляє браузер до конкретного ресурсу або сторінки на сайті.
  4. Параметри запиту (q=home): Це додаткові дані для сервера, наприклад, ключові слова пошуку.

Таємний інгредієнт: DNS і чому це важливо

Коли ви вводите домен, наприклад, google.com, ваш браузер насправді потребує IP-адресу (деякі цифри з крапками) сервера, на якому розміщено вебсайт Google. Проте запам'ятовувати IP-адреси було б кошмаром, і тут на допомогу приходить DNS (система доменних імен).

DNS (система доменних імен)
Система, що перетворює доменні імена (наприклад, google.com) на IP-адреси (наприклад, 142.250.64.78), дозволяючи браузерам підключатися до вебсайтів.

Ось як працює процес DNS:

  • Перевірка кешу браузера: Для популярних сайтів рідко змінюються домени, тому браузер зберігає записи для останніх відвіданих сайтів у своїй пам'яті. Якщо в кеші є google.com, браузер використовує цей запис. Якщо ні — запит продовжується.
  • Кеш операційної системи та маршрутизатора: Якщо кеш браузера порожній, запит переходить до операційної системи комп'ютера, а потім до маршрутизатора. Ці також зберігають кешовані DNS-дані для пришвидшення процесу.
  • DNS-ресолвер ISP: Якщо жоден із попередніх етапів не має IP-адреси, запит може бути спрямований до DNS-ресолвера вашого постачальника інтернет-послуг (ISP) або на сторонній DNS-сервер, наприклад, на сервери Google 8.8.8.8, Cloudflare 1.1.1.1 або інші, залежно від налаштувань мережі.

pic

Запис в кінці вебу.

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

1. Кореневі сервери імен: Початок Інтернету

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

Коли DNS-ресолвер запитує кореневий сервер імен про те, де знайти google.com, він не отримує безпосередньо IP-адресу для google.com. Натомість кореневий сервер відповідає IP-адресою сервера вищого рівня (TLD), який обробляє домени .com.

Кореневі сервери імен служать першим пунктом перевірки в процесі резолюції DNS, зберігаючи записи, що направляють запити до відповідних серверів TLD (наприклад, .com, .org тощо).

Сервер імен — це сервер в DNS, який зберігає записи, що з'єднують доменні імена (наприклад, example.com) з IP-адресами. Сервери імен часто керуються реєстраторами доменів (як-от GoDaddy чи AWS) або хостинг-провайдерами.

2. Сервери доменів верхнього рівня (TLD): Звужуємо коло

Тепер резолвер має вказівки на сервер доменів верхнього рівня (TLD), який управляє доменами .com. Сервери TLD відповідають за одну "зону" Інтернету на основі доменних суфіксів, як-от .com, .org чи .net.
Кожен сервер TLD знає, де знайти IP-адреси для доменів, що закінчуються на його конкретний суфікс.

Коли DNS-ресолвер звертається до TLD-сервера для .com і запитує google.com, сервер TLD не дає IP-адресу безпосередньо. Натомість він вказує ресолверу на наступний рівень: авторитетний сервер імен для google.com.

Сервери доменів верхнього рівня (TLD)
Ці сервери зберігають записи для кожного суфікса домену (наприклад, .com, .org) і можуть направляти запити DNS до відповідного авторитетного сервера імен для домену.

3. Авторитетний сервер імен: Остання зупинка

DNS-ресолвер тепер звертається до авторитетного сервера імен для google.com. Подумайте про цей сервер як про хранителя остаточного відповіді. Кожен домен в Інтернеті має один або кілька авторитетних серверів імен, які відповідають за зберігання офіційних записів, включаючи IP-адресу, що асоціюється з цим доменом.

Коли ресолвер запитує авторитетний сервер про google.com, він нарешті отримує IP-адресу, яку сервери Google використовують для комунікації в Інтернеті. Цей авторитетний сервер управляється організацією, яка володіє доменом (в даному випадку, Google), і налаштований на надання точного IP, необхідного для встановлення з'єднання.

Авторитетний сервер імен
Цей сервер має остаточну IP-адресу для домену, яку налаштовує власник домену, і надає цю інформацію DNS-ресолверу.

Чому так багато етапів?

pic

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

Кожен етап шляху DNS — від кореневих серверів імен до авторитетного сервера імен — сприяє тому, щоб Інтернет залишався стійким і ефективним.

Типи записів DNS: основні елементи інформації

Домени не лише мають прив'язані IP-адреси; вони також містять різні типи DNS записів. Кожен тип запису має свою унікальну мету, направляючи запити до конкретних сервісів або додаючи додаткову інформацію. Ось огляд найпоширеніших типів DNS-записів та їх призначення:

  1. A запис (Address Record)

Це основний запис, який зіставляє доменне ім'я з IPv4-адресою (наприклад, 192.168.1.1). Коли ви вводите example.com, A запис надає браузеру IP-адресу сервера, що хостить вебсайт.

2. AAAA запис (IPv6 Address Record)

Подібно до A запису, але цей запис зіставляє домен з IPv6-адресою (наприклад, 2001:0db8:85a3:0000:0000:8a2e:0370:7334). IPv6 — це новий стандарт адресації IP, який розроблений для обслуговування зростаючої кількості пристроїв в Інтернеті.

3. CNAME запис (Canonical Name Record)

CNAME запис використовується для створення псевдоніма одного домену для іншого. Наприклад, ви можете налаштувати CNAME запис так, щоб blog.example.com вказував на example.com. Це часто використовується для субдоменів або для вказівки на зовнішні сервіси.

4. MX запис (Mail Exchange Record)

Цей запис направляє поштовий трафік до правильного поштового сервера для домену. Якщо ви коли-небудь налаштовували корпоративну пошту, то стикалися з MX записами, які необхідні для отримання електронної пошти на адреси типу [email protected].

5. NS запис (Name Server Record)

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

Підсумок

Легко не помітити, як елегантно DNS тримає все разом, роблячи Інтернет таким, яким він є сьогодні.
Перетворивши мільярди важких для запам'ятовування IP-адрес на прості імена, DNS зробив веб доступним, функціональним і швидким. Його складна, але децентралізована структура також підтримує стійкість Інтернету, дозволяючи обробляти трильйони запитів щодня по всьому світу. Особисто для мене DNS — це чиста краса програмного забезпечення.

Перекладено з: Beyond Dot Com

Leave a Reply

Your email address will not be published. Required fields are marked *