Puede que la replicación de Open Directory no funcione; aparece “Size limit exceeded” (Límite de tamaño superado) en slapd.log

Puede que la replicación de Open Directory no funcione; cuando esto sucede, aparecen entradas como las siguientes en /var/log/slapd.log

slapd[209]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (4) Size limit exceeded slapd[209]: do_syncrep2: rid=001 (4) Size limit exceeded

Esto puede ocurrir si un servidor Open Directory ha estado inactivo durante mucho tiempo o si se crea una réplica cuando hay más de 11 000 objetos en el almacén de datos LDAP. 11 000 es el número máximo predeterminado de objetos que se pueden devolver en una búsqueda.

Permite que el usuario _ldap_replicator anule el límite de búsqueda. Se hace cambiando la configuración del servidor LDAP en cada servidor Open Directory. Esto implica la autenticación como administrador de directorios y la ejecución de algunos comandos de modificación de LDAP en Terminal. También es necesario conocer la base de búsqueda, también conocida como contexto de nomenclatura, para el servidor LDAP.

Para ello, puedes seguir estos pasos.

Primero, busca la base de búsqueda del servidor LDAP

Busca la base de búsqueda del servidor LDAP. Suele ser el nombre de dominio completo del servidor con dc= antepuesto a cada etiqueta y los puntos cambiados a comas.

Por ejemplo, un servidor con el nombre de host servidor.ejemplo.com tendría una base de búsqueda predeterminada de “dc=servidor,dc=ejemplo,dc=com”. La base de búsqueda se puede verificar consultando el servidor LDAP con el siguiente comando de Terminal:

ldapsearch -x -LLL -b “” -s base namingContexts

Busca la línea que contiene namingContexts y la base de búsqueda estará después de los dos puntos, como en el siguiente ejemplo de resultado.

dn: namingContexts: dc=servidor,dc=ejemplo,dc=com

En segundo lugar, obtén las credenciales de kerberos para el administrador de directorios

El nombre predeterminado de este usuario es diradmin, pero es posible que se haya cambiado al crear el archivo maestro de Open Directory. Esto se hace usando el comando kinit en Terminal. Ejecuta el siguiente comando sustituyendo el nombre correcto del administrador de directorios por diradmin si es necesario, e introduce la contraseña cuando se te solicite. No hay ningún resultado.

kinit diradmin

A continuación, usa ldapmodify en modo interactivo en Terminal para realizar los cambios. Simplemente ejecuta lo siguiente en Terminal=:

ldapmodify

Nota: Esto generará algunos mensajes SASL y esperará la entrada. Si todo va bien, la salida de SASL debería tener este aspecto:

SASL/GSSAPI authentication started SASL username: diradmin@REALM SASL SSF: 56 SASL data security layer installed.

Modifica la configuración

Por último, haz las modificaciones en la configuración. Esto requiere que se introduzca todo el texto siguiente en la ventana de Terminal como entrada para el comando ldapmodify. La base de búsqueda debe sustituirse por [search base] a continuación. También es necesario quitar los corchetes.

dn: olcDatabase={1}bdb,cn=config changetype: modify add: olcLimits olcLimits: dn.exact="uid=_ldap_replicator,cn=users,[search base]" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited dn: olcDatabase={2}bdb,cn=config changetype: modify add: olcLimits olcLimits: dn.exact="uid=_ldap_replicator,cn=users,[search base]" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited

Ahora pulsa Control + D.

Si todo funciona correctamente, se mostrarán mensajes como los siguientes.

modifying entry "olcDatabase={1}bdb,cn=config" modifying entry "olcDatabase={2}bdb,cn=config"

Más información

Alternativa de script de shell

A continuación se muestra el texto de un script de shell que se puede utilizar para automatizar este proceso. Simplemente inicia el administrador de directorios como se indica más arriba y ejecuta este script. Consulta este artículo para ver sugerencias del editor de texto.

#!/bin/sh nc=`ldapsearch -x -LLL -b "" -s base namingContexts | awk '/namingContexts/ {print $2}'` ldapmodify <

Este documento se actualizará a medida que aumente la información al respecto.

Fecha de publicación: