Зачем нужен DNS

Зачем нужен DNS

Ты хочешь открыть Google. Не задумываясь, набираешь google.com в браузере — и через секунду страница загружена. Но компьютеры в сети общаются по IP-адресам, а не по именам. Откуда браузер знает, что google.com — это 142.250.185.206? Ответ: DNS (Domain Name System). Давай разберёмся, зачем он нужен и как работает эта «телефонная книга интернета».

Проблема: люди помнят имена, компьютеры — числа

Запомнить адрес 142.250.185.206 сложно. Запомнить 10 таких адресов — практически невозможно. А теперь представь, что IP-адрес сервера Google может измениться (серверы переезжают, балансировка нагрузки, аварии). Если бы мы использовали IP-адреса напрямую, смена адреса означала бы, что сайт «пропал» для всех пользователей.

DNS решает обе проблемы:

  1. Даёт удобные имена (google.com вместо 142.250.185.206).
  2. Позволяет менять IP-адрес на стороне сервера, не требуя от пользователей запоминать новый.

Аналогия: телефонная книга

Раньше, чтобы позвонить человеку, ты искал его имя в телефонной книге и находил номер. Сегодня ты просто нажимаешь на имя в контактах телефона. DNS — это такая глобальная книга контактов интернета: вводишь доменное имя → получаешь IP-адрес.

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

Что такое DNS

DNS (Domain Name System) — это распределённая иерархическая система, которая переводит доменные имена (например, www.example.com) в IP-адреса (например, 93.184.216.34). Процесс перевода называется разрешением (resolution).

DNS — это не один сервер, а целая инфраструктура:

  • Миллионы DNS-серверов (authoritative servers), хранящих информацию о доменах.
  • Тысячи резолверов (DNS-резолверов), которые ищут эту информацию по запросу.
  • Протокол DNS, работающий поверх UDP (и иногда TCP).

DNS-запрос: что происходит при открытии сайта

Когда ты набираешь google.com в браузере, происходит примерно следующее:

  1. Браузер проверяет свой кэш: «я уже спрашивал про google.com недавно?». Если да — использует сохранённый IP.
  2. Если нет — спрашивает у операционной системы.
  3. ОС проверяет свой кэш и файл hosts (локальный список известных имён).
  4. Если и там нет — ОС отправляет запрос DNS-резолверу (обычно это сервер провайдера или публичный вроде 8.8.8.8 от Google).
  5. Резолвер находит IP-адрес и возвращает его.
  6. Браузер устанавливает TCP-соединение с полученным IP-адресом.

Вся цепочка для нового имени занимает 50–200 мс, для уже закэшированного — доли миллисекунды.

Почему DNS распределённый, а не централизованный

Можно было бы сделать один гигантский сервер, который хранит все доменные имена мира. Но:

  • Это была бы единая точка отказа: упал сервер — весь интернет «перестал работать».
  • Нагрузка: триллионы DNS-запросов в день не выдержит ни один сервер.
  • Задержки: сервер в Калифорнии обслуживал бы запросы из Австралии с неприемлемой задержкой.

Вместо этого DNS организован как распределённое дерево: корневые серверы (13 кластеров) → серверы доменов верхнего уровня (.com, .org, .ru) → авторитативные серверы конкретных доменов (google.com, example.org). Такую архитектуру мы разберём детально в следующих уроках.

DNS — это не только про сайты

Хотя мы чаще всего сталкиваемся с DNS при открытии сайтов, система используется гораздо шире:

  • Электронная почта. Чтобы доставить письмо на user@example.com, почтовый сервер ищет MX-запись домена example.com.
  • Блокировка рекламы. DNS-фильтры (Pi-hole, AdGuard DNS) блокируют запросы к доменам трекеров и рекламных сетей.
  • Обход блокировок. Смена DNS-сервера на публичный позволяет обойти блокировки на уровне провайдера.
  • CDN. DNS возвращает IP ближайшего к пользователю сервера, ускоряя загрузку.

Проверь себя

  1. Можно ли зайти на сайт, если DNS не работает, но ты знаешь его IP-адрес?
  2. Почему DNS используют UDP, а не TCP?
  3. Что быстрее: DNS-запрос для только что посещённого сайта или для нового?
<details> <summary>Ответы</summary>
  1. Да. Набери http://142.250.185.206 в адресной строке — и Google откроется без участия DNS. Но HTTPS может выдать ошибку сертификата, потому что сертификат привязан к имени, а не к IP.
  2. DNS-запрос — это один короткий пакет. Установка TCP-соединения (три шага) заняла бы больше времени и трафика, чем сам запрос. Для ответов крупнее 512 байт используется TCP.
  3. Для только что посещённого — ответ уже в кэше браузера или ОС, запрос по сети не нужен. Ответ за доли миллисекунды.
</details>

Что унести с урока

  • DNS переводит имена (google.com) в IP-адреса (142.250.185.206), как телефонная книга переводит имена в номера.
  • DNS — распределённая система, а не один сервер. Это даёт надёжность и скорость.
  • Браузер, ОС, маршрутизатор и провайдер кэшируют DNS-ответы, ускоряя повторные запросы.
  • DNS используется не только для сайтов, но и для почты, блокировки рекламы и CDN.

В следующем уроке разберём анатомию доменного имени: что такое .com, www, поддомены, и почему имена разделены точками.

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике