第 22 章 使用 SyncRepl 协议设置内容同步
要根据 RFC 4533 支持 SyncRepl
协议,目录服务器使用 Content Synchronization 插件。使用内容同步插件时,LDAP 服务器和客户端可以使用 Red Hat Directory Server 作为源,将其本地数据库与目录的内容同步。
要使用 SyncRepl 协议
,您需要执行以下配置:
在 Directory 服务器端:
-
配置内容同步和 Retro Changelog 插件。Retro Changelog 插件必须记录
nsuniqueid
操作属性。 - 可选: 创建一个新用户,您的客户端将用来绑定到目录服务器。新用户必须具有读取目录中内容的权限。详情请参阅 使用命令行 添加 LDAP 条目。
-
配置内容同步和 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 将带有
targetUniqueId
别名的nsuniqueid
操作属性添加到 Retro Changelog 插件配置中: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
启用内容同步插件:
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 服务器在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
协议将数据与目录服务器同步。