[Date Prev][Date Next] [Chronological] [Thread] [Top]

Translucent with syncrepl to Active Directory



Hello,

I'm trying to get syncrepl work from a provider that is configured as a
back-ldap to an Active Directory with the translucent overlay. Although
the master is also an OpenLDAP, since it uses the back-ldap backend to
AD, the entryUUID and entryCSN fields are not present, thus preventing
syncrepl from working.

But I really only need to replicate the local modifications stored in my
translucent (HDB). And doing a slapcat shows that the entryUUID and
entryCSN are present in the translucent DB. So I'm wondering if there's
a way to tell syncrepl to bother only with entries stored in my hdb, and
ignore anything that doesn't have the entryUUID/CSN fields (the fields
proxied from AD).

I'm getting the following error on the slave:
syncrepl_entry: rid=100 entry unchanged, ignored (dc=testdomain,dc=org)
do_syncrep2: rid=100 got empty syncUUID with LDAP_SYNC_ADD

Server in the example (using OpenLDAP 2.4.11 on Debian Lenny):
tst-dc01.testdomain.org = Active Directory
ldap.tst.testdomain.org = OpenLDAP master
ldap-slave.tst.testdomain.org = OpenLDAP slave


Master configuration:
---------------------
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/testdomain.schema

pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args

modulepath      /usr/lib/ldap
moduleload      back_ldap
moduleload      back_hdb
moduleload      translucent
moduleload      syncprov

TLSCACertificateFile    /etc/ssl/certs/testdomainca.pem
TLSCertificateFile      /etc/ldap/ssl/ldap.tst.testdomain.org.crt
TLSCertificateKeyFile   /etc/ldap/ssl/ldap.tst.testdomain.org.key
TLSVerifyClient         never

defaultsearchbase "dc=testdomain,dc=org"

sizelimit       unlimited

backend         hdb
backend         ldap

database        hdb
directory       /var/lib/ldap
suffix          "dc=testdomain,dc=org"
index           objectclass,entryCSN,entryUUID eq
rootdn          cn=ldaproot,dc=testdomain,dc=org
rootpw          blah

overlay         translucent
uri             "ldap://tst-dc01.testdomain.org";
idassert-bind   bindmethod=simple
                binddn="CN=readonly,DC=testdomain,DC=org"
                credentials="pw"
                mode=none
chase-referrals no
rebind-as-user  yes
lastmod         on
translucent_strict

overlay                  syncprov
syncprov-checkpoint      64 30
syncprov-sessionlog      1024

access to dn.subtree="dc=testdomain,dc=org"
        by * read


Slave configuration:
--------------------
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include         /etc/ldap/schema/testdomain.schema

pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args

modulepath      /usr/lib/ldap
moduleload      back_ldap
moduleload      back_hdb
moduleload      translucent

TLSCACertificateFile    /etc/ssl/certs/testdomainca.pem
TLSCertificateFile      /etc/ldap/ssl/ldap-slave.tst.testdomain.org.crt
TLSCertificateKeyFile   /etc/ldap/ssl/ldap-slave.tst.testdomain.org.key
TLSVerifyClient         never

defaultsearchbase "dc=testdomain,dc=org"

sizelimit       unlimited

backend         hdb
backend         ldap

database        hdb
directory       /var/lib/ldap
suffix          "dc=testdomain,dc=org"
index           objectclass,entryCSN,entryUUID eq
rootdn          cn=ldaproot,dc=testdomain,dc=org
rootpw          blah

syncrepl rid=100
        provider=ldaps://ldap.tst.testdomain.org
        type=refreshAndPersist
        interval=00:00:15:00
        retry="300 20 7200 +"
        searchbase="dc=testdomain,dc=org"
        attrs="gecos"
        schemachecking=off
        bindmethod=simple
        binddn="CN=repl,DC=testdomain,DC=org"
        credentials="pw"

overlay         translucent
uri             "ldap://tst-dc01.testdomain.org
ldap://tst-dc02.testdomain.org";
idassert-bind   bindmethod=simple
                binddn="CN=readonly,DC=testdomain,DC=org"
                credentials="pw"
                mode=none
chase-referrals no
rebind-as-user  yes
lastmod         on
translucent_strict

access to dn.subtree="dc=testdomain,dc=org"
        by * read



Thanks for any info!
--
Pascal