DNS: от резолвера до корня и обратно

Зачем:Вы поймёте, как имя превращается в адрес, и почему после смены записи сайт «не открывается» несколько часов. После урока вы читаете DNS-записи и знаете, что такое TTL.

25 минут

Озвучено синтезом речи (Qwen3-TTS), голос не принадлежит человеку.

DNS — распределённая система, которая переводит имя сайта, например example.ru, в IP-адрес сервера. Ответы хранятся в кэшах на срок TTL из записи.

Телефонная книга сети

Компьютеры находят друг друга по IP-адресам, а люди запоминают имена. Нужна «телефонная книга», которая по имени example.ru скажет адрес 203.0.113.10. Эта книга называется DNS (Domain Name System, система доменных имён).

Сначала такая книга была одним файлом: список «имя, адрес», который рассылали всем. К началу 1980-х сеть выросла настолько, что файл не успевали обновлять, и в 1983 году придумали DNS. Это не одна огромная книга, а распределённая: ни один сервер не знает всего, каждый знает кусок и умеет подсказать, к кому идти дальше.

Путь одного запроса

Когда вы вводите www.example.ru, происходит следующее. Подвигайте схему ниже и посмотрите, как меняется путь, когда часть ответа уже есть в кэше.

Один запрос, шаг за шагом
Запросов по сети: 4 (ответ браузеру не считается запросом)
Сколько живёт старый ответ (TTL)

Вы сменили адрес сайта. Резолверы по всему миру запомнили старый ответ в разное время и держат его, пока не истечёт TTL.

Резолверов, которые ещё отдают старый адрес: 50%. Через 1 ч после смены не останется ни одного.

Вот участники, по порядку.

  1. Браузер и система. Сначала смотрят в свою память: вдруг адрес уже известен. Если нет, система спрашивает резолвер.
  2. Резолвер. Это посредник, который ходит по DNS за вас. Обычно им служит сервер вашего провайдера, но можно пользоваться и публичными: Google (8.8.8.8), Cloudflare (1.1.1.1), Яндекс (77.88.8.8). Резолвер умеет спрашивать и запоминать.
  3. Корневые серверы. Это самый верх дерева. Они не знают адреса вашего сайта, но знают, кто отвечает за каждую зону: .ru, .com, .рф. Корневых «имён» тринадцать (от a до m), ими управляют двенадцать организаций, а за каждым именем стоят сотни серверов по всему миру.
  4. Серверы зоны (TLD). Сервер зоны .ru не знает адреса сайта, но знает, какие серверы отвечают за домен example.ru.
  5. Авторитетный сервер домена. Он стоит у вашего хостинга или регистратора и содержит настоящие записи домена. Он и отдаёт адрес.

Заметьте: каждый шаг только подсказывает, кого спросить дальше. Этот приём называется делегированием, и благодаря ему DNS работает на всей планете.

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

Проверьте себя: знает ли корневой сервер адрес вашего сайта?

Нет. Он знает только, какие серверы отвечают за зону (например .ru), и отправляет резолвер дальше.

Что хранится в записях

Записи это строки в «книге» домена. У каждой есть тип, имя, значение и TTL. Основные типы:

  • A: IPv4-адрес сервера. По этой записи находят сайт.
  • AAAA: то же для адреса IPv6.
  • CNAME: псевдоним. Запись www типа CNAME со значением example.ru говорит: «спросите про www, как про example.ru». Такую запись нельзя ставить на сам домен без www (его называют корнем домена и записывают значком @).
  • MX: почтовый сервер. Когда кто-то пишет на name@example.ru, отправитель спрашивает у DNS, куда доставлять письма. У MX есть число, приоритет: чем оно меньше, тем раньше сервер пробуют.
  • TXT: произвольный текст. В нём подтверждают владение доменом («положите в TXT такой-то код»), а ещё публикуют правила проверки почты, чтобы письма не попадали в спам.
  • NS: какие серверы отвечают за домен.

Почему это важно: у сайта и у почты разные записи. Сайт может жить у одной компании, почта у другой. Именно эту раздельность вы оформите в практике.

Проверьте себя: какая запись отвечает за то, куда придёт почта?

MX. Она указывает почтовый сервер домена.

TTL: срок хранения

В каждой записи есть число, TTL (time to live): сколько секунд ответ можно хранить в кэше. Типичные значения: 300 секунд (5 минут), 3600 (час), 86400 (сутки).

Это компромисс.

  • Длинный TTL: меньше запросов, адрес находится быстрее. Но изменение записи дойдёт до всех не скоро.
  • Короткий TTL: изменения вступают в силу быстро. Но резолверам приходится чаще спрашивать заново.

Теперь понятно, почему после смены адреса сайт у одних открывается новый, а у других «не открывается» или открывается старый. Никто не рассылает новость об изменении. Каждый резолвер просто держит старый ответ, пока не истечёт срок. Это называют «распространением DNS», хотя на самом деле просто истекают кэши. Поэтому перед переездом сайта TTL заранее уменьшают (хотя бы на время прежнего TTL), делают переезд и затем возвращают значение обратно.

Проверьте себя: когда имеет смысл уменьшить TTL?

Заранее, перед переездом сайта на другой сервер, чтобы старые ответы быстро истекли.

Как посмотреть самому

У каждой системы есть команда, которая спросит DNS. В терминале Windows, macOS или Linux:

nslookup example.ru

Ответ покажет адрес, который вернул резолвер. Есть и более подробная команда dig example.ru (на Windows её нет по умолчанию), которая показывает записи, их TTL и сервер, который ответил. А ещё есть онлайн-сервисы, которые спрашивают DNS из разных мест мира.

Важная оговорка: обычный DNS-запрос не зашифрован, и ваш провайдер видит, какие имена вы спрашиваете. Существуют зашифрованные варианты, DNS поверх HTTPS и поверх TLS, которые браузеры и системы понемногу включают.

Практика

Вы в эпохе 2010 года. Сайт и почта стали отдельными сервисами, и каждому нужна запись. Дополните таблицу записей вашего домена: к записи A для сайта добавьте CNAME для www, MX для почты и TXT для подтверждения владения. Для каждой запишите TTL в секундах и одной фразой объясните, когда его стоит уменьшить.

Почта вашего проекта подставлена на страницу: именно её письма должна принимать запись MX. Если у вас почта на чужом сервисе (например в бесплатной почте), запись MX всё равно полезно знать: для почты на своём домене она обязательна.

Что было не так с 2010 годом

Записи в DNS тогда правили вручную, в панели хостинга, и ошибка в одном символе обнуляла сайт или почту на несколько часов, пока не истечёт кэш. Сегодня панели умеют подсказывать и проверять записи, а сервисы вроде CDN управляют DNS автоматически. Но принцип остался тем же, и понимать его нужно, чтобы не гадать, «почему всё сломалось».

Практика

Готовлю вашу страницу…

Тест

Вопрос 1 из 6

Расставьте участников DNS-запроса в порядке обращения к ним, когда ничего не закэшировано

Расставьте по порядку кнопками «выше» и «ниже».

Карточки

Эти карточки попадут в повторение, когда вы завершите урок.

  • Что делает DNS?

    Ответ

    Превращает имя (example.ru) в адрес (203.0.113.10). Это распределённая «телефонная книга» сети.

  • Через кого проходит DNS-запрос?

    Ответ

    Браузер, резолвер, корневой сервер, сервер зоны (.ru), авторитетный сервер домена. Каждый подсказывает, кого спросить дальше.

  • Какие бывают DNS-записи и что в них?

    Ответ

    A и AAAA: адрес сервера; CNAME: псевдоним; MX: почтовый сервер; TXT: текст (например подтверждение владения); NS: серверы домена.

  • Что такое TTL и когда его уменьшают?

    Ответ

    Время хранения ответа в кэше, в секундах. Перед переездом сайта TTL заранее уменьшают, чтобы старый адрес быстро забылся.

  • Почему после смены записи сайт открывается по-старому несколько часов?

    Ответ

    Резолверы и браузеры держат старый ответ, пока не истечёт TTL. Никто не рассылает новость об изменении.

Источники

Видео

Иерархия доменных имён. DNS (Zero to Hero, «Как устроен интернет», 6 из 13)

Видео загрузится с youtube-nocookie.com только после нажатия.

Открыть на сайте

Протокол DNS (Андрей Созыкин, курс «Компьютерные сети»)

Видео загрузится с youtube-nocookie.com только после нажатия.

Открыть на сайте

Дальше

Теперь вы знаете: путь DNS-запроса: резолвер, корень, TLD, авторитетный сервер, DNS-записи и TTL.