ByteTools

Как работает DNS

Обновлено 2026-11-04

Система доменных имён (DNS) преобразует имя, например www.example.com, в IP-адрес, который компьютеры используют для подключения. Рекурсивный преобразователь (resolver) делает всю работу за вас: он обращается к корневым серверам, затем к серверам домена верхнего уровня, затем к авторитетным серверам домена и сохраняет ответ для последующего использования. Обычно это занимает несколько миллисекунд.

Путь разрешения имени

Когда вы открываете www.example.com, при пустом кэше происходят следующие шаги:

  1. Stub resolver. В вашей операционной системе есть небольшой встроенный клиент. Он проверяет собственный кэш и файл hosts, а затем отправляет вопрос настроенному рекурсивному преобразователю (обычно это преобразователь вашего маршрутизатора или провайдера либо публичный).
  2. Рекурсивный преобразователь. Он проверяет свой кэш. Если ответа нет, он начинает с вершины иерархии и задаёт вопросы, пока не найдёт окончательный ответ.
  3. Корневые серверы. Преобразователь спрашивает у корневого сервера адрес www.example.com. Корневой сервер не знает адреса, но отвечает списком серверов, отвечающих за .com.
  4. Серверы TLD. Серверы .com тоже не знают адреса, но отвечают списком DNS-серверов домена example.com (записи NS).
  5. Авторитетные серверы. DNS-сервер домена хранит настоящие записи и возвращает запись A или AAAA для www.example.com.
  6. Преобразователь возвращает ответ stub resolver, сохраняет его в кэше, и браузер подключается.

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

Кэширование и TTL

У каждой записи DNS есть TTL (time to live, время жизни) — число секунд, которое сообщает преобразователям, как долго они могут хранить ответ. TTL 3600 означает один час. Кэширование делает DNS быстрым и снижает нагрузку на авторитетные серверы, но из-за него изменение появляется не везде сразу. Кэши есть в нескольких местах: в браузере, операционной системе, маршрутизаторе и рекурсивном преобразователе.

Преобразователи также кэшируют отрицательные ответы, например «такого имени не существует» (NXDOMAIN), на время, указанное в записи SOA.

Распространённые типы записей

ТипНазначениеПример значения
AСопоставляет имя с адресом IPv4192.0.2.10
AAAAСопоставляет имя с адресом IPv62001:db8::10
CNAMEПсевдоним: ссылка с одного имени на другое. Не может находиться в вершине зоны рядом с другими записями.www.example.com → example.com
MXПочтовые серверы домена с приоритетом (сначала пробуется меньшее число)10 mail.example.com
NSАвторитетные DNS-серверы зоныns1.example.com
TXTПроизвольный текст; используется для SPF, DKIM, DMARC и подтверждения домена"v=spf1 mx -all"
SOAНачало полномочий: основной сервер, контакт администратора, серийный номер и таймерыns1.example.com hostmaster.example.com 2026110401 ...
CAAКакие центры сертификации могут выпускать сертификаты для домена0 issue "ca.example.net"
SRVУзел и порт конкретной службы10 5 5060 sip.example.com
PTRОбратный поиск: сопоставляет IP-адрес с именем10.2.0.192.in-addr.arpa → host.example.com

Правильные записи MX, SPF и DKIM важны для доставки почты. Используйте наш инструмент проверки почты и чёрных списков, чтобы проверить почтовый сервер и узнать, внесён ли его IP-адрес в спам-списки.

Что на самом деле означает распространение DNS

«Распространение DNS» (DNS propagation) — это общепринятое название времени, за которое все кэши в мире отбросят старый ответ и получат новый. Ничто не рассылается по интернету. Авторитетный сервер получает новые данные сразу; преобразователи просто хранят старые данные, пока не истечёт их TTL. Поэтому максимальная задержка для изменённой записи примерно равна старому TTL, а не новому.

Смена DNS-серверов у регистратора происходит медленнее, потому что записи NS в зоне TLD обычно имеют TTL от одного до двух дней. В это время одни пользователи попадают на старые серверы, а другие — на новые. Делегирование домена можно проверить с помощью WHOIS-запроса, а сами записи — с помощью проверки DNS.

Как ускорить распространение изменения

  1. Как минимум за один период старого TTL до изменения (например, за 24 часа, если TTL равен 86400) уменьшите TTL записи до небольшого значения, например 300 секунд.
  2. Подождите, пока пройдёт старый TTL, чтобы во всех кэшах оказалась версия с коротким сроком жизни.
  3. Внесите изменение. Теперь преобразователи будут повторно запрашивать запись примерно в течение 5 минут.
  4. Проверьте результат из нескольких расположений с помощью проверки DNS.
  5. Когда всё заработает, снова увеличьте TTL, чтобы снизить нагрузку запросами.

Серийный номер SOA и вторичные серверы

Большинство доменов используют как минимум два авторитетных сервера. Один из них первичный, а остальные — вторичные, которые копируют зону с первичного с помощью передачи зоны (AXFR или IXFR). Этим управляет запись SOA:

  • Serial: номер версии. Вторичный сервер передаёт зону, если серийный номер на первичном выше его собственного. Часто используется формат «дата плюс счётчик», например 2026110401. Если вы изменили зону и забыли увеличить серийный номер, вторичные серверы продолжат отдавать старые данные.
  • Refresh: как часто вторичный сервер проверяет серийный номер.
  • Retry: как долго вторичный сервер ждёт перед повторной попыткой после неудачной проверки.
  • Expire: если в течение этого времени связи не было, вторичный сервер перестаёт отвечать.
  • Minimum (отрицательный TTL): как долго преобразователи кэшируют ответы «не существует».

Если домен возвращает разные ответы с разных DNS-серверов, вероятная причина — устаревший вторичный сервер. Сравните серийные номера на всех серверах NS.

Anycast-преобразователи

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

Смежные основы читайте в статьях что такое IP-адрес и модель OSI, где DNS находится на прикладном уровне.

Похожие статьи