`
lovnet
  • 浏览: 6670201 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论
阅读更多

目录服务是一种分布式数据库,用于存储与网络资源有关的信息,以便于查找和管理。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 是目录树中对象的中央储存库。

每个目录树也可以由邻接的名称空间表示。例如,如果公司的根域为“company.com”,则可以给销售和技术支持部门创建单独的域,它们的域名分别为“sales.company.com”和“support.company.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.MYCOMPANY.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) 一起使用。

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics