Cómo forzar a Kerberos a usar TCP en lugar de UDP en Windows

En este artículo se describe cómo forzar a Kerberos a usar TCP en lugar de UDP.

Se aplica a:   Windows 10: todas las ediciones, Windows Server 2012 R2
Número KB original:   244474

Resumen

El Windows de autenticación Kerberos es el paquete de autenticación predeterminado en Windows Server 2003, en Windows Server 2008 y en Windows Vista. Coexiste con el protocolo de desafío y respuesta NTLM y se usa en instancias donde un cliente y un servidor pueden negociar Kerberos. Solicitud de comentarios (RFC) 1510 indica que el cliente debe enviar un datagrama de protocolo de datagrama de usuario (UDP) al puerto 88 en la dirección IP del Centro de distribución de claves (KDC) cuando un cliente se pone en contacto con KDC. El KDC debe responder con un datagrama de respuesta al puerto de envío en la dirección IP del remitente. La RFC también indica que UDP debe ser el primer protocolo que se intenta.

Nota

RFC 4120 ahora ha obsoleto RFC 1510. RFC 4120 especifica que un KDC debe aceptar solicitudes TCP y debe escuchar dichas solicitudes en el puerto 88 (decimal). De forma predeterminada, Windows Server 2008 y Windows Vista probarán TCP primero para Kerberos porque el valor predeterminado de MaxPacketSize es ahora 0. Todavía puede usar el valor del Registro MaxPacketSize para invalidar ese comportamiento.

Una limitación del tamaño de paquete UDP puede provocar el siguiente mensaje de error en el inicio de sesión del dominio:

Error del registro de eventos 5719
NETLOGON de origen

No Windows nt o Windows controlador de dominio 2000 está disponible para dominio dominio . Se produjo el siguiente error:

Actualmente no hay servidores de inicio de sesión disponibles para dar servicio a la solicitud de inicio de sesión.

Además, la herramienta Netdiag puede mostrar los siguientes mensajes de error:

  • Mensaje de error 1

    Prueba de lista de DC . . . . . . . . . . . : Error [ADVERTENCIA] No se puede llamar a DsBind COMPUTERNAMEDC.domain.com a (159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]

  • Mensaje de error 2

    Prueba kerberos. . . . . . . . . . . : Error [FATAL] Kerberos no tiene un vale para MEMBERSERVER$.] Los Windows de eventos XP que son síntomas de este problema son SPNegotiate 40960 y Kerberos 10.

Más información

Importante

Esta sección, método o tarea contiene pasos que le indican cómo modificar el Registro. No obstante, pueden producirse problemas graves si modifica el registro de manera incorrecta. En consecuencia, asegúrese de seguir estos pasos cuidadosamente. Para mayor protección, cree una copia de seguridad del registro antes de modificarlo. Después, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo hacer una copia de seguridad y restaurar el Registro, vea How to back up and restore the registry in Windows.

Si usa UDP para Kerberos, es posible que el equipo cliente deje de responder (colgar) cuando reciba el siguiente mensaje: Cargar la configuración personal.

De forma predeterminada, el tamaño máximo de los paquetes de datagramas para los que Windows Server 2003 usa UDP es de 1.465 bytes. Para Windows XP y Windows 2000, este máximo es 2.000 bytes. El Protocolo de control de transmisión (TCP) se usa para cualquier datagrampacket que sea mayor que este máximo. El tamaño máximo de los paquetes de datagramas para los que se usa UDP se puede cambiar modificando una clave y un valor del Registro.

De forma predeterminada, Kerberos usa paquetes de datagrama UDP sin conexión. Según una variedad de factores, como el historial de identificadores de seguridad (SID) y la pertenencia a grupos, algunas cuentas tendrán tamaños de paquetes de autenticación Kerberos más grandes. Según la configuración de hardware de red privada virtual (VPN), estos paquetes más grandes deben fragmentarse al pasar por una VPN. El problema se debe a la fragmentación de estos paquetes Kerberos UDP de gran tamaño. Dado que UDP es un protocolo sin conexión, los paquetes UDP fragmentados se descartarán si llegan al destino fuera de servicio.

Si cambia MaxPacketSize a un valor de 1, forzará al cliente a usar TCP para enviar tráfico Kerberos a través del túnel VPN. Dado que TCP está orientado a la conexión, es un medio de transporte más confiable a través del túnel VPN. Incluso si se descartan los paquetes, el servidor volverá a solicitar el paquete de datos que falta.

Puede cambiar MaxPacketSize a 1 para forzar a los clientes a usar el tráfico Kerberos a través de TCP. Para ello, siga estos pasos:

  1. Inicie el Editor del Registro.

  2. Busque y, a continuación, haga clic en la subclave del Registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters .

    Nota

    Si la clave Parameters no existe, creela ahora.

  3. En el menú Edición, seleccione Nuevo y haga clic en Valor DWORD.

  4. Escriba MaxPacketSize y presione ENTRAR.

  5. Haga doble clic en MaxPacketSize , escriba 1 en el cuadro Datos de valor, haga clic para seleccionar la opción Decimal y, a continuación, haga clic en Aceptar.

  6. Salga del editor del Registro.

  7. Restart your computer.

Este es el enfoque de solución para Windows 2000, XP y Server 2003. Windows Vista y versiones más recientes usan un valor predeterminado de "0" para MaxPacketSize, que también desactiva el uso de UDP para el cliente Kerberos.

La siguiente plantilla es una plantilla administrativa que se puede importar a la directiva de grupo para permitir que el valor MaxPacketSize se establezca para todos los equipos empresariales que ejecutan Windows Server 2003, Windows XP o Windows 2000. Para ver la configuración de MaxPacketSize en el Editor de objetos de directiva de grupo, haga clic en Mostrar solo directivas en el menú Ver para que No se seleccione Mostrar solo directivas. Esta plantilla modifica las claves del Registro fuera de la sección Directivas. De forma predeterminada, el Editor de objetos de directiva de grupo no muestra esta configuración del Registro.