I'm experiencing synchronization problem with my ldap provider-consumer setup.
Both nodes are running OpenLDAP 2.4.38 (using mdb backend) at x86_64
under Linux 3.7.10.
Both servers synchronize their time with one NTP server, so clocks are in sync.
I have cn=dhcp,dc=my,dc=org containter which I would like to replicate to openldap
consumer.
Consumer uses old-fasioned slapd.conf file:
# [... include, acl and logging settings skipped ...]
rootdn "cn=root,dc=my,dc=org"
rootpw [ skipped ]
index objectClass eq
index entryCSN eq
index entryUUID eq
index dlzHostname eq
index dlzZoneName eq
index dlzIPAddr eq
index dlzType eq
index dhcpHWAddress eq
index cn eq,approx,sub
syncrepl rid=1
...
syncrepl rid=2
provider=ldap://
172.20.20.207 type=refreshAndPersist
interval=00:00:01:00
retry="60 +"
searchbase="cn=dhcp,dc=my,dc=org"
filter="(objectClass=*)"
scope=sub
schemachecking=off
bindmethod=simple
binddn="uid=dhcpd,ou=services,dc=my,dc=org"
credentials="[ skipped ]"
Problem is that not all changes (adding new objects and changing attributes of existing
objects) are replicated from master to consumer. I make change on master by hand, but
I do not see log entries on consumer that changed attribute was replicated.
LDAP provider setup (uses online configuartion):
dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=my,dc=org
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcLimits: {0}group/groupOfNames/member="cn=ldap admins,ou=groups,dc=my,dc=org" size=unlimited
olcLimits: {1}group/groupOfNames/member="cn=ldap admins,ou=groups,dc=my,dc=org" time=unlimited
olcLimits: {2}group/groupOfNames/member="cn=admins,ou=mail,ou=groups,dc=my,dc=org" size=unlimited
olcLimits: {3}group/groupOfNames/member="cn=replicators,ou=groups,dc=my,dc=org" size=unlimited time=unlimited
User uid=dhcpd,ou=services,dc=my,dc=org is member of group cn=replicators,ou=groups,dc=my,dc=org.
dn: cn=Replicators,ou=Groups,dc=my,dc=org
cn: Replicators
member: uid=dhcpd,ou=services,dc=my,dc=org
Indices on master server:
olcDbIndex: dhcpHWAddress,dhcpClassData eq
ACL for cn=dhcp,dc=my,dc=org container (I have only one ACL entry, that mentions cn=dhcp,dc=my,dc=org):
...
olcAccess: {15}to dn.subtree="cn=dhcp,dc=my,dc=org"
by group/groupOfNames/member.exact="cn=dhcp readers,ou=dhcp,ou=groups,dc=my,dc=org" read
by group/groupOfNames/member.exact="cn=dhcp writers,ou=dhcp,ou=groups,dc=my,dc=org" write
...
dn: cn=dhcp readers,ou=dhcp,ou=Groups,dc=my,dc=org
cn: dhcp readers
objectClass: groupOfNames
objectClass: top
member: uid=dhcpd,ou=Services,dc=my,dc=org
So for now I checked following:
1. Clocks on both server (both are in sync)
2. ACL for replication DN (replication user is able to read all needed data).
3. Size and time limits for replication DN (replication user has no limits on operations).
4. Schema (objectClasses and attrubutes) on both servers (both nodes use same schemas).
5. Disable indices on consumer server for replicated attributes from cn=dhcp,dc=my,dc=org container (not helped)
What else I can check?
BTW, I would be pleased if someone give somekind of systematic approach for troubleshooting OpenLDAP replication issues.