Solución de problemas del error de replicación de AD 8589: el 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 fallan con el error 8589 de Win32.

Nota

Usuarios inicios: Este artículo solo está destinado a agentes de soporte técnico y profesionales de TI. Si está buscando ayuda con un problema, consulte a Microsoft Community.

Se aplica a:   Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Número 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 en 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 la prueba replicaciones de Active Directory ha fallado 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 en 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: <site><DC name>

    Prueba inicial: replicaciones

    * Comprobación de replicaciones

    [Comprobación de replicaciones,<DC name>] Error en un intento de replicación reciente:

    De <source DC> a <destination DC>

    Contexto de nomenclatura: DC=<DN path>

    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 en la base de datos DS local no tiene ningún atributo serverReference.

    El error se produjo en <date> <time>.

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

  2. DCDiag.exe muestra la siguiente advertencia:

    Se ha producido un evento de advertencia. EventID: 0x80000785

    Tiempo generado: <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 Configuración,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 lo hubiera):
    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 la conectividad de red está 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 en 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 fallado con el estado 8589

    REPADMIN comandos que normalmente citan el estado 8589 incluyen pero no se limitan a:

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

    Repadmin /showrepl devuelve el siguiente error:

    Origen: <Site Name>\<DC Name>

    ******* <n> ERRORES CONSECUTIVOS desde <Date & Time>

    Ú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 en la base de datos DS local no tiene ningún atributo serverReference.

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

    Los eventos, que normalmente citan el estado 8589, incluyen, entre otros:

    Origen de eventos e identificador de evento Cadena de mensaje
    Replicación /ActiveDirectory_DomainService NTDS 1411 Active Directory no pudo crear un nombre principal 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 realizados 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 partner de replicación se haya degradado y se haya reprobado con fuerza antes de permitir que se complete la replicación de un extremo a otro. Esto también puede ocurrir cuando se cambia el nombre de un controlador de dominio y el atributo serverReference no se actualiza. El atributo serverReference en esta instancia es el objeto Server que se puede ver en el MMC de servicios y sitios de Active Directory (adsiedit.msc). El objeto de servidor es el objeto primario del objeto NTDS del controlador de dominio Configuración objeto.

Solución

Compruebe que no falte el atributo serverReference o que se establezca en un valor incorrecto y actualízcalo 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 simples es usar ping (opción A). Si se produce un error en 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 Windows 2008 o Windows 2008 R2)

    Opción A
    Use NSLookup o ping para buscar el CONTROLADOR de dominio que aparece en <source DC NTDS Settings Obejct GUID>._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 de partición CN=Configuration,DC=contoso,DC=com por el DN de la partición de configuración. Reemplace el nombre del servidor DCSRV01.contoso.com por el nombre del controlador de dominio. En el segundo cmdlet, reemplace el GUID 3dab7f9b-92e7-4391-b8db-71df532c1493 por el GUID del 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 el DCSRV01.contoso.com con 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, NTDSA.txt para el GUID al que se hace referencia en el identificador de evento 141

    Opción C

    Use Ldp.exe

    1. Haga clic en Inicio y, a continuación, en Ejecutar
    2. Escriba LDP.exe y, a continuación, presione ENTRAR.
    3. En el menú Conexiones, 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 de 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 tipo de cuadro Atributos, 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 el resultado del DC de destino que informa del estado 8589.
    2. Con el repadmin /showrepl resultado obtenido del paso anterior, identifique el estado de replicación 8589 dentro del resultado y documente la fecha y la marca de hora después del mensaje Ú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 Servicios de directorio en el CONTROLADOR de dominio de destino. Tenga en cuenta que el GUID repadmin /showrepl del objeto DSA que aparece en la salida es diferente de lo que se indica 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 propiedades de ntds Configuración o haciendo ping al GUID en el identificador de evento.
    5. Enlazar al CONTROLADOR de dominio de origen mediante ADSIEDIT o Usuarios y equipos de Active Directory y abrir el Editor de atributos y copiar el valor en serverReference. Pegue el valor de este atributo en la copia de los DCs 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 secundario en " ADSI Edit " y seleccione " Conectar para... "
    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=Servers. Ejemplo: si DCSRV02 está en el sitio Default-First-Site-Name de Contoso.com, debe 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 secundario en el controlador de dominio (que se encuentra con las opciones A, B o C) y seleccione Propiedades.
    11. En la pestaña " Editor de atributos " desplácese hacia abajo hasta el atributo serverReference.
    12. El 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 repadmin /showrepl del DC de destino que informa del estado 8589.

  2. Mediante el resultado de repadmin /showrepl obtenido del paso anterior, identifique el estado de replicación 8589 en el resultado y documente la fecha y la marca de hora después del mensaje Last Attempt.

    Repadmin /showrepl salida:

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

    InvocationID de DSA: <InvocationID>

    ==== INBOUND NEIGHBORS =======================================

    DC=Contoso,DC=com

    Charlotte\CONTOSOROOTDC1 a través de RPC

    GUID de objeto DSA: <GUID>

    El último intento @ <DateTime> se ha realizado correctamente.

    CN=Configuration,DC=Contoso,DC=com

    Houston\5THWARDCORPDC a través de RPC

    GUID de objeto DSA: <GUID>

    Last attempt @ <DateTime> failed, result 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 en la base de datos DS local no tiene ningún atributo serverReference.

    1700 errores consecutivos.

    Last success @ (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 Servicios de directorio 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 indica 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:
Los servicios de dominio de Active Directory no pudieron crear un nombre principal 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 puede 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 en 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 ventana Ntds Configuración propiedades abiertas.

Haga clic en Cancelar y, a continuación, vea las propiedades del objeto de servidor (5thWardCorpDC en este ejemplo) seleccione la pestaña Editor de atributos (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 siguiente imagen

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

Enlazar al CONTROLADOR de dominio de origen mediante ADSIEDIT o Usuarios y equipos de Active Directory y abrir el Editor de atributos y copiar el valor en serverReference. Pegue el valor de este atributo en la copia de los DCs de destino del objeto.

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

Después de establecer 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 la ventana Propiedades de 5THWARDCORPDC abierta y se selecciona el atributo serverReference.