Как работает DNS: от адреса в браузере до ответа сервера
DNS (Domain Name System, система доменных имён) — служба интернета, которая по имени сайта находит его IP-адрес. Система распределённая: информацию о доменах хранят DNS-серверы по всему миру, и каждый отвечает за свою часть.
Коротко
- Когда вы вводите www.example.com, устройству нужен IP-адрес, чтобы браузер мог подключиться к сайту; DNS-резолвер ищет этот адрес.
- Если ответа нет в кэше, резолвер узнаёт у корневого DNS-сервера, где искать зону .com, а у .com — какие серверы отвечают за example.com.
- Резолвер кэширует ответ на срок TTL. Поэтому после смены записи разные кэши могут ещё некоторое время отдавать прежний адрес.
- Кроме адреса сайта, DNS хранит сведения для почты, псевдонимов и других служб домена.
- DNSSEC проверяет подлинность и целостность DNS-данных; DoT и DoH шифруют путь запроса от клиента до выбранного резолвера.
Учебный стенд: у имени www.example.com настроена адресная запись A со значением 192.0.2.80. Когда вы вводите это имя, браузеру нужен числовой адрес; устройство проверяет кэш и, если там нет свежего ответа, спрашивает DNS-резолвер. И example.com, и сеть 192.0.2.0/24 зарезервированы для документации: эта пара не описывает работающий сайт.[1][2][21][22]
Зачем нужен DNS
Компьютеры в интернете находят друг друга по IP-адресам — наборам чисел вроде 192.0.2.1. IP — это Internet Protocol, межсетевой протокол: по этим адресам сеть доставляет данные. Человеку удобнее слова: example.com запомнить проще. DNS связывает одно с другим: по доменному имени находит IP-адрес сервера, на котором работает сайт. Получив его, браузер знает, куда подключаться.
Главная функция системы — именно этот перевод. Он позволяет перенести сайт на новый сервер и не менять имя, которое знают посетители: при смене IP-адреса меняют адресные записи домена.
DNS — часть инфраструктуры интернета и используется не только для сайтов. Система помогает доставлять электронную почту и хранит служебную информацию о домене. Без DNS не обходятся приложения и сервисы, которым нужно найти друг друга: к ресурсам сети они тоже обращаются по именам.
До появления DNS соответствия вели вручную: все имена и адреса лежали в одном файле, который каждой машине в сети нужно было копировать с центрального узла. Когда сеть выросла, рассылка файла стала слишком тяжёлой, и в 1980-х годах её заменила распределённая система.[1][18]
Как устроено доменное имя
Доменное имя состоит из нескольких частей, разделённых точками, и читается справа налево. Части — это уровни иерархии.
- Корень. На вершине находится корневая зона. Её обозначение пустое, поэтому в адресе его не пишут.
- Верхний уровень (TLD, top-level domain), например .ru, .com, .org, .net. Такие зоны бывают национальными, как .ru, и общими, как .com.
- Второй уровень: example в адресе example.com. Обычно именно его регистрируют для сайта.
- Третий уровень: mail.example.com. Это поддомен example.com, его создаёт сам владелец сайта.
Такую иерархическую структуру изображают в виде дерева. Его делят на зоны: серверы зоны хранят её записи и указывают серверы поддоменов, переданных в отдельные зоны.[1][4][18]
Что происходит, когда вы открываете сайт
Разберём учебный запрос к www.example.com. В примере его A-запись равна 192.0.2.80; это документационное значение, а не адрес действующего сервера. Запрос A означает: «какой IPv4-адрес связан с этим именем?» Запрос AAAA отдельно спрашивает адрес IPv6.
Сначала браузер передаёт имя системному резолверу — компоненту устройства, который получает DNS-ответ для программ. Если в локальном кэше есть ещё действующий ответ или соответствие в hosts, система может сразу вернуть его. Иначе она обращается к настроенному рекурсивному резолверу, например серверу провайдера.
Рекурсивный резолвер тоже проверяет свой кэш. При промахе он ищет ответ по цепочке: корневой сервер указывает серверы зоны .com; сервер .com направляет к авторитетным серверам example.com; авторитетный сервер возвращает запрошенную A-запись. Корневой сервер не знает IP сайта — он даёт следующий адрес для поиска. В реальности резолвер может уже иметь свежие сведения о промежуточных серверах и начать ближе к нужной зоне.
Получив ответ, рекурсивный резолвер сохраняет его на время TTL и передаёт устройству. Браузер использует 192.0.2.80 для подключения. Такой разбор показывает порядок действий, а не живое разрешение имени: зарезервированные адрес и домен приведены только для обучения.[1][2][21][22]
Учебный DNS-запрос: от www.example.com до адреса
Схему можно прокрутить вбок
- Ваше устройство. Вы вводите www.example.com; нужен ответ A → к шагу 2
- Рекурсивный резолвер. Резолвер провайдера принимает запрос → к шагу 3
- Рекурсивный резолвер. Есть свежая A-запись в кэше? → «да» — к шагу 11; «нет» — к шагу 4
- Рекурсивный резолвер. Резолвер спрашивает корневой сервер → к шагу 5
- Другие серверы DNS. Корневой сервер называет серверы зоны .com → к шагу 6
- Рекурсивный резолвер. Резолвер спрашивает сервер зоны .com → к шагу 7
- Другие серверы DNS. Сервер зоны .com называет серверы DNS домена → к шагу 8
- Рекурсивный резолвер. Резолвер спрашивает сервер DNS домена → к шагу 9
- Другие серверы DNS. Авторитетный сервер возвращает условный адрес 192.0.2.80 → к шагу 10
- Рекурсивный резолвер. Резолвер кэширует ответ до истечения TTL → к шагу 11
- Ваше устройство. Устройство получает IP-адрес; браузер использует его, чтобы подключиться к сайту
Учебный стенд: A-запись www.example.com условно равна 192.0.2.80. Домен и адрес зарезервированы для документации; это не живой ответ. Если действующий ответ уже есть в кэше, рекурсивный резолвер пропустит поиск по цепочке.
Какие бывают DNS-серверы
| Сервер | Что делает | Кто за него отвечает |
|---|---|---|
| Рекурсивный резолвер | Принимает запросы клиентов — компьютеров и телефонов, сам опрашивает другие серверы и кэширует ответы | Интернет-провайдер, компания в своей корпоративной сети или публичный сервис |
| Корневые серверы | Дают информацию о серверах зон верхнего уровня: .ru, .com и других | Их поддерживают 12 независимых организаций; обозначений 13, от a до m, а экземпляров в мире больше двух тысяч (октябрь 2026 года) |
| Серверы зон верхнего уровня (TLD) | Знают, какие серверы DNS обслуживают каждый домен в зоне | Оператор реестра зоны |
| Авторитетные серверы домена | Хранят DNS-записи домена и дают окончательный результат | DNS-хостинг: регистратор, хостинг-провайдер или сам владелец |
Что делает DNS устойчивым к сбоям
У системы нет единой точки, от которой зависит всё. Любую зону обслуживают несколько серверов: основной, на котором меняют данные, и вторичные, которые получают с него копию данных. Если один перестал работать, резолвер отправит запрос следующему.
В крупных DNS-сервисах применяется ещё один приём — anycast: один и тот же адрес обслуживается из многих точек мира, и запрос попадает в одну из них. Это распределяет нагрузку и помогает сохранять доступность сервиса при сбоях. Anycast может ограничить воздействие атаки частью узлов, но результат зависит от маршрутизации и мощности атаки; ускорение ответа тоже не гарантировано.[1][4][17]
Основные DNS-записи
| Тип | Условный пример записи | Что делает программа |
|---|---|---|
| A | www.example.com A 192.0.2.80 | Браузер получает условный IPv4-адрес сайта; адрес предназначен для документации |
| AAAA | www.example.com AAAA 2001:db8::80 | То же для условного IPv6-адреса; префикс 2001:db8::/32 тоже используется для примеров |
| CNAME | alias.example.com CNAME web.host.example | Резолвер продолжает поиск по целевому каноническому имени и получает его адресную запись |
| MX | example.com MX 10 mail.example.com | Отправляющий почтовый сервер ищет MX и затем адрес узла, принимающего почту |
| NS | example.com NS ns1.dns.example | Родительская зона указывает, у каких серверов спрашивать данные зоны |
| TXT | example.com TXT "v=spf1 …" | Почтовый сервис сверяет SPF-политику отправителя; буквальное значение здесь условное |
| SOA | example.com SOA ns1.dns.example hostmaster.example.com … | Содержит параметры зоны, в том числе серийный номер и интервалы синхронизации |
| PTR | 80.2.0.192.in-addr.arpa PTR www.example.com | Обратная зона может связать IP-адрес с именем, если владелец адресного блока настроил PTR |
Для чего ещё используется DNS
Сайты — самый заметный, но не единственный случай. DNS используют и другие службы.
- Электронная почта. Почтовый сервис отправителя запрашивает MX-записи домена и узнаёт, куда доставить письмо.
- Защита от спама и поддельных писем. В TXT-записях владелец домена публикует, каким серверам разрешено отправлять почту от его имени (SPF), и ключ для проверки подписи писем (DKIM).
- Внутренние сети. В корпоративной сети свой DNS-сервер хранит имена внутренних ресурсов, например рабочих сервисов компании. Один и тот же домен может давать разные ответы на запросы изнутри и снаружи.
- Обратный поиск. По IP-адресу можно узнать, какому домену он соответствует, если для адреса заведена такая запись.[1][4][6][16]
Пример: как почтовая программа находит сервер домена
Случай взят из самого стандарта; адреса в нём учебные. Почтовой программе нужно доставить письмо в домен ISI.EDU.
- Она отправляет DNS-запрос: домен ISI.EDU, нужны MX-записи.
- Приходит результат: два узла, VENERA.ISI.EDU и VAXA.ISI.EDU, с равным приоритетом.
- Вместе с ними сервер сразу присылает дополнительную информацию — IP-адреса обоих узлов: скорее всего, программа спросит их следующим шагом.[1]
Кэширование и TTL: почему изменения видны не сразу
Резолвер временно хранит ответ, чтобы не повторять поиск при каждом обращении. TTL (time to live, время жизни) задаёт срок, в течение которого запись может оставаться в кэше; оставшийся TTL уменьшается по мере хранения. В обычном режиме после истечения срока резолвер снова запрашивает данные при следующем обращении. Некоторые резолверы могут применять serve-stale и при сбое временно отдать устаревший ответ.
Поэтому смена записи видна не всем одновременно: авторитетная зона уже может отдавать новый адрес, а кэш ещё хранит старую копию. Каждый кэш отсчитывает свой TTL от момента получения ответа.[1][2][20][25]
Пример: Почему смена адреса видна с задержкой
Условный пример обычного режима: в 12:00 резолвер сохранил A = 192.0.2.80 с TTL 300 секунд. В 12:04 владелец зоны сменил адрес на 192.0.2.81. Кэш ещё может отвечать старым адресом примерно до 12:05; после истечения TTL при следующем запросе резолвер обычно получает новое значение.
Оба адреса и время приведены для объяснения, а не как наблюдение за реальным сайтом. На практике момент обновления зависит от времени получения копии каждым кэшем, распространения изменений у авторитетных серверов и настроек резолвера.[1][2][20][22][25]
Где настраивают DNS-записи домена
Записи хранятся у DNS-хостинга — компании, на чьих серверах лежит зона домена. Часто эту услугу предоставляет регистратор, у которого зарегистрирован адрес сайта, или хостинг-провайдер, у которого размещён сайт. Есть и отдельные сервисы управления DNS.
В панели управления владелец может создать или изменить запись: указать IP-адрес сервера с сайтом, почтовый сервер, добавить текст. При настройке обычно указывают имя, тип, значение и время жизни (TTL). В стандарте такие записи называют ресурсными (resource records). У домена может быть много записей, в том числе несколько одного типа: например, две MX-записи для основного и запасного почтового сервера. От этих настроек зависит работа сайта и почты.
Какие серверы DNS отвечают за домен, определяют NS-записи. Чтобы передать управление новому хостингу, у регистратора указывают серверы DNS этого хостинга. Такая передача называется делегированием: родительская зона сообщает, где искать информацию о зоне уровнем ниже.[4][10]
Какой DNS-сервер использует ваше устройство
Для работы в интернете устройству нужен адрес хотя бы одного DNS-сервера. По умолчанию компьютер и телефон обращаются к серверу провайдера: настройки приходят автоматически при подключении к интернету. Их можно поменять вручную — в сетевых настройках операционной системы или в роутере.
Вместо провайдерского можно использовать публичный DNS-сервис. Например, у Google Public DNS несколько адресов, в том числе 8.8.8.8 и 8.8.4.4. Такие сервисы принимают запросы от любых пользователей интернета.[4][14]
Как проверить работу DNS и что делать при сбое
Получить информацию о записях домена можно с помощью командной строки.
- В Windows используется nslookup: команда nslookup example.com показывает IP-адрес, а параметр -type=MX — почтовые записи. Вторым параметром можно указать, какому DNS-серверу задать вопрос.
- Второй инструмент — dig из набора BIND 9. Запрос состоит из сервера, имени и типа. Режим +trace показывает весь путь от корневых серверов до сервера, где хранятся записи сайта.
Одна из причин разных ответов — недавно изменённая запись, старая копия которой ещё хранится в кэше. Возможны и разные настройки ответов для разных сетей.
Если браузер не может найти сайт, а интернет работает, проблема может быть в DNS. Что можно сделать:
Безопасность DNS: угрозы и защита
Представьте, что устройство в кафе спрашивает обычный DNS-резолвер, где находится www.example.com. При незашифрованном DNS наблюдатель на пути может прочитать имя в запросе; при подмене ответа он может попытаться направить устройство на другой адрес. Это не означает, что любой участник сети обязательно перехватит запрос или что подмена всегда сработает.
DNSSEC решает другую задачу: резолвер проверяет подписи и цепочку доверия, чтобы убедиться, что полученные данные DNS происходят из подписанной зоны и не были изменены. DNSSEC не скрывает имя запроса и не доказывает, что сам сайт безопасен: он подтверждает данные доменной зоны.
DoT и DoH шифруют канал между клиентом и выбранным рекурсивным резолвером — например, Wi-Fi-наблюдатель не читает имя из этого обмена. Но выбранный резолвер продолжает видеть запрос, а шифрование канала само по себе не проверяет подлинность DNS-данных. Поэтому шифрование DoT/DoH и проверка данных DNSSEC дополняют друг друга; это разные свойства и границы защиты.[8][9][23]
Частые ошибки
Заблуждение
DNS содержит только IP-адреса сайтов.
Как на самом деле
IP-адрес — главное, но не единственное, что есть в DNS. Там же хранится информация о почтовом сервере домена, его DNS-серверах и псевдонимах. Запрос включает имя и тип нужной записи.[1]
Заблуждение
Запись поменяли — значит, новый адрес сразу видят все.
Как на самом деле
Старые копии живут у резолверов и на устройствах, пока не истечёт TTL, и до тех пор часть пользователей попадает по старому адресу. Так задумано: доступность информации в системе важнее мгновенного обновления всех копий.[1]
Заблуждение
Где-то есть главный сервер, на котором хранятся все доменные имена.
Как на самом деле
Единой базы нет. DNS-сервер содержит полные данные только о своих зонах, а об остальных знает, к кому отослать. Каждая зона должна быть доступна не меньше чем на двух серверах.[1][19]
Заблуждение
Домен и зона — одно и то же.
Как на самом деле
Домен — это имя вместе со всем, что лежит под ним в иерархии. Зона — та его часть, которой управляют как единым целым. Поддомен, переданный в управление другой организации, остаётся частью домена, но образует отдельную зону.[1]
Вопросы и ответы
Что такое DNS простыми словами?
Это справочная служба интернета. Вы вводите название сайта в браузере, а DNS помогает компьютеру найти его числовой адрес.
Что такое DNS-сервер?
Это компьютер с программой, которая обрабатывает DNS-запросы. Одни серверы содержат данные о доменах, другие по просьбе пользователя находят нужную информацию и запоминают её.
Где находится DNS-сервер?
Тот, с которым работает ваше устройство, обычно стоит у интернет-провайдера. DNS-серверы самого сайта находятся у его DNS-хостинга. Корневые серверы распределены по всему миру.
Что будет, если DNS-сервер не отвечает?
Браузер не сможет открыть сайт по имени, даже если само подключение к интернету работает. Стандарт различает три неудачных исхода поиска: домена не существует; домен есть, но записи нужного типа у него нет; сервер временно недоступен. «Не отвечает» — третий случай: такой сбой нельзя считать отсутствием домена.
Можно ли по IP-адресу узнать домен?
Да, если для адреса заведена PTR-запись. Числа адреса IPv4 записывают в обратном порядке и добавляют окончание IN-ADDR.ARPA; для получившейся строки запрашивают PTR-запись.
Как быстро обновляется DNS-запись после изменения?
После применения изменения оно появляется на авторитетных серверах зоны; синхронизация между ними может занять время. Резолверы могут использовать прежнюю копию до истечения её TTL, поэтому единого срока обновления для всех пользователей нет.
Кто придумал DNS и когда?
Систему доменных имён с распределённой базой данных предложил Пол Мокапетрис в 1983 году. Базовые стандарты, которые действуют до сих пор, вышли в ноябре 1987 года.
Источники статьи
- Доменные имена: понятия и устройство (RFC 1034)
- Доменные имена: реализация и спецификация (RFC 1035)
- Корневые серверы — IANA
- Терминология DNS (RFC 9499)
- Расширения DNS для IPv6 (RFC 3596)
- Sender Policy Framework (RFC 7208)
- Анализ угроз DNS (RFC 3833)
- DNSSEC: введение и требования (RFC 4033)
- DNS поверх HTTPS (RFC 8484)
- Участники рынка доменов — ICANN
- dig: руководство BIND 9
- nslookup: справочник команд Windows — Microsoft Learn
- ipconfig: справочник команд Windows — Microsoft Learn
- Google Public DNS: настройка
- Корневые серверы: операторы и экземпляры — root-servers.org
- DomainKeys Identified Mail, DKIM (RFC 6376)
- Эксплуатация сервисов anycast (RFC 4786)
- Л. Питерсон, Б. Дэви. Computer Networks: A Systems Approach — раздел о службе DNS
- Выбор и эксплуатация вторичных серверов DNS (RFC 2182)
- Отрицательное кэширование DNS (RFC 2308)
- Зарезервированные имена верхнего уровня для документации (RFC 2606)
- Зарезервированные адресные блоки для примеров и документации (RFC 5737)
- DNS over TLS (RFC 7858)
- IPv6 Address Prefix Reserved for Documentation (RFC 3849)
- Serving Stale Data to Improve DNS Resiliency (RFC 8767)