搜索

16.11. 发送同步更新

download PDF
同步像 winSyncInterval 设置(用于从 Active Directory 域检索更改)或 nsds5replicaupdateschedule 设置(用于从 Directory 服务器推送更改)中一样频繁进行。默认情况下,更改每五分钟从 Active Directory 检索,并且会立即发送目录服务器的更改。
同步更新可以手动触发。也可以执行完整的重新同步,其发送和拉取目录服务器和 Active Directory 中的每个条目,就像是新的一样。完整的重新同步包括之前尚未同步的现有目录服务器条目。

16.11.1. 执行手动增量同步

在正常操作过程中,对目录服务器中的条目进行的所有更新都会收集到更改日志,然后在增量更新期间重新执行。
手动同步更改:
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-winsync-agmt poke --suffix="dc=example,dc=com" example-agreement

16.11.2. 执行完全同步

如果数据有重大更改,或者将同步属性添加到预先存在的目录服务器条目中,则需要启动 重新同步。重新同步是一个更新总量;检查同步子树的整个内容,如有必要,更新。在不使用更改日志的情况下,进行重新同步。这与在复制中初始化或重新初始化消费者类似。

16.11.2.1. 使用命令行执行完全同步

使用命令行启动完全同步:
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-winsync-agmt init --suffix="suffix" agreement_name
显示同步状态:
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-winsync-agmt init-status --suffix="suffix" agreement_name

16.11.2.2. 使用 Web 控制台执行完全同步

启动完全同步:
  1. 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”
  2. 选择实例。
  3. 打开 Replication 菜单并选择 Winsync Agreements 条目。
  4. 打开您要同步的同步协议旁边的 Choose Action 菜单,然后选择 Full Re-Synchronization
    重新同步不会删除同步对等点上的数据。进程发送和接收所有更新,并添加任何新的或修改的目录服务器条目。例如,该过程添加了一个已存在的目录服务器用户,该用户添加了 ntUser 对象类。
在 web 控制台中显示同步状态:
  1. 打开 Replication 菜单。
  2. 选择 Winsync Agreements 条目。
    如果同步成功完成,Web 控制台会在 Last Update Status 列中显示 Error (0) Replica obtained: Incremental update successful 信息。

16.11.3. 设置同步计划

同步可以通过两种方式工作。Directory 服务器使用 nsds5replicaupdateschedule 属性,按可配置的调度(类似于复制)向 Active Directory 发送更新。目录服务器轮询 Active Directory 以检查更改; 它检查 Active Directory 服务器的频率在 winSyncInterval 属性中设置。
默认情况下,Directory 服务器更新计划始终处于同步状态。Active Directory 间隔是每五分钟轮询 Active Directory。
要更改 Directory 服务器用来向 Active Directory 发送更新的调度,请编辑 nsds5replicaupdateschedule 属性。使用 24 小时时钟,调度使用 start (SSSS)和结束(EEEE)时间设置 HHMM。调度同步更新的天数从 0 (Sunday)到 6 (Saturday)。
nsds5replicaupdateschedule: SSSS EEEE DDDDDDD
例如,这会在 Sunday、周五、周四、周四和周日上从 noon 到 2:00pm 同步:
nsds5replicaupdateschedule: 1200 1400 0246
注意
同步时间不能每夜换行,因此设置 2300 0100 无效。
要更改 Directory 服务器检查 Active Directory 是否有对 Active Directory 条目的更改的频率,请重置 winSyncInterval 属性。此属性以秒为单位,因此默认 300 表示目录服务器每 300 秒或五分钟轮询 Active Directory 服务器。如果目录搜索用时过长并影响性能,则将其设置为更高的值会很有用。
winSyncInterval: 1000

16.11.4. 更改同步连接

可以更改同步协议连接的两个方面:
  • 绑定用户名和密码(nsDS5ReplicaBindDNnsDS5ReplicaCredentials)。
  • 连接方法(nsDS5ReplicaTransportInfo)。
    只能将 nsDS5ReplicaTransportInfoLDAP 改为 StartTLS,反之亦然。无法更改为或从 LDAPS 更改,因为无法更改端口号,并在 LDAP 和 LDAPS 间切换需要更改端口号。
例如:
nsDS5ReplicaBindDN: cn=sync user,cn=Users,dc=ad1
nsDS5ReplicaCredentials: {DES}ffGad646dT0nnsT8nJOaMA==
nsDS5ReplicaTransportInfo: StartTLS
警告
无法更改 Active Directory 同步对等点的端口号。因此,还无法在标准/STARTTLS 连接和 TLS 连接间切换,因为这需要在标准端口和不安全的端口之间进行改变。
要更改为或从 TLS 更改,请删除同步协议,并使用更新的端口号和新的传输信息再次添加它。

16.11.5. 处理从同步的子树中移出的条目

同步协议定义了 Active Directory 和 Directory 服务器中同步哪些子树。在范围(子树)的条目会被同步;其他条目将被忽略。
但是,同步过程实际上从 root DN 开始,以开始评估条目以进行同步。条目基于 Active Directory 中的 samAccount 和 Directory 服务器中的 uid 属性关联。如果条目(基于 samAccount/uid 关系)从同步子树中删除,则同步插件备注,因为它已被删除或移动。这是条目不再同步的同步插件的信号。
该问题是同步过程需要一些配置来确定如何处理该移动条目。有三个选项:删除对应的条目,忽略条目(默认),或者取消同步该条目。
注意
这些同步操作仅当条目移出 Active Directory 端的范围时,在 Directory Server 端处理。如果某个条目从 Directory Server 端的同步子树中移出,这不会影响任何 Active Directory 条目。
Directory Server 9.0 中的默认行为是删除对应的目录服务器条目。即使 Active Directory 端的条目没有与 Directory Server 端同步,也是如此。从 Directory Server 9.1 开始,默认行为是忽略该条目,且不执行任何操作。
例如,sam Account ID 为 jsmith 的用户在 Active Directory 上的 ou=Employees 子树中创建。同步子树为 ou=Users,因此 jsmith 用户永远不会与目录服务器同步。

图 16.4. Active Directory Tree

Active Directory Tree
对于 7.x 和 8.x 版本,同步只忽略该用户,因为它不在同步子树之外。
从 Directory Server 9.0 开始,目录服务器开始支持子树重命名 - 这意味着现有条目可以在目录树的分支之间移动。同步插件会假定,在 Active Directory 树中但在同步的子树外的条目,它对应与一个 Directory Server 用户(samAccount/uid关系),是主动移到同步的子树外,本质上是一个重命名操作。然后假设应删除"corresponding"目录服务器条目。

图 16.5. Active Directory 和 Directory Server Trees 比较

Active Directory 和 Directory Server Trees 比较
此假设不一定是一个准确的,特别是对于始终存在于同步子树之外的用户条目。
同步协议的 winSyncMoveAction 属性设置如何处理这些移动条目的说明:
  • none 不执行任何操作,因此如果同步的目录服务器条目存在,则可以将其同步到或创建 范围内的 Active Directory 条目。如果没有同步的目录服务器条目,则不会发生任何情况(这是 Directory Server 版本 9.1 及之后的版本中的默认行为)。
  • Un sync 从 Directory Server 条目中删除任何与同步相关的属性(ntUserntGroup),否则保留 Directory Server 条目。
    重要
    当取消同步 Active Directory 条目可能被删除的条目时,存在风险,并且 Directory Server 条目保持不变。这可能会造成数据不一致的问题,特别是当 Directory Server 条目用于稍后在 Active Directory 一侧重新创建条目时。
  • Delete 删除 Directory 服务器端的对应条目,无论它是否与 Active Directory 同步(这是 9.0 中的默认行为)。
    重要
    您几乎不需要删除目录服务器条目,而无需删除对应的 Active Directory 条目。这个选项仅适用于与 Directory Server 9.0 系统兼容。
如果需要更改默认值:
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-winsync-agmt --move-action="action" --suffix="suffix" agreement_name
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.