Здравствуйте, подскажите по такому вопросу.Делаю репликацию ldap на соседний сервер, вроде все ясно. Но есть несколько вопросов по slapd и slurpd, тонкости.
ldap.conf MASTER
BASE dc=domen,dc=ru
HOST monster1.domen.ru
URI ldap://monster1.domen.ruTLS_CACERT /etc/openldap/ssl/ca.cert
TLS_REQCERT allow
slapd.conf MASTER
# Определение схем
################################################################
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/rfc2307bis.schema
include /etc/openldap/schema/samba.schema
include /etc/openldap/schema/yast.schema
include /etc/openldap/schema/dhcp.schema
include /etc/openldap/schema/dnszone.schema
include /etc/openldap/schema/postfixaliases.schema
include /etc/openldap/schema/mail.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.argsmodulepath /usr/lib/openldap/modules
# Определение базы данных и администратора
################################################################
database bdb
suffix "dc=domen,dc=ru"
rootdn "cn=Manager,dc=domen,dc=ru"
rootpw "{ssha}J+JOynlI5aR17w8hkav4CZmoYt5CT0dETg=="
directory /var/lib/ldap# Индексирование для быстрых запросов
#################################################################
index objectClass eq
index cn pres,sub,eq
index sn pres,sub,eq
index uid pres,sub,eq
index displayName pres,sub,eq
index uidNumber eq
index gidNumber eq
index memberUid eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index default sub# Использование TLS
######################################################################
TLSCertificateFile /etc/openldap/ssl/user.cert
TLSCertificateKeyFile /etc/openldap/ssl/user.key
TLSCaCertificateFile /etc/openldap/ssl/ca.cert# Логи
######################################################################
loglevel 255# Определения ACL для доступа к различным частям базы данных
######################################################################
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by self write
by dn="cn=Manager,dc=domen,dc=ru" write
by anonymous auth
by * none
access to *
by dn="cn=Manager,dc=domen,dc=ru" write
by dn="cn=admin,ou=Services,ou=People,dc=domen,dc=ru" write
by dn="cn=replicator,ou=Services,ou=People,dc=domen,dc=ru" read
by users read
by self write
by * read# Репликация
######################################################################
replica uri=ldap://192.168.1.7:389
suffix="dc=domen,dc=ru"
binddn="cn=replicator,ou=Services,ou=People,dc=domen,dc=ru"
credentials="{MD5}S7Pvlee6HnYRCG593qKenQ=="
bindmethod=simple
# tls=yesreplogfile /var/log/openldap/rep.log
и slapd.conf SLAVE
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/rfc2307bis.schema
include /etc/openldap/schema/yast.schema
include /etc/openldap/schema//samba.schema
include /etc/openldap/schema//dhcp.schema
include /etc/openldap/schema//dnszone.schema
include /etc/openldap/schema//postfixaliases.schemapidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
modulepath /usr/lib/openldap/modulesaccess to dn.base=""
by * readaccess to dn.base="cn=Subschema"
by * readaccess to attrs=userPassword,userPKCS12
by self write
by * authaccess to attrs=shadowLastChange
by self write
by * readaccess to *
by dn="cn=Manager,dc=domen,dc=ru"
by dn="cn=replicator,ou=Services,ou=People,dc=domen,dc=ru" write
by * readloglevel 0
database bdb
suffix "dc=domen,dc=ru"
rootdn "cn=Manager,dc=domen,dc=ru"
rootpw "{ssha}SR4E3/lxXIE7fX24vp6VPVRFtLtLRExJSQ=="
directory /var/lib/ldap/
checkpoint 1024 5
cachesize 10000
index objectClass,uidNumber,gidNumber eq
index member,mail eq,pres
index cn,displayname,uid,sn,givenname sub,eq,presupdatedn cn=replicator,ou=Services,ou=People,dc=domen,dc=ru
updateref ldap://192.168.1.6:389После внесения изменений на Мастере, формируется /var/log/openldap/rep.log вся реплика, которая поменялась. Но вот на Слейв ничего не записывается. Оно вообще само должно работать? Или надо ещё в какой-то момент slurpd и slap запускать? Они впринцыпе сервисами болтаются, но остановленные. Пробовал выполнить slurpd -d 255, из rep.log все перенеслось в ./replica/slurpd.replog. Но никаких ошибок не показывает и репликацию тоже не делает.
В /var/run/slapd/slapd.args что должно быть? А то он на мой взгляд пустой.
/var/lib/openldap/slapd -h ldap:// -u ldap -g ldap -o slp=no
Не малова-то ли?
>by dn="cn=replicator,ou=Services,ou=People,dc=domen,dc=ru" readА изменения на мастере проходят?
>>by dn="cn=replicator,ou=Services,ou=People,dc=domen,dc=ru" read
>
> А изменения на мастере проходят?Проверил. Происходят, manager может писать на Мастере. Пока что в тестовых целях добавил replicator`у запись на Мастере тоже, до этого только читал. На Слейве replicator тоже может писать.
А slurpd только на Мастере должен висеть? Потому как на Слейве он мало того что не стартанут, так ещё и ошибку при старте дает что в slapd.conf не описана секция с реепликами. Ну дык это ж не мастер, потому мне кажется что и не должен стартовать.
Единсвенная зацепка это syslog строчка после slurpd -d 255
ldap_simple_bind_s failed: Invalid credentials
я так понимаю не смог залогониться. Но я же вручную могу, да ещё и в базу писать...?
>>> по горячим следамна Мастере в slapd.conf credentials= поставил открытый пароль, вместо хеша. Все в целях тестрования :) Собственно в этом и была проблема. Разберемся...
Кстати, сервисом slurpd на Мастере надо запускать, на Слейве не нужен.
>[оверквотинг удален]
>дает что в slapd.conf не описана секция с реепликами. Ну дык
>это ж не мастер, потому мне кажется что и не должен
>стартовать.
>
>Единсвенная зацепка это syslog строчка после slurpd -d 255
>
>ldap_simple_bind_s failed: Invalid credentials
>
>я так понимаю не смог залогониться. Но я же вручную могу, да
>ещё и в базу писать...?многое зависит от версии openldap..
я так понимаю openldap версии <2.4, потому с 2.4 механизм репликации изменился и стал много более функциональным.вот с рабочего конфига мастера 2.34, пароль именно в plaintext
replica host=10.0.0.2:389 binddn="cn=user,o=basa" bindmethod=simple credentials=password
на слэйве:
updatedn "cn=user,o=basa" credentials = "password" updateref 10.0.0.1:389
перед тем как делать реплику, необходимо с мастера снять отпечаток базы, например slapcat -l basa.ldif
и унести на слэйв slapadd -l basa.ldif. Затем можно запускать слэйва и делать изменения на мастере.
А ещё вопрос в догонку...
Репликацию то я сделал, затем на слейве ещё и Резервный Контролер Домена поднял на Samba. И вроде все работает, но раз в сутки начинают подвисать все smb ресурсы от Основного Контролера Домена. Выключаешь на слейве ldap и samba, и все приходит в норму. Это от чего косяк? Из-за репликации ldap`ов или из-за samba? Где хоть посмотреть причины? Что-то в messages не могу ничего выловить, море всего валится, но ничего примечательного.
Версии ldap 2.3.27, samba 3.0.23d
>А ещё вопрос в догонку...
>Репликацию то я сделал, затем на слейве ещё и Резервный Контролер Домена
>поднял на Samba. И вроде все работает, но раз в сутки
>начинают подвисать все smb ресурсы от Основного Контролера Домена. Выключаешь на
>слейве ldap и samba, и все приходит в норму. Это от
>чего косяк? Из-за репликации ldap`ов или из-за samba? Где хоть посмотреть
>причины? Что-то в messages не могу ничего выловить, море всего валится,
>но ничего примечательного.
>Версии ldap 2.3.27, samba 3.0.23dсложно сказать однозначно, нет информации. но я бы начал с обновления самбы
отключил bdc, оставил репликацию, 3 дня все вертится, реплицируется и не зависает. Наверное все-таки дело в самбе.тогда навреное создам новую тему в самбовском разделе, ибо к репликации не очень имеет отношение, ну и обновлюсь :)
в slapd.conf credentials= поставил открытый пароль, вместо хеша. Все в целях тестрования :) Собственно в этом и была проблема.аналогичная проблема, почему хеш не проходит непонятно.
credentials={SSHA}lklLLKbla-bla-bla
Открытый пароль без проблем все реплицируется ??