Как работает DNS. От запроса до IP-адреса, простыми словами

6 минут чтения
Средний рейтинг статьи — 4.9

Когда вы вводите адрес сайта в браузере, например example.com, компьютер не знает, куда отправлять запрос напрямую. Сеть работает с IP-адресами (например, 93.184.216.34), а не с доменными именами.
Чтобы преобразовать понятный человеку домен в IP-адрес, используется система DNS — Domain Name System. Это одна из базовых технологий интернета, аналог «телефонной книги» для доменов.

Что такое DNS

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

Какой IP-адрес соответствует этому доменному имени?

Этот процесс называется разрешением доменного имени (DNS resolution).

Как устроена цепочка DNS-запроса

Процесс преобразования домена в IP проходит через несколько уровней серверов. Разберём путь запроса шаг за шагом.

1. Локальный кэш

Сначала система проверяет, нет ли нужного домена в кэше — локально на компьютере, в браузере или операционной системе.
Если запись есть (например, вы недавно уже заходили на этот сайт), DNS-запрос даже не отправляется в сеть.

2. Рекурсивный резолвер (DNS Resolver)

Если кэша нет, запрос уходит на рекурсивный резолвер — обычно это DNS-сервер вашего провайдера (или, например, 8.8.8.8 от Google).
Резолвер берёт на себя задачу найти IP-адрес, обращаясь к другим DNS-серверам.

3. Корневые DNS-серверы (Root Servers)

Если резолвер не знает IP, он обращается к корневым DNS-серверам.
Корневые серверы не хранят адреса всех доменов, но знают, где искать — они направляют резолвер к DNS-серверам нужной зоны верхнего уровня (.com, .org, .ru и т.д.).

4. Серверы доменной зоны (TLD Servers)

Далее резолвер обращается к TLD-серверам, которые знают, какой DNS-сервер отвечает за конкретный домен второго уровня.
Например, для example.com они скажут, где находится DNS-сервер, который хранит записи конкретно для example.com.

5. Авторитетный DNS-сервер (Authoritative Server)

Последний шаг — обращение к авторитетному серверу.
Этот сервер хранит реальные записи (A, AAAA, MX и т.д.) для домена.
Он возвращает IP-адрес, и резолвер передаёт его вашему компьютеру.

После этого браузер может установить соединение с сервером по IP и загрузить сайт.

Основные типы DNS-записей

DNS хранит не только IP-адреса. Вот самые важные типы записей:

  • A — IPv4-адрес сайта (например, 93.184.216.34).
  • AAAA — IPv6-адрес.
  • CNAME — псевдоним домена (указывает на другое имя).
  • MX — почтовый сервер домена.
  • TXT — произвольный текст, часто используется для SPF, DKIM и других проверок.
  • NS — сервера имён, управляющие зоной домена.
  • SOA — информация о зоне (владелец, обновления и т.д.).

Что такое TTL

У каждой DNS-записи есть параметр TTL (Time To Live) — время, в течение которого ответ может кэшироваться.
Например, если TTL = 3600 секунд, то резолвер будет хранить этот IP-адрес в кэше 1 час, прежде чем снова делать запрос.

Оптимальный TTL позволяет снизить нагрузку на DNS и ускорить открытие сайтов, но слишком высокий TTL может мешать при изменении IP-адресов.

Почему DNS бывает медленным

Иногда сайт открывается с задержкой, хотя сервер работает — часто проблема именно в DNS.
Это может происходить, если:

  • используется медленный или перегруженный рекурсивный резолвер;
  • в цепочке несколько перенаправлений CNAME;
  • низкий TTL заставляет резолвер каждый раз искать IP заново;
  • авторитетный сервер не отвечает.

Использование публичных DNS (например, Google 8.8.8.8, Cloudflare 1.1.1.1 или Quad9 9.9.9.9) часто помогает ускорить процесс.

Кэширование и ускорение работы DNS

DNS-запросы активно кэшируются:

  • браузером — Chrome, Firefox и другие хранят последние резолюции;
  • операционной системой — Windows, macOS и Linux имеют собственные DNS-кэши;
  • провайдером — резолвер провайдера также хранит часто запрашиваемые домены.

Благодаря этому повторные заходы на сайты происходят мгновенно, без нового DNS-запроса.

Как вручную задать DNS-резолвинг через hosts

Иногда нужно принудительно указать, какой IP-адрес должен использоваться для конкретного домена.
Это удобно при тестировании сайтов, миграции на новый сервер или разработке.

В Linux и macOS

Файл находится по пути:

/etc/hosts

Добавьте строку:

192.168.1.10   example.com

Теперь при обращении к example.com система всегда будет использовать указанный IP, игнорируя DNS-запросы.

В Windows

Файл hosts расположен по адресу:

C:\Windows\System32\drivers\etc\hosts

Откройте его от имени администратора и добавьте аналогичную строку:

192.168.1.10   example.com

После сохранения изменений можно проверить результат командой:

ping example.com
nslookup example.com

— IP должен совпадать с тем, что вы указали вручную.

Заключение

DNS — это фундамент интернета, обеспечивающий связь между именами и IP-адресами.
Понимание его принципов помогает быстрее решать сетевые проблемы, правильно настраивать серверы и домены, а также понимать, почему сайт может быть недоступен из-за всего лишь одной неправильно настроенной DNS-записи.

6 минут чтения
Средний рейтинг статьи — 4.9

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний