Сетевой блокнот

DNS: от имени до IP-адреса

Основы и диагностика · чтение 5 минут

Прежде чем браузер установит соединение, имя сайта нужно превратить в IP-адрес. За это отвечает DNS — иерархическая распределённая система имён.

Цепочка разрешения

  1. Приложение спрашивает системный резолвер (в Ubuntu — systemd-resolved).
  2. Если ответа нет в кэше, запрос уходит рекурсивному серверу провайдера или публичному.
  3. Тот обращается к корневым серверам, затем к серверам зоны верхнего уровня и, наконец, к авторитетному серверу домена.
  4. Ответ возвращается по цепочке и кэшируется на время TTL.

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

ТипНазначение
A / AAAAIPv4 / IPv6-адрес узла
CNAMEПсевдоним на другое имя
MXПочтовые серверы домена
TXTПроизвольный текст: SPF, проверка владения доменом
NSАвторитетные серверы зоны

TTL и изменение записей

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

Диагностика

dig example.com A +short
dig example.com A @1.1.1.1
dig +trace example.com
resolvectl status
resolvectl query example.com

Запрос напрямую к конкретному серверу (@1.1.1.1) помогает понять, где проблема: в локальном кэше, у провайдера или в самой зоне. Команда +trace показывает весь путь от корня до авторитетного сервера.

Частые причины сбоев

  • Запись не обновилась — ещё не истёк TTL в кэше.
  • Домен указывает на старый IP из-за забытой записи AAAA.
  • Резолвер недоступен из-за настроек файрвола на UDP/TCP 53.