hostprofi.ru
Подобрать хостинг
Термин

Recursive DNS

краткое определение

Recursive DNS (рекурсивный DNS-резолвер) — сервер, выполняющий полный цикл разрешения доменного имени от имени клиента: обходит корневые, TLD и авторитативные серверы DNS и возвращает готовый IP-адрес.

Рекурсивный резолвер — посредник между клиентским устройством и системой DNS. Клиент (браузер, ОС) отправляет один запрос резолверу, а тот последовательно опрашивает несколько серверов и возвращает окончательный ответ.

Процесс разрешения

  1. Клиент спрашивает резолвер: «Какой IP у www.example.com?»
  2. Резолвер проверяет кэш — если нет, идёт к корневому серверу.
  3. Корневой сервер отвечает: «.com знает TLD-сервер, вот его адрес».
  4. TLD-сервер .com отвечает: «example.com знает авторитативный сервер, вот его адрес».
  5. Авторитативный сервер example.com возвращает IP-адрес.
  6. Резолвер кэширует ответ (на TTL записи) и возвращает IP клиенту.

Весь процесс занимает 20–100 мс при первом запросе и <1 мс из кэша.

Публичные рекурсивные резолверы

ПровайдерIPОсобенности
Google Public DNS8.8.8.8 / 8.8.4.4С 2009 года, глобальный anycast
Cloudflare1.1.1.1 / 1.0.0.1С 2018 года, приватность DoH/DoT
OpenDNS208.67.222.222С 2005 года, фильтрация
Quad99.9.9.9Блокировка вредоносных доменов

История

Рекурсивный резолвинг описан в RFC 1034 и RFC 1035 (1987). До публичных резолверов клиенты использовали резолверы своего провайдера. Google запустил 8.8.8.8 в декабре 2009 года. Cloudflare запустил 1.1.1.1 1 апреля 2018 года.

DNS в хостинге

Провайдеры хостинга предоставляют собственные авторитативные DNS-серверы для управления записями доменов. Рекурсивные резолверы на серверах используют /etc/resolv.conf — в production рекомендуется прописывать 127.0.0.1 (локальный unbound или bind) для снижения зависимости от внешних серверов.

Рекурсивный резолвер в деталях

Рекурсивный DNS-резолвер выполняет полный цикл разрешения имени вместо клиента: 1) Запрашивает root-серверы (13 кластеров, 1000+ экземпляров по всему миру) — получает адреса TLD-серверов. 2) Запрашивает TLD-серверы (.com, .ru) — получает адреса авторитативных DNS-серверов для домена. 3) Запрашивает авторитативные серверы — получает итоговый IP-адрес. 4) Кэширует результат на TTL DNS-записи. Весь процесс: 50–300 мс при первом запросе, 0–5 мс при кэшированном.

Типичные рекурсивные резолверы в интернете: 8.8.8.8 и 8.8.4.4 (Google Public DNS), 1.1.1.1 и 1.0.0.1 (Cloudflare), 9.9.9.9 (Quad9 с фильтрацией малвари), 77.88.8.8 (Яндекс DNS). Корпоративные сети используют собственные резолверы (Unbound, BIND, PowerDNS Recursor).

DNS-кэш и TTL

TTL (Time-To-Live) DNS-записи определяет, сколько секунд резолвер кэширует ответ. Типичные значения: 300–3600 секунд (5 минут — 1 час). При смене хостинга (новый IP) старые записи кэшируются у резолверов до истечения TTL. Лайфхак: за 24–48 часов до миграции снизить TTL до 300 секунд — новые настройки распространятся быстрее. После миграции можно вернуть TTL на прежнее значение.

DNS-over-HTTPS и DNS-over-TLS

Классический DNS работает по UDP/TCP на порту 53 в открытом виде — запросы видны провайдеру и могут быть перехвачены. DNS-over-HTTPS (DoH, RFC 8484) и DNS-over-TLS (DoT, RFC 7858) шифруют запросы. Cloudflare 1.1.1.1 поддерживает DoH и DoT. Firefox и Chrome поддерживают DoH нативно. Для хостинга это важно при работе через публичные Wi-Fi сети, но на уровне сервера — стандартный DNS достаточен, если канал до провайдера защищён.

Безопасность рекурсивных резолверов

DNS-over-HTTPS (DoH) и DNS-over-TLS (DoT) шифруют запросы к резолверу. DNSSEC подписывает зоны цифровой подписью — резолвер проверяет подлинность ответа. Атака DNS Cache Poisoning подменяет записи в кэше.

На сервере с BIND или unbound рекурсивный резолвер следует ограничить allow-recursion только доверенными IP. Иначе сервер может использоваться как Open Resolver для DDoS-усиления — атакующий отправляет запросы с подделанным IP жертвы, получая многократно увеличенный ответ.

Другие термины