Вопрос или проблема
вот моя конфигурация в slapd.conf
на server01:
serverID 1
# секция базы данных
# директива syncrepl
syncrepl rid=002
provider=ldap://192.168.100.193
bindmethod=simple
binddn="cn=admin,dc=example,dc=local"
credentials=123
searchbase="dc=example,dc=local"
schemachecking=on
type=refreshAndPersist
retry="60 +"
overlay syncprov
syncprov-checkpoint 50 1
syncprov-sessionlog 50
mirrormode on
а вот моя конфигурация в slapd.conf
на server02:
serverID 2
# секция базы данных
# директива syncrepl
syncrepl rid=002
provider=ldap://192.168.100.139
bindmethod=simple
binddn="cn=admin,dc=example,dc=local"
credentials=123
searchbase="dc=example,dc=local"
schemachecking=on
type=refreshAndPersist
retry="60 +"
mirrormode on
затем используйте slaptest
команду для генерации файлов конфигурации (slaptest -f config-file -F /etc/ldap/slapd.d/)
и замените их на стандартные файлы в пути /etc/ldap/slapd.d
на обоих серверах.
затем перезапустите службу slapd, и все будет в порядке.
но когда я добавляю запись на оба сервера, они не синхронизируют данные друг с другом.
после этих шагов я попробовал захватить пакеты и выяснил, что они находят все записи другого сервера.
пс: извините за мой плохой английский
вот ответ, который работает в моем сценарии:
скопируйте /usr/share/slapd/slapd.conf
и добавьте эти конфигурации:
первый сервер:
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
moduleload back_mdb
moduleload accesslog.la
moduleload syncprov.la
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
serverID 1
syncrepl rid=001
provider=ldap://<второй-сервер>
bindmethod=simple
binddn="cn=admin,dc=part,dc=local"
credentials=123
searchbase="dc=part,dc=local"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="60 +"
mirrormode on
второй сервер:
так же, как выше, просто измените serverID
.
и вуаля…
Если вам нужна конфигурация для mdb “cn=config”,
Я написал Полное руководство на
https://dany1980.medium.com/openldap-in-mirror-mode-a15efdba9736
Ответ или решение
Реализация OpenLDAP в режиме зеркалирования
OpenLDAP — это мощное решение для управления данными в формате LDAP (Lightweight Directory Access Protocol). В некоторых сценариях требуется обеспечить синхронизацию данных между несколькими серверами, что можно достичь с помощью конфигурации серверов в режиме зеркалирования. В данном руководстве мы подробно рассмотрим, как правильно настроить OpenLDAP для работы в этом режиме.
Шаг 1: Подготовка конфигурации серверов
Чтобы настроить OpenLDAP в режиме зеркалирования, необходимо правильно настроить конфигурацию slapd.conf
на обоих серверах (server01 и server02). Основные параметры конфигурации представлены ниже.
Конфигурация для Server01:
serverID 1
# Загрузка необходимых схем
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
# Модули
moduleload back_mdb
moduleload accesslog.la
moduleload syncprov.la
# Директива синхронизации
syncrepl rid=001
provider=ldap://192.168.100.193
bindmethod=simple
binddn="cn=admin,dc=example,dc=local"
credentials=123
searchbase="dc=example,dc=local"
type=refreshAndPersist
retry="60 +"
schemachecking=on
mirrormode on
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
Конфигурация для Server02:
serverID 2
# Загрузка необходимых схем
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
# Модули
moduleload back_mdb
moduleload accesslog.la
moduleload syncprov.la
# Директива синхронизации
syncrepl rid=001
provider=ldap://192.168.100.139
bindmethod=simple
binddn="cn=admin,dc=example,dc=local"
credentials=123
searchbase="dc=example,dc=local"
type=refreshAndPersist
retry="60 +"
schemachecking=on
mirrormode on
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
Шаг 2: Проверка конфигурации
После того как вы внесли изменения в конфигурационные файлы, выполните команду slaptest
, чтобы проверить правильность конфигурации:
slaptest -f /path/to/slapd.conf -F /etc/ldap/slapd.d/
Если команда выдаёт сообщение об отсутствии ошибок, замените существующие файлы конфигурации на новые в каталоге /etc/ldap/slapd.d
.
Шаг 3: Перезапуск службы OpenLDAP
После успешной проверки конфигурации перезапустите службу OpenLDAP на обоих серверах:
sudo systemctl restart slapd
Шаг 4: Тестирование синхронизации
Теперь мы можем протестировать синхронизацию данных. Добавьте записи на одном из серверов и проверьте, появляются ли они на другом сервере. Если записи не синхронизируются, вам следует проверить журналы ошибок OpenLDAP (обычно в /var/log/syslog
или /var/log/ldap.log
) для дальнейшего анализа.
Шаг 5: Устранение проблем
Если вы столкнулись с проблемами при синхронизации:
- Проверьте сетевое соединение. Убедитесь, что оба сервера могут видеть друг друга по сети.
- Проверьте права доступа. Убедитесь, что
binddn
иcredentials
корректны и имеют достаточные права для выполнения операций чтения и записи. - Просмотрите журналы OpenLDAP. Журналы могут дать подсказки о том, где может происходить ошибка.
Заключение
Следуя данному руководству, вы сможете успешно настроить OpenLDAP в режиме зеркалирования. Правильная конфигурация и тестирование являются ключевыми аспектами, которые помогут обеспечить полную функциональность системы управления данными.
Полную инструкцию по настройке и дополнительным параметрам можно найти по следующей ссылке: Полное руководство по OpenLDAP в режиме зеркалирования.
Если у вас возникли вопросы или потребуется дополнительная помощь, не стесняйтесь обращаться в профессиональные сообщества или службу поддержки.