Problema con replicación OpenLDAP (no funciona "updateref")
Hola, he montado 2 servidores OpenLDAP y configurado uno como maestro y otro
como esclavo.
La sincronización funciona perfectamente cuando hago algún cambio en el
maestro, de tal forma que se propagan los cambios al esclavo y se actualiza.
Pero trato también de poner el "updateref" en el esclavo para que cuando un
cliente intente hacer algún cambio en el esclavo se le redirija al maestro, y
no hay forma, he leído bastante sobre ello y repasado unas 20 veces.
Maestro slapd.conf:
---------------------------------------------------------------------
replogfile /var/lib/ldap/replog
replica host=192.168.1.1:389
binddn="cn=admin,dc=dominio,dc=net"
credentials=secret
bindmethod=simple
---------------------------------------------------------------------
Esclavo slapd.conf:
----------------------------------------------------------------------
updatedn "cn=admin,dc=dominio,dc=net"
updateref ldap://192.168.1.100:389
----------------------------------------------------------------------
(Todo lo demás es idéntico en ambos y lo he comprobado repetidas veces).
Tengo instalado PhpLdapAdmin en el servidor esclavo, y también tengo
configurado una rama del esclavo como agenda de contactos en Kaddressbook con
permiso de escritura.
Pruebo a añadir un contacto en el esclavo desde consola:
----------------------------------------------------------------------
#> ldapadd -H ldap://127.0.0.1 -D "cn=admin,dc=dominio,dc=net" -w secret -x -f
file.ldif
adding new entry "uid=blablabla,ou=addressbook,dc=dominio,dc=net"
ldap_add: Internal (implementation specific) error (80)
additional info: no structuralObjectClass operational attribute
----------------------------------------------------------------------
Exactamente lo mismo me ocurre si trato de añadir un usuario desde
PhpLdapAdmin (en el esclavo) o desde Kaddressbook.
Nota: Este error no aparece si quito la línea "updateref" en el esclavo.
Nota 2: Lo más curioso es que NO puedo añadir nuevas entradas en el esclavo
(me sale el error de antes) pero SI puedo modificarlas o eliminarlas. ¿?¿?¿
Veo dos problemas:
1º) No se está haciendo el "updateref ldap://192.168.1.100:389" (en los logs
del maestro no veo siquiera intento de conexión). ¿Por qué puede ser? No hay
problemas de firewall ni nada así.
2º) ¿Qué puede influir que exista o no la línea "updateref" en el esclavo para
que me dé error o no al añadir una entrada directamente en el esclavo? o
mejor dicho, entiendo que al existir "updateref" tal vez no debería si quiera
dejarse editar y debería responder al cliente indicando que haga los cambios
en el maestro.
En fin, le he dado un montón de vueltas y ya no sé por dónde más mirar. ¿A
alguien se le ocurre algo?
Muchas gracias y un saludo a todos.
--
Iñaki
Por el bien de todos respetemos las normas de la lista:
http://wiki.debian.org/NormasLista
Reply to: