Назад | Перейти на главную страницу

Невозможно запросить реплику LDAP

Я пытаюсь настроить сервер LDAP с репликой, но у меня возникают проблемы. У меня 2 сервера - ldap1.example.com (главный) и ldap2.example.com (реплика). Выполнение поискового запроса, например ldapsearch -D "cn=reader,dc=example,dc=com" -w -h ldap1.example.com -b "dc=example,dc=com "uid=testuser"

Возвращает данные, как ожидалось. Однако выполнение того же запроса с -h ldap2.example.com заканчивается

# extended LDIF
#
# LDAPv3
# base <dc=example,dc=com> with scope subtree
# filter: uid=testuser
# requesting: ALL
#

# search result
search: 2
result: 32 No such object

# numResponses: 1

Хотя репликация определенно работает, потому что запущенная slapcat на реплике возвращает все данные.

Мой syncrepl.ldif:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcSyncRepl
olcSyncrepl: rid=1
    provider=ldap://ldap1.example.com
    type=refreshAndPersist
    retry="30 10 600 10"
    interval=00:00:05:00
    searchbase=dc=example,dc=com
    scope=sub
    schemachecking=on
    binddn="cn=admin,dc=example,dc=com"
    credentials="supersecretpassword"
    starttls=yes
    tls_reqcert=allow

Ваш ACL не позволяет dn, к которому вы привязываете доступ для чтения.

В настоящее время:

olcAccess: {0}to attrs=userPassword,shadowLastChange by self write
 by dn="cn=admin,dc=example,dc=com" write
 by anonymous auth
 by * none
olcAccess: {1}to *
 by self write
 by dn="cn=admin,dc=example,dc=com" write
 by * none

Предлагается:

olcAccess: {0}to attrs=userPassword,shadowLastChange by self write
 by dn="cn=admin,dc=example,dc=com" write
 by anonymous auth
 by * none
olcAccess: {1}to *
 by self write
 by dn="cn=admin,dc=example,dc=com" write
 by users read
 by * none