awesome-everything EN
↑ Обратно к восхождению

Сети и протоколы

DNS: что делает и зачем существует

Суть DNS превращает человекочитаемые имена в IP-адреса через иерархию серверов — телефонная книга, от которой зависит весь интернет.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на junior-высоте — поверхность
◷ 8 min

Вы вводите google.com. Браузер не знает, где находится Google — он знает имена, но не числа. Прежде чем открыть TCP-соединение или отправить HTTP-запрос, браузеру нужен IP-адрес. Этот поиск — DNS, и он происходит молча при каждой загрузке страницы.

Что делает DNS одним предложением

DNS (Domain Name System) переводит понятное человеку имя, например google.com, в числовой IP-адрес (142.250.185.46), необходимый сетевому уровню для маршрутизации пакетов. Без DNS пришлось бы запоминать десятки IP-адресов на каждый сервис и обновлять их каждый раз при переезде сервера.

Дерево серверов

DNS — глобальная иерархия. Три уровня обрабатывают каждый запрос:

  • Корневые серверы — 13 именованных серверов (A–M), каждый реплицирован на сотни точек через anycast. Они не хранят записи доменов; они знают, к какому TLD-серверу обратиться дальше.
  • TLD-серверы — по одному набору на каждый домен верхнего уровня (.com, .org, .uk, .io и т. д.). Они знают, какой авторитативный сервер владеет конкретным доменом.
  • Авторитативные nameserver-ы — владеют зонными файлами отдельных доменов (google.com, example.co.uk). Они возвращают финальный ответ.
DNS-дерево кратко
Корневых серверов (имена)
13 (A–M)
Инстансов root (anycast)
1 000+
TLD-серверов
по одному набору на TLD (.com, .org, …)
Авторитативных серверов
по одному на зарегистрированный домен
DNS-протокол
UDP/TCP, порт 53
Задержка холодного запроса
30–100 мс
Задержка тёплого запроса (кеш)
менее 1 мс

Метафора справочной

Представьте, что вы хотите позвонить в ресторан, зная только его название. Вы звоните в справочную (рекурсивный резолвер). Оператор не знает номер, но умеет его найти. Она звонит в центральный офис (корневой сервер), затем в региональный справочник (TLD-сервер), а оттуда — на стойку самого ресторана (авторитативный сервер). Стойка даёт номер; оператор передаёт его вам и записывает. Следующий позвонивший с тем же вопросом получает ответ мгновенно из кеша.

Диалог резолюции

Браузер пользователя отправляет запрос настроенному рекурсивному резолверу. Если у резолвера нет кешированного ответа, он обходит дерево:

  1. Браузер спрашивает резолвер: «Какой IP у example.com
  2. Резолвер спрашивает root: «Кто отвечает за .com?» Root: «Спроси TLD-сервер .com
  3. Резолвер спрашивает TLD .com: «Кто отвечает за example.com?» TLD: «Спроси этот авторитативный сервер.»
  4. Резолвер спрашивает авторитативный: «IP для example.com?» Авторитативный: «203.0.113.10, TTL=300.»
  5. Резолвер возвращает IP браузеру, кеширует ответ на 300 секунд.

На следующий запрос в течение этих 300 секунд резолвер пропускает шаги 2–4 и отвечает из кеша.

Расставь шаги по порядку

Расставьте шаги холодного lookup для example.com:

  1. 1 Браузер спрашивает рекурсивный резолвер за example.com
  2. 2 Резолвер спрашивает root: кто отвечает за .com?
  3. 3 Root отвечает перенаправлением к TLD .com
  4. 4 Резолвер спрашивает TLD .com: кто отвечает за example.com?
  5. 5 TLD отвечает перенаправлением к авторитативному серверу
  6. 6 Резолвер спрашивает авторитативный: IP для example.com?
  7. 7 Авторитативный отвечает A-записью
  8. 8 Резолвер кеширует ответ и возвращает IP браузеру

Один сценарий от начала до конца

Вы кликаете на ссылку. Под капотом браузер первым делом делает DNS — чтобы узнать IP. Получив IP, он открывает TCP-соединение на этот адрес, затем добавляет TLS поверх него и наконец отправляет HTTP-запрос. Каждая новая вкладка браузера повторяет шаг DNS, если ответ не закеширован. DNS — всегда первый шаг интернет-соединения.

Викторина

Что возвращает DNS при стандартном запросе домена?

Викторина

Зачем кеш существует на каждом уровне DNS?

Закончи аналогию

DNS — это глобальная _______, переводящая понятные человеку имена в IP-адреса.

Почему это работает

Почему 13 корневых серверов, а не один. DNS был спроектирован в 1987 году, когда интернет был маленьким. Ограничение в 13 серверов пришло из лимита UDP в 512 байт — именно 13 IPv4-адресов влезают в один DNS-ответ. Сегодня каждый «корневой сервер» — это сотни машин, распределённых по всем континентам через anycast: ваш запрос к root достигает ближайшего инстанса за обычно менее 5 мс, и вы не знаете, какая именно машина ответила.

Вспомните перед уходом
  1. 01
    Почему почти все DNS-запросы ощущаются мгновенными после первого?
  2. 02
    В чём роль рекурсивного резолвера и чем он отличается от авторитативного сервера?
  3. 03
    Назовите три уровня иерархии DNS по порядку.
Итог

DNS — глобально распределённая иерархия, которая сопоставляет человекочитаемые имена с IP-адресами. Когда браузеру нужно подключиться к новому домену, он спрашивает рекурсивный резолвер. Резолвер проходит от корневых серверов через TLD-серверы к авторитативному nameserver-у домена, собирая перенаправления на каждом шаге. Итоговый ответ — A-запись с IPv4-адресом и TTL — возвращается браузеру и кешируется на каждом уровне. TTL определяет, как долго кеши хранят ответ перед повторным запросом. Тёплый кеш делает DNS практически мгновенным; холодный обход занимает 30–100 мс через три round-trip. DNS происходит до TCP, до TLS и до HTTP — это первый шаг каждого интернет-соединения.

Связанные уроки
встречается в152
Продолжить восхождение ↑Обход резолвера: перенаправления, типы записей и glue
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.