Как происходит процесс разрешения доменного имени (DNS lookup) в системе?

«Как происходит процесс разрешения доменного имени (DNS lookup) в системе?» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Процесс DNS-резолвинга преобразует доменное имя (например, app.example.com) в IP-адрес. Это итеративный/рекурсивный запрос по иерархии DNS-серверов.

Последовательность шагов:

  1. Локальный кэш: Проверяется кэш браузера, ОС (/etc/hosts, nscd) и локальный DNS-резолвер (например, systemd-resolved).
  2. Рекурсивный резолвер: Если не найдено, запрос уходит к настроенному рекурсивному резолверу (например, 8.8.8.8 от Google или резолвер провайдера).
  3. Корневые серверы: Рекурсивный резолвер, не зная ответа, запрашивает один из 13 корневых DNS-серверов (.). Тот отвечает адресами серверов домена верхнего уровня (TLD) для .com.
  4. TLD-серверы: Резолвер спрашивает TLD-сервер .com, который возвращает адреса авторитативных DNS-серверов для домена example.com (например, ns1.awsdns-32.com).
  5. Авторитативные серверы: Наконец, резолвер запрашивает у авторитативного сервера запись A или AAAA для app.example.com и получает IP-адрес.
  6. Ответ клиенту: Рекурсивный резолвер возвращает IP-адрес клиенту и кэширует его на время TTL (Time to Live).

Диагностика с помощью команд:

# Просмотр полного пути разрешения (трассировка).
dig +trace app.example.com

# Запрос конкретного типа записи у конкретного DNS-сервера.
dig A app.example.com @8.8.8.8

# Проверка локального кэша и работы резолвера (Linux).
systemd-resolve --status
nslookup app.example.com

Конфигурация в инфраструктуре: В облачных средах (AWS) авторитативные серверы часто предоставляются сервисом Route 53. Внутри VPS или контейнеров DNS-сервер указывается в /etc/resolv.conf.