Как работает DNS
Система доменных имён (DNS) преобразует имя, например www.example.com, в IP-адрес, который компьютеры используют для подключения. Рекурсивный преобразователь (resolver) делает всю работу за вас: он обращается к корневым серверам, затем к серверам домена верхнего уровня, затем к авторитетным серверам домена и сохраняет ответ для последующего использования. Обычно это занимает несколько миллисекунд.
Путь разрешения имени
Когда вы открываете www.example.com, при пустом кэше происходят следующие шаги:
- Stub resolver. В вашей операционной системе есть небольшой встроенный клиент. Он проверяет собственный кэш и файл hosts, а затем отправляет вопрос настроенному рекурсивному преобразователю (обычно это преобразователь вашего маршрутизатора или провайдера либо публичный).
- Рекурсивный преобразователь. Он проверяет свой кэш. Если ответа нет, он начинает с вершины иерархии и задаёт вопросы, пока не найдёт окончательный ответ.
- Корневые серверы. Преобразователь спрашивает у корневого сервера адрес
www.example.com. Корневой сервер не знает адреса, но отвечает списком серверов, отвечающих за.com. - Серверы TLD. Серверы
.comтоже не знают адреса, но отвечают списком DNS-серверов доменаexample.com(записи NS). - Авторитетные серверы. DNS-сервер домена хранит настоящие записи и возвращает запись A или AAAA для
www.example.com. - Преобразователь возвращает ответ stub resolver, сохраняет его в кэше, и браузер подключается.
Проследить эту цепочку для любого домена можно с помощью нашей проверки DNS.
Кэширование и TTL
У каждой записи DNS есть TTL (time to live, время жизни) — число секунд, которое сообщает преобразователям, как долго они могут хранить ответ. TTL 3600 означает один час. Кэширование делает DNS быстрым и снижает нагрузку на авторитетные серверы, но из-за него изменение появляется не везде сразу. Кэши есть в нескольких местах: в браузере, операционной системе, маршрутизаторе и рекурсивном преобразователе.
Преобразователи также кэшируют отрицательные ответы, например «такого имени не существует» (NXDOMAIN), на время, указанное в записи SOA.
Распространённые типы записей
| Тип | Назначение | Пример значения |
|---|---|---|
| A | Сопоставляет имя с адресом IPv4 | 192.0.2.10 |
| AAAA | Сопоставляет имя с адресом IPv6 | 2001: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.
Как ускорить распространение изменения
- Как минимум за один период старого TTL до изменения (например, за 24 часа, если TTL равен 86400) уменьшите TTL записи до небольшого значения, например 300 секунд.
- Подождите, пока пройдёт старый TTL, чтобы во всех кэшах оказалась версия с коротким сроком жизни.
- Внесите изменение. Теперь преобразователи будут повторно запрашивать запись примерно в течение 5 минут.
- Проверьте результат из нескольких расположений с помощью проверки DNS.
- Когда всё заработает, снова увеличьте TTL, чтобы снизить нагрузку запросами.
Серийный номер SOA и вторичные серверы
Большинство доменов используют как минимум два авторитетных сервера. Один из них первичный, а остальные — вторичные, которые копируют зону с первичного с помощью передачи зоны (AXFR или IXFR). Этим управляет запись SOA:
- Serial: номер версии. Вторичный сервер передаёт зону, если серийный номер на первичном выше его собственного. Часто используется формат «дата плюс счётчик», например
2026110401. Если вы изменили зону и забыли увеличить серийный номер, вторичные серверы продолжат отдавать старые данные. - Refresh: как часто вторичный сервер проверяет серийный номер.
- Retry: как долго вторичный сервер ждёт перед повторной попыткой после неудачной проверки.
- Expire: если в течение этого времени связи не было, вторичный сервер перестаёт отвечать.
- Minimum (отрицательный TTL): как долго преобразователи кэшируют ответы «не существует».
Если домен возвращает разные ответы с разных DNS-серверов, вероятная причина — устаревший вторичный сервер. Сравните серийные номера на всех серверах NS.
Anycast-преобразователи
Публичные преобразователи, такие как у крупных провайдеров, используют anycast: один и тот же IP-адрес анонсируется из множества центров обработки данных, а сеть направляет каждый запрос в ближайший. Это даёт малую задержку и отказоустойчивость. В каждой точке присутствия свой кэш, поэтому два человека, использующих один и тот же адрес преобразователя, могут ненадолго увидеть разные ответы после изменения. Ту же технику используют корневые серверы и многие службы авторитетного DNS.
Смежные основы читайте в статьях что такое IP-адрес и модель OSI, где DNS находится на прикладном уровне.