Инженерные заметки
Сети

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

Рекурсивные и авторитетные серверы, типы записей, кэш и TTL.

· 8 мин чтения

Задача DNS

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

Рекурсивный и авторитетный

Авторитетный сервер хранит записи зоны и отвечает только за неё. Рекурсивный (резолвер) получает запрос клиента и сам обходит иерархию, начиная с корня, а затем кэширует результат.

bash
dig example.com +trace

Основные записи

A и AAAA — IPv4 и IPv6 адреса, CNAME — псевдоним на другое имя, MX — почтовые серверы, TXT — произвольный текст, NS — серверы зоны.

bash
dig example.com A +short
dig example.com MX +short
dig example.com NS +short

Кэш и TTL

TTL — время в секундах, в течение которого резолвер может хранить ответ. Перед переездом сервиса заранее снизьте TTL записи, подождите старый срок и только потом меняйте адрес.

Подсказка. «DNS не обновился» чаще всего означает, что где-то ещё живёт кэш со старым TTL.

Проверка

bash
dig @ns1.example.com example.com A
dig @1.1.1.1 example.com A
resolvectl query example.com

Сравнение ответа авторитетного сервера и публичного резолвера показывает, где расходятся данные.

Вывод

Разделяйте две роли — авторитетную и рекурсивную — и проверяйте обе. Большая часть проблем DNS объясняется кэшем или неверной записью в зоне.

Связанные статьи

Сети

TCP против UDP

Чем отличаются протоколы транспортного уровня и как выбрать подходящий.

07.11.20266 минЧитать