Solución de problemas del error 8589 de replicación de AD: DS no puede derivar un nombre de entidad de seguridad de servicio (SPN)

En este artículo se describen los síntomas, la causa y los pasos de resolución para los casos en los que las operaciones de AD producen un error de Win32 8589.

Nota:

Usuarios domésticos: Este artículo solo está pensado para agentes de soporte técnico y profesionales de TI. Si busca ayuda con un problema, pregunte a la comunidad de Microsoft.

Se aplica a: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Número de KB original: 2703028

Síntomas

Error 8589: "El DS no puede derivar un nombre de entidad de seguridad de servicio (SPN) con el que autenticar mutuamente el servidor de destino porque el objeto de servidor correspondiente de la base de datos DS local no tiene ningún atributo serverReference.

Error simbólico: ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF

Verá cualquiera de los siguientes errores o advertencias al solucionar problemas de replicación de Active Directory.

  1. DCDIAG informa de que se ha producido un error en la prueba de replicación de Active Directory con el estado de error (8589): el DS no puede derivar un nombre de entidad de seguridad de servicio (SPN) que autentique mutuamente el servidor de destino porque el objeto de servidor correspondiente de la base de datos DS local no tiene ningún atributo serverReference.

    A continuación se muestra el texto de error de ejemplo de DCDIAG:

    Servidor de pruebas: <nombre del controlador de dominio del sitio><>

    Inicio de la prueba: replicación

    * Comprobación de las replicaciones

    [Comprobación de las replicaciones,<Nombre del controlador> de dominio] Error en un intento de replicación reciente:

    Del controlador de dominio> de origen al <controlador de dominio de <destino>

    Contexto de nomenclatura: ruta de acceso DC=<DN>

    La replicación generó un error (8589):

    El DS no puede derivar un nombre de entidad de seguridad de servicio (SPN) con el que autenticar mutuamente el servidor de destino porque el objeto de servidor correspondiente de la base de datos DS local no tiene ningún atributo serverReference.

    El error se produjo en la <fecha><y hora>.

    El último éxito se produjo en (nunca)| <fecha>.

  2. DCDiag.exe muestra la siguiente advertencia:

    Se produjo un evento de advertencia. EventID: 0x80000785

    Hora generada: <DateTime>

    Cadena de evento: error al intentar establecer un vínculo de replicación para la siguiente partición de directorio grabable.
    Partición de directorio:
    DC=ForestDnsZones,DC=contoso,DC=com
    Controlador de dominio de origen:
    CN=NTDS Settings,CN=DCSRV01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=contosoDC=com
    Dirección del controlador de dominio de origen:

    <SOURCE DC NTDS Settings Obejct GUID>._msdcs.contoso.com
    Transporte entre sitios (si existe):
    Este controlador de dominio no podrá replicarse con el controlador de dominio de origen hasta que se corrija este problema.

    Acción del usuario
    Compruebe si el controlador de dominio de origen es accesible o si hay conectividad de red disponible.

    Datos adicionales
    Valor de error:
    8589

    El DS no puede derivar un nombre de entidad de seguridad de servicio (SPN) con el que autenticar mutuamente el servidor de destino porque el objeto de servidor correspondiente de la base de datos DS local no tiene ningún atributo serverReference.

  3. REPADMIN.EXE informa de que el último intento de replicación ha producido un error con el estado 8589

    REPADMIN Los comandos que suelen citar el estado 8589 incluyen, entre otros:

    • REPADMIN /SHOWREPL
    • REPADMIN /SHOWREPS
    • REPADMIN /REPLSUM
    • REPADMIN /SYNCALL

    Repadmin /showrepl devuelve el siguiente error:

    Origen: <Nombre del> sitio\<Nombre del controlador de dominio>

    <n> ERRORES CONSECUTIVOS desde la <fecha & hora>

    Último error: 8589 (0x218d):

    El DS no puede derivar un nombre de entidad de seguridad de servicio (SPN) con el que autenticar mutuamente el servidor de destino porque el objeto de servidor correspondiente de la base de datos DS local no tiene ningún atributo serverReference.

  4. Eventos del registro de eventos de Servicios de directorio que citan el estado de error 8589

    Los eventos, que suelen citar el estado 8589, incluyen, entre otros:

    Origen de eventos e identificador de evento Cadena de mensaje
    Replicación de NTDS/ActiveDirectory_DomainService 1411 Active Directory no pudo construir un nombre de entidad de seguridad de servicio de autenticación mutua (SPN) para el siguiente controlador de dominio.
    Replicación NTDS 2023 El controlador de dominio local no pudo replicar los cambios en el siguiente controlador de dominio remoto para la siguiente partición de directorio.
    NTDS KCC 1925 Error al intentar establecer un vínculo de replicación para la siguiente partición de directorio grabable.

Causa

El evento más comúnmente se produce en un controlador de dominio después de que un asociado de replicación se haya degradado por la fuerza y se haya vuelto a aplicar antes de permitir que se complete la replicación de un extremo a otro. Esto también puede ocurrir cuando cambia el nombre de un controlador de dominio y el atributo serverReference no se actualiza. El atributo serverReference de esta instancia es el objeto Server que se puede ver en MMC de sitios y servicios de Active Directory (adsiedit.msc). El objeto de servidor es el objeto primario del objeto NTDS Settings del controlador de dominio.

Solución

Compruebe que el atributo serverReference no falta o que está establecido en un valor incorrecto y actualícelo al valor correcto.

  1. Busque el controlador de dominio al que se hace referencia en el identificador de evento 1411. Hay algunas opciones que podemos usar para encontrar esto. Lo más fácil es usar ping (opción A). Si se produce un error en el ping, use PowerShell (opción B). Si PowerShell no es una opción, puede usar ldp.exe (opción C). (Nota: si los controladores de dominio son 2003 y no puede instalar PowerShell en él, puede usar PowerShell desde un cliente unido a un dominio de Windows 7 o un servidor de Windows 2008 o Windows 2008 R2)

    Opción A
    Use NSLookup o ping para buscar el controlador de dominio que aparece en <el GUID de obejct de> configuración de DC NTDS de origen._msdcs.contoso.com

    Ejemplo:

    Ping 3dab7f9b-92e7-4391-b8db-71df532c1493._msdcs.contoso.com

    Pinging DCSRV02.contoso.com [IP] with 32 bytes of data :
    
    Reply from [IP]: bytes=32 time<1ms TTL=128
    Reply from [IP]: bytes=32 time<1ms TTL=128
    Reply from [IP]: bytes=32 time<1ms TTL=128
    Reply from [IP]: bytes=32 time<1ms TTL=128
    

    Opción B
    Use PowerShell para buscar el controlador de dominio al que se hace referencia. Hay dos métodos de PowerShell que puede usar. Para ello, abra el "Módulo de Active Directory para Windows PowerShell"

    Método 1: ejecute los dos cmdlets de PowerShell siguientes. En el primer cmdlet, reemplace el nombre CN=Configuration,DC=contoso,DC=com de la partición por el DN de la partición de configuración. Reemplace el nombre DCSRV01.contoso.com del servidor por el nombre del controlador de dominio. En el segundo cmdlet, reemplace el GUID 3dab7f9b-92e7-4391-b8db-71df532c1493 por el GUID en el identificador de evento 1411.

    $list = Get-ADObject -Filter 'ObjectClass -eq "ntdsdsa"' -SearchBase '*CN=Configuration,DC=contoso,Dc=com*' -Server *DCSRV01.contoso.com*  
    -includedeletedobjects -Properties *
    
    foreach ($dc in $list) {if ($dc.ObjectGUID -match "*3dab7f9b-92e7-4391-b8db-71df532c1493*") {Echo $dc.DistinguishedName }}  
    

    Método 2: Otra opción de PowerShell es ejecutar lo siguiente y, a continuación, buscar en el archivo de texto de salida. Reemplace por DCSRV01.contoso.com un controlador de dominio en el entorno.

    Get-ADObject -Filter 'ObjectClass -eq "ntdsdsa"' -SearchBase 'CN=Configuration,DC=contoso,Dc=com' -Server DCSRV01.contoso.com -includedeletedobjects > C:\NTDSDSA.txt
    

    A continuación, busque en NTDSA.txt el GUID al que se hace referencia en el identificador de evento 141.

    Opción C

    Uso de Ldp.exe

    1. Haga clic en Inicio y, a continuación, en Ejecutar.
    2. Escriba LDP.exe y presione ENTRAR.
    3. En el menú Connections, haga clic en Enlazar y haga clic en Aceptar.
    4. En el menú Ver, haga clic en Árbol.
    5. En BaseDN, haga clic en la flecha de lista desplegable, haga clic en el nombre distintivo de la partición configuración y haga clic en Aceptar.
    6. En el menú Opciones, haga clic en Controles.
    7. En el cuadro de diálogo Controles, expanda el menú Cargar predefinido, haga clic en Devolver objetos eliminados y haga clic en Aceptar.

      Nota:

      El control 1.2.840.113556.1.4.417 se mostrará en la lista Controles activos.

    8. En el menú Examinar, haga clic en Buscar.
    9. En el cuadro DN base, escriba:CN=Sites, CN=Configuration,DC=contoso,DC=com (Reemplace contoso y com por el nombre de dominio adecuado).
    10. En el cuadro Filtro, escriba (objectClass=ntdsdsa)
    11. En el cuadro Ámbito, seleccione Subárbol.
    12. En el cuadro Atributos, escriba un * (asterisco)
    13. Haga clic en Ejecutar
    14. En el lado derecho, busque el GUID en el atributo objectGUID para buscar el servidor al que hace referencia.

    Opción D

    1. Obtenga repadmin /showrepl la salida del controlador de dominio de destino que notifica el estado 8589.
    2. Con la repadmin /showrepl salida obtenida del paso anterior, identifique el estado de replicación 8589 dentro de la salida y documente la fecha y la marca de tiempo después del mensaje Del último intento.
    3. Con la fecha y la marca de tiempo del paso anterior, busque el identificador de evento 1411 correspondiente en el registro de eventos de Directory Services en el controlador de dominio de destino. Tenga en cuenta que el GUID del objeto DSA que aparece en la repadmin /showrepl salida es diferente de lo que se notifica en el identificador de evento 1411.( vea el escenario de ejemplo siguiente)
    4. A continuación, busque el controlador de dominio que aparece en el identificador de evento 1411, comprobando la pestaña General de propiedades de configuración de NTDS o haciendo ping al GUID en el identificador de evento.
    5. Enlace al controlador de dominio de origen mediante ADSIEDIT o Usuarios y equipos de Active Directory, abra el Editor Atributo y copie el valor en serverReference. Pegue el valor de este atributo en la copia de controladores de dominio de destino del objeto. (Paso 2)
  2. Una vez que haya localizado el servidor al que se hace referencia mediante uno de los métodos anteriores, haga lo siguiente:

    1. Haga clic en Inicio y, a continuación, en Ejecutar.
    2. Escriba ADSIEDIT.msc y presione ENTRAR.
    3. Haga clic con el botón derecho en " ADSI Edit" (Editar ADSI) y seleccione " Conectarse a... "
    4. En " Punto de conexión " en " Seleccione un contexto de nomenclatura conocido: " seleccione " Configuración " y haga clic en Aceptar.
    5. En el panel izquierdo, expanda " Configuración "
    6. A continuación, expanda " CN=Configuration,DC=contoso,DC=com "
    7. A continuación, expanda " CN=Sites "
    8. En CN=Sites, expanda el sitio en el que se encuentra el servidor. Ejemplo: Default-First-Site-Name
    9. En ese sitio, expanda CN=Servidores. Ejemplo: Si DCSRV02 está en el sitio Default-First-Site-Name de Contoso.com, debería estar en: CN=DCSRV02, CN=Servers, CN=Default-First-Site-Name, CN=Sites, CN=Configuration, DC=contoso, DC=com
    10. Haga clic con el botón derecho en el controlador de dominio (que se encuentra con la opción A, B o C) y seleccione Propiedades.
    11. En la pestaña " Atributo Editor " desplácese hacia abajo hasta el atributo serverReference.
    12. ServerReference debe ser similar a CN=DCSRV02,OU=Controladores de dominio,DC=Contoso,DC=com Si falta o es incorrecto, cámbielo al valor correcto.
    13. Cerrar ADSIEDIT.msc

Más información

Escenario de ejemplo

  1. Obtenga la salida de repadmin /showrepl del controlador de dominio de destino que notifica el estado 8589.

  2. Con la salida de repadmin /showrepl obtenida del paso anterior, identifique el estado de replicación 8589 dentro de la salida y documente la marca de fecha y hora después del mensaje Último intento.

    Repadmin /showrepl Salida:

    Opciones de Liverpool\LIVCONTOSODCDSA: IS_GC
    Opciones del sitio: (ninguno)
    GUID del objeto DSA: <GUID>

    DSA invocationID: <InvocationID>

    ==== VECINOS ENTRANTES ======================================

    DC=Contoso,DC=com

    Charlotte\CONTOSOROOTDC1 a través de RPC

    GUID del objeto DSA: <GUID>

    El último intento @ <DateTime> se realizó correctamente.

    CN=Configuration,DC=Contoso,DC=com

    Houston\5THWARDCORPDC a través de RPC

    GUID del objeto DSA: <GUID>

    Error en el último intento @ <DateTime> , resultado 8589 (0x218d):

    El DS no puede derivar un nombre de entidad de seguridad de servicio (SPN) con el que autenticar mutuamente el servidor de destino porque el objeto de servidor correspondiente de la base de datos DS local no tiene ningún atributo serverReference.

    1700 errores consecutivos.

    Último éxito @ (nunca).

Con la fecha y la marca de tiempo del paso anterior, busque el identificador de evento 1411 correspondiente en el registro de eventos de Directory Services en el controlador de dominio de destino. Tenga en cuenta que el GUID del objeto DSA que aparece en la salida repadmin /showrepl es diferente de lo que se notifica en el identificador de evento 1411.

Registro de eventos de Servicios de directorio:

Nombre del registro: Servicio de directorio
Origen: Microsoft-Windows-ActiveDirectory_DomainService
Fecha: <DateTime>
Identificador de evento: 1411
Categoría de tarea: Cliente RPC de DS
Nivel: Error
Palabras clave: Clásico
Usuario: INICIO DE SESIÓN ANÓNIMO
Equipo: LIVCONTOSODC.Contoso.com
Descripción:
Servicios de dominio de Active Directory no pudo construir un nombre de entidad de seguridad de servicio de autenticación mutua (SPN) para el siguiente servicio de directorio.

Servicio de directorio: <GUID>._msdcs.Contoso.com

Se denegó la llamada. La comunicación con este servicio de directorio podría verse afectada.

Datos adicionales
Valor de error:
8589 El DS no puede derivar un nombre de entidad de seguridad de servicio (SPN) con el que autenticar mutuamente el servidor de destino porque el objeto de servidor correspondiente de la base de datos DS local no tiene ningún atributo serverReference.

Captura de pantalla de la ventana Sitios y servicios de Active Directory con la configuración de NTDS ventana Propiedades abierta.

Haga clic en Cancelar y, a continuación, vea las propiedades del objeto de servidor (5thWardCorpDC en este ejemplo) seleccione la pestaña Attribute Editor (Server 2008 y versiones posteriores) o use ADSIEDIT para editar el objeto en Server 2003.

Observe que el atributo serverReference no está establecido en la imagen siguiente.

Captura de pantalla de la ventana Propiedades 5THWARDCORPDC con el atributo serverReference seleccionado.

Enlace al controlador de dominio de origen mediante ADSIEDIT o Usuarios y equipos de Active Directory, abra el Editor Atributo y copie el valor en serverReference. Pegue el valor de este atributo en la copia de controladores de dominio de destino del objeto.

Captura de pantalla de la ventana Sitios y servicios de Active Directory con la ventana Propiedades 5THWARDCORPDC abierta y se abre una ventana de Editor atributo de cadena para editar el valor.

Una vez establecido correctamente el atributo serverReference para el controlador de dominio, se muestra lo siguiente:

Captura de pantalla de la ventana Sitios y servicios de Active Directory con el 5THWARDCORPDC ventana Propiedades abierto y se selecciona el atributo serverReference.