Hello all,

I am having problems with chasing referrals on my slave OpenLDAP server. I feel like I'm repeating an older thread here, but despite everything I have read I cannot find a solution.

My setup is as follows:
Both the master and the slave are OpenLDAP 2.3.32 builds with the follwing configure parameters,
LD_LIBRARY_PATH="/usr/local/lib" ./configure --prefix=/usr/local --disable-ipv6 --with-tls --enable-dynamic --enable-slapd --enable-modules  --enable-crypt --enable-bdb --enable-rewrite --enable-backends=yes --enable-rlookups --disable-shell --disable-sql --enable-overlays=yes --enable-slurpd=yes
At the end of the email, I have attached both the master and the slave slapd.conf.

The problem is that when I attempt an ldapadd against the slave server, I am returned a referral instead of having the slave forward the request to the master. I see no attempt to contact the master server in either the slave or master logs. Nor do I see any traffic between the two (other than syncrepl stuff) in a tcpdump. As far as I can tell the chain overlay is being ignored entirely.

Any suggestions or fixes would be greatly appreciated.

- Scott Sanders

############################################
# Master slapd.conf  --  ldap://info.domain.com:389
############################################
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/nis.schema

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

password-hash {ssha}

security tls=1
TLSCACertificateFile /etc/pki/CA/cacert.pem
TLSCACertificatePath /etc/pki/CA
TLSCertificateFile    /usr/local/etc/openldap/security/ldap-master.crt
TLSCertificateKeyFile /usr/local/etc/openldap/security/ldap-master.key
TLSCipherSuite HIGH:MEDIUM:+SSLv2
TLSVerifyClient allow

limits dn.exact="cn=syncuser,dc=domain,dc=com" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited

access to attrs=userPassword
        by self write
        by dn="cn=admin,dc=domain,dc=com" write
        by dn="cn=syncuser,dc=domain,dc=com" read
        by * auth

access to *
        by dn="cn=admin,dc=domain,dc=com" write
        by dn="cn=syncuser,dc=domain,dc=com" read
        by dn="cn=syncuser,dc=domain,dc=com" read
        by * read

database hdb
suffix cn=accesslog
directory /usr/local/var/openldap-accesslog
rootdn cn=accesslog
index default eq
index entryCSN,objectClass,reqEnd,reqResult,reqStart

overlay syncprov
syncprov-nopresent TRUE
syncprov-reloadhint TRUE

database        bdb
suffix          "dc=domain,dc=com"
rootdn          "cn=admin,dc=domain,dc=com"
rootpw          {SSHA}T2JGZSB3Q2x57s/O
directory       /usr/local/var/openldap-data
index   objectClass     eq
index entryCSN eq
index entryUUID eq

overlay syncprov
syncprov-checkpoint 1000 60

overlay accesslog
logdb cn=accesslog
logops writes
logsuccess true
logpurge 07+00:00 01+00:00


############################################
# Slave slapd.conf  --  ldap://arch.domain.com
############################################
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/nis.schema

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

password-hash {ssha}

security tls=1
TLSCACertificateFile /etc/pki/CA/cacert.pem
TLSCACertificatePath /etc/pki/CA
TLSCertificateFile    /usr/local/etc/openldap/security/ldap-slave.crt
TLSCertificateKeyFile /usr/local/etc/openldap/security/ldap-slave.key
TLSCipherSuite HIGH:MEDIUM:+SSLv2
TLSVerifyClient allow

access to attrs=userPassword
        by self write
        by dn="cn=admin,dc=domain,dc=com" read
        by dn="cn=syncuser,dc=domain,dc=com" write
        by * auth

access to *
        by dn="cn=admin,dc=domain,dc=com" read
        by dn="cn=syncuser,dc=domain,dc=com" write
        by * read

database        bdb
suffix          "dc=domain,dc=com"
rootdn          "cn=admin,dc=domain,dc=com"
rootpw          {SSHA}T2JGZkB3Q2x57s/O
overlay         chain
chain-uri       ldap://info.domain.com:389
chain-rebind-as-user    TRUE
chain-idassert-bind     bindmethod=simple
                        binddn="cn=admin,dc=domain,dc=com"
                        credentials=secret
                        mode=self
directory       /usr/local/var/openldap-data
index   objectClass     eq
index entryUUID eq

syncrepl        rid=0
                provider=ldap://info.domain.com:389
                starttls=yes
                bindmethod=simple
                binddn="cn=syncuser,dc=domain,dc=com"
                credentials=secretsyncpasswd
                searchbase="dc=domain,dc=com"
                logbase="cn=accesslog"
                logfilter="(&(objectClass=auditWriteObject)(reqResult=0))"
                schemaChecking=on
                type=refreshAndPersist
                retry="60 +"
                syncdata=accesslog

updateref       ldap://info.domain.com:389