Debian 8 Jessie
Sponsored Link

OpenLDAP マルチマスターレプリケーション
2015/05/11
 
OpenLDAP マルチマスターレプリケーションの設定です。
プロバイダー/コンシューマー構成の場合、 コンシューマー側ではデータの登録はできませんが、マルチマスター構成とすることで、いずれのサーバーでもデータ登録可能となります。
[1]
[2] LDAP マスターとするサーバー全てで syncprov モジュールを追加します。
root@slapd01:~#
vi mod_syncprov.ldif
# 新規作成

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib/ldap
olcModuleLoad: syncprov.la

root@slapd01:~#
ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module,cn=config"

root@slapd01:~#
vi syncprov.ldif
# 新規作成

dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100

root@slapd01:~#
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=syncprov,olcDatabase={1}mdb,cn=config"
[3] LDAP マスターとするサーバー全てで、以下の設定をします。 ただし、それぞれのサーバーで「olcServerID」は一意の ID を、「provider=***」には相手側のサーバーを指定してください。
root@slapd01:~#
vi master01.ldif
# 新規作成

dn: cn=config
changetype: modify
replace: olcServerID
# ID はサーバー毎に異なるものを指定

olcServerID: 0

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
 
# 相手側のLDAPサーバーのURI

  provider=ldap://10.0.0.50:389/
  bindmethod=simple
  
 
# 自身のドメイン名

  binddn="cn=admin,dc=srv,dc=world"
 
# ディレクトリマネージャーのパスワード

  credentials=password
  searchbase="dc=srv,dc=world"
 
# サブツリーも含める

  scope=sub
  schemachecking=on
  type=refreshAndPersist
 
# リトライ間隔 リトライ回数 再リトライまでの間隔 再リトライ回数

  retry="30 5 300 3"
 
# レプリケーションの間隔

  interval=00:00:05:00
-
add: olcMirrorMode
olcMirrorMode: TRUE

dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov

root@slapd01:~#
ldapmodify -Y EXTERNAL -H ldapi:/// -f master01.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

modifying entry "olcDatabase={1}mdb,cn=config"

adding new entry "olcOverlay=syncprov,olcDatabase={1}mdb,cn=config"
[4] LDAP クライアント側で全てのマスターを参照先として設定します。
以上で設定完了です。データの登録はいずれのサーバーからでも可能となっています。
root@www:~#
vi /etc/libnss-ldap.conf
# 27行目:LDAP コンシューマー追記

uri ldap://dlp.srv.world/
ldap://slave.srv.world/
root@www:~#
vi /etc/pam_ldap.conf
# 27行目:LDAP コンシューマー追記

uri ldap://dlp.srv.world/
ldap://slave.srv.world/
 
Tweet