Что такое рекурсивный DNS?
Рекурсивный DNS — способ разрешения DNS, при котором рекурсивный резолвер выполняет весь поиск за клиента: проходит иерархию DNS от корневых серверов до авторитетных nameserver и возвращает окончательный ответ.Как работает рекурсивный DNS
Client Query: "What is the IP for www.example.com?"
Step 1: Client → Recursive Resolver
"Please resolve www.example.com"
Step 2: Resolver → Root Server (.)
"Who handles .com?"
← Response: "Try a.gtld-servers.net"
Step 3: Resolver → TLD Server (.com)
"Who handles example.com?"
← Response: "Try ns1.example.com at 192.0.2.1"
Step 4: Resolver → Authoritative Server (example.com)
"What is the A record for www.example.com?"
← Response: "192.0.2.10"
Step 5: Resolver → Client
"www.example.com is at 192.0.2.10"
(Resolver caches result for future queries)
Рекурсивный и итеративный DNS
| Возможность | Рекурсивный | Итеративный |
|---|---|---|
| Выполнение запроса | Резолвер выполняет всю работу | Клиент переходит по рекомендациям |
| Сложность для клиента | Низкая | Высокая |
| Обычное применение | Резолверы для конечных пользователей | Обмен между серверами |
| Тип ответа | Окончательный ответ | Ответ или рекомендация |
Поток разрешения DNS
DNS Hierarchy:
Root Servers (.)
│
┌────────┼────────┐
│ │ │
.com .org .net ← TLD Servers
│
example.com ← Authoritative Servers
│
┌───┴───┐
www mail ← Host Records
Публичные рекурсивные резолверы
| Провайдер | Основной | Резервный | Возможности |
|---|---|---|---|
| 8.8.8.8 | 8.8.4.4 | Глобальный anycast | |
| Cloudflare | 1.1.1.1 | 1.0.0.1 | Ориентация на конфиденциальность |
| Quad9 | 9.9.9.9 | 149.112.112.112 | Фильтрация по безопасности |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | Фильтрация содержимого |
Поведение кэша
| Расположение кэша | Кем задаётся TTL | Обычная длительность |
|---|---|---|
| Рекурсивный резолвер | Администратором зоны | От нескольких часов до дней |
| Браузер | HTTP-заголовками и DNS TTL | От минут до часов |
| Резолвер ОС | DNS TTL | От минут до часов |
Вопросы безопасности
- Отравление кэша: злоумышленники внедряют ложные записи в кэш резолвера
- DNS-амплификация: злоумышленники используют открытые резолверы для DDoS-атак
- Конфиденциальность: резолверы видят все запросы своих пользователей
- Меры защиты: проверка DNSSEC, ограничение частоты, шифрованный DNS (DoH/DoT)
Флаги запроса
Recursion Desired (RD): Client requests recursive resolution
Recursion Available (RA): Server supports recursion
Query: dig example.com @8.8.8.8
;; flags: qr rd ra ← RD set by client, RA confirmed by server
Лучшие практики
1. Используйте надёжные резолверы: выбирайте резолверы с хорошей доступностью и производительностью
2. Включите проверку DNSSEC: защищайтесь от атак подмены
3. Учитывайте конфиденциальность: используйте шифрованный DNS (DoH/DoT) для чувствительных запросов
4. Контролируйте задержку: расположение резолвера влияет на скорость поиска
5. Настройте резервирование: используйте несколько адресов резолверов
Рекурсивный DNS упрощает разрешение для конечных пользователей, автоматически выполняя сложный обход иерархии DNS.