Versuch, LDAP-Replikation einzurichten

Versuch, LDAP-Replikation einzurichten

Ich möchte eine Master-Slave-Replikation zwischen zwei OpenLDAP-Servern einrichten.

Beim Ausführen ldapsearch -H ldapi:/// -Y EXTERNAL -b "cn=config" -LLL -Q "olcDatabase=*" dnwird Folgendes erzeugt:

auf dem Master:

dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcOverlay={0}syncprov,olcDatabase={0}config,cn=config
dn: olcDatabase={1}hdb,cn=config
dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
dn: olcOverlay={2}syncprov,olcDatabase={1}hdb,cn=config

auf dem Slave:

dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}mdb,cn=config

Auf dem Slave führe ich aus:ldapmodify -Y EXTERNAL -H ldapi:/// -f rp.ldiff

Meines rp.ldiffsieht so aus:

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=003
  provider=ldap://192.168.2.3:389/
  bindmethod=simple
  binddn="uid=rpuser,dc=redacted,dc=co"
  credentials=redacted
  searchbase="dc=redacted,dc=co"
  scope=sub
  schemachecking=on
  type=refreshAndPersist
  retry="30 5 300 3"
  interval=00:00:05:00

Als ich das hinzugefügt habe, rpuserhabe ich ungefähr Folgendes verwendet:

dn: uid=rpuser,dc=redacted,dc=co
objectClass: simpleSecurityObject
objectclass: account
uid: rpuser
description: Replication  User
userPassword: redacted

Und ich erhalte diese Ausgabe:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}hdb,cn=config"
ldap_modify: No such object (32)
    matched DN: cn=config

Dasselbe passiert, wenn ich versuche, den Administratorbenutzer zu verwenden.

Wie überwinde ich dieses Problem, um die Einrichtung der Replikation abzuschließen?

Antwort1

Ich glaube nicht, dass das Problem daran liegt, dass Sie hinzufügen uid=rpuser,dc=redacted,dc=co. Vielmehr schlägt Ihre Änderung von olcDatabase={1}hdb,cn=configfehl. Ihr Slave (heutzutage ist es ein Verbraucher) hat nicht olcDatabase={1}hdb,cn=config, sondern hat olcDatabase={1}mdb,cn=config.


Randnotizen:
1. Besorgen Sie sich TLS. Sie senden Ihre Passwörter (sowie den Rest Ihres Verzeichnisses) unverschlüsselt über das Kabel.
2. slapo-memberOfund Replikation interagieren ininteressante Wege.

verwandte Informationen