FSMO(Flexible Single Master Operation)

首先,Active Directory 是集中式存储库 (central repository),其中存储企业中的所有对象及其各自的属性。
它是一个分层 (hierarchical) 多主 (Multi-master) 模型的数据库。
无论域控制器 (DC) 联网与否,都可以在企业中任意给定的 DC 上处理对数据库的更改。

这当中,[多主] 意味着可灵活地在企业中的任何 DC 上进行数据的更改。
但它也可能造成冲突,Windows 处理更新冲突的一种方法是最后写入有效(last writer wins)。
尽管此方法在某些情况下可以接受,但有时也不能解决太过困难的冲突。
所以,最好是防止冲突的发生,而不是在事后试图解决冲突。

为了防止数据更新中出现冲突,Active Directory 以 [单主] 方式对某些对象执行更新。
同时,Active Directory 扩展了早期版本 Windows 中的单主模型,拆分出多个角色,并可将任一角色传输到任何 DC,
在单主模型中,整个目录中只有某台特定的 DC 可以处理特定对象的更新。
也正因为这些 Active Directory 角色未绑定到单个 DC,因此它称为 FSMO(灵活的单主机操作) 角色。
目前 Windows 中有五个 FSMO 角色:

  1. 架构主机 (Schema master)
    -->Forest-wide,每个林 1 台,由位于林根域的 DC 承担。
    ·综述:
    拥有 Schema master 角色的 DC 是唯一可以处理目录架构更新的 DC。
    架构更新完成后,它将从架构主机复制到目录中的所有其他 DC。
    ·激活条件:
    目录服务启动成功,且入站方向的 [架构 NC] 已经被角色所有者复制成功时,此角色激活。
    ·连接条件:
    林中的 DC 和成员仅在更新架构时才与 FSMO 角色联系。
    ·宕机影响:
    若 Schema master 不可用,则不可对活动目录架构进行变更,但日常操作均不涉及架构变更,不会立即引发故障。
    ·命名上下文 (Naming context, NC):
    LDAP 路径:LDAP://cn=schema,cn=configuration,dc=

  2. 域命名主机 (Domain naming master)
    -->Forest-wide,每个林 1 台,由位于林根域的 DC 承担。
    ·综述:
    拥有 Domain naming master 角色的 DC 是唯一可以处理林中域关系更新的 DC。
    如,在林中建新域或子域时,由 Domain naming master 确保林内域名空间的一致性(域名唯一性、完整性)。
    ·激活条件:
    目录服务启动,且入站方向的 [配置 NC] 已被角色所有者成功复制时,此角色激活。
    ·连接条件:
    林中的成员仅在更新交叉引用时才与 FSMO 角色持有者联系。
    林中的 DC 会在林中添加/删除域时联系,以及在 DC 上添加了应用程序目录分区的新实例。
    -->例如,已为默认 DNS 应用程序目录分区登记 DNS 服务器。
    ·宕机影响:
    若 Domain naming master 不可用,则无法增加新域/子域,但日常操作均不涉及域名更改,不会立即引发故障。
    ·命名上下文:
    [Partitions\Configuration]
    LDAP 路径:LDAP://CN=Partitions,CN=Configuration,DC=

  3. RID 主机 (RID master)
    -->Domain-wide,每个域 1 台。
    ·综述:
    RID 全称为 Relative ID,即:相对 ID。
    域中每个安全主体的 SID 都是唯一的,RID master 负责处理来特定域内所有 DC 的 [RID 池] 的请求。
    *也负责处理安全主体对象的域间移动 (从其域中删除一个对象并将其放入另一个域) 的处理。
    域中的每台 DC 都被分配了一个 RID 池,允许它为自己创建的安全主体分配 RID。
    当为某台 DC 分配的 [RID 池] 低于阈值时,该 DC 会向域内的 RID master 发出额外 RID 请求。
    域 RID master 从域内未分配的 RID 池中检索 RID 来响应请求,并将它们分配给请求 DC 的池中。
    每个域只有一个 RID master,换句话说,林中可以有多个域,每个域都有一台 RID master。
    ·激活条件:
    目录服务启动,且入站方向的 [域 NC] 已被角色所有者成功复制时,此角色激活。
    ·连接条件:
    当 DC 检索新的 RID 池时,它们会与 FSMO 角色持有者联系,新的 RID 池通过 AD 复制 (AD replication) 传递给请求 DC。
    ·宕机影响:
    若 RID Master 不可用,同时,某台 DC 的 RID 池用完,则该 DC 无法创建新的安全标识对象。
    换句话说,如果 DC 仍有可用的 RID 池,则可以继续创建对象。

  4. PDC 仿真器 (PDC emulator)
    -->Domain-wide,每个域 1 台。
    综述:
    对于依赖时间同步的 Kerberos 认证协议来说,域内通用且准确的时间是必须的。
    PDC emulator 是确保域内所有 Windows 系统使用相同时间的关键组件。
    位于林根的 PDC emulator 对企业具有权威性,应配置为从外部源收集时间。
    所有 PDC 在选择其入站时间合作伙伴时都遵循域的层次结构。
    同时,PDC emulator 保留以下功能:
    4-1 域中其他 DC 所做的密码更改将先复制到 PDC emulator,然后再复制到其他 DC。
    -->也包括 AD 数据库和基于文件系统提供的 SYSVOL 共享文件夹。
    4-2 用户在某台 DC 上发生身份验证失败时,错误会转发到 PDC emulator,由其向用户报告验证失败的消息。
    4-3 在 PDC emulator 上处理帐户锁定。
    4-4 PDC emulator 执行基于 Windows NT 4.0 服务器的 PDC 或更早版本的 PDC 为基于 Windows NT 4.0 或更早版本客户端执行的所有功能。
    激活条件:
    当 PDC emulator 发现 [域 NC] 头的 [fSMORoleOwner] 属性指向自身时,将始终处于活动状态,没有入站复制要求。
    连接条件:
    DC 会在有新密码或本地密码验证失败时会联系 PDC emulator。
    宕机影响:
    尽管大多数认证和资源访问操作继续工作,
    但依赖于 PDC Emulator 的特定功能(如密码更改、时间同步、账户锁定)将无法进行同步,很快将发生认证问题。

  5. 基础结构主机 (Infrastructure master)
    -->Domain-wide,每个域 1 台。
    综述:
    当一个域中的对象引用另一个域中的另一个对象时,通常使用 [GUID]、[SID(用于安全主体引用)] 和 [DN]。
    Infrastructure master 负责 [跨域] 对象引用的更新和协调(更新跨域对象的 SID 和 DN)。
    -->将这些引用与全局编录服务器 (GC) 中的数据进行比较,并在发现不一致时修改非 GC 域控制器中的跨域引用。
    -->然后通过 AD 复制机制将这些修改传播到其他域控制器。
    GC 保存了整个林中每个对象的部分属性 (全局编录属性) 的副本,以允许 GC 快速响应跨域查询。
    如果 Infrastructure master 位于 GC ,则 Infrastructure master 会认为拥有了所有的对象进而停止工作。
    -->GC 拥有林内所有对象的部分信息,对 GC 来说,它不需要通过跨域引用来获取林内其他域的对象信息。
    -->如果域内所有 DC 都是 GC,则所有 DC 都拥有最新数据,谁担任 Infrastructure master 角色并不重要。
    激活条件:
    目录服务启动,且入站方向的 [域 NC] 已被角色所有者成功复制时,此角色激活。
    连接条件:
    没有连接要求,它是一种林内部清理功能。
    宕机影响:
    除非环境是多域结构且域控制器不是全局编录(GC)服务器,否则大多数日常操作不依赖于跨域对象引用更新,也就无影响。

参考文献
Active Directory FSMO roles in Windows

posted @ 2024-05-23 09:31  JoeStyles  阅读(72)  评论(0)    收藏  举报