第22章 SyncRepl プロトコルを使用した Content Synchronization のセットアップ
RFC 4533 に従って SyncRepl
プロトコルをサポートするために、Directory Server は Content Synchronization プラグインを使用します。Content Synchronization プラグインを使用すると、LDAP サーバーとクライアントは Red Hat Directory Server をソースとして使用して、ローカルデータベースをディレクトリーの変更されたコンテンツと同期できます。
SyncRepl protocol
を使用するには、次の設定を実行する必要があります。
Directory Server 側:
-
Content Synchronization プラグインと Retro Changelog プラグインを設定します。Retro Changelog プラグインは、
nsuniqueid
操作属性をログに記録する必要があります。 - オプション: クライアントが Directory Server にバインドするために使用する新しいユーザーを作成します。新しいユーザーには、ディレクトリー内のコンテンツを読み取るパーミッションが必要です。詳細は、コマンドラインを使用した LDAP エントリーの追加 を参照してください。
-
Content Synchronization プラグインと Retro Changelog プラグインを設定します。Retro Changelog プラグインは、
- クライアントを設定します。たとえば、同期するサブツリーの検索ベースを設定します。詳細は、クライアントのドキュメントを参照してください。
次の手順では、コマンドラインを使用して Content Synchronization プラグインと Retro Changelog プラグインを設定します。
前提条件
-
root
権限がある。
手順
Retro Changelog が有効になっているかどうかを確認します。
dsconf <instance_name> plugin retro-changelog show
# dsconf <instance_name> plugin retro-changelog show ... nsslapd-pluginEnabled: off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Retro Changelog プラグインが無効になっている場合は、有効にします。
dsconf <instance_name> plugin retro-changelog enable
# dsconf <instance_name> plugin retro-changelog enable Enabled plugin 'Retro Changelog Plugin'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Retro Changelog プラグインの設定に、
targetUniqueId
エイリアスを持つnsuniqueid
操作属性を追加します。dsconf <instance_name> plugin retro-changelog add --attribute nsuniqueid:targetUniqueId
# dsconf <instance_name> plugin retro-changelog add --attribute nsuniqueid:targetUniqueId Successfully changed the cn=Retro Changelog Plugin,cn=plugins,cn=config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: パフォーマンスを向上させるには、次の推奨事項を適用します。
Retro Changelog エントリーの最大有効期間を設定します。たとえば、有効期間を
2
日間 (2d) に設定します。dsconf <instance_name> plugin retro-changelog set --max-age 2d
# dsconf <instance_name> plugin retro-changelog set --max-age 2d Successfully changed the cn=Retro Changelog Plugin,cn=plugins,cn=config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クライアントがデータを同期するためにアクセスするバックエンドまたはサブツリーがわかっている場合は、Retro Changelog プラグインの範囲を制限します。たとえば、
cn=marketing,dc=example,dc=com
サブツリーを除外するには、次のように入力します。dsconf <instance_name> plugin retro-changelog set --exclude-suffix "cn=marketing,dc=example,dc=com"
# dsconf <instance_name> plugin retro-changelog set --exclude-suffix "cn=marketing,dc=example,dc=com" Successfully changed the cn=Retro Changelog Plugin,cn=plugins,cn=config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Content Synchronization プラグインを有効にします。
dsconf <instance_name> plugin contentsync enable
# dsconf <instance_name> plugin contentsync enable Enabled plugin 'Content Synchronization'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ACI を調整して、
SyncRepl
コントロールを使用できるユーザーを制限します。デフォルトでは、Directory Server はoid=1.3.6.1.4.1.4203.1.9.1.1,cn=features,cn=config
エントリーに次のアクセス制御命令 (ACI) を作成し、すべてのユーザーがSyncRepl
プロトコルを使用できるようにします。aci: (targetattr != "aci")(version 3.0; acl "Sync Request Control"; allow( read, search ) userdn = "ldap:///all";)
aci: (targetattr != "aci")(version 3.0; acl "Sync Request Control"; allow( read, search ) userdn = "ldap:///all";)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ACI を調整する方法の詳細は、ACI バインドルールの定義 を参照してください。
サービスを再起動します。
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、クライアントは SyncRepl
プロトコルを使用して Directory Server とデータを同期できるようになりました。