Как принудительно использовать TCP вместо UDP в Windows kerberos

В этой статье описывается, как принудительно использовать ПРОТОКОЛ TCP вместо UDP.

Исходный номер базы знаний: 244474

Итоги

Пакет проверки подлинности Windows Kerberos — это пакет проверки подлинности по умолчанию в Windows Server 2003, в Windows Server 2008 и Windows Vista. Он сосуществует с протоколом вызова и ответа NTLM и используется в экземплярах, где клиент и сервер могут согласовывать Kerberos. Запрос комментариев (RFC) 1510 указывает, что клиент должен отправлять грамму данных протокола UDP (UDP) на порт 88 по IP-адресу Центра распространения ключей (KDC), когда клиент обращается к KDC. KDC должен отвечать с помощью диаграммы данных ответа на порт отправки по IP-адресу отправителя. RFC также утверждает, что UDP должен быть первым протоколом, который выполняется.

Примечание.

RFC 4120 теперь устарел RFC 1510. RFC 4120 указывает, что KDC должен принимать TCP-запросы и должен прослушивать такие запросы через порт 88 (десятичный). По умолчанию Windows Server 2008 и Windows Vista сначала попытаются использовать TCP для Kerberos, так как значение по умолчанию MaxPacketSize равно 0. Значение реестра MaxPacketSize по-прежнему можно использовать для переопределения этого поведения.

Ограничение размера пакета UDP может привести к следующему сообщению об ошибке при входе в домен:

Ошибка журнала событий 5719
Источник NETLOGON

Контроллер домена Windows NT или Windows 2000 недоступен для домена. Произошла следующая ошибка:

В настоящее время нет серверов входа в систему, доступных для обслуживания запроса на вход.

Кроме того, средство Netdiag может отображать следующие сообщения об ошибках:

  • Сообщение об ошибке 1

    Тест списка контроллеров домена. . . . . . . . . . . : сбой [ПРЕДУПРЕЖДЕНИЕ] Не удается вызвать DsBind ( COMPUTERNAMEDC.domain.com 159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]

  • Сообщение об ошибке 2

    Тест Kerberos. . . . . . . . . . . : Не удалось [ФАТАЛЬНЫЙ] Kerberos не имеет билета на MEMBERSERVER$.] Журналы событий Windows XP, которые являются симптомами этой проблемы, являются SPNegotiate 40960 и Kerberos 10.

Дополнительные сведения

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому убедитесь, что вы внимательно выполните следующие действия. Для дополнительной защиты создайте резервную копию реестра перед его изменением. Так вы сможете восстановить реестр, если возникнет проблема. Для получения дополнительной информации о том, как создать резервную копию и восстановить реестр, см. статью Сведения о резервном копировании и восстановлении реестра Windows.

Если вы используете UDP для Kerberos, клиентский компьютер может перестать отвечать (зависать) при получении следующего сообщения: загрузка личных параметров.

По умолчанию максимальный размер пакетов диаграммы данных, для которых Windows Server 2003 использует UDP, составляет 1465 байт. Для Windows XP и Windows 2000 это максимум 2000 байт. Протокол управления передачей (TCP) используется для любого набора данных, превышающего это максимальное значение. Максимальный размер пакетов диаграммы данных, для которых используется UDP, можно изменить, изменив раздел реестра и значение.

По умолчанию Kerberos использует пакеты данных UDP без подключения. В зависимости от различных факторов, включая журнал безопасности (SID) и членство в группах, некоторые учетные записи будут иметь более крупные размеры пакетов проверки подлинности Kerberos. В зависимости от конфигурации оборудования виртуальной частной сети (VPN) эти большие пакеты должны быть фрагментированы при прохождении VPN. Проблема вызвана фрагментацией этих больших пакетов Kerberos UDP. Так как UDP является протоколом без подключения, фрагментированные пакеты UDP будут удалены, если они прибывают в место назначения вне порядка.

При изменении MaxPacketSize на значение 1 клиент принудительно использует TCP для отправки трафика Kerberos через VPN-туннель. Так как TCP ориентирован на подключение, это более надежные средства транспорта через VPN-туннель. Даже если пакеты удаляются, сервер повторно запрашивает отсутствующий пакет данных.

Можно изменить MaxPacketSize на 1, чтобы клиенты могли использовать трафик Kerberos через TCP. Для этого выполните следующие шаги.

  1. Откройте редактор реестра.

  2. Найдите и выберите подраздел реестра: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters

    Примечание.

    Если ключ параметров не существует, создайте его сейчас.

  3. В меню Правка выберите пункт Создать, а затем Параметр DWORD.

  4. Введите MaxPacketSize и нажмите клавишу ВВОД.

  5. Дважды щелкните MaxPacketSize, введите 1 в поле данных "Значение", выберите десятичный параметр и нажмите кнопку "ОК".

  6. Закройте редактор реестра.

  7. Restart your computer.

Это подход к решению для Windows 2000, XP и Server 2003. Windows Vista и более поздней версии используют значение по умолчанию "0" для MaxPacketSize, который также отключает использование UDP для клиента Kerberos.

Следующий шаблон — это административный шаблон, который можно импортировать в групповую политику, чтобы значение MaxPacketSize было задано для всех корпоративных компьютеров под управлением Windows Server 2003, Windows XP или Windows 2000. Чтобы просмотреть параметры MaxPacketSize в редакторе объектов групповой политики, щелкните "Показать политики только в меню "Вид ", чтобы показывать политики только не выбраны. Этот шаблон изменяет разделы реестра за пределами раздела "Политики". По умолчанию редактор объектов групповой политики не отображает эти параметры реестра.