Проблема
После установки обновления безопасности 953230 (MS08-037) для службы DNS-сервера и перезагрузки компьютера могут возникнуть проблемы с сетевыми службами, работающими с протоколом UDP. После установки обновления безопасности 953230 на компьютере с операционной системой Windows 2000, Windows Server 2003 или Windows Server 2008 службы, работа которых зависит от порта UDP, могут перестать запускаться. Проблема возникает, если служба назначается службе DNS-сервера после установки обновления безопасности 953230.
Причина
Проблема возникает потому, что служба не может получить доступ к порту, который требуется ей для правильной работы. Это связано с изменениями распределения портов в службе DNS после установки обновления безопасности 953230.
По умолчанию после установки обновления безопасности 953230 служба DNS-сервера в произвольном порядке распределяет 2500 портов из диапазона временных портов. Это новый режим, введенный в данном обновлении. Может возникнуть конфликт, если один из этих портов, назначаемых в случайном порядке, используется конфликтующей службой.
Конфликты служб более вероятны на многоролевых серверах, которые выполняют дополнительные роли, включая функцию DNS-сервера. В связи с тем, что эти порты распределяются в случайном порядке, сбои могут возникать время от времени.
Например, конфликт может возникнуть в службе Windows IPsec. Служба IPsec использует UDP-порт 4500. На DNS-сервере, который также выполняет службы IPsec, конфликт портов может препятствовать запуску службы IPsec.
Временное решение
Чтобы решить эту проблему, необходимо зарезервировать UDP-порт из диапазона временных портов, чтобы гарантировать возможность запуска службы, зависящей от этого порта.
Дополнительные сведения о резервировании временных портов см. в следующей статье базы знаний Майкрософт:
812873Резервирование диапазона временных портов на компьютере с системой Windows Server 2003 или Windows 2000 Server (Эта ссылка может указывать на содержимое полностью или частично на английском языке)Дополнительные сведения о сетевых UDP-портах, которые могут вызывать конфликт, см. в следующей статье базы знаний Майкрософт:
832017Службы и сетевые порты в серверных системах Microsoft WindowsВ примере со службой IPsec, приведенном выше, можно добавить порты 4500–4500 с помощью раздела реестра ReservedPorts.
Дополнительная информация
Подробное описание причины
Ниже приведено более подробное описание причин возникновения проблемы.
Присвоение портов-источников DNS-сервера в произвольном порядке и реализация SocketPool
В обновлении безопасности для DNS-сервера резервируется набор портов при произвольном назначении запросов. Это было сделано для решения проблем с производительностью DNS-серверов, которые обрабатывают и отправляют значительно большее количество запросов в сравнении с клиентами с ОС Windows. Набор зарезервированных для DNS-сервера портов далее называется «группой портов».
Стандартный размер группы портов на сервере с ОС Windows — 2500 портов. Это значение можно настроить, изменив параметр реестра SocketPoolSize в следующем подразделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\SocketPoolSize Примечание. Чтобы изменения параметра SocketPoolSize вступили в силу, необходимо перезапустить службу DNS.
Windows 2000 и Windows Server 2003
-
Назначение временных портов и параметр реестра MaxUserPort
Порты, которые назначаются как часть группы портов, запрашиваются из набора доступных временных портов сервера. Временные порты временно назначаются стеком TCP/IP в ходе создания «временных связей», когда требуемый порт первоначального источника не указывается.
На серверах с операционной системой Windows параметр реестра MaxUserPort определяет диапазон временных портов и наибольшее количество портов, которое может быть назначено для временных портов. Параметр реестра MaxUserPort находится в следующем подразделе реестра:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ Дополнительные сведения о параметре реестра MaxUserPort см. на веб-узле корпорации Майкрософт по следующему адресу:
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/regentry/58791.mspx?mfr=true
-
Эффективный диапазон временных портов при явном указании значения параметра реестра MaxUserPort
В операционных системах Windows Server 2003 и Windows 2000 Server значение параметра реестра MaxUserPort определяет диапазон временных портов. Диапазон включает порты с номерами с 1024 по значение, определяемое параметром реестра MaxUserPort.
После установки обновления безопасности 953230 на сервере с системой Windows Server 2003 и платформами предыдущих версий справедливо следующее:-
если значение параметра реестра MaxUserPort задано, порты назначаются произвольно из диапазона [1024, MaxUserPort];
-
если значение параметра реестра MaxUserPort не задано, порты назначаются произвольно из диапазона [49152, 65535].
-
Windows Server 2008
-
Назначение временных портов и параметр реестра MaxUserPort
В операционных системах Windows Server 2008 и Windows Vista значение параметра реестра MaxUserPort определяет число временных портов. Этот диапазон определяется значениями [начальный порт, начальный диапазон + MaxUserPort]. Начальный порт по умолчанию — 49152. -
Эффективный диапазон временных портов
Перед установкой обновления безопасности 953230 на компьютере с системой Windows Server 2008 назначение временных портов происходит в диапазоне портов [49152–65535]. После установки обновления безопасности 953230 режим распределения портов не изменяется.
Дополнительные сведения об этом обновлении для системы безопасности и известных проблемах, возникающих после установки определенных его выпусков см. в следующей статье базы знаний Майкрософт:929851 Изменение динамического диапазона портов TCP/IP по умолчанию в операционных системах Windows Vista и Windows Server 2008 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Статус
Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе "Информация в данной статье применима к".