Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

DNS_LATENCY_TIMEOUT Сетевое оборудование и VPN

Диагностика задержек DNS: траблшутинг локальных резолверов и EDNS

Обновлено: 25.08.2026 · Официальная документация ↗
  • Открытие веб-сайтов и установка соединений занимают 2-5 секунд при высокой скорости загрузки контента.
  • Утилита dig показывает Query time: > 1000 msec или выдает ошибку ;; connection timed out; no servers could be reached.
  • Приложения падают с таймаутом резолвинга при выполнении API-запросов.
  • Логи локального DNS-сервера содержат ошибки lame server resolving, SERVFAIL или EDNS buffer size error.

1. Точный замер времени ответа через dig

# Запрос через стандартный системный резолвер
dig error.itstm.ru +stats

# Запрос напрямую к апстрим-серверам для сравнения задержки
dig @127.0.0.1 error.itstm.ru +stats
dig @1.1.1.1 error.itstm.ru +stats
dig @8.8.8.8 error.itstm.ru +stats

2. Проверка проблем с фрагментацией EDNS0 и размером буфера

Если фаервол блокирует фрагментированные UDP пакеты DNS размером более 512 байт, ограничьте размер буфера EDNS в запросе:

dig @1.1.1.1 error.itstm.ru +bufsize=1232 +dnssec

3. Проверка сетевых потерь на порту UDP/53

# Проверка TCP-фолбэка DNS
dig @1.1.1.1 error.itstm.ru +tcp

# Захват сетевого трафика DNS
tcpdump -nn -i any port 53

4. Оптимизация локального резолвера (например, Unbound)

Отредактируйте /etc/unbound/unbound.conf для снижения задержек:

server:
    edns-buffer-size: 1232
    prefetch: yes
    prefetch-key: yes
    serve-expired: yes
    serve-expired-ttl: 86400
    msg-cache-size: 64m
    rrset-cache-size: 128m
    infra-cache-numhosts: 10000
    fast-server-num: 3
systemctl restart unbound

5. Тюнинг параметров резолвера в Linux (/etc/resolv.conf)

options timeout:1 attempts:2 rotate single-request-reopen
💡 Практика специалистов: Всегда проверяйте наличие опции `rotate` в `/etc/resolv.conf`, если у вас указано несколько upstream DNS. Без нее система будет постоянно долбиться в первый упавший сервер до истечения таймаута перед переходом ко второму.

Частые вопросы (FAQ)

Что делает опция 'single-request-reopen' в /etc/resolv.conf?

По умолчанию glibc отправляет запросы на получение записей A (IPv4) и AAAA (IPv6) параллельно через один и тот же сокет. Некоторые некорректные домашние роутеры и фаерволы отбрасывают второй ответ. Эта опция заставляет систему открывать разные сокеты для каждого запроса.

Почему рекомендуемый размер буфера EDNS0 снизили до 1232 байт?

Согласно стандарту DNS Flag Day, размер буфера 1232 байта гарантирует прохождение DNS-ответов с включенным DNSSEC через каналы с минимальным IPv6 MTU (1280 байт) без фрагментации пакетов.

Что дает директива serve-expired в Unbound/Bind?

Она позволяет резолверу мгновенно отдавать клиенту устаревший кэш (TTL expired), параллельно запуская фоновое обновление записи в авторитетном сервере, что полностью устраняет задержки для конечных пользователей.

В чем разница между рекурсивным и авторитетным DNS-сервером?

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

Полезные материалы
Рекомендуем