Replica
Um Ausfallsicherheit der LDAP Server zu gewährleisten kann man auf Replicas zurückgreifen. OpenLDAP bietet dazu zwei Varianten: Replikation mittels slurpd oder mit Hilfe von syncrepl.
slurpd
Bei eine Replikation mit Hilfe von slurpd werden auf dem Master LDAP Server Änderungen in einer eigenen Datei (slurpd.replog) mitprotokolliert. Der Daemon slurpd liest diese Datei aus und versucht die Änderungen per LDAP Protokoll an alle Slaves zu verteilen.
Bevor dies geschehen kann müssen jedoch die Slaves den gleichen Datenbestand wie der Master erhalten. Das betrifft sowohl Schemta als auch Objekte. Eine einfache Methode dies zu bewerkstelligen besteht darin, die Konfiguration des Masters auf die Slaves zu kopieren (ohne die replica Einträge), und die Daten mit Hilfe von slapcat auf dem Server zu sichern und anschließend auf den Slaves wieder einzuspielen (z.B. mit slapadd).
Die Konfiguration des slurpd erfolgt über die Konfigurationsdatei des OpenLDAP Servers (/etc/openldap/slapd.conf). Sowohl auf dem Master als auch auf den Slaves sind hierfür Anpassungen nötig:
Master
Der Master LDAP Server muss wissen welche Slave Server mit Daten versorgt werden sollen, und mit welchem Benutzer diese Verbindung hergestellt werden soll. Prinzipiell kann man zu diesem Zweck zwar den Administrator-Account benutzen, es wird jedoch stark empfohlen für die Replikation eigene Nutzer mit entsprechenden Rechten anzulegen:
...
replica uri=ldaps://slave1.mydomain.de:636
binddn="cn=Replicator1,dc=mydomain,dc=de"
bindmethod=simple credentials="password"
...
Slaves
Der Benutzer, der auf den Slaves zur Replikation benutzt wird muss bereits im Verzeichnis der Slaves vorhanden sein, wenn slurpd zum ersten Mal versucht Daten abzugleichen! Ferner muss er (auf dem Slave) über entsprechende Rechte verfügen. Um möglichst wenig mit anderen Diensten in Konflikt zu geraten empfiehlt sich für diesen Benutzer ein Objekt vom Typ person bei dem nur die Felder cn und userPassword von Belang sind.
... access to * by dn="cn=Replicator1,dc=mydomain,dc=de" write ... updatedn "cn=Replicator1,dc=mydomain,dc=de" updateref uri=ldaps://master.mydomain.de:636 ...



