第 2 章
Directory Proxy Server 部署方案
根据计算环境的不同,可以有多种方法部署 Directory Proxy Server。本章介绍并说明一些典型的部署方法,包括:
内部高可用性配置
在图 2-1 所示的配置中,客户部署了只用于企业内部的 LDAP 基础结构。对外部网络能否访问到企业的任意 LDAP 服务不作要求。该客户部署的企业防火墙将拒绝防火墙外部对内部 LDAP 服务的任何访问。内部发出的所有客户机 LDAP 请求仍必须经 Cisco Local Director(以获取高可用性)传送到 Directory Proxy Server,此处所示的 Cisco Local Director 仅作为 IP 数据包交换的一个示例,确保客户机至少能够访问到一个 Directory Proxy Server。客户将阻止所有设备对目录服务器的直接访问(运行 Directory Proxy Server 的主机除外);具体实现方法是使用防火墙来保护运行目录服务器和 Directory Proxy Server 的主机。
图 2-1 内部高可用性配置
分布式 LDAP 目录基础结构
以下部分介绍了分布式 LDAP 目录基础结构中 Directory Proxy Server 的作用:
客户方案
在图 2-2 所示的配置中,一家大型金融机构的总部设在伦敦,其数据中心分别位于伦敦、纽约和香港。目前,雇员可以使用的大部分数据集中驻留在伦敦旧的 RDBMS 系统信息库中。该金融机构的客户机群对这些数据的所有访问均要通过广域网 (WAN)。由于使用此集中式模式,该金融机构遇到了伸缩性和性能方面的问题,因此决定转为使用分布式数据模式。该金融机构同时也决定部署 LDAP 目录基础结构。这里谈到的数据被认为是“关键任务”,因此将其部署在具有高可用性的容错基础结构中。对客户机应用程序配置文件的分析显示:在各地区客户机群访问的数据中,有 95% 是该机群特定的数据,这是因为数据是基于客户的。虽然很少有位于亚洲地区的客户机访问北美客户的数据,但偶尔也会出现这种情况。客户机群还需要随时更新客户的信息。
图 2-2 分布式 LDAP 目录基础结构
客户部署
如果配置文件表明 95% 为本地数据访问,金融机构则决定按地域分布其 LDAP 目录基础结构。它在每个地理位置(即香港、纽约和伦敦;图中未显示伦敦使用者服务器)部署了多个目录使用者服务器。每个使用者服务器被配置为保存当地的客户数据。欧洲和中东客户的数据保存在伦敦使用者服务器中,北美和南美客户的数据保存在纽约使用者服务器中,而亚太地区客户的数据则保存在香港使用者服务器中。利用这种部署,本地客户机群的大部分数据要求都位于该机群中。由于可以在本地处理客户机请求,所以这种模式与集中式模式相比,性能有了显著的提高,同时降低了网络开销;本地目录服务器可以有效地划分目录基础结构,从而增强了目录服务器的性能和伸缩性。每组使用者目录服务器都配置为:如果客户机提交更新请求或提交对位于别处的数据搜索请求,则返回引用。
LDAP 请求流
客户机的 LDAP 请求通过 Cisco LocalDirector 发送到 Directory Proxy Server。此处显示的 LocalDirector 产品仅作为 IP 数据包交换的一个示例,确保客户机始终能够至少访问一个 Directory Proxy Server。本地部署的 Directory Proxy Server 首先将所有请求路由到保存本地客户数据的本地目录服务器的阵列。Directory Proxy Server 的实例配置为在目录服务器阵列中进行负载平衡,因此可提供自动故障转移和故障回复。客户机对本地客户信息的搜索请求由本地目录满足,并且相应的响应将通过 Directory Proxy Server 返回到客户机。客户机对“外部”地区客户信息的搜索请求最初由本地目录服务器来满足,方法是将引用返回到 Directory Proxy Server。
此引用包含的 LDAP URL 指向分布于各地区的 Directory Proxy Server 的相应实例。本地 Directory Proxy Server 代表本地客户机处理此引用,并将搜索请求发送到分布于各地区的 Directory Proxy Server 的相应实例。该分布式 Directory Proxy Server 将搜索请求转发给分布式目录服务器,并接收相应的响应。然后,此响应将通过 Directory Proxy Server 的分布于各地区的实例和本地实例返回到本地客户机。
本地 Directory Proxy Server 接收的更新请求最初也由本地目录服务器返回的引用来满足。此外,Directory Proxy Server 代表本地客户机跟随此引用,但这次将更新请求转发至位于伦敦的供应商目录服务器上。供应商目录服务器将此更新应用于供应商数据库,并通过本地 Directory Proxy Server 将响应发回本地客户机。随后,供应商目录服务器将更新下传到相应的使用者目录服务器。
所有的 Directory Proxy Server 被配置为在供应商目录服务器中启动和查找其配置。这样可以按地域分发 Directory Proxy Server 的多个实例,但集中管理其配置。
集中式 LDAP 目录基础结构
下列几部分介绍集中式 LDAP 目录基础结构中 Directory Proxy Server 的作用:
客户方案
图 2-3 描述的是一家大型跨国企业,客户和雇员遍布全世界,企业需要部署公司白页和黄页(电子电话簿)以降低印刷纸质电话簿的成本,提高公司信息的准确性,并减少对环境资源的消耗。必须使用相应的访问控制同时向客户和雇员提供白页和黄页信息。同时由于客户和雇员分布于全世界的各个时区,因此必须全天候地提供这些信息并且将这些信息归类为关键任务。
图 2-3 集中式 LDAP 目录基础结构
客户部署
该跨国企业决定部署集中式 LDAP 目录基础结构,以支持白页和黄页的部署。由于白页和黄页仅用于为公司雇员提供信息,因此本实例中选择了集中式部署。尽管旨在使客户可以访问某些信息,但这不是客户数据库。由于预计伸缩性和性能都不会出现问题,因此确定目录数据库计划的大小(大约 200,000 条)不足以需要更加复杂的分布式部署模式。
由于存在高可用性需求,该企业决定部署由单个供应商目录服务器提供的多个使用者目录服务器副本。为消除单个供应商目录服务器引起的单点故障,企业部署了备份供应商目录服务器。
Directory Proxy Server 的部署基于三个不同的原因。第一,为所有的 LDAP 客户机与目录服务器副本阵列之间提供负载平衡以及自动故障转移和故障回复。第二,为了能够区分外部和内部客户机,从而设置相应的访问控制。第三,为使用白页和黄页的 LDAP 客户机与目录服务器自身之间提供兼容性。除了使用定制的白页和黄页应用程序之外,LDAP 客户机还使用了大量现成的支持 LDAP 的应用程序,它们具有固定的模式需求。这些模式需求并不是始终能够符合企业设计的目录模式,因此需要一些基本的模式属性映射。此外,并非客户机使用的所有支持 LDAP 的应用程序都能够正确地处理从目录服务器接收到的引用。Directory Proxy Server 被配置为代表客户机跟随这些引用。
LDAP 请求流
所有的客户机请求(无论来自内部还是外部客户机,是搜索请求还是更新请求)均通过 Cisco LocalDirector 发送到 Directory Proxy Server 的实例。此处显示的 LocalDirector 产品仅作为 IP 数据包交换的一个示例,确保客户机始终能够至少访问一个 Directory Proxy Server。部署 Directory Proxy Server 多个实例的目的是确保没有单点故障。Directory Proxy Server 实例对从阵列中所有使用者目录服务器中的客户机接收的所有请求进行负载平衡。Directory Proxy Server 还将检测任何使用者服务器的故障并将故障转移到阵列中可用的使用者服务器。
由于使用者服务器是只读副本,因此它们被配置为从客户机接收更新请求时返回 LDAP 引用。此引用包含的 LDAP URL 指向供应商目录服务器。当目录服务器返回引用时,Directory Proxy Server 代表客户机识别并跟随引用。它绑定到供应商目录服务器并将向其发送更新请求。供应商目录服务器将此更新应用于供应商数据库,并通过 Directory Proxy Server 将响应发回到客户机。随后,供应商目录服务器将更新下传到相应的使用者目录服务器。
客户机发送的搜索请求通过 Directory Proxy Server 路由到使用者目录服务器副本的阵列。可将 Directory Proxy Server 配置为:“检查”这些搜索请求,然后将其发送到目录服务器,过滤出任何不符合为特定客户机组配置的访问控制和安全规则的请求,并执行任何必需的映射。还可将 Directory Proxy Server 配置为:“检查”目录服务器返回的搜索结果,然后再次执行相应的过滤和映射。在图 2-3 所示的示例中,内部和外部客户机均已请求搜索属于 "Trevor" 的条目。Directory Proxy Server 同等对待这些传入的请求,无论客户机的类型如何。目录服务器成功执行请求并将 "Trevor" 的条目返回到 Directory Proxy Server。Directory Proxy Server 已经配置为:根据原始请求是来自内部还是外部客户机,以不同方式来处理搜索结果。如果是外部客户机,则条目中的移动电话和家庭电话号码字段都会被过滤掉,因为它们被视为不适宜客户使用的数据。还要注意 ou:development 特性/值对已经映射到 department:development。这是必需的,因为客户机要使用其访问目录的某一应用程序(如 Outlook、Outlook Express)已有固定的模式元素,它们与企业目录服务器中部署的模式元素不匹配。如果是内部客户机,则可确定移动电话号码属于雇员共享的重要数据元素,而家庭电话号码则不是。因此,对于内部客户机,Directory Proxy Server 配置为:只过滤出家庭电话号码,并允许客户机查看移动电话号码。请注意还要执行 ou 特性到 department 特性的相同映射。
所有的 Directory Proxy Server 被配置为在供应商目录服务器中启动和查找其配置。这样允许从一个目录集中管理多个 Directory Proxy Server 配置。
使用单防火墙部署 Directory Proxy Server
您的组织的防火墙必须按图 2-4 中所示进行配置,以便只允许 LDAP 客户机访问运行 Directory Proxy Server 的计算机和端口。通常,LDAP 客户机将连接到 TCP 端口 389。这将保护运行 Directory Proxy Server 的主机免遭未经授权的客户机可能试图对其进行的访问。同时,通过使用路由器交换机将运行代理服务器的主机置于它自己的 LAN 中,将保护内部网络免遭拒绝服务的攻击,如多余的流量堵塞您的网络。防火墙也应该禁止 LDAP 访问 LDAP 目录服务器在其上处于“隐藏”状态的计算机和端口,从而保护 LDAP 目录数据库。
图 2-4 使用单防火墙设置 Directory Proxy Server
使用双防火墙部署 Directory Proxy Server
图 2-5 中所示的配置具有图 2-4 中显示的配置的所有优势,同时增加了某些安全性。安装双防火墙会在“代理服务器”周围形成一个控制区,使站点管理员能够限制外部网络的流量。同时确保无法直接利用其中一个“代理”服务器的安全隐患攻击内部网络中的其他计算机。防火墙 A 将配置为:如果目标 IP 地址为处理 TCP 或 UDP 协议的代理服务器的 IP 地址,则仅允许传入的数据包。防火墙 B 将配置为:只允许来自代理计算机的数据包,这些代理计算机适用于代理服务器需要访问的服务器。
图 2-5 使用双防火墙设置 Directory Proxy Server