[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problema con replicación OpenLDAP (no funciona "updateref")



El Lunes, 22 de Enero de 2007 14:05, Iñaki escribió:
> ¿Sobre mi otro problema se te ocurre algo? Lo explico de nuevo:
>
> Resulta que teniendo el esclavo configurado para hacer "updateref" si trato
> de modificar/crear alguna entrada DIRECTAMENTE EN EL ESCLAVO me ocurre
> esto:
>
>
> 1) Crear nueva entrada:
> Me da ERROR (el mismo desde cualquier cliente):
>
> "Error.  Could not add the object to the LDAP server.
>   LDAP said: Internal (implementation specific) error
> Error number: 0x50 (LDAP_OTHER)
> Description: "
>
> Y los logs dicen:
>
> conn=15 op=1 ADD dn="ou=borrame,ou=addressbook,dc=dominio,dc=net"
> Jan 22 13:57:29 server slapd[4092]: No structuralObjectClass for entry
> (ou=borrame,ou=addressbook,dc=dominio,dc=net)
> Jan 22 13:57:29 server slapd[4092]: conn=15 op=1 RESULT tag=105 err=80
> text=no structuralObjectClass operational attribute
>
> Me parece más o menos normal, es decir, NO se debe permitir crear algo en
> el esclavo pues está configurado el "updateref" (aunque luego los clientes
> no hagan caso/no  lo implementen).
>
>
>
> 2) Borrar una entrada:
> ¡¡¡ ME DEJA!!!  ¿cómo es posible?
>
>
> 3) Modificar una entrada:
> También me deja ¿?¿?¿?¿
>
>
> EN fin, que no me acaba de cuadrar todo esto, ¿sabéis por qué puede ser?
> ¿Cual debería ser la respuesta esperada al tratar de crear/modificar/borrar
> algo en el esclavo? supongo que el "updateref", pero no es así.
>
>
> En fin, mil gracias por cualquier ayuda.


Ahora SI está claro, aunque me ha costado sudor y lágrimas:

Allá va la solución:




* En el maestro:

replogfile	/var/lib/ldap/replog
replica		host=192.168.1.1:389
 		binddn="cn=slave-replica,dc=dominio,dc=net"
 		credentials=*****
 		bindmethod=simple
 		tls=no

Sin más, ni tiene que existir un usuario especial ni NADA.


* EN el esclavo:

updatedn	"cn=slave-replica,dc=dominio,dc=net"
# ¡¡¡EL USUARIO UPDATEDN ES EL ÚNICO QUE PUEDE MODIFICAR COSAS, SEA DESDE EL 
MAESTRO O DIRECTAMENTE!!!
updateref	ldap://192.168.1.100:389
access to *
             by dn="cn=slave-replica,dc=dominio,dc=net" write
             by * read
# No hace falta que exista ni admin ni nada, sólo "updatedn" es quien puede 
modificar.




Mi fallo era que hacía la replica directamente con "admin", y encima hacía en 
el esclavo el Bind con "admin", por lo que era el usuario "updatedn" y 
entonces SI me dejaba hacer cambios.


Lo que no consigo es que Kaddressbook (que parece implementar los referral) se 
loguee en el esclavo para escritura y éste le haga el referral (indicando el 
maestro) para que Kaddressbook haga en él los cambios. Creo que el bind 
contra el maestro lo hace SIEMPRE como anónimo ¿?¿?¿? ¿un bug?

La replicación maestro->esclavo tira perfecto.


Bueno, algo hemos avanzado :)


-- 
Iñaki

Por el bien de todos respetemos las normas de la lista:
http://wiki.debian.org/NormasLista



Reply to: