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

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

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

Event ID 4004 Windows Server, AD и Роли

Траблшутинг DNS Socket Pool: устранение проблем с сокетами DNS

Обновлено: 28.08.2026 · Официальная документация ↗

Симптомы сбоев пула сокетов DNS

При запуске или работе службы DNS Server в журнале событий появляется ошибка: Event ID 4004: The DNS server was unable to complete directory service enumeration of zone или Event ID 414: The DNS server was unable to create a socket pool. Сервер не может разрешать внешние имена или конфликтует с другими сетевыми службами.

СимптомПричина
Отказ старта службы DNSПорты из диапазона Socket Pool заняты сторонним ПО (VPN, прокси)
Медленное разрешение внешних именРазмер пула сокетов слишком мал для текущего объема запросов
Ошибки нехватки портов в EventLogПул сокетов исчерпал лимиты динамических сокетов UDP ядра

Пошаговая настройка и восстановление DNS Socket Pool

DNS Socket Pool позволяет серверу рандомизировать исходящие UDP-порты для рекурсивных запросов. По умолчанию размер пула составляет 2500 портов.

  1. Проверьте текущий размер пула сокетов DNS:
    dnscmd /info /socketpoolsize; dnscmd /info /socketpoolexcludedportranges
  2. Скорректируйте размер Socket Pool (оптимально 2500): если пул был изменен некорректно, верните стандартное безопасное значение:
    dnscmd /config /socketpoolsize 2500
  3. Настройте диапазон исключенных портов (Excluded Port Ranges): если на сервере работают службы, которым нужны фиксированные UDP-порты (WDS, телефония):
    dnscmd /config /socketpoolexcludedportranges 50000-50100
  4. Перезапустите службу DNS для применения изменений:
    Restart-Service -Name DNS -Force

Внимание: Не устанавливайте SocketPoolSize в значение 0 — это полностью отключит рандомизацию портов и сделает ваш DNS-сервер уязвимым к подмене ответов.

💡 Практика специалистов: При совмещении на одном сервере ролей контроллера домена и сторонних служб мониторинга всегда проверяйте занятые порты. Конфликт сокетов DNS со сторонними агентами часто приводит к сбоям репликации AD.

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

Зачем DNS-серверу нужен Socket Pool?

Он выбирает случайный порт из пула для каждого исходящего запроса к другим DNS-серверам, что делает практически невозможным угадывание порта злоумышленником.

Какой диапазон портов использует DNS Socket Pool по умолчанию?

Он использует стандартный диапазон динамических портов Windows (от 49152 до 65535).

Что делать, если служба DNS не стартует из-за конфликта сокетов?

Используйте команду netstat -ano -p udp для поиска процесса, захватившего диапазон портов, и исключите эти порты через socketpoolexcludedportranges.

Влияет ли увеличение размера пула сокетов на оперативную память?

Выделение 2500 сокетов потребляет незначительное количество ресурсов (менее 10 МБ оперативной памяти).

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