Месяц назад на собеседовании мне задали вопрос “как работает DNS?”

Хоть я и представляю в целом как работает DNS, но внятно объяснить не смог 😅

Поэтому после собеседования в очередной раз пошёл и перечитал этот замечательный комикс:

https://howdns.works/

И нарисовал для себя схему, чтобы получше закрепить в памяти и в следующий раз ответить чётко.

Вот моя схема для запоминания.

Схема работы DNS

Кратко про DNS

Так как интернет работает на сетевых соединениях по IP адресам, каждый раз когда мы открываем сайт в браузере, браузер должен определить IP сервера чтобы отправить на этот IP запрос и загрузить страницу сайта.

У браузера есть только доменное имя сайта и URL страницы, IP он не знает.

Чтобы браузер мог узнать IP конкретного сервера на котором находится сайт, и создана система DNS (Domain Name System).

То есть базовый принцип такой. Браузеру нужен IP сервера с сайтом, браузер передаёт в DNS имя домена, в ответ получает IP сервера.

Шаги на схеме

  1. Пользователь вводит адрес сайта.
  2. Браузер ищет IP адрес сервера по доменному имени в своём кеше. Если находит, загружает страницу с этого IP.
  3. Если браузер не нашёл IP по домену в своём кеше, он обращается к операционной системе (OS).
  4. Операционная система проверяет свой кеш, если есть то отдаёт IP из кеша.
  5. Если у операционной системы в кеше нет IP для этого домена, операционная система обращается к провайдеру интернета.
  6. Провайдер интернета предоставляет нашей операционной системе DNS-сервер, называемый “резолвером”.
  7. Резолвер получает запрос и ищет в своём кеше. Если находит, то сразу возвращает IP.
  8. Если резолвер не находит IP в кеше, то опрашивает DNS-серверы.
  9. Сначала резолвер обращается к ROOT-серверу, получает адрес сервера TLD.
  10. У сервера TLD резолвер получает адрес NS сервера конкретного домена.
  11. Обратившись к NS серверу домена, резолвер получает IP адрес, сохраняет его в свой кеш и отдаёт операционной системе клиента.
  12. Операционная система пишет IP адрес в свой кеш и отдаёт браузеру.
  13. Браузер пишет IP адрес в свой кеш и делает запрос к серверу по этому IP.

Вся эта цепочка запросов обычно занимает миллисекунды и поэтому незаметна для пользователя.

Подробнее про DNS

Схема позволяет быстро сориентироваться по последовательности шагов, но ничего не объясняет. Поэтому схема полезна только тем кто уже разобрался и понимает работу DNS.

Для лучшего понимания предлагаю прочесть комикс https://howdns.works/ (он на английском).