Es posible que la replicación de Open Directory no funcione; aparece un mensaje en el que se indica que se superó el límite de tamaño en slapd.log.
Es posible 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 suceder cuando un servidor Open Directory estuvo inactivo por un período prolongado, o si se crea una réplica cuando existen más de 11 000 objetos en el almacén de datos LDAP. La cantidad máxima predeterminada de objetos que se pueden obtener en una búsqueda es 11 000.
Permite que el usuario _ldap_replicator anule el límite de búsqueda. Esto se logra cambiando la configuración del servidor LDAP en cada servidor Open Directory. Para eso, se debe realizar la autenticación como administrador del directorio y se deben ejecutar algunos comandos de modificación de LDAP en Terminal. Además, es necesario conocer la base de búsqueda, también denominada contexto de nombre, del servidor LDAP.
Para lograrlo, se pueden seguir los pasos que se indican a continuación.
Primero, encuentra la base de búsqueda del servidor LDAP
Encuentra la base de búsqueda del servidor LDAP. Suele ser el nombre de dominio completo del servidor con el prefijo dc= antes de cada etiqueta y los puntos reemplazados por comas.
Por ejemplo, un servidor con el nombre de host servidor.ejemplo.com tendrá la siguiente base de búsqueda predeterminada: “dc=servidor,dc=ejemplo,dc=com”. La base de búsqueda se puede verificar realizando una consulta en 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 ejemplo que aparece a continuación.
dn: namingContexts: dc=servidor,dc=ejemplo,dc=com
Luego, obtén las credenciales de Kerberos del administrador del directorio
El nombre predeterminado de este usuario es diradmin, pero es posible que se haya cambiado al crear el servidor maestro de Open Directory. Esto se realiza utilizando el comando kinit en Terminal. Ejecuta el siguiente comando. Para ello, reemplaza el nombre correcto del administrador del directorio por diradmin, si es necesario, e ingresa la contraseña cuando se te solicite. No hay ningún resultado.
kinit diradmin
A continuación, utiliza el comando ldapmodify en el modo interactivo en Terminal para realizar los cambios. Simplemente ejecuta el siguiente comando en Terminal=:
ldapmodify
Nota: Esto generará algunos mensajes SASL. Se deberá esperar la entrada. Si se realiza de forma correcta, la salida SASL debería verse de la siguiente manera:
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 ingrese todo el texto que figura a continuación en la ventana de Terminal como entrada para el comando ldapmodify. La base de búsqueda se debe reemplazar por [base de búsqueda] a continuación. También es necesario que se eliminen 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
A continuación, presiona Control + D.
Si todo se realiza de forma correcta, se mostrarán mensajes como el siguiente.
modifying entry "olcDatabase={1}bdb,cn=config" modifying entry "olcDatabase={2}bdb,cn=config"
Obtener más información
Alternativa con el script de shell
A continuación, se muestra el texto de un script de shell que se puede utilizar para automatizar este proceso. Solo utiliza el comando kinit en el administrador del directorio como se indica arriba y ejecuta este script. Consulta este artículo para obtener sugerencias sobre el 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 se disponga de más información.