Hello,
We want to update our old OpenLDAP server from 2.1.x to 2.4.x but the current
configuration do not use a regular suffix (o=foo,c=bar nor dc=foo,dc=bar) but
use an empty suffix ().
We want to move away from empty suffix as we cannot use cn=monitor or any
additional suffixes as they can not bind when a suffix is in use in a hdb
database :
suffix namingContext o=... already served by a preceding hdb database
serving namingContext
We still have some old applications which are using empty search base and query
implicitly the union of o=A and o=B stored within the same ldbm database.
To maintain the backward compatibility we did a meta backend to merge the two
local DITs
under suffit .
The side effect of meta backend with ldap://localhost is the increase of the
number
opened tcp connection to slapd which are eating thread connections for
nothing.
The number of thread in use is linked to the number of suffixmassage used in
meta
backend (2 in our case). We want to try to avoid increasing by two the number
of theads
in use to maintain the backward compatibility.
Do you know an alternative way to merge two local DITs without using meta
backend ?
Can we use relay/ldap backend with rwm overlay instead of using meta backend ?
databasemeta
suffix
uri ldap://localhost/o=test1;
suffixmassage o=test1 o=test1
uri ldap://localhost/o=test2;
suffixmassage o=test2 o=test2
Thank you for your help.
Best Regards,
Guy Baconniere.
CURRENT CONFIG (slapd 2.1.x)
suffix
database ldbm
rootdn cn=manager
directory /var/lib/ldap
# o=test1, o=test2, cn=manager are stored within the same ldbm database
CURRENT LDAPSEARCH (slapd 2.1.x)
ldapsearch -LLL -h localhost -p 389 -x -b '' -s one '(objectclass=*)' '1.1'
dn: o=test1
dn: o=test2
dn: cn=manager
TEST CONFIG WITH BACKWARD COMPATIBILITY (slapd 2.4.x)
database hdb
suffix o=test1
rootdn cn=admin,dc=test3,dc=com
directory /var/lib/ldap/test1
database hdb
suffix o=test2
rootdn cn=admin,dc=test3,dc=com
directory /var/lib/ldap/test2
database hdb
suffix dc=test3,dc=com
rootdn cn=admin,dc=test3,dc=com
directory /var/lib/ldap/dc=test3,dc=com
database relay
suffix cn=manager
overlay rwm
rwm-rewriteEngine on
rwm-suffixmassage cn=manager cn=manager,o=admin
rwm-normalize-mapped-attrs yes
databasemeta
suffix
uri ldap://localhost/o=test1;
suffixmassage o=test1 o=test1
uri ldap://localhost/o=test2;
suffixmassage o=test2 o=test2
LDAPSEARCH WITHOUT META BACKEND (slapd 2.4.x)
ldapsearch -LLL -h localhost -p 389 -x -b '' -s one '(objectclass=*)' '1.1'
No such object (32)
LDAPSEARCH WITH META BACKEND (slapd 2.4.x)
ldapsearch -LLL -h localhost -p 389 -x -b '' -s one '(objectclass=*)' '1.1'
dn: o=test1
dn: o=test2
OPENLDAP LOGS SHOWING THE LOCAL CONNECTIONS OF META BACKEND
slapd[29622]: conn=11 fd=37 ACCEPT from IP=127.0.0.1:33680 (IP=0.0.0.0:389)
slapd[29622]: conn=11 op=0 BIND dn= method=128
slapd[29622]: conn=11 op=0 RESULT tag=97 err=0 text=
slapd[29622]: conn=11 op=1 SRCH base= scope=1 deref=0 filter=(objectClass=*)
slapd[29622]: conn=11 op=1 SRCH attr=1.1
slapd[29622]: conn=8 op=3 SRCH base=o=test1 scope=0 deref=0
filter=(objectClass=*)
slapd[29622]: conn=8 op=3 SRCH attr=1.1
slapd[29622]: conn=8 op=3 SEARCH RESULT tag=101 err=0 nentries=1 text=
slapd[29622]: conn=9 op=3 SRCH base=o=test2 scope=0 deref=0
filter=(objectClass=*)
slapd[29622]: conn=9 op=3 SRCH attr=1.1
slapd[29622]: conn=9 op=3 SEARCH RESULT tag=101 err=0 nentries=1 text=
slapd[29622]: conn=11 op=1 SEARCH RESULT tag=101 err=0 nentries=2 text=
slapd[29622]: conn=11 op=2 UNBIND
slapd[29622]: conn=11 fd=37 closed