systemadmin.es > Aplicaciones > OpenLDAP: chaining

OpenLDAP: chaining

Al configurar un OpenLDAP en modo master-slave (refreshAndPersist) podemos configurar que los slave respondan a las escrituras con una referencia al master (updateRef) pero también los podemos configurar para que hagan “de proxy” y realicen ellos la escritura en el master.

Primero de todo deberemos configurar updateRef de todas formas:

cat <<EOF | ldapmodify -Y EXTERNAL -H ldapi:///
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcUpdateRef
olcUpdateRef: ldap://master.ldap.systemadmin.es
EOF

A continuación mediante overlay podemos capturar dicha redirección para realizar desde el própio slave la escritura en el master:

cat <<EOF | ldapmodify -Y EXTERNAL -H ldapi:///
dn: olcOverlay=chain,olcDatabase={-1}frontend,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcChainConfig
olcOverlay: {0}chain
olcChainReturnError: TRUE
EOF
cat <<EOF | ldapmodify -Y EXTERNAL -H ldapi:///
dn: olcDatabase={2}mdb,olcOverlay={0}chain,olcDatabase={-1}frontend,cn=config
changetype: add
objectClass: olcLDAPConfig
objectClass: olcChainDatabase
olcDatabase: {2}mdb
olcDbURI: "ldap://master.ldap.systemadmin.es"
olcDbRebindAsUser: TRUE
olcDbIDAssertBind: bindmethod=simple binddn="cn=admin,o=systemadmin,ou=system" credentials="contrasenya" mode=self
EOF

Mediante dicha configuración, al hacer un update en el slave veremos que se aplica correctamente:

# cat <<EOF | ldapmodify -x -D "cn=Manager,o=systemadmin,ou=system" -w contrasenya
dn: cn=kk,o=systemadmin,ou=system
changetype: add
objectclass: organizationalRole
cn: kk
EOF
adding new entry "cn=kk,o=systemadmin,ou=system"

En caso que apaguemos el master, veremos que nos devuelve un error:

# cat <<EOF | ldapmodify -x -D "cn=Manager,o=systemadmin,ou=system" -w cacadevaca
> dn: cn=kk,o=systemadmin,ou=system
> changetype: add
> objectclass: organizationalRole
> cn: kk
> EOF
adding new entry "cn=kk,o=systemadmin,ou=system"
ldap_add: Server is unavailable (52)

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>