停更十余天后,从今天开始继续为大家带来Windows Server 2016 Active Directory系列更新,本章为大家介绍有关Active Directory复制相关概念内容,有关Active Directory概念性内容不管是老版本2000还是2016基础概念还是一致的,本章概念介绍中以Windows 2000 Active Directory为例介绍,有关Windows 2016 Active Directory新增功能请参考(http://blog.51cto.com/wenzhongxiang/2071659), 希望可以帮到大家。

概念

目录服务是一种分布式数据库,用于存储与网络资源有关的信息,以便于查找和管理。Microsoft Active Directory 是用于 Windows 2000的最新目录服务实现。涉及目录服务的基本问题围绕着可以将哪些信息存储在数据库中,存储的方式是什么,如何查询特定的信息,以及如何对结果进行处理。Active Directory 包含目录服务本身,以及允许访问支持 X.500 命名规则的数据库的从属服务。

可以使用某个用户名来查询目录,以获取相关信息,如用户的电话号码或者电子邮件地址。目录服务也是非常灵活的,可以进行归纳查询("打印机在什么位置?"或"服务器的名称是什么?"),以查看可用打印机或服务器的归纳列表。

目录服务还具有给用户提供到整个企业网络的单个入口点的优点。用户可以查找和使用整个网络资源,而无需了解资源的确切名称或位置。也可以使用统一的网络组织及其资源逻辑视图来管理整个网络。

为确保设计出最有效、最可靠的 Active Directory,必须了解网络的逻辑结构和物理结构。研究和了解组织的业务结构和操作也是非常重要的。Active Directory 将域的逻辑结构从实际物理结构中独立出来。

逻辑结构:

网络的逻辑结构是由无形的项目组成的,如对象、域、目录树和目录林。

Active Directory 的基本结构块是对象,这是一个代表网络资源的已命名特定属性集。对象属性是目录中对象的特征。对象也可以按类进行分组,类是对象的逻辑分组。用户、组和计算机是不同对象类的例子。

在最低一层,某些对象代表网络上的单个实体,如用户或计算机。这些实体称为叶对象,它们不能包含其它对象。但是,为了简化目录的管理和组织,可以将叶对象放在其它对象(称为容器对象)内部。容器对象也可以采用嵌套(或层次)形式包含其它容器。

容器对象最常用的类型是组织单元 (OU)。可以使用 OU 将对象进行分类,并将域变成某种类型的逻辑管理分组。尤其要注意的是,域中 OU 的结构和层次与任何其它域的结构无关。

所有网络对象只能在一个域中存在(无论是叶对象还是容器对象)。为反映组织网络的特点,可以使用域将相关对象分成一组。每个创建的域仅存储所包含对象的信息,而不存储其它对象的信息。目前,在域中可维护的对象数量的上限为一百万。

每个域表示一个安全边界。对每个域中对象的访问是由访问控制项 (ACE) 控制的,后者包含在访问控制列表 (ACL) 中。这些安全设置并不跨越域边界。在 Active Directory 中,域也可以称为"分区"。因为域是 Active Directory 数据库的物理分区,所以您既可以按照业务功能(人力资源、销售或财务),也可以按照位置(地理或相对)建立其结构。

当将相关域分成一组以便共享全局资源时,您就创建了"目录树"。尽管目录树可以只包含一个域,但是您可以将层次结构中相同名称空间的多个域合并在一起。可以使用基于 Kerberos 的安全功能,通过双向信任关系将目录树中的域透明地连接在一起。这些信任关系可以是永久性的(不能被删除),也可以是暂时的。换句话说,如果域 A 信任域 B,而域 B 信任域 C,则域 A 信任域 C。

目录树中的所有域共享所有对象类型的正式定义(称为"架构")。此外,任何给定目录树中的所有域还共享全局编录 (GC)。GC 是目录树中对象的中央储存库。

每个目录树也可以由邻接的名称空间表示。例如,如果公司的根域为"azureyun.com",则可以给销售和技术支持部门创建单独的域,它们的域名分别为"sales.azureyun.com"和"support.azureyun.com"。这些域称为子域。与 Windows NT 4.0 不同,每个域自动生成信任关系。

在最高一级,可以将单独的目录树分成一组形成"目录林"。可使用目录林,将组织中的不同部门,甚至不同组织组合到一起。这些部门不必共享相同的命名架构并且独立运作,但彼此之间可以进行通信。目录林中的所有目录树共享相同的架构、全局编录和配置容器。再者,基于 Kerberos 的安全功能在目录树之间提供了信任关系。

Windows 2000 目录服务的另一个优点是,无需重新安装整个服务器操作系统,即可卸载 Active Directory。要想使一个成员服务器成为 DC,您只需运行 DCPROMO 工具来添加 Active Directory 服务器即可。要想删除 Active Directory 服务器,您同样只需运行 DCPROMO 工具即可。

物理结构:

域控制器和站点是处理局域网配置物理结构的两个基本组件。

与 Windows NT 4.0 不同,仅由运行 Windows 2000 的计算机组成的网络没有主域控制器 (PDC) 和备份域控制器 (BDC)。在 Windows 2000环境中,将所有参与网络管理的服务器均看作是域控制器。域控制器 (DC) 存储目录数据库的复制副本,并且域中控制器之间的复制是自动完成的。

对于跨多个地理位置的企业网络,要了解目录数据库复制对域控制器和网络性能的影响,了解广域网设计和结构的含义是非常重要的。

名称空间:

名称空间是有特定边界的指定区域,可以在此处解析分配给计算机的逻辑名称。名称空间的主要用途是组织资源的说明,使用户按其特性或属性来查找资源。可以使用给定名称空间的目录数据库找到某个对象,而无需知道它的名称。如果用户知道某个资源的名称,就可以查询有关该对象的有用信息。

尤其要注意的是,名称空间的设计最终决定了:随着目录数据库的增长,它对用户到底有多大用处。排序和搜索算法不能解决逻辑目录设计中的缺陷

在逻辑层次上,Windows 2000 Active Directory 只不过是另一个名称空间。在 Active Directory 中,两个主要信息类型存储:

  • 对象的逻辑位置。

  • 有关该对象的属性列表。

可以给这些对象分配属性(如电话号码、房间位置等等),并可用这些属性查找目录数据库中对象的位置。随着 Active Directory 架构的扩大(修改),使用属性进行搜索就变得越来越重要了。当将对象、对象类和/或这些对象的属性添加到目录数据库中时,对于目录用户而言,它们的结构决定了它们的用途。

目录树中的每个容器和对象都有一个唯一的名称。这些名称空间是目录树中所有容器和对象、或分支和叶对象的完全路径。对象在目录树中的位置决定了其可分辨的名称。

对象的可分辨名称 (DN) 包含从特定名称空间的顶层到整个目录树层次结构的完整路径。因为 DN 对于组织目录数据库非常有用,但对于记住该对象没有帮助,所以在 Active Directory 中也使用相对可分辨的名称 (RDN)。RDN 是对象名的一部分,也是对象本身的一个属性。

很多网络使用的名称空间是基于当前 Internet 上使用的域名系统 (DNS)。这种 DNS 关系有助于确定 Active Directory 目录树的形状以及对象彼此之间的关系。域控制器项目是可分辨名称中列出的域,而公用名称 (CN) 项目则是针对目录中用户对象的特定路径。

全局编录:

全局编录包含目录中每个 Windows 2000 域的部分副本,它是由 Active Directory 复制系统自动创建的。这样,只要给出目标对象的一个或几个属性,用户和应用程序就可以在 Active Directory 域目录树中找到这些对象。全局编录还包含目录分区的架构和配置。这就是说,全局编录存储 Active Directory 中每个对象的副本,但只存储它们的很少一部分属性。全局编录中的属性是搜索操作中那些最常使用的属性(如用户的名和姓、登录名等等),这些属性是查找对象完整副本位置所必需的。

使用这种公用信息,用户可以很快找到要找的对象,而无需知道这些对象在哪个域中,也不要求知道企业中相邻的扩展名称空间。如果在全局编录中找不到该对象,则搜索功能将查询本地域分区以获得信息。

您可以使用架构管理器工具更改架构,并定义在全局编录中存储哪些属性。由于对所有全局编录服务器进行的更改都要复制全局编录,所以出于性能和维护的目的,最好限制本地分区中存储的属性数量。

DNS与AD的集成:

DNS 和 Active Directory 的集成是 Windows 2000 Server 的一个核心特征。DNS 域和 Active Directory 域对不同的名称空间使用完全相同的域名。即使两个名称空间共享相同的域结构,它们也是不同的名称空间,了解这一点是非常重要的。每个名称空间存储不同的数据并管理不同的对象。DNS 使用区域和资源记录,而 Active Directory 使用域和域对象。

例如,如果对象的某个属性是服务器的完全合格域名(如 SERVER1.SALES.AZUREYUN.COM),Active Directory 就会向 DNS 查询该服务器的 TCP/IP 地址,Windows 2000 请求者随后可以建立与该服务器的 TCP/IP 会话。

Active Directory 与 DNS 的集成是这样实现的:每个 Active Directory 服务器将自己的地址发布在 DNS 主机上的服务资源记录中。

全球唯一标识符:

因为网络中的每个对象必须用唯一的属性来标识,所以 Active Directory 通过将全局唯一标识符 (GUID) 与每个对象关联起来实现这一点。即使对象的逻辑名称被更改,也应保证这个号码是唯一的且永远不会被目录数据库更改。当用户或应用程序首次在目录中创建可分辨的名称 (DN) 时,就会生成 GUID。

复制:

虽然 Windows NT 4.0 中的网络结构基于 PDC 和 BDC 模型,但是 Windows 2000 网络上的所有服务器均用作域控制器 (DC),并且彼此之间没有主次之分。对于 Active Directory,所有 DC 在站点中自动复制,并支持多主机复制,以复制所有域控制器的 Active Directory 信息。由于引入了多主机复制,管理员可以更新域中任何 Windows 2000 域控制器上的 Active Directory。

多主机数据库复制还有助于控制何时将更改同步,哪些信息是最新的,以及何时停止数据复制以避免重复和冗余。为确定哪些信息需要更新,Active Directory 使用 64 位更新顺序号 (USN)。这些号码创建后与所有的属性相关联。每次更改一个对象之后,其 USN 都会递增并与属性一起保存。

每个 Active Directory 服务器都保留站点内所有复制伙伴的最新 USN 的表格。该表格包括每个属性的最高 USN。 当达到复制时间间隔时,则每个服务器只请求那些 USN 比列在自己表格中的 USN 大的更改。

有时,在复制所有的更改之前,可能在两个不同的 Active Directory 服务器上对同一属性进行了更改。这就会导致复制冲突。必须将其中一个更改声明为更准确的更改,并将此更改用作所有其他复制伙伴的复制源。为解决这种潜在的问题,Active Directory 使用了整个站点的属性版本号 (PVN) 值。当发生起始写入操作时,PVN 就会递增。起始写入操作就是直接在某个特定 Active Directory 服务器上发生的写入操作。

当在不同位置的具有相同的 PVN 的两个或多个属性值被更改时,接收更改的 Active Directory 服务器就会对每个更改的时间戳进行检查,并使用最新的一个进行更新。此问题的最重要分枝是网络中心时钟的安装和维护。

另一个复制问题就是循环。Active Directory 可使管理员配置多个路径以达到冗余的目的。为了避免更改无止境地更新下去,Active Directory 在每个服务器上创建 USN 对的列表。这些列表被称为最新矢量 (UDV)。它们保存每个起始写入操作的最高 USN。每个 UDV 均列出在其所在的站点中的所有其他服务器。当发生复制时,请求服务器就把自己的 UDV 发送到发送服务器。每个起始写入操作的最高 USN 都可用来确定是否仍需要复制更改。如果 USN 号码相同或更高,则不需要进行更改,因为请求的服务器已经被更新了。

组的更改:

Active Directory 的逻辑规划过程的另一个方面就是组的概念。在 Windows NT 4.0 中,管理员可以使用两个基本的组类型,即本地和全局。考虑到这种结构固有的限制,Windows 2000 为网络管理员提供了以下组,其功能更强大并且灵活性更高:

  • 作用域为本地的组(也称为"本地组")

  • 作用域为域本地的组(也称为"域本地组")

  • 作用域为全局的组(也称为"全局组")

  • 作用域为通用的组(也称为"通用组")

一个值得注意的重要修改是,全局组现在可以包含其它的全局组。虽然全局组仍用于收集用户,但是它能够将一个组放在另一个组之内,从而使管理员可以将它们放在目录林的任何地方,使得维护非常方便。但是,全局组只能包括来自 Active Directory 目录林中某个域的用户和组。

因为很多网络混用 Windows 2000 和 Windows NT 4.0 服务器,所以在创建组之前,必须确定网络上域的数量和类型以及哪些域是混合模式,哪些域是本地模式:

  • 混合模式域。默认情况下,Windows 2000 操作系统以混合模式网络配置进行安装。混合模式域是网络上的一组计算机,它们同时运行 Windows NT 4.0 和 Windows 2000 域控制器。(混合模式域也可以只运行 Windows 2000 域控制器。)

  • 本地模式域。当域只包含 Windows 2000 Server 域控制器时,可以将该域转换成本地模式。

通用组(Windows 2000 的新增功能)可以包含目录林中任何目录树中的所有其它组和用户,并且可以与目录林中任何访问控制列表 (ACL) 一起使用。

可以组合使用全局组、域本地组和通用组,以控制对网络资源的访问。全局组的基本用途是把用户组织到代表其相应域的管理容器之中。通用组可以用于包括来自各种域的全局组,进而在授予权限时进一步管理域层次结构。可以全局组添加到通用组中,然后给资源在物理上所在域本地组分配权限。使用这些方法创建组,管理员就可以在每个域的全局组中添加或删除用户,对整个企业资源的访问进行控制,而无需在多个位置进行更改。